CudaNufftPipeline¶
class CudaNufftPipeline
Full GPU NUFFT pipeline — all intermediates stay on-device.
Forward (image → k-space): deapodize → zero_pad → fftshift → cuFFT → ifftshift → gridding_forward
Adjoint (k-space → image): gridding_adjoint → ifftshift → cuIFFT → fftshift → crop_center → deapodize
Only input and output cross the PCIe bus (one cudaMemcpy each direction).
Functions¶
| Name | Description |
|---|---|
| forward | Forward NUFFT: host pointers (copies H2D and D2H) |
| adjoint | Adjoint NUFFT: host pointers (copies H2D and D2H) |
| forward_device | Forward NUFFT: device pointers (no transfers — data stays on GPU) |
| adjoint_device | Adjoint NUFFT: device pointers (no transfers — data stays on GPU) |
Function Details¶
adjoint¶
void adjoint(const float* samplesIn, float* imageOut)
Adjoint NUFFT: host pointers (copies H2D and D2H)
adjoint_device¶
void adjoint_device(const float* d_samplesIn, float* d_imageOut)
Adjoint NUFFT: device pointers (no transfers — data stays on GPU)
forward¶
void forward(const float* imageIn, float* samplesOut)
Forward NUFFT: host pointers (copies H2D and D2H)
forward_device¶
void forward_device(const float* d_imageIn, float* d_samplesOut)
Forward NUFFT: device pointers (no transfers — data stays on GPU)