les transparents utilisés pour la présentation

Transcription

les transparents utilisés pour la présentation
Persyval HPES
Le CacheND-AP : pré-chargement adaptatif
dans les tableaux
S. Mancini
Plan
Le memory wall
Le prefetch
Le Cache nD-AP
Conclusion & perspective
1- Persyval HPES- Le CacheND-AP : pré-chargement adaptatif dans les tableaux
Motivations
Constats:
Concevoir des unités de traitement est devenu
relativement aisé (HLS).
Acheminer les données devient de plus en plus pénalisant
(surface, performance, consommation)
Pour concevoir une unité de traitement, il faut gérer:
Les bus
La synchronisation des transferts & calculs
Les interfaces mémoire
L’ITRS prévoit que 80% de la surface et de la consommation
d’énergie seront dus aux mémoires.
2/30- Persyval HPES
Le memory wall
S. Mancini
Problématique du “Memory Wall”
SoC
IP/ASIC
CPU
(DDR)−DRAM
(DDR)
Controleur
DRAM
3/30- Persyval HPES
Le memory wall
S. Mancini
Problématique du “Memory Wall”
SoC
IP/ASIC
CPU
2 ns
0.5ns
1,1 Gbit/s/lien
(DDR)−DRAM
(DDR)
Controleur
DRAM
3/30- Persyval HPES
Le memory wall
S. Mancini
Problématique du “Memory Wall”
SoC
IP/ASIC
CPU
req
data
12 ns
2 ns
0.5ns
1,1 Gbit/s/lien
req
(DDR)−DRAM
data
100/300 clk
(DDR)
Controleur
DRAM
3/30- Persyval HPES
Le memory wall
S. Mancini
Problématique du “Memory Wall”
SoC
IP/ASIC
CPU
req
data
12 ns
2 ns
0.5ns
1,1 Gbit/s/lien
250mW (4000DMIPS)
req
(DDR)−DRAM
data
100/300 clk
(DDR)
Controleur
30 mW/lien
2.5 10−4 mW/Gigabit/s
3/30- Persyval HPES
Le memory wall
DRAM
240 mW/GOctet/s
S. Mancini
Problématique du “Memory Wall”
SoC
IP/ASIC
CPU
SRAM
SRAM
Cache
L1/L2
(DDR)−DRAM
(DDR)
Controleur
DRAM
SPRAM
Buffers
etc ...
3/30- Persyval HPES
Le memory wall
S. Mancini
Problématique du “Memory Wall”
SoC
IP/ASIC
CPU
SRAM
Prefetch
SRAM
for
for
Cache
L1/L2
Prefetch
(DDR)−DRAM
(DDR)
Controleur
DRAM
SPRAM
Buffers
etc ...
3/30- Persyval HPES
Le memory wall
Prefetch
Prefetch
S. Mancini
Problématique du “Memory Wall”
SoC
IP/ASIC
CPU
SRAM
Prefetch
SRAM
for
for
Cache
L1/L2
for
for
for
for
Le memory wall
(DDR)−DRAM
(DDR)
Controleur
DRAM
SPRAM
Buffers
etc ...
3/30- Persyval HPES
Prefetch
Prefetch
Prefetch
S. Mancini
Problématique du “Memory Wall”
SoC
IP/ASIC
CPU
SRAM
Miss
Cache
L1/L2
Le memory wall
Prefetch
(DDR)−DRAM
(DDR)
Controleur
DRAM
SPRAM
Buffers
etc ...
3/30- Persyval HPES
SRAM
HW MT
for
for
for
for
for
for
Prefetch
Prefetch
Prefetch
S. Mancini
Problématique du “Memory Wall”
SoC
IP/ASIC
CPU
SRAM
Miss
Cache
L1/L2
Le memory wall
Prefetch
(DDR)−DRAM
(DDR)
Controleur
DRAM
SPRAM
Buffers
etc ...
3/30- Persyval HPES
SRAM
HW MT
for
for
for
for
for
for@
idx <=>
Prefetch
Prefetch
@ <=> Ro/Co/Rank/Bank
Prefetch
S. Mancini
Problématique du “Memory Wall”
SoC
IP/ASIC
CPU
SRAM
Miss
Burst
Cache
L1/L2
SPRAM
Buffers
etc ...
3/30- Persyval HPES
Le memory wall
SRAM
HW MT
for
for
for
for
for
for@
idx <=>
Prefetch
Prefetch
(DDR)−DRAM
(DDR)
Controleur
Prefetch
@ <=> Ro/Co/Rank/Bank
Burst
DRAM
Prefetch
S. Mancini
Problématique du “Memory Wall”
SoC
IP/ASIC
CPU
SRAM
Miss
Prefetch
HW MT
for
for
Burst
Cache
Prefetch
L1/L2
for
for
for
for@
idx <=>
SPRAM
Buffers
etc ...
3/30- Persyval HPES
Le memory wall
SRAM
(DDR)−DRAM
(DDR)
Controleur
RAM
80%
surf.
puiss.
Prefetch
@ <=> Ro/Co/Rank/Bank
Burst
DRAM
Prefetch
S. Mancini
Problématique du “Memory Wall”
SoC
IP/ASIC
CPU
SRAM
Miss
Prefetch
SRAM
HW MT
for
for
Burst
Cache
L1/L2
for
for
for
idx <=>
for@
SPRAM
Buffers
etc ...
Prefetch
(DDR)−DRAM
(DDR)
Controleur
Prefetch
DRAM
Burst
@ <=> Ro/Co/Rank/Bank
Prefetch
Pour de nombreuses classes d’applications,
les strategies de prefetch usuelles ne sont pas efficaces
3/30- Persyval HPES
Le memory wall
S. Mancini
Consommation d’énergie due aux mémoires
source: ITRS
4/30- Persyval HPES
Le memory wall
S. Mancini
Comment “passer le mur” mémoire?
Optimisation de la gestion des données:
Stratégies ”hors-ligne”
Connaissance des séquences d’accès
Ne prend pas en compte les variations de performance
Stratégies “en-ligne”
Adaptation aux conditions de fonctionnement
Décision “locale”, seul le passé est connu, modèle de
prédiction du futur
5/30- Persyval HPES
Le memory wall
S. Mancini
Une vision globale
IP/ASIC
for
for
CPU
SRAM
SRAM
(DDR)
for
for
for
for
DRAM
Cache
L1/L2
6/30- Persyval HPES
Le memory wall
Prefetch
(DDR)−DRAM
Controlleur
S. Mancini
Une vision globale
IP/ASIC
for
for
CPU
SRAM
SRAM
(DDR)
for
for
for
for
DRAM
Cache
L1/L2
6/30- Persyval HPES
Le memory wall
Prefetch
(DDR)−DRAM
Controlleur
S. Mancini
Une vision globale
IP/ASIC
for
for
CPU
SRAM
SRAM
Compilation dynamique
(DDR)
for
for
for
for
DRAM
Cache
L1/L2
6/30- Persyval HPES
Le memory wall
Prefetch
(DDR)−DRAM
Controlleur
S. Mancini
Une vision globale
IP/ASIC
for
for
CPU
SRAM
Prefetch SRAM
Compilation dynamique
(DDR)
for
for
for
for
DRAM
Cache
L1/L2
Prefetch
(DDR)−DRAM
Controlleur
Prefetch
Prefetch
6/30- Persyval HPES
Le memory wall
S. Mancini
Une vision globale
IP/ASIC
for
for
CPU
SRAM
Prefetch SRAM
Compilation dynamique
(DDR)
for
for
for
for
DRAM
Cache
Prefetch
L1/L2
for
for
(DDR)−DRAM
Controlleur
CPU
Prefetch
Prefetch
for
for
for
for
Cache
L1/L2
6/30- Persyval HPES
Le memory wall
Prefetch
S. Mancini
Une vision globale
IP/ASIC
for
for
CPU
SRAM
Prefetch SRAM
Compilation dynamique
(DDR)
for
for
for
for
DRAM
Cache
Prefetch
L1/L2
for
for
(DDR)−DRAM
Controlleur
CPU
Prefetch
Prefetch
for
for
for
for
Cache
L1/L2
6/30- Persyval HPES
Le memory wall
Prefetch
S. Mancini
Une vision globale
IP/ASIC
for
for
CPU
SRAM
Prefetch SRAM
Compilation dynamique
(DDR)
CPU
for
for
for
for
?
for
for
Adaptation
long terme
Adaptation
for
moyen for
terme
for
for
+
Mesure
HW
6/30- Persyval HPES
Le memory wall
Cache
Prefetch
L1/L2
Vitesse
−
SW
DRAM
(DDR)−DRAM
Controlleur
CPU
Prefetch
Prefetch
Cache
L1/L2
Prefetch
S. Mancini
Plan
Le memory wall
Le prefetch
Le Cache nD-AP
Conclusion & perspective
7- Persyval HPES- Le CacheND-AP : pré-chargement adaptatif dans les tableaux
Le prefetch
Objectifs: pré-charger les données en cache avant d’en avoir
besoin.
SW: insertion d’instructions de pré-charge (nonbloquante)
HW: prédire au fur et à mesure des accès mémoire
Concevoir une stratégie de prefetch, c’est choisir:
Quelles informations exploiter
Quand lancer la pré-charge
Quelles données pré-charger
Où placer les données pré-chargées
Critères d’efficacité:
Temps d’exécution totale
Pollution des bus
Complexité
8/30- Persyval HPES
Le prefetch
S. Mancini
Prefetch usuels
Historique:
Caches “classique” (ligne de cache)
OBL (One Block Lookahead)
SPT
Stream-buffers
Généralisation: prefetch à base de chaîne de Markov
A
A
y
z
x
B
t
C
u
D
v
9/30- Persyval HPES
Le prefetch
S. Mancini
Prefetch usuels
Historique:
Caches “classique” (ligne de cache)
OBL (One Block Lookahead)
SPT
Stream-buffers
Généralisation: prefetch à base de chaîne de Markov
A
A
@d
y
z
x
B
t
C
u
D
v
9/30- Persyval HPES
Le prefetch
S. Mancini
Prefetch usuels
Historique:
Caches “classique” (ligne de cache)
OBL (One Block Lookahead)
SPT
Stream-buffers
Généralisation: prefetch à base de chaîne de Markov
A
A
@d @i(lw,sw)
y
z
x
B
t
C
u
D
v
9/30- Persyval HPES
Le prefetch
S. Mancini
Prefetch usuels
Historique:
Caches “classique” (ligne de cache)
OBL (One Block Lookahead)
SPT
Stream-buffers
Généralisation: prefetch à base de chaîne de Markov
A
for
for
A
@d @i(lw,sw)
y
z
x
∆
@i@i
@i(lw,sw)
@d0
@d0
@d0@d1
@d1
@d1@d2
@d2
@d2@d3
@d3
@d3@d4
@d4
@d4@d5
@d5
@d5
9/30- Persyval HPES
Le prefetch
B
t
C
u
D
v
S. Mancini
Prefetch usuels
Historique:
Caches “classique” (ligne de cache)
OBL (One Block Lookahead)
SPT
Stream-buffers
Généralisation: prefetch à base de chaîne de Markov
A
for
for
A
@d @i(lw,sw)
δ
y
z
x
∆
@i@i
@i(lw,sw)
@d0
@d0
@d0@d1
@d1
@d1@d2
@d2
@d2@d3
@d3
@d3@d4
@d4
@d4@d5
@d5
@d5
9/30- Persyval HPES
Le prefetch
B
t
C
u
D
v
S. Mancini
Prefetch usuels
Historique:
Caches “classique” (ligne de cache)
OBL (One Block Lookahead)
SPT
Stream-buffers
Généralisation: prefetch à base de chaîne de Markov
A
Aucune stratégie ne surpasse SPT
for
for
A
@d @i(lw,sw)
δ
y
z
x
∆
@i@i
@i(lw,sw)
@d0
@d0
@d0@d1
@d1
@d1@d2
@d2
@d2@d3
@d3
@d3@d4
@d4
@d4@d5
@d5
@d5
9/30- Persyval HPES
Le prefetch
B
t
C
u
D
v
S. Mancini
Limitations
Les caches classiques ne sont pas adaptés au traitement
d’image car ils exploitent la localité temporelle et la localité
spatiale en adresse.
x
y
@−64
=
1 Pixel
=
1 Byte
@
Cache line
Pixels accédés
@+63
image
Les défauts de cache sont déclenchés lors d’un déplacement:
Horizontal: à la fin d’une ligne de cache
Vertical: à chaque nouvelle ligne de l’image
10/30- Persyval HPES
Le prefetch
S. Mancini
Plan
Le memory wall
Le prefetch
Le Cache nD-AP
Conclusion & perspective
11- Persyval HPES- Le CacheND-AP : pré-chargement adaptatif dans les tableaux
Positionnement
Pré-chargement dynamique
Détection de motifs répétitifs
Générique car le prefetch exploite les adresses
Implanté dans les processeurs modernes (SPT)
Techniques dérivées des méthodes “Markoviennes”
Inefficaces pour les séquences non strictement régulières en adresse
Estimation de paramètres
Prise en compte de la structure de donnée, pour une classe d’applications
Résistant aux fluctuations “système” et irrégularités des accès
Usage restreint aux applications conformes au modèle
12/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Objectifs
Une stratégie de prefetch adaptée au TDSI, et, plus largement, aux applications embarquées qui utilisent des données structurées (tableaux, arbres, multi-résolution,. . . ).
Caractéristiques souhaitées:
Exploiter la localité temporelle et la localité spatiale en index dans la structure
Proposer un mécanisme semi-général, pour une grande classe d’application
Une architecture de complexité réduite pour cible ASIC ou FPGA
Séquences d’accès ciblées:
Déterministes fonction de paramètres statiques
Déterministes dépendant de paramètres dynamiques
Dépendant des données
Idée:
Intégrer l’aspect multi-dimensionnel
Faire des prédictions à moyen terme sur un voisinage
proche (en index)
13/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Concept du CachenD
(DDR) SDRAM
Huge and slow
address
data
nD−AP Cache
Small and fast
P=(x,y)
data
Processing
Unit
14/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Modèle de séquence
70
References on axis i
60
50
40
30
A
20
10
0
−10
V
−20
0
50
100
150
200
250
300
350
400
450
Time (Cycles)
15/30- Persyval HPES
Le Cache nD-AP
S. Mancini
500
Architecture du Cache nD-AP
Bus
Système
DMA
X
tracker
Y
Data
Requête
@ wr
Contrôle
RAM
@ rd
tracker
Cache nD−AP
(x,y,...)
Data
Unité de calcul
16/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Mécanisme de prédiction et gestion mémoire
Sur chaque axe, un estimateur calcule une zone de références
prédites:
La prédiction, basée sur un modèle, tient compte du passé
et estime les tendances moyennes (filtrage)
La charge à la mémoire centrale est limitée par un mécanisme à hystérésis.
Sont estimés:
c, le centre courant de la zone
en cache
t, la taille de la zone en cache
g , la taille de la zone de garde
d, la vitesse du cache
ty
gy
11111
00000
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
gx
Zone en cache
111
000
000
111
000
111
Zone de garde
000
111
000
111
17/30- Persyval HPES
Le Cache nD-AP
tx
Mémoire cache
Centre prédit
S. Mancini
Comportement du Cache nD-AP
11111
00000
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
18/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Comportement du Cache nD-AP
â
111111
000000
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
18/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Comportement du Cache nD-AP
11111
00000
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
00000
11111
18/30- Persyval HPES
Le Cache nD-AP
â
S. Mancini
Comportement du Cache nD-AP
1111111
0000000
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
â
dx
18/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Comportement du Cache nD-AP
Common Zone
1111111
0000000
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
18/30- Persyval HPES
Le Cache nD-AP
1111111
0000000
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
0000000
1111111
â
S. Mancini
Comportement du Cache nD-AP
111111
000000
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
000000
111111
18/30- Persyval HPES
Le Cache nD-AP
111
000
000
111
000
111
000
111
000
111
000
111
000
111
000
111
000
111
000
111
000
111
000
111
000
111
000
111
S. Mancini
Modèle de performance
1.0
0.9
0.8
Efficiency
0.7
0.6
T = 19
Γ=3
∆=4
Al = 10
v = 0.1
m=1
Nr = 5.103
0.5
0.4
0.3
0.2
Latmax = 36
0.1
0
10
20
30
40
50
60
70
80
90
100
Background Memory Latency (Cycles)
Conditions: paramètres fixes, estimateur au premier ordre
19/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Plateforme d’émulation
La stratégie est validée par simulation et sur un prototype
FPGA.
Effets d’un environnement plus réaliste (latence mémoire
variable, période des références variables, etc . . . ).
DDR
SDRAM
DDR−SDRAM
Controler
Parameters
Coproc.
Interface
Master
2D−AP
CPU
Cache
PPC405
Instrumentation
PLB system bus
FPGA Xilinx
20/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Quelques résultats
1
0.8
0.6
0.4
0.2
0
1
VHDL
SystemC
EM-SE
0.8
0.6
0.4
0.2
0
0
50
100
150
Normalised Memory Latency
200
50
100
150
Normalised Memory Latency
0.4
0.2
0
100
150
Rotation - 2 lines of 32*32 tiles
200
50
100
150
Normalised Memory Latency
200
2D Ray casting, interleaved
1
VHDL
SystemC
EM-SE
0.8
0.6
0.4
0.2
0
50
0.2
0
Normalised Efficiency
Normalised Efficiency
0.6
Normalised Memory Latency
0.4
200
1
VHDL
SystemC
EM-SE
0
0.6
Rotation - 1st line of 48*48 tiles
1
0.8
VHDL
SystemC
EM-SE
0.8
0
0
Rotation - 1st line of 32*32 tiles
Normalised Efficiency
Normalised Efficiency
VHDL
SystemC
EM-SE
Normalised Efficiency
Normalised Efficiency
1
VHDL
SystemC
EM-SE
0.8
0.6
0.4
0.2
0
0
50
100
150
Normalised Memory Latency
Image rendering
200
0
50
100
150
Normalised Memory Latency
200
Lip contour finding
Les mesures sur plateforme (EM-SE) sont calibrées par rapport au mesures en simulation (VHDL & SystemC).
21/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Comparaison avec un cache standard (Ray casting 3D)
3D-AP Cache
ppc405 1x1x1
ppc405 2x2x1
ppc405 4x4x1
ppc405 8x8x1
ppc405 16x16x1
ppc405 2x2x2
ppc405 4x4x4
ppc405 8x8x8
100
Efficiency %
80
60
40
20
0
0
20
40
60
80
100
Latency (cycle)
4KB 3D-AP Cache v.s. 16KB ppc405 cache for different memory layout
22/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Précharge adaptative
Adaptation
Système
update
ε
ε
Erreur de
error
Mise à jour
des seuils
Fin de
Prédiction
ordre=1
chargement
Filtre
Demande
mise à jour
shift
Controle
Cache
centre
PE
Coordonnée
distance
a
ordre=3
Filtre
Centre
estimé
intervalle
Centre
prédit
Prédicteur
r
â
−
Adaptation
Application
23/30- Persyval HPES
Le Cache nD-AP
Fusion
Intervalle
prédit
Enveloppe (ê)
Taux de défaut
toléré
ordre=1
Filtre
psd
Détecteur d’enveloppe
Prédicteur
S. Mancini
Bus
Système
Adaptation au système
70
déplacement
Retard
Correcte
a
t maj
50
t
e
30
e+g
40
t=e+d
Références sur l’axe i
60
Avance
Evènement
Détection
Initialisation
Fin déplacement
e
e: enveloppe des accès
t: taille de la zone en cache
g: taille de la zone de garde
d: déplacement
g
g
20
d
c
c
10
â
Centre courant de la zone en cache (c)
Bord zone de garde (relatif à c)
Bord zone en cache
0
Centre prédit de la zone en cache (r)
−10
Centre estimé (filtre) â
Zone en cache commune
−20
0
50
100
150
200
250
300
350
400
450
500
Temps (Cycles)
24/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Quelques résultats
Adaptatif − séquence Rotation_1_88_rad
Paramétrage statique l=1
Paramétrage statique l=2
Paramétrage statique l=4
Paramétrage statique l=8
Paramétrage statique l=10
Paramétrage statique l=20
Paramétrage statique l=50
Paramétrage statique l=100
Paramétrage statique l=200
PPC405+SPT
Efficacité
0.8
0.6
Adaptatif − séquence ray_256_1
Paramétrage statique l=1
Paramétrage statique l=2
Paramétrage statique l=4
Paramétrage statique l=8
Paramétrage statique l=10
Paramétrage statique l=20
Paramétrage statique l=50
Paramétrage statique l=100
Paramétrage statique l=200
PPC405+SPT
1
0.8
Efficacité
1
0.4
0.6
0.4
0.2
0.2
0
0
0
50
100
150
0
200
Latence mémoire
200
Adaptatif − séquence snake_G_haut_xy_extrait
Paramétrage statique l=1
Paramétrage statique l=2
Paramétrage statique l=4
Paramétrage statique l=8
Paramétrage statique l=10
Paramétrage statique l=20
Paramétrage statique l=50
Paramétrage statique l=100
Paramétrage statique l=200
PPC405+SPT
1
0.8
Efficacité
Efficacité
0.6
150
2D Ray casting
Adaptatif − séquence liste_renoir_45_extrait
Paramétrage statique l=1
Paramétrage statique l=2
Paramétrage statique l=4
Paramétrage statique l=8
Paramétrage statique l=10
Paramétrage statique l=20
Paramétrage statique l=50
Paramétrage statique l=100
Paramétrage statique l=200
PPC405+SPT
0.8
100
Latence mémoire
Rotation - 1st line of 32*32 tiles
1
50
0.4
0.2
0.6
0.4
0.2
0
0
0
50
100
150
Latence mémoire
Image rendering (1)
200
0
50
100
150
200
Latence mémoire
Lip contour finding
Pour chaque valeur de latence, la performance de l’auto-adaptation (-) est comparée au prédicteur non-adaptatif paramétré statiquement par le résultat de l’autoparamétrage.
25/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Bilan de l’autoadaptation
Analyse:
Le réglage des prédicteur est simplifié
La fréquence de coupure devient le seul paramètre
Performance “semblable” à celle obtenue manuellement
Et même meilleure pour quelques séquences
Le coût d’une mise à jour est anisotropique
Dépend du rangement des données en mémoire!
Décrochage au-delà d’une latence seuil
L’objectif devient la minimisation du temps d’attente et non plus de pré-charger à
temps
Pistes:
Détecter le changement d’objectif
Accorder l’adaptation entre les prédicteurs de chaque
dimension
26/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Interaction avec la compilation
Utiliser le cache depuis le logiciel
API
Accéder au cache avec les indexes, par l’interface coprocesseur
De nombreux programmes “codent” la transformation des indexes en
adresses
Transformer les applications pour produire de la localité
temporelle et spatiale en indexes
Et non plus en adresse !
Prendre en compte le rangement des données
Calculer la fréquence de coupure à la compilation
Boucles à bornes statiques v.s variables
Et la compilation dynamique?
27/30- Persyval HPES
Le Cache nD-AP
S. Mancini
Plan
Le memory wall
Le prefetch
Le Cache nD-AP
Conclusion & perspective
28- Persyval HPES- Le CacheND-AP : pré-chargement adaptatif dans les tableaux
Conclusion & perspective
Nous avons:
Défini et validé une stratégie de pré-chargement pour le
traitement d’image
Réalisé des modèles de simulation et prototypes FPGA
Expérimenté l’auto-adaptation
Perspective:
Améliorer l’auto-adaptation
Concevoir des modèles de séquence plus complexes
Intégrer ce mécanisme dans une infrastructure SW
Rétro-action avec la compilation
29/30- Persyval HPES
Conclusion & perspective
S. Mancini
Persyval HPES
Le CacheND-AP : pré-chargement adaptatif dans les tableaux
S. Mancini
Plan Détaillé
Le memory wall
Motivations
Problématique du “Memory Wall”
Consommation d’énergie due aux mémoires
Comment “passer le mur” mémoire?
Une vision globale
Le prefetch
Le prefetch
Prefetch usuels
Limitations
Le Cache nD-AP
Positionnement
Objectifs
Concept du CachenD
Modèle de séquence
Architecture du Cache nD-AP
Mécanisme de prédiction et gestion mémoire
Comportement du Cache nD-AP
Modèle de performance
Plateforme d’émulation
Quelques résultats
Comparaison avec un cache standard (Ray
casting 3D)
Précharge adaptative
Adaptation au système
Quelques résultats
Bilan de l’autoadaptation
Interaction avec la compilation
Conclusion & perspective
Conclusion & perspective