首页> 外文会议>2018 IEEE/ACM 8th Workshop on Irregular Applications: Architectures and Algorithms >A Fast and Simple Approach to Merge and Merge Sort Using Wide Vector Instructions
【24h】

A Fast and Simple Approach to Merge and Merge Sort Using Wide Vector Instructions

机译:使用宽向量指令的合并合并排序的快速简单方法

获取原文
获取原文并翻译 | 示例

摘要

Merging and sorting algorithms are the backbone of many modern computer applications. As such, efficient implementations are desired. Recent architectural advancements in CPUs (Central Processing Units), such as wider and more powerful vector instructions, allow for algorithmic improvements. This paper presents a new approach to merge sort using vector instructions. Traditional approaches to vectorized sorting typically utilize a bitonic sorting network (Batcher's Algorithm) which adds significant overhead. Our approach eliminates the overhead from this approach. We start with a branch-avoiding merge algorithm and then use the Merge Path algorithm to split up merging between the different SIMD lanes. Testing demonstrates that the algorithm not only surpasses the SIMD based bitonic counterpart, but that it is over 2.94x faster than a traditional merge, merging over 300M keys per second in one thread and over 16B keys per second in parallel. Our new sort reaches is over 5x faster than quicksort and 2x faster than Intel's IPP library sort, sorting over 5.3M keys per second for a single processor and in parallel over 500M keys per second and a speedup of over 2x from a traditional merge sort.
机译:合并和排序算法是许多现代计算机应用程序的骨干。因此,需要有效的实施方式。 CPU(中央处理单元)的最新体系结构改进,例如更广泛,更强大的矢量指令,可以改进算法。本文提出了一种使用向量指令进行合并排序的新方法。传统的矢量化排序方法通常使用双音排序网络(Batcher算法),这会增加大量开销。我们的方法消除了这种方法的开销。我们从避免分支的合并算法开始,然后使用“合并路径”算法在不同的SIMD通道之间拆分合并。测试表明,该算法不仅超越了基于SIMD的双音符号,而且比传统的合并速度快2.94倍,在一个线程中每秒合并300M密钥,并在每秒中合并16B密钥。我们的新排序速度比quicksort快5倍以上,比Intel IPP库排序快2倍,单个处理器每秒可排序530万个密钥,每秒并行可排序500M密钥,与传统合并排序相比,可将速度提高2倍以上。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号