本文提出了一种在ARM NEON架构上的混合矢量化归并排序算法NEON-MS。主要包括以下三个优化点:
识别最优寄存器数量:通过分析寄存器数量对排序网络复杂度和寄存器-内存访问的影响,确定使用16个寄存器是最优选择。
引入少比较器列排序网络:相比常用的对称排序网络,采用最优排序网络可以显著减少比较器数量,提高列排序效率。
提出新型混合比特排序网络:该网络同时实现串行归并和矢量化归并,通过并行执行不同实现方式的对称部分,大幅降低了条件指令等待时间和寄存器间数据交换开销,提高了归并效率。
通过上述优化,NEON-MS在单线程下相比std::sort和boost::block_sort分别快3.8倍和2.1倍。在多线程下,NEON-MS也比并行版本的boost::block_sort快1.25倍。
翻譯成其他語言
從原文內容
arxiv.org
深入探究