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