Академический Документы
Профессиональный Документы
Культура Документы
Pipeline logiciel
Alain Darte
CNRS, Compsys
Laboratoire de l'Informatique du Paralllisme
cole normale suprieure de Lyon
Alain Darte
Introduction au cours
Pipeline logiciel
Outline
Introduction au cours
Compilation et optimisations de codes
Des p'tites boucles, toujours des p'tites boucles
Exemples de spcicits architecturales
Pipeline logiciel
Sans contraintes de ressources
Compaction de boucles
Optimisations des dures de vie
Alain Darte
Introduction au cours
Pipeline logiciel
Maintenance et gnricit
Optimisations
Agressive ou just-in-time
Front-end ou back-end
Algorithmique et/ou heuristique
Alain Darte
Introduction au cours
Pipeline logiciel
Alain Darte
Introduction au cours
Pipeline logiciel
Alain Darte
Introduction au cours
Pipeline logiciel
Alain Darte
Introduction au cours
Pipeline logiciel
Alain Darte
Introduction au cours
Pipeline logiciel
Alain Darte
Introduction au cours
Pipeline logiciel
Alain Darte
Introduction au cours
Pipeline logiciel
DO
loops :
DO i=1, N
DO j=1, N
a(i,j) = c(i,j-1)
c(i,j) = a(i,j) + a(i-1,N)
ENDDO
ENDDO
C
for
and
while
loops :
y = 0; x = 0;
while (x <= N && y <= N) {
if (?) {
x=x+1;
while (y >= 0 && ?) y=y-1;
}
y=y+1;
}
Alain Darte
for
loops :
(i , j ) such that 1 i , j N
a(i , j ) = c (i , j 1)
b (i , j ) = a (i 1, j ) + b (i , j + 1)
c (i , j ) = a (i , j ) + b (i , j )
Introduction au cours
Pipeline logiciel
Equivalent meaning
Alain Darte
R (t ) =
+
N (t ) = R (t )/
P (t ) = . R (t
12345
1103515245
. ;
R (t 1)
2147483647 0
0 5
10
Introduction au cours
Pipeline logiciel
Equivalent meaning
R (t ) =
+
N (t ) = R (t )/
P (t ) = . R (t
12345
1103515245
. ;
R (t 1)
2147483647 0
0 5
10
Fortran90
StreamIt
Alain Darte
Introduction au cours
Pipeline logiciel
Equivalent meaning
R (t ) =
+
N (t ) = R (t )/
P (t ) = . R (t
12345
1103515245
. ;
R (t 1)
2147483647 0
0 5
10
Fortran90
StreamIt
Alain Darte
Introduction au cours
Pipeline logiciel
Alain Darte
Introduction au cours
Pipeline logiciel
Optimizing compilers
Many constraints and/or diculties for an optimizing compiler :
Translation to be correct and fast : need to control complexity.
The compiler does not know what the program computes : it
can only focus on structure, not content.
Parallelism can be hidden, so analysis are needed.
A compiler phase is automatic : all cases have to be
considered.
Many phases in the whole translation, with interactions.
The user may want to know what the compiler is doing.
...
Alain Darte
Introduction au cours
Pipeline logiciel
Alain Darte
Introduction au cours
Pipeline logiciel
Alain Darte
Introduction au cours
Pipeline logiciel
Alain Darte
Introduction au cours
Pipeline logiciel
Scheduling
Software pipelining.
Abstract interpretation.
Circuit retiming.
Parallelism detection.
Vectorization.
Program termination.
Communication optim.
Transforming
Alain Darte
Introduction au cours
Pipeline logiciel
L400 :
ld[r26], r27
nop
8n cycles.
Alain Darte
Introduction au cours
Pipeline logiciel
Code compaction
L400 :
L400 :
ld[r26], r27
nop
ld[r26], r27
nop
ld 0x1A54[r27], r27
ld 0x1A54[r27], r27
nop
L399 :
8n cycles.
7n cycles.
Alain Darte
Introduction au cours
Pipeline logiciel
Code compaction
L400 :
L400 :
ld[r26], r27
nop
Sofware pipelining
ld[r26], r27
ld[r26], r27
nop
nop
ld 0x1A54[r27], r27
ld 0x1A54[r27], r27
ld 0x1A54[r27], r27
ld[r26], r27
bne L400
nop
bne L400
nop
L399 :
L399 :
8n cycles.
L400 :
L399 :
7n cycles.
Alain Darte
+ 5n
cycles.
Introduction au cours
Pipeline logiciel
ombre (shadow).
Alain Darte
Introduction au cours
Pipeline logiciel
VLIW de largeur 4.
1 ALU par slice de 1 octet.
32 registres de 4 octets, un pour chaque slice, plus registres
spciaux Y et Q :
Q = mmoire temporaire, slice par slice ou dcalage global.
Y = crit slice par slice, lu par tout le monde.
Alain Darte
Introduction au cours
Pipeline logiciel
Ubicom IP3023
Alain Darte
Introduction au cours
Pipeline logiciel
ST220 family
Alain Darte
Introduction au cours
Pipeline logiciel
Alain Darte
Introduction au cours
Pipeline logiciel
Cache d'instructions
Scratchpad pour les instructions et les donnes
Support pour l'excution des boucles
Compression de code. Ex : Atmel Diopsis Dual Core DSP
Processeurs extensibles (custom FUs). Ex : Xtensa (Tensilica)
Puissance : drowsy modes, . . .
Alain Darte
Introduction au cours
Pipeline logiciel
Recherche en :
vrication de code
compilateurs
certication de
systmes d'exploitation et
compilateur
multi-threading
langages
architecture
Alain Darte
Introduction au cours
Pipeline logiciel
Outline
Introduction au cours
Compilation et optimisations de codes
Des p'tites boucles, toujours des p'tites boucles
Exemples de spcicits architecturales
Pipeline logiciel
Sans contraintes de ressources
Compaction de boucles
Optimisations des dures de vie
Alain Darte
Introduction au cours
Pipeline logiciel
L400 :
ld[r26], r27
nop
Alain Darte
Introduction au cours
Pipeline logiciel
L400 :
ld[r26], r27
nop
Alain Darte
Introduction au cours
Pipeline logiciel
L400 :
ld[r26], r27
nop
Alain Darte
Introduction au cours
Pipeline logiciel
L400 :
ld[r26], r27
nop
Alain Darte
Introduction au cours
Pipeline logiciel
L400 :
ld[r26], r27
nop
Alain Darte
Introduction au cours
Pipeline logiciel
L400 :
ld[r26], r27
nop
Alain Darte
Introduction au cours
Pipeline logiciel
L400 :
ld[r26], r27
nop
8n cycles.
Alain Darte
Introduction au cours
Pipeline logiciel
Code compaction
L400 :
L400 :
ld[r26], r27
nop
ld[r26], r27
nop
ld 0x1A54[r27], r27
ld 0x1A54[r27], r27
nop
nop
bne L400
bne L400
nop
L399 :
nop
L399 :
8n cycles.
Alain Darte
Introduction au cours
Pipeline logiciel
Code compaction
L400 :
L400 :
ld[r26], r27
nop
ld[r26], r27
nop
ld 0x1A54[r27], r27
ld 0x1A54[r27], r27
nop
nop
bne L400
bne L400
nop
L399 :
nop
L399 :
8n cycles.
Alain Darte
Introduction au cours
Pipeline logiciel
Code compaction
L400 :
L400 :
ld[r26], r27
nop
ld[r26], r27
nop
ld 0x1A54[r27], r27
ld 0x1A54[r27], r27
nop
L399 :
8n cycles.
7n cycles.
Alain Darte
Introduction au cours
Pipeline logiciel
Code compaction
Sofware pipelining
L400 :
L400 :
L400 :
ld[r26], r27
nop
ld[r26], r27
ld[r26], r27
nop
nop
ld 0x1A54[r27], r27
ld 0x1A54[r27], r27
ld 0x1A54[r27], r27
nop
L399 :
8n cycles.
nop
7n cycles.
Alain Darte
Introduction au cours
Pipeline logiciel
Code compaction
L400 :
L400 :
ld[r26], r27
nop
ld[r26], r27
ld[r26], r27
nop
nop
ld 0x1A54[r27], r27
ld 0x1A54[r27], r27
nop
L400 :
ld 0x1A54[r27], r27
nop
L399 :
ld[r26], r27
7n cycles.
L399 :
8n cycles.
Sofware pipelining
nop
Alain Darte
L399 :
Introduction au cours
Pipeline logiciel
Code compaction
L400 :
L400 :
ld[r26], r27
nop
Sofware pipelining
ld[r26], r27
ld[r26], r27
nop
nop
ld 0x1A54[r27], r27
ld 0x1A54[r27], r27
ld 0x1A54[r27], r27
ld[r26], r27
bne L400
nop
bne L400
nop
L399 :
L399 :
8n cycles.
L400 :
L399 :
7n cycles.
Alain Darte
+ 5n
cycles.