Qdrant 支持 ARM 架构!
Kacper Łukawski
·September 21, 2022

处理器架构是最终用户通常不太关心的事情,只要他们使用的所有应用程序都能流畅运行即可。如果您使用 PC,那么您很可能有基于 x86 的设备,而您的智能手机则更可能运行在 ARM 处理器上。2020 年,苹果推出了基于 ARM 的 M1 芯片,该芯片用于现代 Mac 设备,包括笔记本电脑。这两种架构之间的主要区别在于支持的指令集和能耗。ARM 处理器具有更好的能效,并且比同等的 x86 处理器更便宜。这就是它们在托管提供商(包括云服务)中成为经济实惠的替代方案的原因。

为了使应用程序可供 ARM 用户使用,必须为该平台进行编译。否则,设备必须对其进行模拟,这会带来额外的开销并降低其性能。我们决定提供专门面向 ARM 用户的 Docker 镜像 。当然,使用有限的处理器指令集可能会影响您的向量搜索性能,因此我们决定使用类似的设置来测试这两种架构。
测试环境
AWS 提供基于 ARM 的 EC2 实例,比配置相似的对应 x86 替代方案便宜 20%。此估算基于 eu-central-1 区域(法兰克福)的 R6g/R6i 实例系列。为了进行此比较,我们使用了 r6i.large 实例(Intel Xeon)并将其与 r6g.large 实例(AWS Graviton2)进行了比较。两种设置都提供 2 个 vCPU 和 16 GB 内存,这是可用的最小的可比较实例。
结果
为了进行此测试,我们创建了一些随机向量,并使用余弦距离进行比较。
向量搜索
在我们的实验中,我们对 ARM64 和 x86 设置都执行了 1000 次搜索操作。我们没有测量网络开销,只测量了引擎在 API 响应中返回的时间。下表显示了该时间的分布情况,每种架构分开显示。

如果预算有限,ARM64 似乎是一个有趣的替代方案。它的平均速度慢 10%,中位数速度慢 20%,但性能更稳定。与 x86 不同,它似乎不会随机出现比平均速度慢 2 倍的情况。考虑到它在 AWS 上便宜 20%,这使得 ARM64 成为使用 Qdrant 设置向量搜索的一种经济高效的方式。投入少,获得少,但出乎意料地比预期更多。