核心概念
MemANNS 是一個利用 UPMEM PIM 硬體架構來加速十億級 ANNS 算法的框架,通過 PIM 感知的工作負載分配、PIM 資源管理和協同出現感知編碼等技術,有效解決了傳統 ANNS 方法在記憶體頻寬和資源利用率方面的瓶頸,顯著提升了 ANNS 效率和能源效率。
研究目標:
本研究旨在解決傳統近似最近鄰搜尋 (ANNS) 方法在處理十億級資料集時遇到的記憶體瓶頸,特別是在 CPU 記憶體頻寬和 GPU 資源利用率方面的限制。
方法:
本研究提出了一個名為 MemANNS 的創新框架,該框架利用 UPMEM 的處理器內記憶體 (PIM) 架構來加速大規模 ANNS 算法。MemANNS 專注於通過以下幾種技術優化 IVFPQ 算法:
PIM 感知的工作負載分配:
根據叢集存取頻率和大小,將編碼向量分佈在數百個 DPU 上,確保工作負載平衡,以獲得最佳效能。
在線上階段,根據資料放置結果,將過濾後的叢集映射到不同的 DPU,以實現執行時的工作負載平衡。
PIM 資源管理:
在每個 DPU 內部採用多執行緒策略,並行處理叢集資料,以充分利用多執行緒計算能力。
設計 WRAM 重用策略,最大限度地利用有限的 WRAM 容量,提高資料存取效率。
協同出現感知編碼:
利用資料集中項目共現的特性,預先儲存高頻項目組合的部分距離,減少線上搜尋時的記憶體存取和計算量。
Top-k 優化:
採用執行緒本地 Top-k 堆和提前剪枝技術,減少 Top-k 識別階段的選擇時間。
主要發現:
MemANNS 在實際 PIM 硬體和十億級真實世界資料集上的評估表明,與基於 CPU 的 Faiss 相比,MemANNS 的每秒查詢數 (QPS) 顯著提高了 4.3 倍,並且與基於 GPU 的 Faiss 實現的效能相當。
MemANNS 提高了能源效率,與 GPU 解決方案相比,QPS/Watt 提高了 2.3 倍。
主要結論:
MemANNS 能夠在相當的功耗範圍內實現卓越的效能,突出了其適用於服務大型模型等大規模應用的優勢。
UPMEM PIM 架構為解決大規模 ANNS 算法中的記憶體瓶頸提供了一個有前景的解決方案。
意義:
本研究為利用新興 PIM 硬體加速大規模 ANNS 算法提供了寶貴的見解和實用的技術,為資訊檢索、推薦系統和大型模型服務等領域的效能提升和成本效益優化開闢了新的途徑。
局限性和未來研究方向:
未來工作可以進一步探索其他量化型 ANNS 算法在 PIM 硬體上的優化。
研究更複雜的資料放置和查詢排程策略,以進一步提高工作負載平衡和資源利用率。
統計資料
與基於 CPU 的 Faiss 相比,MemANNS 的每秒查詢數 (QPS) 顯著提高了 4.3 倍。
MemANNS 與基於 GPU 的 Faiss 實現的效能相當。
與 GPU 解決方案相比,MemANNS 的 QPS/Watt 提高了 2.3 倍。