Folia
← 返回头版

Google发布首个向量化快速排序开源实现

Google推出了首个向量化快速排序的开源实现,通过利用SIMD指令集技术在数组排序中取得显著性能提升1。这一实现比C++标准库的std::sort快9至19倍,具体速度差异取决于数字类型1。在AVX2指令集下,新实现可达798 MB/s的排序速度,超过了之前最优实现的699 MB/s1。使用AVX-512指令集时,32位、64位和128位数字的排序速度分别达到1123、1119和1120 MB/s1。在Apple M1芯片上,相应速度为499、471和466 MB/s1。

该实现支持16至128位的输入数据范围,相比之前仅支持32位整数的方案实现了重大改进1。技术方面,该实现采用了Highway库的可移植SIMD函数,支持AVX2、AVX-512和Arm NEON等六种指令集的跨架构兼容性1。在单核CPU上,该算法可达约1GB/s的排序速度1。这一开源项目已按Apache 2.0协议在Github上发布1。


评论