• Aucun résultat trouvé

Les trois principes qui ont guid´e la conception de l’architecture 3P (architecture en

Pipeline, Pr´echargement m´emoire et Parall´elisation), ont pour objectif de tirer profit au

maximum des ressources mat´erielles des cartes de type SoPC. Dans ce chapitre, nous

pr´esentons les performances atteintes par notre architecture 3P pour la r´etroprojection

TEP 3D. Apr`es une description de l’impl´ementation sur une plateforme SoPC, nous

pr´esenterons et analyserons la qualit´e de reconstruction, le comportement du cache

3D-AP et l’efficacit´e de reconstruction.

1 Impl´ementation sur une plateforme SoPC

Nous d´ecrivons ici tout d’abord la plateforme SoPC utilis´ee avec les modules annexes

autour de l’architecture 3P, puis l’occupation des ressources mat´erielles des Virtex par

notre architecture 3P.

1.1 Plateforme SoPC utilis´ee

L’architecture 3P a ´et´e impl´ement´ee sur une plateforme SoPC disposant d’une

in-terface PCI avec une station PC hˆote afin de permettre les ´echanges de donn´ees avec le

syst`eme sur la carte (voir figure 4.1). Cette derni`ere contient entre autres : un Virtex 2

Pro de Xilinx (VP30), deux m´emoires externes (une SDRAM de 32 Mo et une SRAM de

2 Mo) et un bridge PCI, r´ealis´e sur un FPGA Spartan. La transmission de donn´ees entre

le PC et la carte via la m´emoire SRAM a n´ecessit´e la mise en place d’un syst`eme de

syn-chronisation. Le SoPC (Virtex 2 Pro VP30) est constitu´e d’un processeur PPC et d’une

matrice FPGA avec plus de 30 000 portes logiques ´equivalentes. Le processeur PPC est

en charge de la synchronisation des calculs et des communications avec l’architecture 3P

impl´ement´ee sur la matrice FPGA.

En plus des ´el´ements incontournables de l’architecture d’un syst`eme (bus PLB et

OPB, contrˆoleurs m´emoire...), est impl´ement´e sur la matrice FPGA un module d’´echange

de donn´ees entre l’architecture 3P et le processeur PPC. C’est via ce module que les

param`etres de configuration de l’architecture 3P (taille du bloc, param`etres du cache,

Rétro PPC DOCM BRAM SDRAM Ctl SRAM Ctl InteruptCtl UART Pont PCI SDRAM SRAM Switch IOCM PCI Rétro 3D

Carte de developpement Avnet

3D Cache 3D−AP 3D−AP 3D−AP Cache Cache PLB 3D Rétro OPB PLB 64 32 32 32 Virtex II Pro Cache 3D−AP

Fig. 4.1 – Carte de d´eveloppement Avnet

constantes de calcul...), les valeurs des voxels reconstruits et les signaux de

synchroni-sation entre le PPC et l’architecture 3P sont ´echang´es. Par ailleurs, une interface PLB

entre l’architecture 3P et le bus PLB permet au cache d’acc´eder directement et

efficace-ment `a la m´emoire externe. Au sein de cette interface, une hi´erarchisation des donn´ees

est faite en lignes, plans et pages m´emoire en phase avec le fonctionnement propre du

cache 3D-AP.

1.2 Ressources mat´erielles utilis´ees

Les ressources mat´erielles utilis´ees par l’architecture 3P pour une taille de bloc de

16

2

·3 voxels sont pr´esent´ees dans le tableau 4.1. L’architecture permet une fr´equence

de fonctionnement de 35 MHz sur un Virtex 2 Pro. Le contrˆole de la r´etroprojection et

le contrˆole du cache racine ´etant partag´es entre lesnunit´es de l’architecture 3P, le coˆut

additionnel d’une unit´e est de seulement 800 slices et de 12 multiplieurs. Les tailles des

caches m´emoire feuille et racine sont respectivement de 2 Ko et 18 Ko. Ainsi jusqu’`a 9

unit´es de r´etroprojection peuvent ˆetre mise sur un virtex 2 Pro VP30. Aux slices utilis´es

pour la r´etroprojection 3D et le cache 3D-AP, il faut ajouter ceux de l’interface PLB

(environ 10%pour 9 unit´es) et du syst`eme autour (bus m´emoire, contrˆoleur m´emoire...).

Un Virtex 4 (V4FX60 ou V4FX100) permettrait de mettre jusqu’`a 13 unit´es. Dans

ce cas c’est le nombre de multiplieurs qui limite le nombre d’unit´es et non le nombre de

slices comme pour le Virtex 2 Pro. Dans la suite, nous avons utilis´e 1, 4 (2·2·1blocs de

voxels) ou 8 unit´es (2·2·2blocs de voxels). Nous avons pr´ef´er´e reconstruire des macros

blocs constitu´es de 2·2·2 blocs plutˆot que de3·3·1 blocs afin d’avoir une hauteur

de macro-bloc plus importante. Cela permet tout d’abord de b´en´eficier d’un plus grand

taux de r´eutilisation ´etant donn´e le plan suppl´ementaire que n´ecessite l’interpolation

lin´eaire selon la dimension λ (voir chapitre 3). Par ailleurs une hauteur de macro-bloc

2. QUALIT ´E DE RECONSTRUCTION 149

importante implique une taille de cache plus importante selon la dimension axiale λ. Or

le cache est plus difficile `a param´etrer lorsqu’une dimension de la zone de cache est tr`es

petite (inf´erieure `a 3).

