Skip to content

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)