Skip to content

Releases: Arcascope/sensor_preprocessing_cpp

4.3.1: Build and deploy macOS wheels

Choose a tag to compare

@ericcanton ericcanton released this 01 Oct 15:12
1d63ec7

What's Changed

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

Choose a tag to compare

@ericcanton ericcanton released this 28 Sep 19:23
4a88da4

What's Changed

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.

Choose a tag to compare

@ericcanton ericcanton released this 28 Sep 17:02
3ce148d

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

Choose a tag to compare

@ericcanton ericcanton released this 28 Sep 16:04
27bd0b4

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

Choose a tag to compare

@ericcanton ericcanton released this 24 Sep 20:40
ffd8ca2

What's Changed

Full Changelog: 4.0.2...4.0.3

4.0.2: CPython 3.13 and 3.14 builds added

Choose a tag to compare

@ericcanton ericcanton released this 24 Sep 19:33
c1a9e92

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

Choose a tag to compare

@ericcanton ericcanton released this 24 Sep 16:51
3004322

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

Choose a tag to compare

@ericcanton ericcanton released this 22 Sep 20:28
6224288

What's Changed

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)

Choose a tag to compare

@ericcanton ericcanton released this 21 Sep 21:03
40ab559

What's Changed

Full Changelog: 3.0.1...3.1.0

3.0.1: Fix for OpenMP segfault on macOS

Choose a tag to compare

@ericcanton ericcanton released this 03 Sep 18:54
51ebe67

What's Changed

My understanding of the issue is:

  1. On macOS we have libomp.dylib installed via Homebrew, which we link against for the standard SenPy FINUFFT C++ usage. (OMP = Open Multi-Processing, used to saturate CPU cores with NUFFTs)
  2. When we install the jax_finufft package on macOS, this ships with its own version of libomp.dylib
  3. 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 .dylib files in memory, we would get a segfault.
  4. The fix was to detect Darwin (macOS) platforms, then inspect the dynamic loading path and point jax_finufft at the version used by C++ FINUFFT.

Full Changelog: 3.0.0...3.0.1