From: =?utf-8?q?Picca_Fr=C3=A9d=C3=A9ric-Emmanuel?= <picca@debian.org>
Date: Tue, 27 Feb 2024 11:13:58 +0100
Subject: check also CPU devices

---
 pyvkfft/accuracy.py | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/pyvkfft/accuracy.py b/pyvkfft/accuracy.py
index ea28172..1cdad33 100644
--- a/pyvkfft/accuracy.py
+++ b/pyvkfft/accuracy.py
@@ -69,6 +69,7 @@ gpu_ctx_dic = {}
 
 
 def init_ctx(backend, gpu_name=None, opencl_platform=None, verbose=False):
+    verbose=True
     if backend in gpu_ctx_dic:
         return
     if backend == "pycuda":
@@ -97,13 +98,30 @@ def init_ctx(backend, gpu_name=None, opencl_platform=None, verbose=False):
             raise RuntimeError("init_ctx: backend=%s is not available" % backend)
         d = None
         for p in cl.get_platforms():
+            if verbose:
+                print(f"platforme: {p}")
             if d is not None:
                 break
             if opencl_platform is not None:
                 if opencl_platform.lower() not in p.name.lower():
                     continue
+            if verbose:
+                print(f"devices: {p.get_devices()}")
             for d0 in p.get_devices():
                 if d0.type & cl.device_type.GPU:
+                    if verbose:
+                        print(f"trying GPU device: {d0}")
+                    if gpu_name is not None:
+                        if gpu_name.lower() in d0.name.lower():
+                            d = d0
+                    else:
+                        d = d0
+                if d is not None:
+                    break
+            for d0 in p.get_devices():
+                if d0.type & cl.device_type.CPU:
+                    if verbose:
+                        print(f"trying CPU device: {d0}")
                     if gpu_name is not None:
                         if gpu_name.lower() in d0.name.lower():
                             d = d0
