Inside a new thread, Arrayfire uses the default backend rather than the backend set by the parent thread:
>>>importarrayfireasaf>>>af.get_available_backends()
('cpu', 'cuda', 'opencl')
>>>af.get_active_backend()
'cuda'>>>af.set_backend('opencl')
>>>af.get_active_backend()
'opencl'>>>fromthreadingimportThread>>>Thread(target=lambda: print(af.get_active_backend())).start()
cudaIs this expected behavior and/or documented anywhere? I would think that the active backend should be process local rather than thread local.
If it matters, here's my version info:
OS: Ubuntu 20.04
arrayfire: 3.9.0 (commit 955152b6)
arrayfire-python: 3.8.10
cuda: 11.4.0-1
ocl-icd-libopencl1: 2.2.11-1
intel-mkl: 2020.0.166-1
Inside a new thread, Arrayfire uses the default backend rather than the backend set by the parent thread:
Is this expected behavior and/or documented anywhere? I would think that the active backend should be process local rather than thread local.
If it matters, here's my version info:
OS: Ubuntu 20.04
arrayfire: 3.9.0 (commit 955152b6)
arrayfire-python: 3.8.10
cuda: 11.4.0-1
ocl-icd-libopencl1: 2.2.11-1
intel-mkl: 2020.0.166-1