Mod - PowerPoint PPT Presentation

About This Presentation
Title:

Mod

Description:

A suivre de pr f rence apr s (ou en parall le avec) les cours d'Yves Robert, Tanguy ... Attribution d'une s mantique temps espace: description d'une architecture systolique ... – PowerPoint PPT presentation

Number of Views:34
Avg rating:3.0/5.0
Slides: 24
Provided by: Alain47
Category:

less

Transcript and Presenter's Notes

Title: Mod


1
Compilation avancée parallélisation et
transformations de programmes.
A suivre de préférence après (ou en parallèle
avec) les cours dYves Robert, Tanguy Risset et
Paul Feautrier
Alain Darte Chargé de recherches au CNRS Équipe
Compsys LIP, ENS-Lyon
2
Plan
  • Introduction.
  • Problématique, questions.
  • Quelques thèmes abordés.
  • Outils mathématiques rencontrés.
  • Organisation du cours.
  • Pipeline logiciel.
  • Transformations de boucles.
  • Équations récurrentes uniformes.

3
Problématique
  • Comprendre ce qui peut se faire automatiquement
    dans le domaine de la compilation (souvent avec
    des problèmes liés à la mémoire et au
    parallélisme)
  • Formalisation des problèmes (modèle, fonction
    objective).
  • Étude des problèmes (NP-complétude?,
    algorithmes).
  • Étude des modèles (limites, contre-exemples).
  • Établir des liens entre différents
    problèmes/théories.
  • Applications
  • Parallélisation automatique (et compilation de
    HPF).
  • Optimisations avancées en compilation
    traditionnelle.
  • Compilation de circuits (ex compilateur PICO des
    HP Labs).

4
Évolution de la thématique
Équations récurrentes uniformes
Réseaux systoliques
Vectorisation de boucles
Parallélisation automatique Transformations de
boucles High Performance Fortran
Parallélisme au niveau des instructions
Langages de haut niveau (Matlab, F90)
Compilation de circuits spécialisés
5
Sujets abordés
  • Rappels dordonnancement  de base  graphes de
    tâches acycliques, contraintes de ressources,
    deadlines.
  • Ordonnancement cyclique et pipeline logiciel
    liens avec le retiming et lalgorithme
    out-of-kilter. Fonctionnalités des processeurs
    modernes registres rotatifs, de prédication,
    avec spéculation. Passage en et hors SSA,
    allocation de registres.
  • Compilation-parallélisation premier pas
    transformations de boucles. Algorithmes dAllen
    et Kennedy, de Lamport. Transformation
    unimodulaires. Réécriture de code.
  • Systèmes déquations récurrentes uniformes
    calculabilité, ordonnancement, liens avec la
    parallélisation. Synthèse de circuits méthode
    systolique de base et extensions.
  • Localité et allocation mémoire fusion de
    boucles, contraction de tableaux, repliement
    mémoire.

6
Outils mathématiques
  • Modélisation
  • Systèmes déquations récurrentes uniformes.
  • Graphes de toutes sortes (control-flow, de
    dominance, dínterférence, de dépendances, etc.).
  • Polyèdres, réseaux ( lattices ).
  • Analyse
  • NP-complétude.
  • Algorithmes de graphes.
  • Techniques dordonnancement.
  • Algèbre linéaire. Formes dHermite et de Smith.
  • Calculs sur polyèdres, programmation linéaire.

7
Organisation du cours
  • Choix des thèmes du cours en fonction de ce que
    vous savez déjà (Mim2 notamment) et du nombre de
    participants.
  • Une grosse moitié de cours magistraux  pour
  • donner les bases,
  • présenter quelques techniques en détails,
  • et introduire quelques problèmes.
  • Une seconde partie de découverte de sujets plus
    pointus par lecture et présentation darticles.
  • Évaluation 1 devoir à la maison, 1 examen final
    éventuel (mais peu probable), attitude en cours,
    rapport exposé.

8
Plan
  • Introduction.
  • Pipeline logiciel
  • exemple du LANai 3.0
  • Transformations de boucles.
  • Équations récurrentes uniformes.

