Skip to content

Releases: ashvardanian/StringZilla

v3.11.1: Matching N3322 for `memcpy` UB in C2y

11 Dec 14:46
Compare
Choose a tag to compare

Release: v3.11.1 [skip ci]

Patch

v3.11.0: Checksums in AVX-512, AVX2, NEON

01 Dec 10:11
Compare
Choose a tag to compare
  • 🆕 sz_checksum(char const *, size_t) C 99 interface
  • 🆕 sz::str().checksum() C++ 11 interface
  • 🆕 sz.checksum(str) Python interface

Database and other Systems Engineers, you can now use StringZilla to dynamically dispatch different check-sum kernels for AVX2 capable Haswell+ CPUs, AVX-512BW capable Ice Lake+ CPUs, and Arm NEON CPUs on mobile. In AVX-512, masked loads are used extensively, resulting in a 10% improvement even on typical English words, averaging 5 bytes in length and 20x performance improvement compared to the serial code for longer strings.

On the technical side, on x86, the kernels use the well-known SAD(text, zeros) idiom to accumulate absolute differences between individual bytes into 64-bit words. It also uses bidirectional traversal to saturate the core, capable of performing 2 loads per CPU cycle. Moreover, on large inputs, it switches to streaming loads, separately handling the head and the tail, similar to our memcpy alternative, also outperforming LibC on AVX-512-capable machines 😎

Minor

Patch

  • Docs: Simpler Python doc-strings (ad5fa2c)
  • Fix: sz_checksum visibility (9bec0eb)
  • Fix: Missing _mm_cvtsi128_si64x in Clang (c8c6c7c)

Release v3.10.11

30 Nov 16:16
Compare
Choose a tag to compare

Release: v3.10.11 [skip ci]

Patch

  • Make: Pin cibuildwheel==2.21.3 (592034c)
  • Make: Bump TinySemVer CI (358f4ad)
  • Fix: Missing C++ function-objects (4be9409)
  • Fix: Equality check on NEON (#197) (705fb5e)
  • Improve: Longer equality check (2af873a)

Release v3.10.10

12 Nov 11:33
Compare
Choose a tag to compare

Release: v3.10.10 [skip ci]

Release v3.10.9

09 Nov 16:37
Compare
Choose a tag to compare

Release: v3.10.9 [skip ci]

Release v3.10.8

06 Nov 21:11
Compare
Choose a tag to compare

Release: v3.10.8 [skip ci]

Release v3.10.7

30 Oct 10:34
Compare
Choose a tag to compare

Release: v3.10.7 [skip ci]

Release v3.10.6

29 Oct 18:37
Compare
Choose a tag to compare

Release: v3.10.6 [skip ci]

Release v3.10.5

19 Oct 08:51
Compare
Choose a tag to compare

Release: v3.10.5 [skip ci]

Release v3.10.4

17 Oct 06:45
Compare
Choose a tag to compare

Release: v3.10.4 [skip ci]