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]
Résumé : L'intérêt croissant pour les processeurs graphiques a amené une attention nouvelle sur le modèle d'exécution SIMD (Single Instruction Multiple Data). Les machines SIMD fournissent au développeurs d'application une grande puissance de calcul. Cependant, leur programmation reste difficile. En particulier, les développeurs doivent faire face à la divergence mémoire et la divergence de contrôle. Ces phénomènes proviennent d'une condition que nous nommons divergence de données, qui advient lorsque deux éléments de calcul (PE) voient le même nom de variable contenir des valeurs différentes. Cet article introduit l'analyse de divergence, une analyse statique qui découvre les divergences de données. Cette analyse, actuellement déployée dans un compilateur de qualité industrielle, est utile de plusieurs manières : elle améliore la traduction automatique de code SIMD pour les processeurs non SIMD, elle aide les développeurs à améliorer manuellement leus applications SIMD, et elle guide aussi l'optimisation automatique de programmes SIMD. Nous démontrons ce dernier point en introduisant la notion d'allocateur de registre sensible à la divergence. Cet allocateur utilise l'information de notre analyse pour soit rematérialiser, soit partager des données communes entre les PE. Nous l'avons testé sur une suite de 395 noyaux de calcul CUDA de benchmarks connus. L'allocateur de registre sensible à la divergence produit du code GPU qui est 26% plus rapide que le code produit par l'allocateur du compilateur de base.
Type de document :
Article dans une revue
ACM Transactions on Programming Languages and Systems (TOPLAS), ACM, 2013, 35 (4), pp.13:1-13:36. 〈10.1145/2523815〉
Liste complète des métadonnées

Littérature citée [66 références]  Voir  Masquer  Télécharger

https://hal.inria.fr/hal-00909072
Contributeur : Sylvain Collange <>
Soumis le : jeudi 5 décembre 2013 - 13:45:59
Dernière modification le : mercredi 16 mai 2018 - 11:23:28
Document(s) archivé(s) le : samedi 8 avril 2017 - 04:39:00

Fichier

RR-8411.pdf
Fichiers produits par l'(les) auteur(s)

Identifiants

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〉

Partager

Métriques

Consultations de la notice

450

Téléchargements de fichiers

654