[SIGMOD'27] HierarchicalKV: A GPU Hash Table with Cache Semantics for Continuous Online Embedding Storage
传统的 GPU 哈希表会保留每一个插入的键 – 这种字典式的设计方式会浪费宝贵的 HBM 资源,因为当哈希表的大小超过单个 GPU 的容量时,这种处理方式就会变得不可行。我们打破了这一假设,采用了基于缓存语义的存储方式,其中策略驱动的淘汰操作成为了核心功能。我们提出了 HierarchicalKV(HKV)这一通用 GPU 哈希表库,它的正常运行模式基于缓存语义:每次完整的更新或插入操作都会通过淘汰或拒绝操作来直接修改数据,而不是通过重新哈希处理或因容量限制而导致失败。 HKV 结合了四种核心机制:与缓存行对齐的桶结构、基于评分的在线更新操作、基于评分的动态双桶选择机制,以及三重组并发处理机制。此外,HKV 还采用了分层键值分离的设计,从而能够在超出 HBM 容量的情况下实现扩展。在 NVIDIA H100 NVL GPU 上,HKV 每秒能够处理高达 39 亿个键值对。在负载因子为 0.50–1.00 的情况下,性能表现有 5% 的波动。与 WarpCore 相比,HKV 在吞吐量上高出 1.4 倍;在基于间接处理的 GPU 基准测试中,性能提升可达 2.6–9.4 倍。自 2022 年 10 月开源以来,HKV 已被集成到多个开源推荐系统中。