Skip to content

Releases: ashvardanian/SimSIMD

v4.3.1

10 Apr 18:59
Compare
Choose a tag to compare

4.3.1 (2024-04-10)

Make

v4.3.0

08 Apr 18:11
Compare
Choose a tag to compare

4.3.0 (2024-04-08)

Add

  • toBinary for JavaScript (1f1fd3a)

Improve

v4.2.2

31 Mar 21:51
Compare
Choose a tag to compare

4.2.2 (2024-03-31)

Fix

  • f16 casting on Arm (dda096b)
  • Dot-products compilation on SVE (f5fe36d)

Make

v4.2.1

26 Mar 05:56
Compare
Choose a tag to compare

4.2.1 (2024-03-26)

Fix

Make

  • Avoid native f16 by default (bd02af2)
  • Shorter Rust compilation (db9a9d2)

v4.2.0

25 Mar 05:52
Compare
Choose a tag to compare

4.2.0 (2024-03-25)

Add

Fix

Make

v4.1.1

24 Mar 01:25
Compare
Choose a tag to compare

4.1.1 (2024-03-24)

Fix

Make

  • Unused function attributes (c85e098)

SIMD on Windows πŸ€— πŸͺŸ

23 Mar 19:32
Compare
Choose a tag to compare

This release refactors compiler attributes and intrinsics usage to make it compatible with MSVC. Most noticeably, function defined like this:

__attribute__((target("+simd")))
inline static void simsimd_cos_f32_neon(simsimd_f32_t const* a, simsimd_f32_t const* b, simsimd_size_t n, simsimd_distance_t* result) { }

Now look like this:

#pragma GCC push_options
#pragma GCC target("+simd")
#pragma clang attribute push(__attribute__((target("+simd"))), apply_to = function)

inline static void simsimd_cos_f32_neon(simsimd_f32_t const* a, simsimd_f32_t const* b, simsimd_size_t n, simsimd_distance_t* result) { }

#pragma clang attribute pop
#pragma GCC pop_options

Thanks to that SimSIMD on Windows is gonna be just as fast as on Linux and MacOS πŸ€— πŸͺŸ


4.1.0 vs 4.0.0 Change Log (2024-03-23)

Add

  • Bench against TF, PyTorch, JAX (5e64152)
  • Complex dot-products for Rust (936fe73)
  • Double-precision interfaces for JS (07f2aca)

Docs

Fix

  • Avoid vld2_f16 on MSVC (ce9800e)
  • Complex dispatch in Rust & C (d349bcd)
  • Missing _mm_rsqrt14_ps in MSVC (21e30fe)
  • Missing float16_t in MSVC Arm64 builds (94442c3)

Improve

Make

v4.0.0

13 Mar 19:08
Compare
Choose a tag to compare

This is a packed redesign! Let's start with what's cool about it and later cover the mechanics.

  1. Extends dot products covering the entire matrix:
    • all IEEE 754 floating-point formats (f16, f32, f64)
    • real, complex, complex-conjugate dot-products
    • Arm NEON & SVE, x86 Haswell, Skylake, Ice Lake, Sapphire Rapids
  2. Add support for complex32 Python type ... that:

SimSIMD is now the fastest and most popular library for computing half-precision products/similarities for Fourier Series and other complex data πŸ₯³


What breaks:

  • Return types are now 64-bit floats, up from 32.
  • Inner products are now defined as AB, instead of 1 - AB for broader applicability.

v3.9.0

04 Mar 01:59
Compare
Choose a tag to compare

3.9.0 (2024-03-04)

Add

  • Complex numbers support (0a0665a)
  • Hamming & Jaccard for pre-AVX512 CPUs (4f1eba1), closes #69
  • Rust binary distances (960af05), closes #84

Fix

Improve

Make

v3.8.1

22 Feb 09:00
Compare
Choose a tag to compare

3.8.1 (2024-02-22)

Docs

  • Reorg contribution guide (e8be593)

Fix

  • Detect tests running in QEMU (80b9fec)
  • Numerical issues (cdd7516)
  • NumPy and SciPy issues with PyPy (9bd4ada)

Improve

  • Accurate tail math on Aarch64 (5b39a8e)
  • Accurate tail math with AVX2 (f61d5be)
  • Drop NumPy dependency (819a406)
  • Rust bench performance and style (#85) (da62146), closes #85
  • Test and ship w/out NumPy and SciPy (5b800d3)

Make