Releases: astro-informatics/s2fft
Release list
v1.4.0
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
- Update README with CUDA extension install details and tweak to Pytorch support note by @matt-graham in #302
- Update Python version used in docs workflow by @matt-graham in #314
- Add contributor guide by @matt-graham in #347
- Documentation for sampling methods by @willGraham01 in #351
📦 Dependency updates
- Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 by @dependabot[bot] in #303
- Bump pypa/cibuildwheel from 2.23.3 to 3.0.0 by @dependabot[bot] in #311
- Bump pypa/cibuildwheel from 3.0.0 to 3.0.1 by @dependabot[bot] in #313
- Bump pypa/cibuildwheel from 3.0.1 to 3.1.3 by @dependabot[bot] in #318
- Bump actions/checkout from 4.2.2 to 5.0.0 by @dependabot[bot] in #321
- Bump actions/download-artifact from 4 to 5 by @dependabot[bot] in #322
- Bump pypa/cibuildwheel from 3.1.3 to 3.1.4 by @dependabot[bot] in #323
- Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #325
- Bump pypa/cibuildwheel from 3.1.4 to 3.2.1 by @dependabot[bot] in #328
- Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #329
- Bump actions/download-artifact from 5 to 6 by @dependabot[bot] in #330
- Bump JamesIves/github-pages-deploy-action from 4.7.3 to 4.7.4 by @dependabot[bot] in #332
- Bump pypa/cibuildwheel from 3.2.1 to 3.3.0 by @dependabot[bot] in #334
- Bump actions/cache from 4 to 5 by @dependabot[bot] in #336
- Bump pypa/cibuildwheel from 3.3.0 to 3.3.1 by @dependabot[bot] in #338
- Bump JamesIves/github-pages-deploy-action from 4.7.6 to 4.8.0 by @dependabot[bot] in #346
- Bump actions/checkout from 5.0.0 to 6.0.1 by @dependabot[bot] in #335
- Bump actions/checkout from 5.0.0 to 6.0.2 by @dependabot[bot] in #356
- Bump actions/upload-pages-artifact from 3 to 4 by @dependabot[bot] in #357
🛠 Other changes
- Factor out torch autograd checks into separate tests and skip on PR workflow runs by @matt-graham in #304
- Update
python_requiresand test matrix to support Python 3.11+ by @matt-graham in #305 - Update custom_ops.py by @kmulderdas in #315
- docs: add willGraham01 as a contributor for review by @allcontributors[bot] in #352
- Remove
so3,pysshtandhealpyas test dependencies by @matt-graham in #333 - docs: add willGraham01 as a contributor for code, and doc by @allcontributors[bot] in #355
New Contributors
- @kmulderdas made their first contribution in #315
- @willGraham01 made their first contribution in #351
Full Changelog: v1.3.0...v1.4.0
v1.3.0
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
- Resolving errors in building test dependencies by @matt-graham in #293
Full Changelog: v1.2.2...v1.3.0
v1.2.2
What's Changed
📦 Dependency updates
- Bump pypa/cibuildwheel from 2.23.1 to 2.23.2 by @dependabot in #286
- Bump actions/setup-python from 2 to 5 by @dependabot in #289
- Bump JamesIves/github-pages-deploy-action from 4.1.5 to 4.7.3 by @dependabot in #288
- Bump actions/checkout from 2.3.1 to 4.2.2 by @dependabot in #287
- Bump codecov/codecov-action from 3 to 5 by @dependabot in #285
New Contributors
- @dependabot made their first contribution in #286
Full Changelog: v1.2.1...v1.2.2
v1.2.1
What's Changed
✨ New features
- Make pyssht and healpy optional dependencies by @matt-graham in #267
📖 Documentation improvements
- Minor fixes in the documentation by @PhilippMisofCH in #265
- De-duplicate README content and update installation instructions by @matt-graham in #274
🛠 Other changes
- Allow changing orientation of benchmark plots by @matt-graham in #272
New Contributors
- @PhilippMisofCH made their first contribution in #265
Full Changelog: v1.2.0...v1.2.1
v1.2.0
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.reindexfunctions to reduce compile and run times by @matt-graham in #245 - Correct
healpix_forwardderivatives 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_precomputesdocstring by @matt-graham in #257
🐛 Bug fixes
- Fix pass through of arguments to
generate_precomputesin NumPy forward spherical transform by @matt-graham in #256 - Fix failing
test_transform_forward_healpix_itertest by @matt-graham in #258
🛠 Other changes
- Switching to
pyproject.tomlfor specifying package metadata by @matt-graham in #173 - Updates to custom CUDA HEALPix FFT primitive by @matt-graham in #231
New Contributors
- @ElisR made their first contribution in #220
- @ASKabalan made their first contribution in #204
Full Changelog: v1.1.0...v1.2.0
v1.1.0
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
Incremental version of S2FFT which adds support for:
PyTorchprecompute 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
V1.0.0
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.