主要观点:作者在开发应用时进行纳米级基准测试,用二进制向量嵌入构建 Scour 服务,比较 Rust 中不同的汉明距离实现,发现hamming-bitwise-fast
在多数基准测试中最快,simsimd
紧随其后,同时探讨了自动向量化的优势及代码实现方式。
关键信息:
- 测试使用
criterion
,在 3 种机器上测试向量长度为 512、768、1024 和 2048 位的距离计算,机器包括 2023 MacBook Pro M2 Max、Linode 专用 CPU 机器、Fly.io 性能节点。 - 各实现在不同机器上的测试结果:
hamming-bitwise-fast
在多数情况下最快,simsimd
接近,朴素实现在 MacBook 上表现良好等。 - 自动向量化是编译器分析代码并利用单指令多数据(SIMD)优化的能力,
hamming-bitwise-fast
的实现遵循相关结论。
重要细节: - 比较的 crate 不包括计算字符串汉明距离的,代码可在这里找到。
- 在 MacBook 上尝试 16 字节块和 u128 时,在 512 和 768 位向量上快 30%,但在其他基准测试中较慢。
- 感谢 Alex Kesling 提供原始灵感及反馈等。可在 Lobsters、Reddit、Hacker News 或 Bluesky 上讨论。有#embeddings、#rust、#scour 标签。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。