Repository navigation
Releases: Arcascope/sensor_preprocessing_cpp
Release list
4.3.1: Build and deploy macOS wheels
What's Changed
- Build wheels for macOS by @ericcanton in #30
- Bump version from 4.3.0 to 4.3.1 by @ericcanton in #31
- add CI job updates too by @ericcanton in #32
This release adds CI jobs and C++ build arguments for macOS platforms. Previously this worked for users installing from source from this repo, but releases published nothing to PyPI for macOS. Existing users on Linux or who have built from source can safely skip this update.
Full Changelog: 4.3.0...4.3.1
4.3.0: Fix macOS compiling
What's Changed
- bench_nustft_streaming: parity check on the 4.2 grid by @ericcanton in #28
- updates to get working on macOS (again) by @ericcanton in #29
Backend support for macOS is a special case, due to differences in the layout of C++ compiled libraries, and differences in the jax GPU/CPU backend. For users on Linux, this is an optional update that changes no outputs.
Full Changelog: 4.2.0...4.3.0
4.2.0: Extend FFT frame grid through last samples.
What's Changed
- senpy 4.2.0: transform every window with at least min_samples samples by @ericcanton in #27
Prior to this version, when stepping along a recording, only FFT frames (windows) that ended before the last sample were kept. This version extends the grid so that FFT frames continue being generated until they start after the last sample.
Full Changelog: 4.1.0...4.2.0
4.1.0: Fix and improve window identification and packing
What's Changed
- senpy 4.1.0: one NUSTFT window grid for every backend by @ericcanton in #22
- senpy 4.1: vectorized JAX packer and compute_nustft_many by @ericcanton in #25
Full Changelog: 4.0.3...4.1.0
4.0.3: Prevent AVX-512 instructions in build wheels
What's Changed
- Prevent compiling FINUFFT with AVX-512 Instructions by @ericcanton in #20
- Bump version before cutting new release by @ericcanton in #21
Full Changelog: 4.0.2...4.0.3
4.0.2: CPython 3.13 and 3.14 builds added
What's Changed
- Build wheels for CPython 3.13 and 3.14 by @ericcanton in #17
- Fix 4.0.2 version and guard against tag/version mismatch by @ericcanton in #18
Full Changelog: 4.0.1...4.0.2
4.0.1: Repo clean up. PyPI
What's Changed
- Documentation cleaned up.
- GitHub actions for PyPI and TestPyPI added; TestPyPI verified.
Full Changelog: 4.0.0...4.0.1
4.0: Fully in-house NUFFT on JAX
What's Changed
- Fully use Senpy pure-Jax NUFFT type 1 by @ericcanton in #14
One key change to be aware of is we dropped jax_finufft as a dependency, which lost an implied jax[cuda12] dependency. So, as we point out in the README update, you'll need to install your own CUDA-comatible JAX as part of installing this package. This is to allow the install site to pick a cuda version compatible with their hardware.
Full Changelog: 3.1.0...4.0.0
3.1.0: Direct JAX implementation of NUFFT (MPS-only)
3.0.1: Fix for OpenMP segfault on macOS
What's Changed
- Fix: avoid duplicate libomp loading by @ericcanton in #12
My understanding of the issue is:
- On
macOSwe havelibomp.dylibinstalled via Homebrew, which we link against for the standard SenPy FINUFFT C++ usage. (OMP = Open Multi-Processing, used to saturate CPU cores with NUFFTs) - When we install the
jax_finufftpackage on macOS, this ships with its own version oflibomp.dylib - At run time, previous versions would load both of these via
import senpy; import jax_finufft(either order). Once we tried to use 2 separate literal.dylibfiles in memory, we would get a segfault. - The fix was to detect Darwin (macOS) platforms, then inspect the dynamic loading path and point
jax_finufftat the version used by C++ FINUFFT.
Full Changelog: 3.0.0...3.0.1