Modles et outils mathmatiques pour la compilation - PowerPoint PPT Presentation

About This Presentation
Title:

Modles et outils mathmatiques pour la compilation

Description:

A suivre de pr f rence apr s le cours de base de compilation (Tanguy Risset) ... Choix des th mes du cours en fonction de ce que vous savez d j (Master 2 ... – PowerPoint PPT presentation

Number of Views:58
Avg rating:3.0/5.0
Slides: 33
Provided by: Alain47
Category:

less

Transcript and Presenter's Notes

Title: Modles et outils mathmatiques pour la compilation


1
Compilation avancée analyse de programmes,
optimisations de code.
A suivre de préférence après le cours de base de
compilation (Tanguy Risset). Des connections
également avec les cours dalgorithmique.
Alain Darte Paul Feautrier Chargé de
recherches au CNRS
Professeur ENS-Lyon Équipe Compsys LIP, ENS-Lyon
2
Plan
  • Introduction.
  • Organisation du cours.
  • Problématique, questions.
  • Quelques thèmes abordés.
  • Outils mathématiques rencontrés.
  • Quelques problèmes sur des processeurs
    spécifiques.
  • Pipeline logiciel.
  • Transformations de boucles.
  • Équations récurrentes uniformes.

3
Organisation du cours
  • Choix des thèmes du cours en fonction de ce que
    vous savez déjà (Master 2 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, attitude en cours, rapport exposé.

4
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/Synfora, MMAlpha ici).

5
Évolution de la thématique
Équations récurrentes uniformes
Réseaux systoliques
Vectorisation de boucles
Parallélisation automatique Transformations de
boucles High Performance Fortran
Langages de haut niveau (Matlab, OpenMP,UPC,
CoArray Fortran, )
ILP et processeurs embarqués
Compilation de circuits spécialisés
6
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. Supports hardware pour le
    pipeline logiciel registres rotatifs, de
    prédication, avec spéculation.
  • 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.

7
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.

8
Plan
  • Introduction.
  • Quelques problèmes sur des processeurs
    spécifiques
  • Pipeline logiciel
  • Transformations de boucles.
  • Équations récurrentes uniformes.

9
Constructeurs de processeurs  embarqués 
  • Motorola (Mcore, SC140e) Philips (Trimedia)
  • STMicro (LX/ST200 family) Intel (StrongARM,
    Xscale)
  • TI (TMS320 family) Agere (Payload)
  • ARM MIPS
  • Tensilica (XTensa) Synfora
  • Atmel (Diopsis, ATmega) IBM (PowerPC family)
  • Ubicom (IP3023) StarCore (SC1400)
  • et plein plein dautres compagnies

10
Network processor Myricom
  • Une seul unité pipelinée de profondeur 3 (ou 4
    selon la version) moves, jumps, ALU, load/store.
  • Pas de hiérarchie mémoire.
  • Peu de registres, avec une sémantique
    particulière.
  • ? Voir les autres transparents, exemple du
    pipeline logiciel

11
Agere Payload Plus
  • VLIW de largeur 4.
  • 1 ALU par  slice  de 1 octet.
  • 32 registres de 4 octets, un pour chaque
     slice , plus registres spéciaux Y et Q
  • Q mémoire temporaire,  slice  par  slice 
  • Y écrit  slice  par  slice , lu par tout le
    monde ? Seul moyen de communication!
  • Code à 2 adresses! (sauf pour Q et Y).

12
Ubicom IP3023
  • Processeur scalaire  in order .
  • 8 contextes de registres pour support
     multi-thread .
  • Possibilité de mélanger les instructions de
    différents  threads  cycle par cycle.
  • 256Ko I-ScratchPad 64Ko D-ScratchPad.

13
ST220
  • Processeur VLIW (largeur 4).
  • Direct-mapped I-Cache (512 lignes de 64o).
  • Prédication limitée (Select move conditionnel).
  • Multiply-add, auto-incréments.

14
Registres étranges
  • Registres dadresse avec incréments et
    décréments
  • ex TI TMS320C25, Motorola DSP56K
  • Registres rotatifs
  • ex Itanium
  • Clusters de registres
  • ex Agere Payload
  •  Register windows 
  • ex WMIS Microcontroller
  • Registres pour load/store doubles
  • ex IBM PowerPC405, Intel StrongARM pour IXP-1200

15
Support hard pour le code
  • Cache dinstructions
  • ScratchPad pour les instructions
  • Support pour lexécution des boucles
  • Compression de code
  • ex Atmel Diopsis Dual Core DSP

16
Et encore plein dautres options et problèmes
  • Processeurs extensibles (custom functional
    units).
  • ex Xtensa (Tensilica)
  • Hiérarchies mémoires, horizontales, verticales,
    avec ou sans by-pass,
  • I-Cache D-Cache, avec ou sans ScratchPads.
  • Problèmes de parallélisme au niveau des chips.
  • Puissance drowsy modes,

17
Plan
  • Introduction.
  • Quelques problèmes sur des processeurs
    spécifiques
  • Pipeline logiciel
  • exemple du LANai 3.0
  • Transformations de boucles.
  • Équations récurrentes uniformes.

18
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) ? shadow
  • 1 seul type de control hazard, et déterministe
  • r1 load (toto)
  • r1 r2 1
  • ? priorité pour le move entre registres.

19
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 software 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 !!!
20
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.

21
  • Quelles sont les transformations valides? Comment
    représenter les contraintes?
  • Analyse et représentation des dépendances ? voir
    le cours 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, ...)
  • Optimalité, dans quel sens? Complexité?
    Généralité des méthodes? Extensibilité?

22
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
23
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.

24
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
25
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
26
Plan
  • Introduction.
  • Pipeline logiciel.
  • Transformations de boucles.
  • Équations récurrentes uniformes.
  • Principes.
  • Exemple.
  • Résultats et intérêts du modèle.

27
É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.

28
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.

29
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
30
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.

31
Boucles, polyèdres, réseaux
j
i
32
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