Projet TOMOX Accélération de la reconstruction tomographique sur processeurs graphiques (GPUs) Nicolas GAC, MCF Université Paris Sud, L2S (GPI) Ali Mohammad-Djafari, Asier Rabanal, Alexandre Vabre, Fanny Buyens, Samuel Legoupil Ecole ”Problemes inverses”, Porquerolles, 3 Mai 2010 Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs 1 Reconstruction CT avec segmentation Projet TOMOX Algorithme bayésien itératif du L2S/CEA 2 Architecture des processeurs graphiques GPU : Graphic Processing Unit Découpage en threads Programmation GPU 3 Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction 4 Perspectives Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA Projet TOMOX : Algorithmes innovants pour la reconstruction en nano-tomographie X ? IMAGEUR 3D HAUTE RESOLUTION Objet à imager 1 ACQUISITION − Plateforme de microtomographie X haute résolution CEA−List 2 RECONSTRUCTION − Algorithme innovant (brevet) − Accélération sur processeurs graphiques L2S/Supelec/CNRS/UPS Structure interne de l’objet Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA Projet TOMOX : Algorithmes innovants pour la reconstruction en nano-tomographie X ? 1 phi IMAGEUR 3D HAUTE RESOLUTION Objet à imager 1 ACQUISITION − Plateforme de microtomographie X haute résolution Projections Tomographe CEA−List phi 2 RECONSTRUCTION − Algorithme innovant (brevet) − Accélération sur processeurs graphiques L2S/Supelec/CNRS/UPS Structure interne de l’objet Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA Projet TOMOX : Algorithmes innovants pour la reconstruction en nano-tomographie X ? 1 phi IMAGEUR 3D HAUTE RESOLUTION Objet à imager 1 ACQUISITION − Plateforme de microtomographie X haute résolution Projections Tomographe CEA−List 2 phi 2 RECONSTRUCTION GPU − Algorithme innovant (brevet) − Accélération sur processeurs graphiques L2S/Supelec/CNRS/UPS Structure interne de l’objet Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA Projet TOMOX : Algorithmes innovants pour la reconstruction en nano-tomographie X ? 1 phi IMAGEUR 3D HAUTE RESOLUTION Objet à imager 1 ACQUISITION − Plateforme de microtomographie X haute résolution Tomographe APPLICATIONS − Controle non destructif (réacteurs, pipelines, pièces industrielles...) − Imagerie medicale − Transport − Agro−alimentaire − Micro−électronique (controle qualité) Projections CEA−List 2 phi 2 RECONSTRUCTION GPU − Algorithme innovant (brevet) − Accélération sur processeurs graphiques L2S/Supelec/CNRS/UPS Structure interne de l’objet Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA SANS régularisation bayésienne fn H g = Hf + ĝ = Hf n g δg = g − ĝ Descente de gradient Ht −> N iterations H t δg f n+1 f : volume g : données du tomographe H : modèle d’acquisition : bruit Descente de gradient J(f ) = ||g − Hf ||2 f n+1 = f n − α · ∇J(f n ) ∇J(f ) = −2 · H t (g − Hf ) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA SANS régularisation bayésienne fn H g = Hf + ĝ = Hf n g δg = g − ĝ Descente de gradient Ht −> N iterations δf = H t δg f n+1 f : volume g : données du tomographe H : modèle d’acquisition : bruit f n : Estimée du volume Descente de gradient J(f ) = ||g − Hf ||2 f n+1 = f n − α · ∇J(f n ) ∇J(f ) = −2 · H t (g − Hf ) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA SANS régularisation bayésienne fn H g = Hf + ĝ = Hf n g δg = g − ĝ Descente de gradient Ht −> N iterations δf = H t δg f n+1 f : volume g : données du tomographe H : modèle d’acquisition : bruit ĝ : Estimée des données Descente de gradient J(f ) = ||g − Hf ||2 f n+1 = f n − α · ∇J(f n ) ∇J(f ) = −2 · H t (g − Hf ) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA SANS régularisation bayésienne fn H g = Hf + ĝ = Hf n g δg = g − ĝ Descente de gradient Ht −> N iterations δf = H t δg f n+1 f : volume g : données du tomographe H : modèle d’acquisition : bruit δg : Correction des données Descente de gradient J(f ) = ||g − Hf ||2 f n+1 = f n − α · ∇J(f n ) ∇J(f ) = −2 · H t (g − Hf ) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA SANS régularisation bayésienne fn H g = Hf + ĝ = Hf n g δg = g − ĝ Descente de gradient Ht −> N iterations δf = H t δg f n+1 f : volume g : données du tomographe H : modèle d’acquisition : bruit δf : Correction du volume Descente de gradient J(f ) = ||g − Hf ||2 f n+1 = f n − α · ∇J(f n ) ∇J(f ) = −2 · H t (g − Hf ) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA SANS régularisation bayésienne fn H g = Hf + ĝ = Hf n g δg = g − ĝ Descente de gradient Ht −> N iterations δf = H t δg f n+1 f : volume g : données du tomographe H : modèle d’acquisition : bruit f n+1 : Nouvelle estimée du volume Descente de gradient J(f ) = ||g − Hf ||2 f n+1 = f n − α · ∇J(f n ) ∇J(f ) = −2 · H t (g − Hf ) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA AVEC régularisation bayésienne fn H ĝ = Hf n g = Hf + g δg = g − ĝ Descente de gradient Ht −> N iterations δf = H t δg f n+1 f : volume g : données du tomographe H : modèle d’acquisition : bruit Modèle a priori : f = ∪k fk Segmentation z z = 0 : air z = 1 : eau z = 2 : metal fk = {r : z(r ) = k} f (r )|z(r ) = k ∼ N (mk , σk2 ) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA AVEC régularisation bayésienne z θ f H ĝ = Hf n g λ∇J2 δg = g − ĝ H t δ1 f = H t δg f δ2 f = λ∇J2 (f n ) n+1 g = Hf + f : volume g : données du tomographe H : modèle d’acquisition : bruit n Descente de gradient avec régularisation −> N iterations Modèle a priori : f = ∪k fk fk = {r : z(r ) = k} f (r )|z(r ) = k ∼ N (mk , σk2 ) Descente de gradient régularisée Segmentation z z = 0 : air z = 1 : eau z = 2 : metal J(f ) = J1 (f ) + J2 (f ) 2 J1 (f ) = ||g − Hf P|| P P ¯ ¯ 0 J2 (f |z, θ) = λ k r ∈Rk r 0 ∈V(r ) φ(f (r ) − f (r )) f (r ) − mk f¯(r ) = σk f n+1 = f n − α1 · ∇J1 (f n ) − α2 · ∇J2 (f n |z, θ) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA AVEC régularisation bayésienne fi zi θi g = Hf + f : volume g : données du tomographe H : modèle d’acquisition : bruit n f H ĝ = Hf n g λ∇J2 δg = g − ĝ H t δ1 f = H t δg Descente de gradient δ2 f = λ∇J2 (f n ) avec régularisation −> N iterations f n+1 f i+1 zi θi Segmentation −> M iterations θi Segmentation z z = 0 : air z = 1 : eau z = 2 : metal z i+1 Calcul des hyperparametres θi+1 Modèle a priori : f = ∪k fk Reconstruction −> I iterations fk = {r : z(r ) = k} f (r )|z(r ) = k ∼ N (mk , σk2 ) Descente de gradient régularisée J(f ) = J1 (f ) + J2 (f ) 2 J1 (f ) = ||g − Hf P|| P P ¯ ¯ 0 J2 (f |z, θ) = λ k r ∈Rk r 0 ∈V(r ) φ(f (r ) − f (r )) f (r ) − mk f¯(r ) = σk f n+1 = f n − α1 · ∇J1 (f n ) − α2 · ∇J2 (f n |z, θ) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA Calcul de Hf et H t δg : choix de la méthode ¶ Calcul matriciel ò lecture des coefficients hij dans la mémoire SDRAM volume 20483 − > matrice H = 1 To ! Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Projet TOMOX Algorithme bayésien itératif du L2S/CEA Calcul de Hf et H t δg : choix de la méthode ¶ Calcul matriciel ò lecture des coefficients hij dans la mémoire SDRAM volume 20483 − > matrice H = 1 To ! · Opérateurs géométriques ò calcul en ligne des coefficients hij Paire de projection/rétroprojection en tomographie à émission (géométrie parallèle) u u détecteurs du tomographe phi phi Objet imagé projection Objet reconstruit rétroprojection Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs GPU : Graphic Processing Unit Découpage en threads Programmation GPU 1 Reconstruction CT avec segmentation 2 Architecture des processeurs graphiques GPU : Graphic Processing Unit Découpage en threads Programmation GPU 3 Reconstruction tomographique sur GPUs 4 Perspectives Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs GPU : Graphic Processing Unit Découpage en threads Programmation GPU GPU : Graphic Processing Unit Evolution vers une architecture many core 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) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Puissance de calcul GPU : Graphic Processing Unit Découpage en threads Programmation GPU Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs GPU : Graphic Processing Unit Découpage en threads Programmation GPU Avec CUDA ,: plein de threads ! CUDA : Common Unified Device Architecture Vertex shader + Fragment shader = Streams Processors (SPs) ò Le GPU devient un processeur “many cores” Jusqu’à 240 Stream Processors (Chip GT200 - Juin 2008) 30 coeurs SIMT (Single instructions Multiple Threads) 8 SPs (Stream Processors) par coeur SIMT 3 flop (MADD + MUL) par SP ò soit ∼ 1 Teraflops pour la carte Geforce GTX 285 (SP @1,5 GhZ) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs GT200 utilisé en mode CUDA GPU : Graphic Processing Unit Découpage en threads Programmation GPU Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs GPU : Graphic Processing Unit Découpage en threads Programmation GPU Coeur SIMT : Single Instruction Multiple Instruction Hardware 8 unités scalaires (Stream Processors) 2 Specific Processor Units (SFUs) : cos(), sin(), exp()... 16 Ko de registres (2 Ko par SP) 16 ko de mémoire locale (shared memory) Accès rapide aux textures : cache 2D + Texture Filtering (TF) 3 coeurs SIMT Ordonnancement des threads Execution par groupes de 32 threads appelés warps Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs GPU : Graphic Processing Unit Découpage en threads Programmation GPU Découpage en threads Matériel un Stream Processor (SP) Logiciel un thread Exécution séquentielle (a) un coeur SIMT un bloc de threads (plusieurs warps) parallèle (SIMT) (b) une carte GPU (device) une grille de threads (kernel) parallèle (MIMD) mémoire centralisée (c) Mémoire Mémoire Mémoire Mémoire globale Mémoire Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs GPU : Graphic Processing Unit Découpage en threads Programmation GPU Un id par thread et un id par bloc de threads Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Hiérarchie mémoire GPU : Graphic Processing Unit Découpage en threads Programmation GPU Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs PC hote et carte graphique GPU : Graphic Processing Unit Découpage en threads Programmation GPU Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs GPU : Graphic Processing Unit Découpage en threads Programmation GPU Supercalculateur personnel SP 1 SP 2 SP 3 SP 4 SP 5 SP 6 SP 7 SP 8 Memoire Shared (16 Ko) Carte graphique 1 Carte graphique 4 Cache 2D (8 Ko) SIMT bus GPU SIMT 1 (100 Go/s) SIMT n SIMT n SIMT 1 Memoire globale Memoire globale (4 Go) (4 Go) bus PCI Express (1 Go/s) Chipset bus externe (100 Mo/s) bus memoire (10 Go/s) CPU Disque dur Coeur 1 Coeur 2 Memoire cache (10 Mo) Coeur 3 Coeur 4 Memoire SDRAM (32 Go) − rapide (300 Go) − lent (1 To) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs GPU : Graphic Processing Unit Découpage en threads Programmation GPU Flot de développement logiciel Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs GPU : Graphic Processing Unit Découpage en threads Programmation GPU Programmation GPU ¶ Parallélisation de l’algorithme ò nourrir en threads (plus ou moins indépendants) le GPU taux de parallélisation 100 % 99 % 95 % 90 % accélération GTX 200 (240 coeurs) 80 24 6 3 300 code parallèle à 100% code parallèle à 99% code parallèle à 95% code parallèle à 90% 250 Accélération n coeurs (1 Ghz) vs 1 coeur (3 Ghz) 200 150 100 50 0 0 100 200 300 400 Nombres de coeurs 500 Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs GPU : Graphic Processing Unit Découpage en threads Programmation GPU Programmation GPU ¶ Parallélisation de l’algorithme ò nourrir en threads (plus ou moins indépendants) le GPU · Implémentation GPU Selon l’intensité arithmétique du code (puissance de calcul exploitée / débit des données), l’execution sera soit memory bound soit computation bound (ex : calcul X k [?]) ò optimisation du code portera alors soit sur les accès mémoire ou soit sur la complexité arithmétique Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction 1 Reconstruction CT avec segmentation 2 Architecture des processeurs graphiques 3 Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction 4 Perspectives Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Rétroprojection 2D : algorithme CALCUL DES COORDONNEES Detecteurs u y g (φ, u) φ x Source Volume for (xn, yn) in Volume do for phi = 0 to phimax − 1 do // Calcul des coordonnées u(phi, xn, yn) = ... // Accumulation f ∗ (xn, yn)+ = g (u, φ) end for end for Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Rétroprojection 2D : interpolation linéaire CALCUL DES COORDONNEES Detecteurs u ue +1 u(x) ue y g (φ, u) u Source φ x Source Volume for (xn, yn) in Volume do for phi = 0 to phimax − 1 do // Calcul des coordonnées u(phi, xn, yn) = ... // Interpolation linéaire ginterp = (1 − u ) · g (phi, ue ) + u · g (phi, ue + 1) // Accumulation f ∗ (xn, yn)+ = ginterp end for end for Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Rétroprojection 2D : accès aux données dispersés CALCUL DES COORDONNEES Detecteurs u ue +1 u(x) ue y g (φ, u) u Source φ x Source Volume ACCES AUX DONNEES g (φ, u) φ u Données 2D dans l’espace (φ,u) for (xn, yn) in Volume do for phi = 0 to phimax − 1 do // Calcul des coordonnées u(phi, xn, yn) = ... // Interpolation linéaire ginterp = (1 − u ) · g (phi, ue ) + u · g (phi, ue + 1) // Accumulation f ∗ (xn, yn)+ = ginterp end for end for Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Rétroprojection 2D : accès aux données dispersés CALCUL DES COORDONNEES Detecteurs u ue +1 u(x) ue y g (φ, u) u Source φ x Source Volume ACCES AUX DONNEES g (φ, u) φ u Données 2D dans l’espace (φ,u) @= u + phi ∗ Wu Données 1D dans la mémoire for (xn, yn) in Volume do for phi = 0 to phimax − 1 do // Calcul des coordonnées u(phi, xn, yn) = ... // Interpolation linéaire ginterp = (1 − u ) · g (phi, ue ) + u · g (phi, ue + 1) // Accumulation f ∗ (xn, yn)+ = ginterp end for end for Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Rétroprojection 2D : accès aux données dispersés CALCUL DES COORDONNEES Detecteurs u ue +1 u(x) ue y g (φ, u) u Source φ x Source Volume ACCES AUX DONNEES g (φ, u) φ u Données 2D dans l’espace (φ,u) @= u + phi ∗ Wu Données 1D dans la mémoire for (xn, yn) in Volume do for phi = 0 to phimax − 1 do // Calcul des coordonnées u(phi, xn, yn) = ... // Interpolation linéaire ginterp = (1 − u ) · g (phi, ue ) + u · g (phi, ue + 1) // Accumulation f ∗ (xn, yn)+ = ginterp end for end for Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Rétroprojection 2D par bloc : accès aux données localisés CALCUL DES COORDONNEES Detecteurs u ue +1 u(x) ue y g (φ, u) u Source φ x Source Volume ACCES AUX DONNEES g (φ, u) φ u Données 2D dans l’espace (φ,u) @= u + phi ∗ Wu Données 1D dans la mémoire for (Bx, By) in Volume do for phi = 0 to phimax − 1 do for (xn, yn) in Bloc do // Calcul des coordonnées u(phi, xn, yn) = ... // Interpolation linéaire ginterp = (1 − u ) · g (phi, ue ) + u · g (phi, ue + 1) // Accumulation f ∗ (xn, yn)+ = ginterp end for end for end for Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Découpage en threads de la rétroprojection 3D z (a) Calcul séquentiel sur un PE Boucle sur z 3 1 3 Boucle sur φ 4 2 4 (b) Calcul parallèle sur un proc. SIMT 2 1 y Boucle sur (x,y) x 4 3 1 2 (c) Calcul parallèle sur une carte Boucle sur les blocs (Bx,By,Bz) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Découpage en threads de la rétroprojection 3D z (a) Calcul séquentiel sur un PE Boucle sur z 3 1 3 Boucle sur φ 4 2 4 (b) Calcul parallèle sur un proc. SIMT 2 1 y Boucle sur (x,y) x 4 3 1 2 (c) Calcul parallèle sur une carte Boucle sur les blocs (Bx,By,Bz) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Découpage en threads de la rétroprojection 3D z (a) Calcul séquentiel sur un PE Boucle sur z 3 1 3 Boucle sur φ 4 2 4 (b) Calcul parallèle sur un proc. SIMT 2 1 y Boucle sur (x,y) x 4 3 1 2 (c) Calcul parallèle sur une carte Boucle sur les blocs (Bx,By,Bz) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Découpage en threads de la rétroprojection 3D z (a) Calcul séquentiel sur un PE Boucle sur z 3 1 3 Boucle sur φ 4 2 4 (b) Calcul parallèle sur un proc. SIMT 2 1 y Boucle sur (x,y) x 4 3 1 2 (c) Calcul parallèle sur une carte Boucle sur les blocs (Bx,By,Bz) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Découpage en threads et en grilles de la rétroprojection 3D (a) Calcul séquentiel sur un PE Boucle sur z Boucle sur φ 3 1 3 (b) Calcul parallèle sur un proc. SIMT 4 2 4 x 2 1 4 3 1 Boucle sur (x,y) (c) Calcul parallèle sur une carte 2 Boucle sur les blocs (Bx,By,Bz) (d) Calcul parallèle sur PC multi-cartes Boucle sur les grilles (Gx,Gy) Boucle sur la grille Gφ Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Assèchement de mousses de nickel (données CEA-LIST) (a) FDK (b) itératif simple régularisé (c) Gauss/Markov (d) segmentation Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Temps de reconstruction mono-GPU Reconstruction sur une GTX 295 (240 SPs @1.2 Ghz) volume de 2643 voxels (champs de vue cylindrique) 64 projections de 2562 pixels Rétroprojecteur Projecteur Temps 195 ms (*370 / CPU) 505 ms (*320 / CPU) Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Retroprojection sur GPU Volumes et temps de reconstruction Temps de reconstruction multi-GPUs Reconstruction sur des Tesla S1070 (serveurs 4 et 8 GPUs) volume de 10243 voxels (champs de vue cylindrique) 512 projections de 1024 ∗ 1280 pixels Rétroprojecteur Projecteur GPUs 2 4 8 2 4 8 Temps 85 s 44 s 26 s 251 s 133 s 73 s Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Travaux en cours ¶ Algorithme bayésien avec segmentation (Gauss/Markov/Potts) Validation de la méthode sur données réelles (CEA) Accélération des étapes annexes de calcul sur GPU (convolution 3D, échantillonnage de Potts) · Parallélisation sur machine 8 GPUs de Carri system Optimisation des transferts mémoire PC hôte - carte graphique ¸ Cohérence paire projection/rétroprojection Etude de la convergence de l’algorithme itératif pour plusieurs projecteurs couplés avec un rétroprojecteur voxel driven Reconstruction CT avec segmentation Architecture des processeurs graphiques Reconstruction tomographique sur GPUs Merci de votre attention !