Divergence Analysis

Diogo Sampaio 1 Rafael de Souza 1 Sylvain Collange 2 Fernando Magno Quintão Pereira 3
1 LLP
DCC - UFMG - Departamento de Ciência da Computação [Minas Gerais]
2 ALF - Amdahl's Law is Forever
Inria Rennes – Bretagne Atlantique , IRISA-D3 - ARCHITECTURE
3 Laboratório de Linguagens de Programação
DCC - UFMG - Departamento de Ciência da Computação [Minas Gerais]
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.
Liste complète des métadonnées

Cited literature [66 references]  Display  Hide  Download

https://hal.inria.fr/hal-00909072
Contributor : Sylvain Collange <>
Submitted on : Thursday, December 5, 2013 - 1:45:59 PM
Last modification on : Friday, April 19, 2019 - 3:24:04 PM
Document(s) archivé(s) le : Saturday, April 8, 2017 - 4:39:00 AM

File

RR-8411.pdf
Files produced by the author(s)

Identifiers

Citation

Diogo Sampaio, Rafael de Souza, Sylvain Collange, Fernando Magno Quintão Pereira. Divergence Analysis. ACM Transactions on Programming Languages and Systems (TOPLAS), ACM, 2013, 35 (4), pp.13:1-13:36. ⟨10.1145/2523815⟩. ⟨hal-00909072v2⟩

Share

Metrics

Record views

472

Files downloads

800