Forward projector
About
This MR adds a Cuda implementation of forward projector (Radon transform). Closes #215 (closed)
It would be good to add an astra backend for completeness, but this would be even better through the corrct package.
To do
-
Implement projector -
Unit tests -
Basic projection -
Test against astra projector with varying CoR -
Test some iterative algorithms
-
Notes
After profiling of iterative reconstruction with EM:
- Nabu's individual Cuda kernels (forward projector, BP) are approx. twice faster than astra's
- Astra is still overall faster for
EM_CUDA
since the algorithm is natively implemented in C++/Cuda, while Nabu wastes some time in python loops (the effect is smaller for big images)
Using the option "centered_axis": True
in backprojector is crucial when center of rotation is off/incorrect.
Edited by Pierre Paleo