1 unit´e 4 unit´es 9 unit´es

R´etroprojection 3D

slices CLB 573 1817 3924

(4.2%) (13.3%) (28.6%)

Multiplieurs 12 48 108

(9%) (35%) (79%)

Cache 3D-AP

slices CLB 672 2830 4804

(4.9%) (20.6%) (35.1%)

RAMs 2 Ko 24 Ko 36 Ko

(0.6%) (7.8%) (11.7%)

R´etroprojection 3D + Cache 3D-AP

slices CLB 1245 4637 8728

(9.1%) (32.9%) (63.7%)

Tab. 4.1 – Ressources mat´erielles utilis´ees par l’architecture 3P de r´etroprojection 3D

pour une fr´equence de fonctionnement de 35 Mhz. Entre parenth`eses est indiqu´e le

pourcentage d’occupation des ressources du Virtex 2 Pro VP30

2 Qualit´e de reconstruction

L’architecture 3PA-PET correspond `a une version en arithm´etique `a virgule fixe

de l’algorithme de r´etroprojection Voxel driven avec Interpolation Bilin´eaire (VIB). De

plus, les donn´ees du sinogramme et du volume sont cod´ees en entier sur respectivement

16 bits et 32 bits, alors que ces donn´ees sont `a l’origine des r´eels en virgule flottante

(le sinogramme apr`es filtrage ne correspond plus au simple comptage d’´ev´enements sur

chaque paire de d´etecteurs).

Afin d’´evaluer la qualit´e de reconstruction de notre impl´ementation mat´erielle sur

FPGA de la r´etroprojection 3D, nous avons utilis´e une version logicielle “bit-true” de

notre architecture, qui effectue au bit pr`es les mˆemes op´erations en virgule fixe que

l’architecture 3PA-PET. Nous pr´esentons tout d’abord les donn´ees et crit`eres utilis´es

puis nous comparons cette r´etroprojection en virgule fixe avec la r´etroprojection en

virgule flottante.

2.1 Donn´ees utilis´ees

Les donn´ees utilis´ees proviennent du logiciel de reconstruction STIR d´evelopp´e par

[Thielemans 06] dans la suite du projet PARAPET

1

. STIR est un logiciel Open Source

multiplateforme permettant la reconstruction 2D et 3D `a l’aide d’algorithmes

analy-tiques (r´etroprojection filtr´ee) et it´eratifs (ML-EM). Il est utilis´e pour la recherche mais

´egalement en clinique. Nous avons tout d’abord g´en´er´e des volumes num´eriques, appel´es

phantoms, `a l’aide de STIR comme par exemple le phantom de la figure 4.2, ou bien `a

l’aide de Matlab comme le phantom Shepp Logan de la figure 4.3. Nous avons ensuite

simul´e l’acquisition des donn´ees en utilisant le projecteur de STIR. Enfin, nous avons

effectu´e la correction d’arc, les filtrages (filtre rampe en 2D et de Colsher en 3D) et la

compl´etion des sinogrammes pour l’algorithme 3D-RP (estimation du volume par

r´etro-projection 2D puis r´etro-projection du volume en utilisant des anneaux virtuels du scanner).

Ces corrections ont ´et´e effectu´ees `a l’aide d’ex´ecutables cr´e´es `a partir du code C++ de

STIR .

Les jeux de donn´ees utilis´es (volume 3D et sinogramme 4D) ainsi g´en´er´es

corres-pondent `a l’acquisition d’un scanner HR+ (32 anneaux avec un span de 9 soit 5

seg-ments). Le volume a une taille de 128

2

·63. Pour l’algorithme 3D-RP, les 5 segments

sont constitu´es de sinogrammes 2D correspondant d’une part au processus

d’acquisi-tion et d’autre part `a la compl´etion des donn´ees. Le sinogramme 4D poss`ede ainsi 65

sinogrammes 2D (63 acquis + 2 compl´et´es) pour le segment 0, 77 sinogrammes 2D (53

acquis + 24 compl´et´es) pour les segments +1 et -1, et 91 sinogrammes 2D (35 acquis +

56 compl´et´es) pour les segments +2 et -2. Les sinogrammes 2D sont de taille269·96ce

qui correspond `a 96 angles de projection et 269 bins par angleφ (288 avant correction

d’arc). Le nombre d’angles de projection qui est de 144 pour le format standard a du

ˆetre r´eduit `a 96 afin de pouvoir stocker le sinogramme dans les 32 Mo de la SDRAM de

la carte de d´eveloppement Avnet.

Par ailleurs, afin de pouvoir effectuer en un temps acceptable une reconstruction 3D

`

a l’aide du simulateur VHDL de Modelsim, nous avons ´egalement g´en´er´e avec STIR un

jeux de donn´ees de taille r´eduite (quelques Ko). Ces mini volumes ont pour taille9

2

·17

ou16

2

·17. De plus, un format de scanner sur mesure a ´et´e d´efini `a l’aide de STIR. Le

mini-scanner ainsi d´efini, poss`ede 9 anneaux, 5 segments et 18 angles de projection.

1

Le projet PARAPET ´etait un projet Europ´een dont l’objectif ´etait d’am´eliorer les techniques de

reconstruction volumique en tomographie par ´emission de positons (TEP), notamment en d´eveloppant

les approches it´eratives impl´ement´ees sur des architectures parall`eles. STIR est bas´e sur les biblioth`eques

logicielles PARAPET d´evelopp´e dans le cadre du projet PARAPET.