9
Quest-ce que le pipeline logiciel?
  • Exemple du LANai 3.0
  • une unité séquentielle (pipelinée) effectuant
    loads, stores, branches, moves et opérations
    arithmétiques.
  • latence apparente 1 cycle sauf pour le load et
    les branches (2 cycles).
  • 1 seul type de control hazard
  • r1 load (toto)
  • r1 r2 1
  • ? priorité pour le move entre registres.

10
Exemple dordonnancement de code
  • Code initial
  • L400
  • ldr26 ? r27
  • nop
  • add r27, 6740 ? r26
  • ld 0x1A54r27 ? r27
  • nop
  • sub.f r27, r25 ? r0
  • bne L400
  • nop
  • L399
  • Temps 88n

Code compacté L400 ldr26 ? r27 nop ld
0x1A54r27 ? r27 add r27, 6740 ? r26 sub.f
r27, r25 ? r0 bne L400 nop L399 Temps 77n !
Code sofware pipeliné ldr26, r27 nop add
r27, 6740 ? r26 L400 ld 0x1A54r27 ? r27
ld26 ? r27 sub.f r27, r25 ? r0 bne L400
add r27, 6740 ? r26 L399 Temps 85n !!!
11
Plan
  • Introduction.
  • Pipeline logiciel.
  • Transformations de boucles.
  • Détection du parallélisme.
  • Fusion, décalage et mémoire.
  • Équations récurrentes uniformes.
  • Allocation de registres.

12
Détection de parallélisme
  • Quelles sont les transformations valides? Comment
    représenter les contraintes?
  • Analyse et représentation des dépendances ? voir
    le cours du DIF de Paul Feautrier.
  • Quel parallélisme peut-on espérer?
  • Algorithmes de plus en plus complexes en fonction
    des représentations des dépendances
    (Allen-Callahan-Kennedy, Lamport, Wolf-Lam,
    Feautrier, ...) ? suite du cours dYves Robert en
    Mim2.
  • Optimalité, dans quel sens? Complexité?
    Généralité des méthodes? Extensibilité?

13
Exemple, Allen-Callahan-Kennedy
doseq k 1, n a(k,k) sqrt(a(k,k)) dopar
i k1, n a(i,k) a(i,k)/a(k,k) enddo
dopar i k1, n dopar j k1, i
a(i,j) a(i,j) a(i,k)a(j,k) enddo
enddo enddo
  • do k 1, n
  • a(k,k) sqrt(a(k,k))
  • do i k1, n
  • a(i,k) a(i,k)/a(k,k)
  • do j k1, i
  • a(i,j) a(i,j) a(i,k)a(j,k)
  • enddo
  • enddo
  • enddo

doseq k 1, n a(k,k) sqrt(a(k,k)) do i
k1, n a(i,k) a(i,k)/a(k,k) do j
k1, i a(i,j) a(i,j) a(i,k)a(j,k)
enddo enddo enddo
doseq k 1, n a(k,k) sqrt(a(k,k)) doseq
i k1, n a(i,k) a(i,k)/a(k,k)
dopar j k1, i a(i,j) a(i,j)
a(i,k)a(j,k) enddo enddo enddo
14
Allen-Callahan-Kennedy (suite)
  • Dépendances par niveau.
  • Transformations de boucles
  • marquage (doseq/dopar) et distribution.
  • Forces
  • optimal pour les niveaux de dépendances
    pourquoi?
  • souvent suffisant en pratique.
  • Faiblesses
  • insuffisant pour une description des dépendances
    plus fine,
  • insuffisant pour appliquer plus de
    transformations.
  • Exemple toutes les transformations
    unimodulaires, le décalage dinstructions et la
    fusion de boucles.

