Fusion of calling sites

Abstract : The increasing popularity of Graphics Processing Units (GPUs), has brought renewed attention to old problems related to the Single Instruction, Multiple Data execution model. One of these problems is the reconvergence of divergent threads. A divergence happens at a conditional branch when different threads disagree on the path to follow upon reaching this split point. Divergences may impose a heavy burden on the performance of parallel programs. In this paper we propose a compiler-level optimization to mitigate this performance loss. This optimization consists in merging function call sites located at different paths that sprout from the same branch. We show that our optimization adds negligible overhead on the compiler. It does not slowdown programs in which it is not applicable, and accelerates substantially those in which it is. As an example, we have been able to speed up the well known SPLASH Fast Fourier Transform benchmark by 11%.
Complete list of metadatas

Cited literature [21 references]  Display  Hide  Download

https://hal.archives-ouvertes.fr/hal-01410221
Contributor : Sylvain Collange <>
Submitted on : Tuesday, December 6, 2016 - 3:18:59 PM
Last modification on : Thursday, February 7, 2019 - 4:18:56 PM

File

Teixeira_FusionCallingSites_SB...
Files produced by the author(s)

Identifiers

Citation

Douglas Teixeira, Sylvain Collange, Fernando Pereira. Fusion of calling sites. International Symposium on Computer Architecture and High-Performance Computing (SBAC-PAD), Oct 2015, Florianópolis, Santa Catarina, Brazil. ⟨10.1109/SBAC-PAD.2015.16⟩. ⟨hal-01410221⟩

Share

Metrics

Record views

456

Files downloads

52