Skip to content

Make cuda textures optional

Pierre Paleo requested to merge make_cuda_textures_optional into master

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

Merge request reports