15
Autres transformations (exemples)
do i 1,n do j 1,n a(i,j)
a(i,j-1)a(i-1,j-1) enddo enddo
do j 1,n dopar i 1,n a(i,j)
a(i,j-1)a(i-1,j-1) enddo enddo
do i 1,n1 dopar j 1,n1 if (i ? 1)
(j ? 1) b(i-1,j-1) a(i-1,j-1)
a(i-1,j-2) if (i ? n) (j ? n)
a(i,j) b(i-1,j-1) enddo enddo
do i 1,n dopar j 1,n a(i,j)
b(i-1,j-1) enddo dopar j 1,n
b(i,j) a(i,j)a(i,j-1) enddo enddo
do i 1,n do j 1,n a(i,j)
b(i-1,j-1) b(i,j) a(i,j)a(i,j-1)
enddo enddo
16
Un exemple de problème de fusion pour la mémoire
la contraction de tableaux
  • But transformer un tableau temporaire en
    scalaire.
  • application Matlab, Fortran90, etc.

a d 1 b a/2 c(1..n) b(2..n1) a(1..n)
do i 1,n a(i) d(i) 1 enddo do i 1,n
b(i) a(i)/2 enddo do i 1,n c(i) b(i1)
a(i) enddo
prologue do i 2,n a(i) d(i) 1 b(i)
a(i)/2 c(i-1) b(i) a(i-1) enddo épilogue
prologue do i 2,n a(i) d(i) 1 b
a(i)/2 c(i-1) b a(i-1) enddo épilogue
do i 1,n a(i) d(i) 1 b(i) a(i)/2
c(i) b(i1) a(i) enddo
do i 1,n a d(i) 1 b(i) a/2 c(i)
b(i1) a enddo
17
Plan
  • Introduction.
  • Pipeline logiciel.
  • Transformations de boucles.
  • Équations récurrentes uniformes.
  • Principes.
  • Exemple.
  • Résultats et intérêts du modèle.

18
Équations récurrentes uniformes
  • Pour 1?? i,j,k ? n
  • a(i,j,k) b(i,j-1,k) a(i,j,k-1)
  • b(i,j,k) a(i-1,j,k) b(i,j,k1)

1 0 0
0 0 -1
0 0 1
0 1 0
  • Description à assignation unique.
  • Dépendances uniformes.
  • Principe de calcul membre droit dabord.
  • Dépendances explicites.
  • Ordre dexécution implicite.
  • Mémoire dépliée.

19
SUREs principes généraux
  • Analyse des unions de cycles de poids total nul
  • calculabilité du système.
  • degré de parallélisme du système.
  • Analyse duale (en termes de programmation
    linéaire)
  • ordonnancement du système.
  • Attribution dune sémantique temps espace
  • description dune architecture systolique lorsque
    le temps est mono-dimensionnel.
  • pas de mémoire globale mais des temporisations.

20
SURE, exemple
  • Pour 1?? i,j,k ? n
  • a(i,j,k) b(i,j-1,k) a(i,j,k-1)
  • b(i,j,k) a(i-1,j,k) b(i,j,k1)

do i 1,n do k n,1,-1 dopar j 1,n
b(i,j,k) a(i-1,j,k) b(i,j,k1)
enddo enddo do k 1,n dopar j
1,n a(i,j,k) b(i,j-1,k) a(i,j,k-1)
enddo enddo enddo
21
Pourquoi ce modèle?
  • Avantages
  • Modèle simplifié, plus simple à analyser.
  • Flot de calcul explicite. Correspondance
    calcul-mémoire.
  • Dépendances uniformes ? délais constants.
  • Description propre à la fois proche de
    lalgorithme et de larchitecture.
  • Possibilités de transformations dans le même
    formalisme.
  • Inconvénients
  • Langage correspondant (Alpha) restrictif.
  • Langage loin des habitudes des programmeurs.

22
Boucles, polyèdres, réseaux
j
i
23
Outils mathématiques exemple des transformations
de boucles.
  • Bornes de boucles ? Polyèdres.
  • Points entiers (itérations) ? Réseaux,
    sous-réseaux.
  • Transformations de boucles ? Changement de base.
  • Représentations des dépendances ? Polyèdres.
  • Allocation des données ? Algèbre linéaire,
    réseaux.
  • Analyse et génération des communications en HPF ?
    Polyèdres Presburger.
  • Optimisations ? Programmation linéaire.
  • ...
Write a Comment
User Comments (0)
About PowerShow.com