Releases: kimwalisch/primesieve
primesieve-12.13
This is a bugfix release, it is fully backwards compatible with the previous release.
Due to incomplete/incorrect changes in the CMakeLists.txt file of the previous primesieve-12.12 release, the version number was missing in the primesieve.pc (pkg-config) file. This release fixes that bug.
primesieve-12.12
This is a new maintenance release, it is fully backwards compatible with the previous release.
ChangeLog
CMakeLists.txt: FixCMAKE_PROJECT_VERSIONnot defined.doc/Doxyfile.in: Reverse workaround for Doxygen/LaTeX broken tables #172.- Automated building Windows binaries using GitHub Actions CI.
build_clang_x64.ps1: New Clang Windows x64 build script.build_clang_arm64.ps1: New Clang Windows ARM64 build script.
primesieve-12.11
This is a new maintenance release, it is fully backwards compatible with the previous release.
The code for printing primes to stdout has been significantly improved using a new zero-copy & zero-allocation algorithm. This improvement speeds up writing primes to a text file by up to 10x. On my MacBook M2, primesieve can now write primes to disk at a rate of more than 1 GB/s.
calculator.hpp: Update to version 2.0 with improved error handling.test/calculator.cpp: Add much more tests forcalculator.hpp.PreSieve.cpp: Simplify SIMD runtime dispatching.CountPrintPrimes.cpp: Faster printing of primes to stdout.CmdOptions.cpp: Prevent multiple different--printoptions.CMakeLists.txt: SetCMAKE_VISIBILITY_INLINES_HIDDEN=ONby default.BUILD.md: Update MSVC build instructions.
primesieve-12.10
This is a new maintenance release, it is fully backwards compatible with the previous release.
- Add workaround for Doxygen/LaTeX broken tables #170
src/MemoryPool.cpp: Fix undefined behavior in Bucket allocation.build_mingw64_arm64.sh: Enable ARM SVE for Mingw-w64 on ARM64.test/CMakeLists.txt: Improve Windows libprimesieve.dll support.examples/c/CMakeLists.txt: Improve Windows libprimesieve.dll support.examples/cpp/CMakeLists.txt: Improve Windows libprimesieve.dll support.ci.yml: Add WebAssembly/Emscripten test.BUILD.md: Add WebAssembly/Emscripten build instructions.
primesieve-12.9
This is a new maintenance release, it is fully backwards compatible with the previous release.
CMakeLists.txt: Speed up build by removing compile dependencies.- Move private header files from /include to /src.
src/CMakeLists.txt: Update for private header files in /src.test/CMakeLists.txt: Update for private header files in /src.Vector.hpp: Get rid ofstd::is_trivialwhich is deprecated in C++26.
primesieve-12.8
This is a new maintenance release, it is fully backwards compatible with the previous release.
- Vectorize
primesieve::iterator.prev_prime()using AVX512. api.cpp: Tune sieve array size.PreSieve.cpp: Simplify SIMD code.PreSieve_default.hpp: New algorithm that is also fast using-Osand-O2.PreSieve_arm_neon.hpp: New file, contains ARM NEON algorithm.PreSieve_arm_sve.hpp: New file, contains ARM SVE algorithm.PreSieve_x86_avx512.hpp: New file, contains AVX512 algorithm.PreSieve_x86_sse2.hpp: New file, contains SSE2 algorithm.ci/benchmark.yaml: Add CI test to detect performance regressions.README.md: Fix Markdown math formula.README.md: Add stress testing section.C_API.md: Fix Markdown math formula.CPP_API.md: Fix Markdown math formula.
primesieve-12.7
This release adds ARM SVE runtime dispatching, it is enabled by default on Linux for ARM64 CPUs and it has also been implemented for Windows (but support in Microsoft's Windows.h is still missing). The C/C++ API and ABI of this release are fully backwards compatible with primesieve-12.*
multiarch_sve_arm.cmake: Improve ARM SVE detection.src/arch/arm/sve.cpp: Detect ARM SVE on Linux and Windows.EratBig.cpp: Simplify bucket handling.Erat.cpp: Tune sieve size usingFACTOR_SIEVESIZE.README.md: Add Sponsors section.
Thanks to @AndrewVSutherland and @AlgoWin for being primesieve sponsors in this release cycle!
primesieve-12.6
This is a new maintenance release, it is fully backwards compatible with the previous release.
PreSieve.cpp: Added AVX512 and ARM SVE pre-sieving, up to 3% faster.PreSieve.cpp: Increased pre-sieving to primes β€ 163 (previously primes β€ 100). Memory usage of pre-sieve lookup tables has been reduced from 210 kilobytes to 123 kilobytes and the pre-sieve lookup tables are now static (not generated at runtime anymore).CpuInfo.cpp: More robust CPU cache size detection.
primesieve-12.5
This release improves the thread load balancing on CPUs with a large number of CPU cores. The worker threads now process smaller sieve intervals which improves the performance of short computations β€10 seconds. On a 4th Gen AMD EPYC 9R14 CPU with 192 threads counting the primes up to 10^12 now runs 10% faster (in 1.187 secs) and counting the primes up to 10^11 runs 70% faster (in 0.115 secs).
ChangeLog
ParallelSieve.cpp: Tune thread load balancing.
primesieve-12.4
This is a maintenance release, the C/C++ API and ABI are fully backwards compatible with primesieve-12.*
ChangeLog
- Move x86 CPUID code from
cpuid.hpptosrc/x86/cpuid.cpp. multiarch_x86_popcnt.cmake: Detect x86 POPCNT support.CMakeLists.txt: Use CMake list for all compile time definitions.CMakeLists.txt: Use CMake list for all link libraries.