SIMD parallelization of applications that traverse irregular data structures
SIMD parallelization of applications that traverse irregular data structures
复制标题
DOI:
10.1109/cgo.2013.6494989
复制
发表时间:
2013-02
期刊:
影响因子:
--
通讯作者:
Bin Ren;G. Agrawal;J. Larus;Todd Mytkowicz;T. Poutanen;Wolfram Schulte
中科院分区:
文献类型:
--
作者:
Bin Ren;G. Agrawal;J. Larus;Todd Mytkowicz;T. Poutanen;Wolfram Schulte
Fine-grained data parallelism is increasingly common in mainstream processors in the form of longer vectors and on-chip GPUs. This paper develops support for exploiting such data parallelism for a class of non-numeric, non-graphic applications, which perform computations while traversing many independent, irregular data structures. While the traversal of any one irregular data structure does not give opportunity for parallelization, traversing a set of these does. However, mapping such parallelism to SIMD units is nontrivial and not addressed in prior work. We address this problem by developing an intermediate language for specifying such traversals, followed by a run-time scheduler that maps traversals to SIMD units. A key idea in our run-time scheme is converting branches to arithmetic operations, which then allows us to use SIMD hardware. In order to make our approach fast, we demonstrate several optimizations including a stream compaction method that aids with control flow in SIMD, a set of layouts that reduce memory latency, and a tiling approach that enables more effective prefetching. Using our approach, we demonstrate significant increases in single-core performance over optimized baselines for two applications.