论文

多核 CPU 上内存中矢量 ANN 的 CCD 级和负载感知线程编排

CCD-Level and Load-Aware Thread Orchestration for In-Memory Vector ANNS on Multi-Core CPUs

AI 基础设施向量数据库

摘要

矢量近似最近邻搜索 (ANNS) 是搜索引擎、推荐系统和广告服务的基础。 ANNS 索引的最新进展使 CPU 成为服务于百万级内存向量搜索的经济高效的选择,但每核吞吐量仍然受到向量读取的内存访问延迟和生产部署中距离评估的计算强度的限制。随着业务规模的不断扩大和硬件的进步,基于 CCD 的现代多核 CPU 已被广泛部署,以在我们的服务中实现高吞吐量。然而,我们发现仅仅增加核心数量并不能产生最佳的性能扩展。为了提高基于 CCD 的架构中更多内核的效率,我们分析了生产环境中实际请求的分布。我们在在线服务中观察到矢量搜索的高访问局部性和低缓存利用率,这是由于忽视了基于 CCD 的 CPU 的多芯片特性而导致的。因此,我们提出了一种 CCD 级别的工作负载和硬件感知线程编排框架,该框架(i)为查询间并行 HNSW 搜索和查询内并行 IVF 搜索提供统一接口,(ii)实现任务调度的缓存友好和工作负载自适应映射,以及(iii)采用 CCD 感知任务窃取来解决负载不平衡问题。应用于小红书 (RedNote) 的搜索、推荐和广告服务的实际生产工作负载中,我们的方法可将吞吐量提高 3.7 倍,并将 P50 和 P999 延迟降低 30-90%。具体来说,与原始框架相比,缓存未命中率降低了6-30%,CPU总卡顿降低了20-80%。