Adéquation Algorithme Architecture pour la

publicité
Adéquation Algorithme Architecture pour la
reconstruction 3D en imagerie médicale TEP
Thèse de l’INP Grenoble préparée au laboratoire Gipsa-lab
sous la direction de Michel DESVIGNES et de Stéphane MANCINI
Nicolas GAC
Séminaire CEA - 6 novembre 2008
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
1
Accélération de la reconstruction 3D en imagerie médicale TEP
Imagerie médicale TEP
Accélération matérielle
2
Adéquation Algorithme Architecture
Stratégie d’accès mémoire
Architecture 3P : Pipelinée, Préfetchée et Parallélisée
3
Performances de l’architecture 3P
Protocole de mesure
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
4
Vers une reconstruction de meilleure qualité
5
Conclusion et Perspectives + Projet TOMOX
2/55
2/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
1
Accélération de la reconstruction 3D en imagerie médicale TEP
Imagerie médicale TEP
Accélération matérielle
2
Adéquation Algorithme Architecture
3
Performances de l’architecture 3P
4
Vers une reconstruction de meilleure qualité
5
Conclusion et Perspectives + Projet TOMOX
3/55
3/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
Projet ArchiTEP
Tomographie à Emission de Positons (TEP)
Imagerie fonctionnelle in vivo
Temps de reconstruction importants
γ
511 Kev
γ
511 Kev
1 Injection du traceur 2 Acquisition
3 Enregistrement des données
(Sinogrammes)
5
Visualisation
4 Reconstruction
4/55
4/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
¶ Injection du traceur
Détecteurs du
scanner
Champ de vue
Volume
5/55
5/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
· Détections des paires de photons émis
Détecteurs du
scanner
LORs
Champ de vue
Volume
6/55
6/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
¸ Stockage des données dans un sinogramme
rho
Bins du
sinogramme
phi
Champ de vue
Volume
phi
Sinogramme
rho
7/55
7/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
¸ Stockage des données dans un sinogramme
rho
Bins du
sinogramme
phi
Champ de vue
Volume
phi
Sinogramme
rho
7/55
7/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
¸ Stockage des données dans un sinogramme
rho
Bins du
sinogramme
phi
Champ de vue
Volume
phi
Sinogramme
rho
7/55
7/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
¸ Stockage des données dans un sinogramme
rho
Bins du
sinogramme
phi
Champ de vue
Volume
phi
Sinogramme
rho
7/55
7/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
¹ Reconstruction du volume : rétroprojection 2D
rho
Bins du
sinogramme
Sommation des bins :
X
f ∗ (xn, yn) =
bin[phi, rho(phi)]
phi
phi
Calcul des coordonnées :
rho = xn · cos(φ) − yn · sin(φ)
= rhoe + ρ
Champs de vue
Interpolation linéaire :
bin = (1 − ρ ) · bin(phi, rhoe )
+
ρ · bin(phi, rhoe + 1)
8/55
8/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
Acquisition 2D/3D
ESPACE IMAGE
SINOGRAMME
(angle transverse)
phi
z
lambda
(couple d’anneaux)
4
Segment intra−anneaux
3
2
rho
(position tangentielle)
1
y
x
0
−1
9/55
9/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
Acquisition 2D/3D
y
SINOGRAMME
ESPACE IMAGE
z
x
(angle transverse)
phi
z
4
lambda
(couple d’anneaux)
Delta=0
Segment intra−anneaux
3
rho
(position tangentielle)
2
1
y
phi
x
lambda
0
−1
Delta#0
Segment inter−anneaux
Delta
rho
(inclinaison des LORS)
Acquisition 3D ò Meilleure qualité de reconstruction
9/55
9/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
Méthodes itératives
Meilleure qualité de reconstruction
Temps de reconstruction plus important
Estimation de l’Image
Sinogramme estimé
Projection
Sinogramme
Mesuré
Mise à jour
Erreur dans l’espace
image
Espace Image
Comparaison
Rétroprojection
Erreur dans l’espace
de Projection
Espace de projection
10/55
10/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
Méthodes itératives
Meilleure qualité de reconstruction
Temps de reconstruction plus important
Estimation de l’Image
Sinogramme estimé
Projection
Sinogramme
Mesuré
Mise à jour
Erreur dans l’espace
image
Espace Image
Comparaison
Rétroprojection
Erreur dans l’espace
de Projection
Espace de projection
10/55
10/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
Méthodes itératives
Meilleure qualité de reconstruction
Temps de reconstruction plus important
Estimation de l’Image
Sinogramme estimé
Projection
Sinogramme
Mesuré
Mise à jour
Erreur dans l’espace
image
Espace Image
Comparaison
Rétroprojection
Erreur dans l’espace
de Projection
Espace de projection
10/55
10/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
Méthodes itératives
Meilleure qualité de reconstruction
Temps de reconstruction plus important
Estimation de l’Image
Sinogramme estimé
Projection
Sinogramme
Mesuré
Mise à jour
Erreur dans l’espace
image
Espace Image
Comparaison
Rétroprojection
Erreur dans l’espace
de Projection
Espace de projection
10/55
10/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
Méthodes itératives
Meilleure qualité de reconstruction
Temps de reconstruction plus important
Estimation de l’Image
Sinogramme estimé
Projection
Sinogramme
Mesuré
Mise à jour
Erreur dans l’espace
image
Espace Image
Comparaison
Rétroprojection
Erreur dans l’espace
de Projection
Espace de projection
10/55
10/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
Méthodes itératives
Meilleure qualité de reconstruction
Temps de reconstruction plus important
Estimation de l’Image
Sinogramme estimé
Projection
Sinogramme
Mesuré
Mise à jour
Erreur dans l’espace
image
Espace Image
Comparaison
Rétroprojection
Erreur dans l’espace
de Projection
Espace de projection
10/55
10/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
Nécessité d’accélérer la reconstruction
Un problème de plus en plus complexe
Amélioration de la résolution spatiale des scanners
ò Volume de ' 106 voxels
ò Sinogramme de ' 500 · 106 bins pour le scanner HRRT
ò ' 1 000 mises à jour par voxel
Utilisation de méthodes itératives
ò 30 à 40 itérations nécéssaires en EM
Reconstruction 4D en TEP dynamique
ò 30/60 frames à reconstruire
Temps de reconstruction insuffisant sur PCs
16 heures de calcul en OSEM sur un scanner HRRT
Retard technologique de 10/15 ans par rapport aux scanners
11/55
11/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
Accélération matérielle
¶ Parallélisation sur machines multi-processeurs
Efficace sur machine à mémoire distribuée
Inefficace sur machine à mémoire centralisée
ò L’accès à la mémoire est un goulot d’étranglement
· Noeuds de calcul performants
Multi-Processor System on Chip (MPSoC) (Cell, GP-GPU)
System on Programmable Chip (SoPC)
ò Nécessité d’une stratégie efficace d’accès mémoire
12/55
12/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Imagerie médicale TEP
Accélération matérielle
Accélération matérielle
¶ Parallélisation sur machines multi-processeurs
Efficace sur machine à mémoire distribuée
Inefficace sur machine à mémoire centralisée
ò L’accès à la mémoire est un goulot d’étranglement
· Noeuds de calcul performants
Multi-Processor System on Chip (MPSoC) (Cell, GP-GPU)
System on Programmable Chip (SoPC)
ò Nécessité d’une stratégie efficace d’accès mémoire
12/55
12/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
1
Accélération de la reconstruction 3D en imagerie médicale TEP
2
Adéquation Algorithme Architecture
Stratégie d’accès mémoire
Architecture 3P : Pipelinée, Préfetchée et Parallélisée
3
Performances de l’architecture 3P
4
Vers une reconstruction de meilleure qualité
5
Conclusion et Perspectives + Projet TOMOX
13/55
13/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Algorithme de rétroprojection 3D
for (xn, yn, zn) in volume do
for delta = 0 to deltamax − 1 do
for phi = 0 to phimax − 1 do
// CALCUL DES COORDONNEES
rho(phi) = xn · cos φ + yn · sin φ
lambda(phi, delta) = ...
// INTERPOLATION BI-LINEAIRE
bininterp = C00 · bin00 + C01 · bin01 ...
// ACCUMULATION
f ∗ (xn, yn, zn) = f ∗ (xn, yn, zn) + bininterp · J∆
end for
end for
end for
14/55
14/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Algorithme de rétroprojection 3D
for (xn, yn, zn) in volume do
for delta = 0 to deltamax − 1 do
for phi = 0 to phimax − 1 do
// CALCUL DES COORDONNEES
rho(phi) = xn · cos φ + yn · sin φ
lambda(phi, delta) = ...
// INTERPOLATION BI-LINEAIRE
bininterp = C00 · bin00 + C01 · bin01 ...
// ACCUMULATION
f ∗ (xn, yn, zn) = f ∗ (xn, yn, zn) + bininterp · J∆
end for
end for
end for
14/55
14/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Algorithme de rétroprojection 3D
for (xn, yn, zn) in volume do
for delta = 0 to deltamax − 1 do
for phi = 0 to phimax − 1 do
// CALCUL DES COORDONNEES
rho(phi) = xn · cos φ + yn · sin φ
lambda(phi, delta) = ...
// INTERPOLATION BI-LINEAIRE
bininterp = C00 · bin00 + C01 · bin01 ...
// ACCUMULATION
f ∗ (xn, yn, zn) = f ∗ (xn, yn, zn) + bininterp · J∆
end for
end for
end for
14/55
14/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Algorithme de rétroprojection 3D
for (xn, yn, zn) in volume do
for delta = 0 to deltamax − 1 do
for phi = 0 to phimax − 1 do
// CALCUL DES COORDONNEES
rho(phi) = xn · cos φ + yn · sin φ
lambda(phi, delta) = ...
// INTERPOLATION BI-LINEAIRE
bininterp = C00 · bin00 + C01 · bin01 ...
// ACCUMULATION
f ∗ (xn, yn, zn) = f ∗ (xn, yn, zn) + bininterp · J∆
end for
end for
end for
14/55
14/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Algorithme de rétroprojection 3D
Séquence de calcul
Boucles imbriqués sans dépendance de données
ò Algorithme massivement parallèle
Séquence simple de calcul pour la mise à jour d’un voxel
ò Architecture en pipeline
Accès mémoire
Sinogramme de taille importante (10 Mo à 1 Go)
ò Stockage du sinogramme en SDRAM
Accès à 4 bins par mise à jour de voxel
ò Nécessité de masquer le temps d’accès en SDRAM
15/55
15/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Stratégie d’accès mémoire
¶ Réutilisation des données
Algorithme ò localité temporelle
· Mécanisme de préchargement mémoire
“ad hoc” (double buffering )
ò Ressources de calcul supplémentaires
ò Mécanisme de prédiction figé
Algorithme ò localité spatio-temporelle
générique
Architecture ò cache mémoire “intelligent”
16/55
16/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Taux de réutilisation des données
ESPACE IMAGE
SINOGRAMME
z
lambda
phi
y
x
rho
rho
17/55
17/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Taux de réutilisation des données
ESPACE IMAGE
SINOGRAMME
z
lambda
phi
y
x
rho
rho
17/55
17/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Taux de réutilisation des données
ESPACE IMAGE
SINOGRAMME
z
lambda
phi
y
x
rho
rho
17/55
17/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Reconstruction par blocs de voxels
for Bloc in Volume do
for delta = 0 to deltamax − 1 do
for phi = 0 to phimax − 1 do
for (xn, yn, zn) in Bloc do
// CALCUL DES COORDONNEES
rho(phi) = xn · cos φ + yn · sin φ
lambda(phi, delta) = ...
// INTERPOLATION BILINEAIRE
bininterp = C00 · bin00 + C01 · bin01 ...
// ACCUMULATION
f ∗ (xn, yn, zn) = f ∗ (xn, yn, zn) + bininterp · J∆
end for
end for
end for
end for
18/55
18/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Reconstruction par blocs de voxels
for Bloc in Volume do
for delta = 0 to deltamax − 1 do
for phi = 0 to phimax − 1 do
for (xn, yn, zn) in Bloc do
// CALCUL DES COORDONNEES
rho(phi) = xn · cos φ + yn · sin φ
lambda(phi, delta) = ...
// INTERPOLATION BILINEAIRE
bininterp = C00 · bin00 + C01 · bin01 ...
// ACCUMULATION
f ∗ (xn, yn, zn) = f ∗ (xn, yn, zn) + bininterp · J∆
end for
end for
end for
end for
18/55
18/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Estimation du taux de réutilisation des données
Taux de réutilisation
25
segment 0
segment 1
segment 2
Moyenne
20
15
10
5
0
0
200
400
600
800
1000
Taille du bloc (nombre de voxels)
Bloc de 162 · 3 : ' 9 sans interpolation bilinéaire (' 36 avec)
19/55
19/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Mécanisme de préchargement mémoire
ESPACE IMAGE
SINOGRAMME
lambda
z
phi
rho
y
x
Stockage en SDRAM
@=rho+phi*RHO_MAX+z*RHO_MAX*PHI_MAX
20/55
20/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Mécanisme de préchargement mémoire
ESPACE IMAGE
SINOGRAMME
lambda
z
phi
rho
y
x
Stockage en SDRAM
@=rho+phi*RHO_MAX+z*RHO_MAX*PHI_MAX
ò Sauts dans l’espace mémoire non constant
20/55
20/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Mécanisme de préchargement mémoire
ò Parcours mémoire en sinusoı̈de 3D dans un segment
PHI (ANGLE TRANSVERSE)
DATE D’ACCES
LA
MB
DA
(CO
UP
LE
D’A
NN
EA
UX
)
RHO
NT
SITIO
LLE)
ENTIE
ANG
(PO
21/55
21/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Suivi de la sinusoı̈de 3D par un cache 3D-AP
SoPC : System on Programmable Chip
3D−AP
Cache
COORDONNEES
3DRP
DONNEES
SRAM
(10−100 Ko)
SDRAM
ADRESSE
(128 Mo−1 Go)
Latence
DONNEES
30 ns
Latence
1 cycle
PHI (ANGLE TRANSVERSE)
DATE D’ACCES
LA
MB
DA
(CO
UP
L
ED
’AN
ION T
NE
AU
X) RH
SIT
O (PO
ENTIE
ANG
LLE)
22/55
22/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Prédiction par analyse statistique
phi
Coordonnées des accès mémoire
précédents


phi(n)
−→
bin(n) =  rho(n) 
lambda(n)
lambda
rho
zone en cache
zone de garde
Calcul de la moyenne des coordonnées
Filtre IIR de premier ordre
memoire cache
centre du cache
23/55
23/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Suivi de la sinusoı̈de 3D
Mise à jour du cache
200
requetes au cache
moyenne estimee
centre du cache
zone en cache
zone de garde
180
Moyenne estimée
rho
rho
160
140
Requetes au cache
Moyenne estimée
Centre du cache
120
Zone en cache
Zone de garde
100
Mise à jour effective du cache
80
0
10000
20000
30000
40000
50000
60000
70000
Dépassement de la zone de garde
sequence d’acces
memoire mémoire
séquence
d’accès
24/55
24/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Suivi de la sinusoı̈de 3D
Traitement des défauts
200
requetes au cache
moyenne estimee
centre du cache
zone en cache
zone de garde
180
rho
rho
160
140
Requetes au cache
Moyenne estimée
Centre du cache
120
Défauts de cache
Zone en cache
Zone de garde
100
80
0
10000
20000
30000
40000
50000
60000
70000
sequence d’acces
memoire mémoire
séquence
d’accès
24/55
24/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Pipeline de rétroprojection 3D + Cache 3D-AP
Objectif : 1 cycle par mise à jour de voxel
Flot de controle
Flot de données
Coordonees
Bin
Voxel reconstruit
FSM
(x,y,z)
(n,phi)
stop
phi
CALCUL DES
COORDONNEES
BUS MEMOIRE
(rho,phi,lambda)
(n,phi)
COS
cos(phi) RAM
FIFO pleine
FIFO
défaut
INTERFACE
MEMOIRE
INTERPOLATION
3D−AP
CACHE
bin(phi,x,y,z)
(n,phi)
ACCUMULATION
n
RAM DES
f(x,y,z)
VOXELS
25/55
25/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Parallélisation
Données communes entre blocs adjacents
ò non réutilisées avec une architecture parallèle simple
BUS MEMOIRE
z
y
x
CACHES
3D−BP
FSM
111111111
000000000
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
3D−BP
Unité 1
111111111
000000000
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
3D−BP
Unité 2
111111111
000000000
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
3D−BP
Unité 3
1111111111
0000000000
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
3D−BP
Unité 4
26/55
26/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Algorithme de rétroprojection 3D
Stratégie d’accès mémoire
Pipeline + Cache 3D-AP
Parallélisation
Parallélisation
Données communes entre blocs adjacents
ò réutilisées grace à une hiérarchie mémoire
BUS MEMOIRE
z
CACHE RACINE
1111111111111111
0000000000000000
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
y
x
CACHES FEUILLES
3D−BP
FSM
111111111
000000000
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
3D−BP
Unité 1
111111111
000000000
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
3D−BP
Unité 2
111111111
000000000
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
3D−BP
Unité 3
1111111111
0000000000
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
3D−BP
Unité 4
26/55
26/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
1
Accélération de la reconstruction 3D en imagerie médicale TEP
2
Adéquation Algorithme Architecture
3
Performances de l’architecture 3P
Protocole de mesure
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
4
Vers une reconstruction de meilleure qualité
5
Conclusion et Perspectives + Projet TOMOX
27/55
27/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Protocole de mesure
Etude en simulation
Premiers “calibrages” du cache
Impossibilité de traiter des données de taille “réelle”
Prototypage de l’architecture 3P
Implémentation sur un SoPC
Simulateur du bus mémoire
ò Paramétrage de la latence et du débit mémoire
Données utilisées
Sinogrammes correspondant au scanner HR+ de Siemens
Précorrections sur STIR (filtrage, correction en arc ...)
28/55
28/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Mesures effectués sur la carte
¶ Comportement du cache 3D-AP
ηdefaut : taux de défaut de cache
ηcache : taux de réutilisation des données mises en cache
· Efficacité de reconstruction
Nombre de cycles d’horloge par mise à jour de voxels
¸ Qualité de reconstruction
EAMr : Erreur Absolue Moyenne relative
29/55
29/55
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Plateforme SoPC utilisée pour le prototypage
Carte de developpement Avnet
PCI
SDRAM
Pont
PCI
32
PLB
SRAM
32
Ctl
Interupt
Ctl
SRAM
Ctl
SDRAM
BRAM
OPB
PLB
32
64
UART
IOCM
PPC
Cache
3D−AP
Virtex II Pro
Switch
DOCM
Cache
3D−AP
Rétro 3D
Cache
3D−AP
Cache
3D−AP
Rétro
3D
Rétro
3D
30/55
30/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Ressources matérielles utilisées sur un Virtex 2 Pro
Rétro 3D
Cache 3D-AP
Rétro 3D +
Cache 3D-AP
slices CLB
Multiplieurs
slices CLB
RAMs
slices CLB
1 unité
573
12
672
2 Ko
1 245
(9.1%)
4 unités
1 817
48
2 830
24 Ko
4 637
(32.9%)
9 unités
3 924
108
4 804
36 Ko
8 728
(63.7%)
Xilinx 2VP30 (13 696 slices, 136 multiplieurs, 306 Ko RAMs)
31/55
31/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Ressources matérielles utilisées sur un Virtex 2 Pro
Rétro 3D
Cache 3D-AP
Rétro 3D +
Cache 3D-AP
slices CLB
Multiplieurs
slices CLB
RAMs
slices CLB
1 unité
573
12
672
2 Ko
1 245
(9.1%)
4 unités
1 817
48
2 830
24 Ko
4 637
(32.9%)
9 unités
3 924
108
4 804
36 Ko
8 728
(63.7%)
Xilinx 2VP30 (13 696 slices, 136 multiplieurs, 306 Ko RAMs)
13 unités sur un Virtex 4 FX60
ò limitation dûe au nombre de multiplieurs
31/55
31/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Comportement du cache 3D-AP
Le cache suit correctement la sinusoı̈de 3D
ηdefaut ' 0.1 % pour un cache non hiérarchique
ηdefaut ' 0.2 % pour un cache hiérachique avec 8 unités
Difficulté à suivre “au plus près” une courbe 3D
ηcache feuille ' 10 (' 36 idéalement)
Hiérarchie mémoire utile à partir de 8 unités
ηcache racine ' 1.1 pour 4 unités (' 3.5 idéalement)
ηcache racine ' 1.7 pour 8 unités (' 5 idéalement)
32/55
32/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Cycles/op en fonction des segments reconstruits
1.4
segment −2
segment −1
segment 0
segment +1
segment +2
Efficacité optimale
1.35
Efficacité de reconstruction (cycles/Op)
1.3
L’architecture 3P est efficace
1.05 cycles/op
(latence de 30 ns @200 Mhz)
1.25
1.2
1.15
Légère sensibilité
à la latence mémoire
1.1
1.05
à la courbure 3D de la sinusoı̈de
ò Mise à jour du cache plus long
ò Les défauts bloquent le pipeline
1
0.95
0.9
0
5
10
15
20
25
Latence mémoire (cycles)
30
33/55
33/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Cycles/op en fonction du débit mémoire
2.2
d_mem = 8 octets/cycle
d_mem = 4 octets/cycle
d_mem = 2 octets/cycle
d_mem = 1 octet/cycle
d_mem = 0.5 octet/cycle
d_mem = 0.25 octet/cycle
Efficacité optimale
Efficacité de reconstruction (cycles/Op)
2
1.8
Robustesse face à la dégradation du
débit mémoire
Seulement 25 % moins efficace
avec un débit 32 fois moins
important
1.6
1.4
1.2
1
0.8
0
5
10
15
20
25
Latence mémoire (cycles)
30
34/55
34/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Cycles/op/unité pour 1, 4 et 8 unités
Efficacité de reconstruction par Unité de Traitement (Cycles/Op/UT)
3.5
1 pipeline
4 pipelines
8 pipelines
Efficacité optimale
Facteurs d’accélération
3.2 pour 4 unités
3
2.5
4.5 pour 8 unités
2
Conflits d’accès au cache racine
1111111111111111
0000000000000000
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
0000000000000000
1111111111111111
1.5
1
111111111
000000000
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
111111111
000000000
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
111111111
000000000
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
000000000
111111111
1111111111
0000000000
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
0000000000
1111111111
ò Duplication de la
mémoire racine
ò Désynchronisation
des calculs
0.5
0
5
10
15
20
25
Latence mémoire (cycles)
30
35/55
35/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
(a) STIR
Intensité du volume
Volume Shepp Logan reconstruit en logiciel (“bit true”)
Original
STIR
3PA−PET
Abscisse x
(b) 3PA-PET
Comparaison des profils (a) et (b)
Reconstruction de qualité satisfaisante (EAMr ' 1 %)
36/55
36/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Volumes reconstruits sur la carte
original
logiciel (virgule fixe)
carte (1 unité)
carte (8 unités)
37/55
37/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Implémentation sur CPUs
Caractéristiques du Pentium 4 et du bi-Xeon dual core
Puissance de calcul : 3.2 GFlops (P4), 12 GFlops (bi-Xeon)
Caches set associatifs (L1 : 16/32 Ko, L2 : 2 Mo)
Optimisations sur CPU
Introduction localité spatiale et temporelle
ò accélération d’un facteur 3
Réduction du nombre d’opérations par mutualisation des
calculs
ò accélération d’un facteur 7
Parallélisation avec la librairie pthread sur 4 coeurs (bi-Xeon)
38/55
38/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
GPU : Graphic Processing Unit
Evolution vers une architecture MPSOC
A l’origine, architecture dédiée pour le rendu de volume
ò Pipeline graphique (prog. en OpenGL/Cg)
Depuis 2006, architecture adaptée à la parallélisation de divers
calculs scientifiques
ò CUDA : Common Unified Device Architecure (prog. en C)
39/55
39/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Puissance de calcul
40/55
40/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Débit mémoire
41/55
41/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Architecture des GPUs de Nvidia
42/55
42/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Découpage en threads
Matériel
un Processeur Elémentaire (PE)
Logiciel
Exécution
un thread
séquentielle
un processeur multi−threads
un bloc de threads
parallèle (SIMT)
une carte GPU (device)
une grille de threads
(kernel)
parallèle (MIMD)
Mémoire
Mémoire
Mémoire
Mémoire
43/55
43/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Parallélisation de la rétroprojection
z
Calcul parallèle sur le device
Boucle sur les blocs de voxels
3
1
3
4
Calcul parallèle sur un proc. SIMT
2
4
Boucle sur (x,y)
2
1
y
x
4
3
1
Calcul séquentiel sur un PE
Boucle sur z
Boucle sur φ
2
44/55
44/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Parallélisation de la rétroprojection
z
Calcul parallèle sur le device
Boucle sur les blocs de voxels
3
1
3
4
Calcul parallèle sur un proc. SIMT
2
4
Boucle sur (x,y)
2
1
y
x
4
3
1
Calcul séquentiel sur un PE
Boucle sur z
Boucle sur φ
2
44/55
44/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Parallélisation de la rétroprojection
z
Calcul parallèle sur le device
Boucle sur les blocs de voxels
3
1
3
4
Calcul parallèle sur un proc. SIMT
2
4
Boucle sur (x,y)
2
1
y
x
4
3
1
Calcul séquentiel sur un PE
Boucle sur z
Boucle sur φ
2
44/55
44/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Parallélisation de la rétroprojection
z
Calcul parallèle sur le device
Boucle sur les blocs de voxels
3
1
3
4
Calcul parallèle sur un proc. SIMT
2
4
Boucle sur (x,y)
2
1
y
x
4
3
1
Calcul séquentiel sur un PE
Boucle sur z
Boucle sur φ
2
44/55
44/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Device : thread de rétroprojection de Nz voxels
void Recon2D (float *volume, ... ) {
// On obtient le numero du bloc
int i Bloc = blockIdx.x;
int j Bloc = blockIdx.y;
// On positionne le bloc dans l’espace 3D
xn0 = i bloc * blockDim.x;
yn0 = j bloc * blockDim.y;
// On identifie les coordonnées transverses des voxels reconstruits
int xn = xn0 + threadIdx.x;
int yn = yn0 + threadIdx.y;
// Boucle sur z
for z = 0 to zmax − 1 do
float sum voxel=0;
// Boucle sur psi pour la reconstruction d’un voxel
for psi = 0 to psimax − 1 do
rho xy = xn*tab cos[psi] + yn*tab sin[psi]
rho = rho xy + rho 0
sum voxel += tex2D(tex0,rho,psi+z*Nφ )
end for
volume[N x*(yn)+(xn)] += sum voxel
end for
}
45/55
45/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Host : Allocation Mémoire
// Allocation du volume sur la mémoire device
float *volume3D device;
CUDA SAFE CALL(CudaMalloc((void)**&volume3D device,vol size));
// Format des valeurs R,G,B,α du channel du sinogramme
cudaChannelFormatDesc channelDesc = cudaCreateChannelDesc(32, 0, 0, 0,
cudaChannelFormatKindFloat);
// Allocation des N z sinogrammes 2D sur la mémoire device dans un array sino3D
cudaArray* sino3D device;
CUDA SAFE CALL( cudaMallocArray( &sino3D device, &channelDesc, N ρ, N φ *
N z ));
// Copie du sino3D de la mémoire host vers la mémoire device
CUDA SAFE CALL( cudaMemcpyToArray( sino3D device, 0, 0, sino3D host, N ρ *
N φ * N z* sizeof(float), cudaMemcpyHostToDevice));
// Parametres de la texture 2D
tex0.addressMode[0] = cudaAddressModeWrap;
tex0.addressMode[1] = cudaAddressModeWrap;
tex0.filterMode = cudaFilterModeLinear;
tex0.normalized = false;
// Binding de l’array sino3D avec la texture 2D
CUDA SAFE CALL(cudaBindTextureToArray(tex0, sino3D device, channelDesc));
46/55
46/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Host : Découpage et Execution des threads
// Un Bloc de threads correspond à un bloc de (Bxy,Bxy,1) voxels
dim3 dimBlock(Bxy, Bxy, 1);
// La grille de Blocs correspond au découpage d’une coupe 2D du volume en
(Nb bloc x,Nb bloc y) blocs de Voxels
dim3 dimGrid(Nb bloc x, Nb bloc y, 1);
// Lancement des threads sur le device
Recon2D<<< dimGrid, dimBlock, 0 >>>(volume3D device, ... )
// Copie du volume reconstruit sur la mémoire host
CUDA SAFE CALL( cudaMemcpy(sino3D host, sino3D device, vol size,
cudaMemcpyDeviceToHost));
.
47/55
47/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Optimisations sur GPU
Parallélisation conservant la localité spatio-temporelle
Reconstruction par blocs de voxels
Reconstruction “en parallèle” des voxels adjacents dans
chaque bloc de voxels
Réduction du nombre d’opérations par mutualisation des calculs
ò Accélération d’un facteur 2
48/55
48/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Temps de Reconstruction sur CPU/GPU/FPGA
Hardware
CPU
GPU
FPGA
ASIC
Pentium 4
(3.2 Ghz, 6.4 Go/s)
bi-Xeon dual core
(3 Ghz, 10.6 Go/s)
GTS8800
(1.2 Ghz, 64 Go/s)
Virtex 4
(200 Mhz, 0,8 Go/s)
5*3PA-PET
(1.2 Ghz, 24 Go/s)
Nb Unités de
Traitement
1
Temps
4
294 ms
7,12
1,78
96
50 ms
12.9
0.135
8
526 ms
1,7
0,21
40
27 ms
2.62
0,065
2.5 s
Cycles/Op
/UT total
16
16
49/55
49/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Protocole de mesure
Comportement du cache 3D-AP
Qualité et efficacité de reconstruction
Etude comparative sur CPU/GPU/FPGA
Temps de Reconstruction sur CPU/GPU/FPGA
Hardware
CPU
GPU
FPGA
ASIC
Pentium 4
(3.2 Ghz, 6.4 Go/s)
bi-Xeon dual core
(3 Ghz, 10.6 Go/s)
GTS8800
(1.2 Ghz, 64 Go/s)
Virtex 4
(200 Mhz, 0,8 Go/s)
5*3PA-PET
(1.2 Ghz, 24 Go/s)
Nb Unités de
Traitement
1
Temps
4
294 ms
7,12
1,78
96
50 ms
12.9
0.135
8
526 ms
1,7
0,21
40
27 ms
2.62
0,065
2.5 s
Cycles/Op
/UT total
16
16
49/55
49/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Paire matérielle de projection/rétroprojection
Qualité et efficacité de reconstruction
1
Accélération de la reconstruction 3D en imagerie médicale TEP
2
Adéquation Algorithme Architecture
3
Performances de l’architecture 3P
4
Vers une reconstruction de meilleure qualité
5
Conclusion et Perspectives + Projet TOMOX
50/55
50/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Paire matérielle de projection/rétroprojection
Qualité et efficacité de reconstruction
Algorithme 3D-RP et 3D-EM
Algorithme 3D-RP
Algorithme analytique
Etape de projection utilisée afin d’utiliser les segments
inter-anneaux
Algorithme 3D-EM
Algorithme itératif bayesien
Etape de projection fait partie intégrante du processus itératif
Paire matérielle de projection/rétroprojection
Rétroprojecteur “voxel-driven” avec interpolation bi-linéaire
Projecteur par lancer de rayon [Mancini07]
51/55
51/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Paire matérielle de projection/rétroprojection
Qualité et efficacité de reconstruction
Qualité de reconstruction
Reconstruction des volumes PET-SORTEO [Reilhac05]
STIR
(3D-RP)
ArchiTEP
(3D-RP)
STIR
(3D-EM)
ArchiTEP
(3D-EM)
Quantification de l’écart de reconstruction avec STIR
' 1% pour l’algorithme 3D-RP
' 3% pour l’algorithme 3D-EM
52/55
52/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Paire matérielle de projection/rétroprojection
Qualité et efficacité de reconstruction
Efficacité de reconstruction
Virtex 4 (200 Mhz) vs Pentium 4 (3.2 Ghz)
3D-RP
3D-EM
Accélération
par rapport à STIR
Proj. Rétro. Total
6
17.5
7.5
3
12
3.5
Gain en efficacité
par rapport à STIR
Proj. Rétro. Total
95
300
120
50
200
60
53/55
53/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Conclusion thèse
Perspectives thèse
Projet Digiteo TOMOX
1
Accélération de la reconstruction 3D en imagerie médicale TEP
2
Adéquation Algorithme Architecture
3
Performances de l’architecture 3P
4
Vers une reconstruction de meilleure qualité
5
Conclusion et Perspectives + Projet TOMOX
54/55
54/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Conclusion thèse
Perspectives thèse
Projet Digiteo TOMOX
Conclusion
Démarche d’Adéquation Algorithme Architecture
Lever du verrou technologique constitué par le “mur mémoire”
ò Parcours mémoire en sinusoı̈de 3D + Cache 3D-AP
Généricité de la stratégie mémoire adoptée
Accélération de la rétroprojection 3D sur CPU/GPU/FPGA
Fort impact fort de la localité spatio-temporelle
GPU plus rapide mais architecture 3P plus efficace
Vers une reconstruction de meilleure qualité
ò algorithmes 3D-RP et 3D-EM
55/55
55/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Conclusion thèse
Perspectives thèse
Projet Digiteo TOMOX
Perspectives
Amélioration de la parallélisation des calculs
Parallélisation sur une puce SoC
Parallélisation sur carte multi SoPCs
ò carte du projet ArchiTEP : 1+6 Virtex 4
Accélérations Algorithmiques
OSEM, sous échantillonage, méthodes “divide and conquer”
Tomographie CT
Rétroprojection à faisceaux coniques
56/55
56/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Conclusion thèse
Perspectives thèse
Projet Digiteo TOMOX
Projet Digiteo TOMOX
New algorithms for efficient 3D CT image reconstruction
Ali Mohammad Djafari
Alexandre Vabre, Fanny Buyens
Eric Tordjeman (Marketing)
Nicolas Gac (Post doc)
57/55
57/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Conclusion thèse
Perspectives thèse
Projet Digiteo TOMOX
Vitesse d’acquisition // Vitesse de reconstruction
10000
Nombre de slice/s (pour 512 matrices de projection 512*512)
Scanners CT
Temps de reconstruction mesurés
Extrapolation à partir du temps de [Exxim07]
Evolution des CPUs (*2/2 ans)
Evolution des GPUs (*2.2/an)
1000
Toshiba Prototype
256 slices/(~0.33s)
64 slices/0.33s
100
2 Cells ([Scherl07])
8 FPGAs ([Heigl07])
1 GPU ([Xu07])
16 slices/0.42s
1 Cell ([Scherl07])
16 CPUs
4 ASICs ([Terarecon])
8 CPUs
10
1 FPGA en simulation ([Li04])
1 FPGA ([Goddard02])
1 ASIC ([Terarecon])
1 CPU [Exxim07]
1
2002
2004
2006
2008
Année de production
2010
2012
58/55
58/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Conclusion thèse
Perspectives thèse
Projet Digiteo TOMOX
Choix algorithmiques et architecturaux
Choix du matériel
ò Carte graphique de Nvidia (GPU)
Originalité de la démarche
ò Approche bayésienne de l’algorithme itératif d’Ali Djafari
(thèse de Sofia Fekih-Salem)
59/55
59/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Conclusion thèse
Perspectives thèse
Projet Digiteo TOMOX
Etapes du projet
¶ Paire projection/rétroprojection (4 mois)
Rétroprojection : probleme bien connu
Projection : moins évident
· Chaine complète de reconstruction (4 mois)
Algorithme itératif bayésien de Ali (thèse de Sofia
FEKIH-SALEM)
(Echantillonage de Potts sur GPU ?)
¸ Parallélisation sur deux cartes GPU
¹ Traitement de données réelles
Deuxième carte au CEA en projet (horizon Mai/Juin)
60/55
60/55
Accélération de la reconstruction 3D
Adéquation Algorithme Architecture
Performances de l’architecture 3P
Vers une reconstruction de meilleure qualité
Conclusion thèse
Perspectives thèse
Projet Digiteo TOMOX
Merci de votre attention !
61/55
61/55
Téléchargement