v3.0.1
Since the beginning of the project, SCAMP has used -march=native
and the like to maximize CPU performance on the host system. Unfortunately, this also makes it so we can't redistribute SCAMP binaries or pyscamp wheels, etc.
In preparation for distributing SCAMP binaries, this release adds an optional environment variable which makes SCAMP binaries redistributable SCAMP_ENABLE_BINARY_DISTRIBUTON=ON
In order to retain some semblance of performance in this mode. I have added code paths in the cpu kernel library which will execute based on runtime checks of the host CPU architecture, in particular, there are code paths for AVX and AVX2 in addition to a baseline version with SSE2. This may result in some issues with older processors in the redistributable binaries, I have added tests which emulate various configurations of concern to validate the redistributable builds work with varying levels of processor SIMD support.
The Docker build and released container will build with this configuration moving forward. As of now, pyscamp remains an sdist on pypi, the goal will be to publish a conda-forge package for pyscamp which builds these redistributable binaries.
What's Changed
- Allow SCAMP binaries to be optionally redistributable by @zpzim in #99
- Fix linker errors that can occur when building pyscamp shared libs. by @zpzim in #100
Full Changelog: v3.0.0...v3.0.1