Skip to content

Releases: mmuckley/torchkbnufft

Code quality release

02 Mar 18:01
Compare
Choose a tag to compare

This release addressed a couple of code quality items, primarily:

  • Removal of various torch.clone commands that are no longer necessary with the general lack of in-place operations.
  • Alterations to some list statements to reuse references and be more efficient.

Documenation Patch

08 Jan 15:03
Compare
Choose a tag to compare

Patch for documentation, spurious PyPI files.

Toeplitz NUFFT, code harmonization

08 Jan 14:46
Compare
Choose a tag to compare

This update adds the Toeplitz NUFFT, a new module that can execute a sequence of forward and backward NUFFTs as much as 80 times faster than a sequence of forward and adjoint NUFFT calls. The update also includes code harmonization and better use of inheritance.

Code harmonization

  • Refactored interpolation code to reduce duplication across subroutines.
  • Changed testing framework to use fixtures instead of globals.
  • Added new KbModule class for __repr__ statements. All classes now inherit from KbModule, which reduces __repr__ duplication.
  • Minor performance improvements.

Toeplitz NUFFT

  • Added ToepNufft and ToepSenseNufft classes. These can be used to execute forward/backward NUFFT operations with an FFT filter and no interpolations. The filter can be calculated using the new calc_toep_kernel function in nufft.toep_functions.
  • The new Toeplitz Nufft routine can be used to execute forward/backward NUFFTs as much as 80 times faster than a sequence of forward and backward NUFFT calls.

Support for alternate KB parameters

25 Nov 14:50
Compare
Choose a tag to compare
Pre-release

Updates to KB parameters

  • Previously, using KB orders other than 0 and KB widths other than 2.34 were not possible - this is no longer the case.

Updates to initialization

  • Initialization has been harmonized. The code should now cleanly determine whether the input a float or a tuple for parameters such as 'order' and then check input dimensions prior to building interpolation tables.

Printing models

  • __repr__ commands have been updated for all models, so it should be possible to print(ob) and get a brief summary of that object's attributes instead of a smorgasbord of PyTorch registered buffers. Examples of this have been added to the Jupyter Notebook examples.

Refactoring of nufft utilities

  • nufft_utils has been moved into the nufft submodule where it more belongs. Currently torchkbnufft itself will import this and alias it to the old nufft_utils location, but eventually this will no longer be the case.

Speed upgrade and documentation harmonization

21 Nov 20:45
Compare
Choose a tag to compare

Speed updates

  • Increased adjoint speed in normal operation mode by a factor of 2 (CPU) and 6 (GPU). This was primarily accomplished by replacing calls to torch.bincount with index_add_ and index_put_.
  • Added a script for profiling on new systems as well as measured profiles for a workstation with a Xeon E5-1620 CPU and an Nvidia GTX 1080 GPU.
  • Removed support for matadj=True and coil_broadcast=True. Coil broadcasting is now done by default. Matrix adjoints for normal operations are no longer necessary with index_add_ and index_put_. Code using these operations will receive deprecation warnings.

Documentation updates

  • Adjusted all docstrings to conform with Google style. This mostly involved removing variable names from the "Returns" fields.
  • Created html-based API on readthedocs.io.

Testing updates

  • Added pytest functions to verify performance across devices (currently CPU and CUDA). This will be necessary going forward as the adjoint operations use different parts of the PyTorch API.
  • Added tests for backwards pass matching adjoint layers.

Bug fix

15 Nov 16:23
Compare
Choose a tag to compare
Bug fix Pre-release
Pre-release

Bug Fix

  • Fixed an issue related to matadj options in forward operations. Although forward ops don't usually need sparse matrix adjoints, they do when calling backward().

New feature

  • Added an option to pass in a set of sensitivity coils to the forward function in MriSenseNufft that overwrites the coils that were included on initialization.

First release.

11 Nov 21:56
Compare
Choose a tag to compare
First release. Pre-release
Pre-release
v0.1.0

Init.