Hasty Briefsbeta

双语

High-performance C++ hash table using grouped SIMD metadata scanning

2 months ago
  • #Data Structures
  • #C++
  • #High-Performance Computing
  • 采用分组SIMD元数据扫描的高性能C++哈希表,在大规模场景下表现优于当前最先进(SOTA)的实现方案
  • 与ankerl::unordered_dense的性能对比显示,GroupedSIMD在100万元素规模时开始显现优势,尤其在查询密集型场景中表现突出
  • 核心特性包括:SSE2指令集支持、仅头文件实现、针对50万元以上元素表的优化设计
  • 该设计借鉴Google瑞士表思想,通过连续内存访问提升SIMD指令效率
  • 每个槽位使用1字节元数据标签进行快速过滤,显著提升查询性能
  • 采用组间二次跳跃而非线性跳跃,既降低聚集效应又确保所有槽位可达
  • 权衡取舍包括插入速度较慢(0.72倍SOTA)且不支持删除和动态扩容
  • 该实现源于对Yao猜想的证伪过程,其中分组探测机制是关键突破
  • 未来工作将增加删除功能支持,并探索ARM NEON指令集的兼容性