Affiliation:
1. Universidade Federal de Minas Gerais, Belo Horizonte, Brazil
2. INRIA, Rennes Cedex, France
Abstract
Growing interest in graphics processing units has brought renewed attention to the Single Instruction Multiple Data (SIMD) execution model. SIMD machines give application developers tremendous computational power; however, programming them is still challenging. In particular, developers must deal with memory and control-flow divergences. These phenomena stem from a condition that we call data divergence, which occurs whenever two processing elements (PEs) see the same variable name holding different values. This article introduces divergence analysis, a static analysis that discovers data divergences. This analysis, currently deployed in an industrial quality compiler, is useful in several ways: it improves the translation of SIMD code to non-SIMD CPUs, it helps developers to manually improve their SIMD applications, and it also guides the automatic optimization of SIMD programs. We demonstrate this last point by introducing the notion of a divergence-aware register spiller. This spiller uses information from our analysis to either rematerialize or share common data between PEs. As a testimony of its effectiveness, we have tested it on a suite of 395 CUDA kernels from well-known benchmarks. The divergence-aware spiller produces GPU code that is 26.21% faster than the code produced by the register allocator used in the baseline compiler.
Funder
Fundação de Amparo à Pesquisa do Estado de Minas Gerais
Web during his stay in Brazil
Conselho Nacional de Desenvolvimento Científico e Tecnológico
Publisher
Association for Computing Machinery (ACM)
Cited by
15 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Side-channel Elimination via Partial Control-flow Linearization;ACM Transactions on Programming Languages and Systems;2023-06-26
2. Parsimony: Enabling SIMD/Vector Programming in Standard Compiler Flows;Proceedings of the 21st ACM/IEEE International Symposium on Code Generation and Optimization;2023-02-17
3. Efficient Execution of Graph Algorithms on CPU with SIMD Extensions;2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO);2021-02-27
4. An abstract interpretation for SPMD divergence on reducible control flow graphs;Proceedings of the ACM on Programming Languages;2021-01-04
5. WCCV;Proceedings of the ACM International Conference on Supercomputing;2019-06-26