Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: use a very large coil dimension for 2D stacked NUFFT #39

Merged
merged 15 commits into from
Oct 17, 2023

Conversation

paquiteau
Copy link
Member

@paquiteau paquiteau commented Oct 13, 2023

This PR improve the stacked nufft, by leveraging the coil dimension of the 2D operator.
For gpu backend which does asynchronous copy of coil data (e.g. only gpuNUFFT for now, cufinufft needs a few PR being merged upstream) this is great news, and potentially leads to increase in speed.

I still need to setup some rudimentary benchmark to compare between the two.

@paquiteau paquiteau changed the title feat: use a very large coil dimension. feat: use a very large coil dimension for 2D stacked NUFFT Oct 15, 2023
@paquiteau
Copy link
Member Author

Alright some simple timing (H2D2H) reports the followings on a QUADRO P5000 with the data from the example_stacked.py script (181x217x181 matrix , fully sampled z axis and 8000 NUPTS in a spiral pattern) extended to have 8 coils.

Backend Forward Adjoint
GPU 2D+Stack 2.0035 0.643
GPU 3D 1.40 4.165

Overall that's a 2x speed up on the Forward + Adjoint step (= a data consistency), it can be made faster by avoiding the roundtrip in the middle, and even more when cufinufft support the async copy / computations

The stacked 2D Nufft on GPU also has a lower memory footprint (the oversampling grid is only 4 times bigger , not 8 times) making it possible to potentially have multiple operators running together (think fMRI)

@paquiteau paquiteau merged commit 11b1658 into master Oct 17, 2023
4 checks passed
@paquiteau paquiteau deleted the faster-stacked branch October 17, 2023 11:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant