Releases: NVIDIA/torch-harmonics
Releases · NVIDIA/torch-harmonics
v0.9.0
- New CPU backend (OpenMP-accelerated) for both DISCO convolution and attention layers
- Pre-compiled manylinux wheels for multiple PyTorch and CUDA versions, available on PyPI and pypi.nvidia.com
- Revised truncation logic for the SHT: centralized in new
truncation.pymodule, enforcing triangular truncation (lmax = min(lmax, mmax)) across all SHT classes. Note: truncation for equiangular/equidistant grids changed fromnlatto(nlat+1)//2 - SHT performance improvements: contraction dimensions are now transposed to be stride-1 before einsum, and real/imaginary parts are split into separate contiguous tensors
- New
fft.pywrapper module with proper Hermitian symmetry enforcement inirfftand explicit mode truncation inrfft - Full PyTorch 2 custom operator compatibility for DISCO and attention layers using
torch.libraryregistration, enablingtorch.compileandtorch.export - Restructured DISCO convolution and attention code into proper subpackages (
torch_harmonics/disco/,torch_harmonics/attention/) - Added double precision support for DISCO convolution
- Fixed Schmidt normalization for derivatives of associated Legendre polynomials
- Fixed up/downsampling in attention layers when input and output shapes differ
- Fixed
GaussianRandomFieldS2to useisht.lmax/isht.mmaxfor compatibility with revised truncation logic - Distributed module: added shape verification for transpose and gather operations, controllable via
TORCH_HARMONICS_DISTRIBUTED_DEBUG - Distributed module: fixed
finalize()bug where process group was not properly destroyed - Query functions
torch_harmonics.disco.optimized_kernels_is_availableandtorch_harmonics.attention.optimized_kernels_is_availablefor checking optimized layer availability - Quadrature helper functions
precompute_latitudesandprecompute_longitudesare now public API - added new tests:
- Comprehensive SHT test suite now covering vector SHT, Schmidt normalization, batch dimensions, and multiple grid types
- New test suites for
SpectralConvS2,QuadratureS2,GaussianRandomFieldS2, andResampleS2
Enhanced DISCO convolution tests covering different input/output channel counts and double precision - Enhanced attention tests with up/downsampling and
opcheckintegration - New distributed tests for primitives, quadrature, and spectral convolution
- Shared test utilities module (
testutils.py)
v0.8.0
- Adding spherical attention and spherical neighborhood attention
- Custom CUDA kerneles for spherical neighborhood attention
- New datasets for segmentation and depth estimation on the sphere based on the 2D3DS dataset
- added new spherical architectures and corresponding baselines
- S2 Transformer
- S2 Segformer
- S2 U-Net
- Reorganized examples folder, including new examples based on the 2d3ds dataset
- Added spherical loss functions to examples
- Added plotting module
- Updated docstrings
v0.7.4
- New filter basis normalization in DISCO convolutions
- More robust pre-computation of DISCO convolution tensor
- Reworked DISCO filter basis datastructure
- Support for new filter basis types
- Added Zernike polynomial basis on a disk
- Added Morlet wavelet basis functions on a spherical disk
- Cleaning up the SFNO example and adding new Local Spherical Neural Operator model
- Updated resampling module to extend input signal to the poles if needed
- Added slerp interpolation to the resampling module
- Added distributed resampling module
v0.7.3
v0.7.2
v0.7.1
v0.7.0
- CUDA-accelerated DISCO convolutions
- Updated DISCO convolutions to support even number of collocation points across the diameter
- Distributed DISCO convolutions
- Fused quadrature into multiplication with the Psi tensor to lower memory footprint
- Removed DISCO convolution in the plane to focus on the sphere
- Updated unit tests which now include tests for the distributed convolutions
v0.6.5
- Discrete-continuous (DISCO) convolutions on the sphere and in two dimensions
- DISCO supports isotropic and anisotropic kernel functions parameterized as hat functions
- Supports regular and transpose convolutions
- Experimental accelerated spherical DISCO convolutions on GPU via Triton Kernel
- Unittests for DISCO convolutions in tests/test_convolution.py
v0.6.4
- reworking distributed to allow for uneven split tensors, effectively removing the necessity of padding the transformed tensors
- distributed SHT tests are now using unittest. Test extended to vector SHT versions. Tests are defined in torch_harmonics/distributed/distributed_tests.py
- base pytorch container version bumped up to 23.11 in Dockerfile