#hamming #avx2 #popcount

hamming_rs

计算汉明距离和权重 -- 如果可用,则使用高度优化的 avx2 实现

7 个版本

0.2.22 2024 年 2 月 3 日
0.2.21 2022 年 4 月 20 日
0.1.1 2022 年 4 月 16 日

5#avx2

MIT 许可证

4MB
445

包含 (WOFF 字体,680KB) target/doc/NanumBarunGothic.ttf.woff,(WOFF 字体,400KB) target/doc/NanumBarunGothic.ttf.woff2,(WOFF 字体,400KB) NanumBarunGothic-0f09457c7a19b7c6.ttf.woff2,(WOFF 字体,190KB) target/doc/FiraSans-Medium.woff,(WOFF 字体,135KB) target/doc/FiraSans-Medium.woff2,(WOFF 字体,185KB) target/doc/FiraSans-Regular.woff 等等.

hamming_rs

计算汉明距离和权重,可能使用 x86 处理器的 avx/avx2 指令
当输入具有相同的内存对齐时使用 avx2 优化版本
否则,函数将回退到较慢的版本

参考

Muła, Wojciech, Nathan Kurz, 和 Daniel Lemire. "使用 AVX2 指令加快计数速度。" 《计算机杂志》61.1 (2018): 111-120。

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

性能

我们在一台具有 Intel core i7-8750H @2.2Ghz 的笔记本电脑上运行了 cargo bench 的基准测试,该笔记本电脑有 16Gb 的 RAM
我们将 avx2 版本(输入对齐到 256 字节)与 hammingstrsim 参考库进行了比较
我们注意到与 hamming 相比速度提高了 ~4,与 strsim 相比提高了 ~100

hamming_rs vs hamming hamming_rs vs strsim

无运行时依赖