hamming_rs

Crates.iohamming_rs
lib.rshamming_rs
version0.2.22
sourcesrc
created_at2022-04-16 11:13:18.709086
updated_at2024-02-03 13:46:23.035342
descriptionComputes Hamming distance and weight -- if available, uses a highly optimized avx2 implementation
homepagehttps://github.com/JeWaVe/hamming_rs
repositoryhttps://github.com/JeWaVe/hamming_rs
max_upload_size
id568929
size4,144,402
Portalez Régis (JeWaVe)

documentation

https://docs.rs/hamming_rs/

README

hamming_rs

Computes hamming distance and weight, possibly with avx/avx2 instructions for x86 processors
avx2 optimized version is used when inputs have same memory alignment
otherwise, functions will fallback to slower versions

references

Muła, Wojciech, Nathan Kurz, and Daniel Lemire. "Faster population counts using AVX2 instructions." The Computer Journal 61.1 (2018): 111-120.

https://arxiv.org/pdf/1611.07612.pdf

performances

We ran benchmarks with cargo bench on a laptop with a Intel core i7-8750H @2.2Ghz with 16Gb of RAM
We compare the avx2 version (with inputs aligned to 256 bytes) against hamming and strsim reference crates
We notice a speedup of ~4 against hamming and of ~100 against strsim

hamming_rs vs hamming hamming_rs vs strsim
Commit count: 16

cargo fmt