Efficient Code Generation for Automatic Parallelization and Optimization - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

Efficient Code Generation for Automatic Parallelization and Optimization

Description:

Efficient Code Generation for Automatic Parallelization and Optimization ... compteur d'une boucle englobante. constante. param tres formels. 5 /18. Efficient Code ... – PowerPoint PPT presentation

Number of Views:53
Avg rating:3.0/5.0
Slides: 21
Provided by: djdeath
Category:

less

Transcript and Presenter's Notes

Title: Efficient Code Generation for Automatic Parallelization and Optimization


1
Efficient Code Generation for Automatic
Parallelization and Optimization
Cédric Bastoul Proposé par Albert
Cohen Présenté par L.Landwerlin, J.Rahme,
M.Thiam
1/18
Efficient Code Generation for Automatic
Parallelization and Optimization
2
Intérêt
  • Génération automatique
  • Opération pénible
  • Dépendant du matériel
  • Langages de programmation ne permettant pas
    l'accès à ces fonctionnalitées
  • Code efficace
  • Processeurs de haut niveau
  • pipelines
  • MMX (Matrix Math eXtention), SSE (Streaming SIMD
    Extensions), Altivec, ...
  • ...

2/18
Efficient Code Generation for Automatic
Parallelization and Optimization
3
Plan
  • Introduction
  • Schéma de génération
  • Formalisme
  • Algorithme de génération de code
  • Problèmes de génération
  • Expérimentations
  • Implémentation
  • Résultats
  • Conclusion

3/18
Efficient Code Generation for Automatic
Parallelization and Optimization
4
(No Transcript)
5
Formalisme
  • Représentation d'une boucle
  • vecteur d'itération x (i1, i2, ..., in)
  • Représentation du domaine d'itération
  • SCoP polyèdre définit par des inégalitées
    linéaires
  • limites et conditions doivent déprendre de
  • compteur d'une boucle englobante
  • constante
  • paramètres formels

5/18
Efficient Code Generation for Automatic
Parallelization and Optimization
6
Formalisme
  • int i, j
  • for (i 1 i lt n i)
  • for (j 1 j lt n j)
  • if (i lt -j n 2)
  • S1

6/18
Efficient Code Generation for Automatic
Parallelization and Optimization
7
Formalisme
  • Changer l'ordre d'exécution
  • Union de polyèdre disjoints
  • x vecteur d'itération
  • p paramètres d'itération
  • A, A' et c constants
  • Fonction de réorganisation
  • T, T' et t constants
  • rôle
  • répartir les itérations sur différents
    processeurs
  • réordonner les itérations dans le temps

7/18
Efficient Code Generation for Automatic
Parallelization and Optimization
8
Plan
  • Introduction
  • Schéma de génération
  • Formalisme
  • Algorithme de génération de code
  • Problèmes de génération
  • Expérimentations
  • Implémentation
  • Résultats
  • Conclusion

8/18
Efficient Code Generation for Automatic
Parallelization and Optimization
9
(No Transcript)
10
Algorithme de génération
10/18
Efficient Code Generation for Automatic
Parallelization and Optimization
11
Problèmes de génération
trous
Polyèdre de départ
Transformation traditionnelle
Problème T est non uni modulaire (déterminant
? 1 )
Transformation utilisant lalgorithme de
larticle
11/18
Efficient Code Generation for Automatic
Parallelization and Optimization
12
Problèmes de génération
  • Degrés de liberté

12/18
Efficient Code Generation for Automatic
Parallelization and Optimization
13
Plan
  • Introduction
  • Schéma de génération
  • Formalisme
  • Algorithme de génération de code
  • Problèmes de génération
  • Expérimentations
  • Implémentation
  • Résultats
  • Conclusion

13/18
Efficient Code Generation for Automatic
Parallelization and Optimization
14
(No Transcript)
15
Expérimentation
  • Méthodologie
  • Ensemble représentatif dexemples
  • Régénérer tous les SCoP
  • Fonction de transformation
  • Initialement fonction de réordonnancement
  • Entrée Code Original(CO)
  • Sortie Code Cible(CC)
  • Sémantiquement CC CO

15/18
Efficient Code Generation for Automatic
Parallelization and Optimization
16
Résultats
Résultats SpecFP 2000
16/18
Efficient Code Generation for Automatic
Parallelization and Optimization
17
Résultats(3)
  • Résultats encourageants
  • Utilisation de la mémoire acceptable
  • De même que le temps de génération du CC
  • Autres expériences efficacité
  • 10 polyèdres
  • Sans explosion
  • Mémoire
  • Temps

17/18
Efficient Code Generation for Automatic
Parallelization and Optimization
18
Résumé
  • Problème du balayage de plusieurs polyèdres
  • Approche naïve (suppression des redondances)
  • Générer le CC pour chaque polyèdre ensuite les
    regrouper
  • Problème contrôles redondants
  • Récursivement
  • Générer un ensemble de boucles imbriquées
  • Séparer en sous-ensembles de polyèdres disjoints
  • Analyser plusieurs unions de polyèdres
  • Meilleur solution pas de redondances
  • Complexité, pas unitaires ordre partiel
    arbitraire sur les polyèdres
  • Larticle solutionne ces 3 dernières limites

18/18
Efficient Code Generation for Automatic
Parallelization and Optimization
19
Conclusion
  • Problème en Compilation
  • Optimisation
  • Parallélisme
  • Solution méthode du polyèdre
  • Apport de larticle
  • Modèle de transformation générale
  • Nouvelles opportunités pour optimiser le CC
  • Bénéficier de plus de liberté
  • Montrer que la méthode donne des résultats
  • optimaux avec des problèmes réels
  • Malgré un pire cas de complexité exponentiel

19/18
Efficient Code Generation for Automatic
Parallelization and Optimization
20
Perspectives
  • Améliorer la qualité du code généré
  • Deux défis majeurs
  • Pas non unitaire
  • Chevauchement des polyèdres
  • Défi toujours lié à lexplosion en temps et en
    espace

20/18
Efficient Code Generation for Automatic
Parallelization and Optimization
Write a Comment
User Comments (0)
About PowerShow.com