本文提出了一种在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
Дополнительные вопросы