Qdrant 支持 ARM 架构!
Kacper Łukawski
·2022 年 9 月 21 日

处理器架构是终端用户通常不太关心的事情,只要他们使用的所有应用程序运行顺畅即可。如果你使用电脑,那么很可能你使用的是基于 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 那样随机慢两倍于平均水平。考虑到它在 AWS 上便宜 20%,这使得 ARM64 成为使用 Qdrant 设置向量搜索的经济高效方式。你确实以更低的价格获得更少的性能,但出乎意料地获得了比预期更多的价值。