Skip to content

Releases: astro-informatics/s2fft

v1.4.0

Choose a tag to compare

@matt-graham matt-graham released this 12 Feb 11:08
e140536

What's Changed

✨ New features

  • Updating Healpix CUDA primitive by @ASKabalan in #290.
    Thanks to contributions from @ASKabalan this release significantly updates the custom primitive implementing FFT operations for HEALPix transformations on CUDA devices, which sidesteps the large compile time overhead in the direct JAX implementation due to unrolling of loops. This release adds full support for autodiff and batching (vmap) transforms to this primitive as well as changing to the JAX foreign function interface (FFI) for implementing the primitive, with this also meaning we have been able to relax our JAX version requirements to v0.5.0+. To be able to use the HEALPix primitive functionality on CUDA GPUs the package must currently be built from source on a system with the NVIDIA compiler toolchain installed.

📖 Documentation improvements

📦 Dependency updates

🛠 Other changes

New Contributors

Full Changelog: v1.3.0...v1.4.0

v1.3.0

Choose a tag to compare

@matt-graham matt-graham released this 24 Apr 14:12
7248dfe

What's Changed

✨ New features

  • Provide PyTorch implementations of transforms by wrapping JAX functions by @matt-graham in #277
  • On-the-fly support for Fourier Wigner transforms with Risbo recursions by @CosmoMatt in #260

📦 Dependency updates

  • Pin JAX version to less than v0.6.0 due to breaking changes by @matt-graham in #300

🛠 Other changes

Full Changelog: v1.2.2...v1.3.0

v1.2.2

Choose a tag to compare

@matt-graham matt-graham released this 26 Mar 11:39
6d55715

What's Changed

📦 Dependency updates

New Contributors

Full Changelog: v1.2.1...v1.2.2

v1.2.1

Choose a tag to compare

@matt-graham matt-graham released this 20 Mar 09:05
b1bf438

What's Changed

✨ New features

📖 Documentation improvements

🛠 Other changes

New Contributors

Full Changelog: v1.2.0...v1.2.1

v1.2.0

Choose a tag to compare

@matt-graham matt-graham released this 19 Dec 08:41
876e090

What's Changed

✨ New features

  • Performance improvements by @CosmoMatt in #200
  • Custom HEALPix FFT primitive when running on GPU by @ASKabalan in #204
  • Add stable high-spin transforms (precompute, standard) by @CosmoMatt in #230
  • Add stable forward/inverse memory efficient Wigner transforms by @CosmoMatt in #238
  • Add custom collective transforms by @CosmoMatt in #239
  • Avoid loops in s2fft.sampling.reindex functions to reduce compile and run times by @matt-graham in #245
  • Correct healpix_forward derivatives and add support for forward and higher order autodiff by @matt-graham in #244
  • Improvements to benchmarking system by @matt-graham in #248
  • Iterative refinement support for JAX and NumPy forward (spherical) transform implementations by @matt-graham in #241
  • Vectorize signal generator functions by @matt-graham in #252

📖 Documentation improvements

  • Feature/notebook plots by @CosmoMatt in #202
  • Execute main spherical transform notebook by @jasonmcewen in #203
  • Add low precision warning to docstring of inverse Wigner function by @ElisR in #220
  • Update citation details in docs and add CITATION.cff file by @matt-graham in #236
  • Indicate cubic memory overhead in generate_precomputes docstring by @matt-graham in #257

🐛 Bug fixes

  • Fix pass through of arguments to generate_precomputes in NumPy forward spherical transform by @matt-graham in #256
  • Fix failing test_transform_forward_healpix_iter test by @matt-graham in #258

🛠 Other changes

New Contributors

Full Changelog: v1.1.0...v1.2.0

v1.1.0

Choose a tag to compare

@CosmoMatt CosmoMatt released this 09 Apr 07:52
76fa862

This minor release of S2FFT aims to increase the accessibility of differentiable harmonic transforms to users without easy access to GPU compute resources. We provide custom JAX frontends for existing CPU bound C/C++ spherical harmonic libraries, at this point we capture the functionality of SSHT and HEALPix though in principle any spherical harmonics could easily be integrated.

Tip

For details on this approach see the original derivation in section 5.3.1 and 5.3.2 of Price & McEwen 2023.

Main changelog:

  • JAX frontend support for HEALPix C++ library
  • JAX frontend support for SSHT C library
  • Reverse mode gradients for above validated against finite difference

v1.0.2

Choose a tag to compare

@CosmoMatt CosmoMatt released this 05 Mar 12:37
b3d033c

Incremental version of S2FFT which adds support for:

  • PyTorch precompute transforms
  • Gauss-Legendre sampling schemes
  • JAX harmonic space rotation functions
  • JAX Risbo recursions

This version also implements some changes to reduce the compile time of HEALPix Fast Fourier transforms, though this issues is yet to be fully solved.

v1.0.1

Choose a tag to compare

@CosmoMatt CosmoMatt released this 13 Dec 16:31
c608309

This is a relatively small patch which attempts to mitigate the compile time of HEALPix transforms. Though this is unlikely to have solved the overall scaling of the compile time, it has reduced the time by a factor of ~4 which should help.

V1.0.0

Choose a tag to compare

@CosmoMatt CosmoMatt released this 27 Nov 10:02
3444a42

This is the initial beta release to accompany the associated paper (see badges). In addition this version is deployed on PyPi with universal wheels which should be straightforward to install for various python versions and machine architectures.

0.0.1

Choose a tag to compare

@CosmoMatt CosmoMatt released this 15 Feb 19:30

This is a pre-alpha release version for use by collaborators. Most functionality is in place, but development of minor additions will be ongoing. Please submit an issue if you have one and we will respond asap!