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

Cufinufft torch #69

Closed
wants to merge 14 commits into from
Closed

Cufinufft torch #69

wants to merge 14 commits into from

Conversation

paquiteau
Copy link
Member

This PR add support for pytorch in mri-nufft

Currently only cufinufft can use torch's Tensor on GPU (i.e. device="cuda").

Feature to implement:

  • Tensor for Cufinufft op/adj_op (input/output)
  • Dtype Conversion
  • Tensor for input smaps
  • Tensor for input samples point.
  • Tensor for CPU-based nufft.
  • Tensor Support for Stacked-Nufft.

The point of this PR is NOT to add autodiff support.

NB: This is built on top of the density_register branch.

@paquiteau paquiteau changed the base branch from master to density_register December 17, 2023 23:48
@paquiteau paquiteau mentioned this pull request Dec 18, 2023
@paquiteau paquiteau marked this pull request as draft January 4, 2024 09:26
chaithyagr and others added 2 commits January 5, 2024 08:43
* refactor: homogeneize interfaces.

* feat: add bart and sigpy implementation.

* feat(test): refactor test to follow changes of api.

* update ci

* fix(test): use truncated gaussian for sample generation.

* feat(test): show available/selected backend in table format.

* update CPU backend tests in CI

* ignore bart and pynfft.

* feat(ci): use pip cache.

* install all deps in linter

* update coverage steps

* report steps

* feat(ci): add example to test CI.

* install libnfft only for pynfft.

* fix typo

* fix(tests): correct shape

* fix(cufinufft): error in gradient computation

* fix(tests): relax adjoint condition.

* feat: just test for reproductibility.

* remove density tests.

* feat: use new interface of gpunufft.

* style: only cupyx is needed.

* fix: update gpunufft to follow mem-efficient.

* fix(ci): add cupy to dependencies of gpunufft.

* fix: remove prints.

* feat: pin smaps in python code.

* feat: make the pinning available for outside use.

* feat: disable pinned memory pooling.

* feat: use a custom allocator to share memory across context.

This is mostly cargo culting.

* Update src/mrinufft/operators/interfaces/gpunufft.py

* fix: ruff

* Fix on order and copy old stuff

* Added make copy vback

* Added corrections

* style: run black.

* style: ruff.

---------

Co-authored-by: Pierre-antoine Comby <[email protected]>
Co-authored-by: chaithyagr <[email protected]>
@paquiteau paquiteau force-pushed the density_register branch 4 times, most recently from 677055a to 63e5d1a Compare January 8, 2024 15:49
@paquiteau paquiteau closed this Jan 10, 2024
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.

2 participants