Make cuda textures optional
About
From cuda >= 12, textures references are no longer supported. Texture objects should be used instead, but pycuda does not support them.
For now, the simplest is to remove textures if cuda 12 is used.
Close #349 (closed)
This is a temporary solution. Not using textures entails a 40% slowdown.
If using textures is critical in the near future, solutions are
- Use cupy
RawKernel
, which in principle can use textures (using the nvcc backend instead of nvrtc). Memory can be passed between pycuda and cupy quite easily. - Ideally, contribute to pycuda to implement texture objects
To do
-
Update BackprojectorBase
-
Update CudaBackprojector
-
Update unit tests -
Benchmark -
End-to-end reconstruction test
Edited by Pierre Paleo