FBP: assess 3D backprojector benefits
A 3D CUDA backprojector has been implemented. It is used by default when backprojecting 3D sinograms.
However the performances gain is not clear. Theoretically, transferring once a huge sinogram stack (instead of Nz
sinograms) suppresses the latency. But it might make caching less efficient on one hand ; and on the other hand memory is a crucial resource on GPU.
In the end, it might be wise to use the 3D backprojector only on a restricted subset of the sinograms stack (ex. backproject by groups of 4 sinograms).
The Backprojector
class may be left as is (if self.n_sinos > 1: use_backproj_3D = True
), and a higher-level class like Reconstructor
handles the slicing in groups of 4 sinograms.
Edited by Pierre Paleo