• Aucun résultat trouvé

Lorsqu’un algorithme destin´e `a fonctionner sur un processeur graphique est con¸cu, les limites intrins`eques des diff´erentes cartes doivent ˆetre prises en compte. En effet, le nombre de pro- cessus l´egers par bloc, le nombre de bloc ex´ecut´es en simultan´e sur chaque multi-processeur, le nombre de registres disponibles par processus l´egers, pour ne nommer que ces caract´eristiques, d´ependent de la carte graphique utilis´ee comme en t´emoigne le tableau3.2[41]. Il est de la res- ponsabilit´e du programmeur d’optimiser ces valeurs afin d’obtenir les performances optimales de l’algorithme. Afin de faciliter cette tˆache, NVIDIA a mis au point un document permet- tant d’effectuer ce travail simplement. Sans entrer dans les d´etails, connaissant le nombre de registres utilis´es par un kernel, diff´erentes valeurs de processus l´egers par bloc sont essay´ees pour d´eterminer la taille optimale des blocs. De plus, les ´el´ements limitant l’occupation de la carte graphique sont aussi fournis. Ceci permet d’envisager une r´eorganisation du code pour augmenter l’occupation du processeur graphique en tenant compte de ces limitations.

Avec les nombreuses caract´eristiques pr´esent´ees dans ce chapitre, le calcul sur carte graphique ouvre la voie `a l’application des simulations Monte Carlo rapides en curieth´erapie. Un algo- rithme a d’ailleurs d´ej`a ´et´e d´evelopp´e et pr´esente des r´esultats encourageants dans l’optique de l’application de la m´ethode Monte Carlo en clinique.

Chapitre 4

Algorithme Monte Carlo sur

processeur graphique

Une des premi`eres utilisations des processeurs graphiques pour effectuer des simulations Monte Carlo en physique m´edicale vient de Jia et al. [47]. Ces derniers ont adapt´e un algorithme Monte Carlo d´ej`a existant d´evelopp´e par Sempau et al. [48] pour d´eterminer les gains en vitesse de calcul procur´es par l’utilisation d’une carte graphique pour effectuer les simulations. Des facteurs d’acc´el´erations de 5 `a 6.6 ont ainsi ´et´e obtenus. `A titre d’exemple, le temps de simulation d’un faisceau de 107 photons `a une ´energie de 6 MV dans un milieu compos´e d’eau et de poumon passe de 5615 s pour le code original `a 846 s pour l’adaptation sur carte graphique. Bien que la r´eduction des temps de calculs soit int´eressante, l’inconv´enient majeur du travail de Jia et al. est que l’algorithme utilis´e n’a pas ´et´e con¸cu sp´ecifiquement pour les processeurs graphiques. Il faut attendre les travaux de Hissoiny et al. [49,50] pour observer la puissance de calcul disponible dans les processeurs graphiques. Apr`es avoir pr´esent´e un algorithme de superposition-convolution montrant des acc´el´erations allant d’un facteur 29 `a 943, un algorithme Monte Carlo est d´evelopp´e pour la radioth´erapie externe, GPUMCD, pour Graphical Processing Unit Monte Carlo Dosimetry. Ce nouvel algorithme Monte Carlo montre un facteur d’acc´el´eration de 900 si on compare au code EGSnrc [51], un code d´ej`a bien ´etabli, et un facteur d’acc´el´eration de 200 lorsque compar´e au code DPM [48], un code optimis´e pour la vitesse de calcul.

Apr`es avoir consid´er´e la radioth´erapie externe, Hissoiny et al. [52] adaptent l’algorithme GPUMCD pour la curieth´erapie. Cet adaptation porte le nom de bGPUMCD, soit brachythe- rapy GPUMCD. Il s’agit de cette version du code qui sera utilis´ee subs´equemment pour simuler des distributions de dose d’implants permanents de prostate. Dans ce chapitre, l’algorithme est premi`erement d´etaill´e pour comprendre son implantation sur processeur graphique. Ceci permettra aussi de comprendre les changements apport´es et pr´esent´es au chapitre suivant. Deuxi`emement, les r´esultats d´ej`a obtenus sont pr´esent´es afin de voir tout le potentiel de cet

algorithme Monte Carlo sur carte graphique.

4.1

Structure de l’algorithme bGPUMCD

4.1.1 G´eom´etrie du milieu de simulation

Dans l’algorithme bGPUMCD, deux types de g´eom´etrie coexistent. Le premier type consiste en une grille de voxels et elle peut s’initialiser de deux fa¸cons diff´erentes. Dans un premier temps, l’utilisateur du code peut d´ecider des dimensions et du nombre de voxels. Aussi, il d´efinit la composition des voxels selon les mat´eriaux souhait´es dans la simulation. Chaque mat´eriau inclus est caract´eris´e par un indice entier, une densit´e et l’endroit dans la grille de voxels o`u il se trouve. Toutes ces donn´ees sont ´ecrites dans un fichier contenant les param`etres d’initialisation n´ecessaires au lancement de la simulation. Dans un deuxi`eme temps, la grille de voxels peut ˆetre lue directement d’un fichier de type .egsphant [53] provenant d’images d’un patient. Dans ce cas, le fichier contient directement la taille et la composition de la grille de voxels. Du point de vue de la mise en m´emoire sur la carte graphique, la grille de voxels est plac´ee dans une texture tri-dimensionnelle. Ceci permet d’utiliser le cache des textures lorsqu’une certaine localit´e dans les valeurs lues est pr´esente tel que mentionn´e dans le chapitre pr´ec´edent.

Le deuxi`eme type de g´eom´etrie pr´esent se d´efinit `a l’aide de surfaces quadratiques aussi ap- pel´ees quadriques [54]. La forme g´en´erale quadratique de cette surface s’´ecrit sous forme ma- tricielle comme : Q(x, y, z) =  x y z     A F E F D B E B C       x y z   . (4.1)

Bien que cette forme soit g´en´erale, les termes crois´es posent des difficult´es lors du transport des photons dans ce type de g´eom´etrie. C’est pourquoi il a ´et´e d´ecid´e de d´efinir seulement des surfaces quadratiques dont les axes principaux sont dans le mˆeme sens que ceux de la grille de simulation, r´esultant `a la forme plus simple :

Ax2+ By2+ Cz2− J2 = 0. (4.2) `

A partir de l’expression4.2, plusieurs surfaces comme des sph`eres, des cylindres ou des cˆones se d´efinissent. Le choix de la surface est dict´e par les param`etres A, B, C et J . Par exemple, le choix A = B = C = J = 1 d´ecrit une sph`ere de rayon unitaire centr´ee `a x = y = z = 0. Ces quadriques sont utiles lorsque vient le temps de d´efinir des g´eom´etries un peu plus complexes, en particulier les sources radioactives de curieth´erapie. En effet, les sources se d´ecrivent en g´en´eral simplement `a l’aide de sph`eres et de cylindres assembl´es de fa¸con pr´ecise. Lors de l’initialisation d’une simulation, ces surfaces sont plac´ees en m´emoire constante sur la carte graphique. ´Etant donn´ee le peu d’espace n´ecessaire pour chaque surface, ce type de m´emoire

est choisi car l’information sur les surfaces param´etriques est lue tr`es souvent pour effectuer le tracer de rayon. La m´emoire constante permet alors de mettre l’information en cache pour une lecture plus rapide.

Pendant une simulation, l’utilisateur a le choix d’utiliser seulement une grille de voxels ou un m´elange des deux types de g´eom´etries. La grille doit ˆetre pr´esente `a tout moment car c’est dans cette derni`ere qu’est d´epos´ee l’´energie lorsqu’il y a interaction d’un photon ou quand l’estimateur de parcours lin´eaire est utilis´e.

4.1.2 Transport des photons et d´epˆot de l’´energie

Selon le type de g´eom´etrie pr´esent et la mani`ere choisie pour d´eposer l’´energie pendant la simulation, la fa¸con dont sont transport´es les photons varie. Trois cas sont possibles : une g´eom´etrie vox´elis´ee seule en utilisant la m´ethode analogue pour d´eposer l’´energie, un m´elange d’une grille de voxels et de surfaces quadratiques toujours avec la m´ethode analogue et fina- lement l’utilisation de l’estimateur de parcours lin´eaire. Pour les trois options pr´esent´ees, le photon est transport´e jusqu’`a ce qu’il sorte de la grille de voxels ou que son ´energie se trouve sous une certaine limite, habituellement 1 keV.

Grille de voxels et m´ethode analogue

Un point commun `a toutes les simulations est l’utilisation de l’algorithme de Woodcock pour d´eterminer la distance parcourue par le photon avant d’interagir. `A partir du coefficient d’att´enuation lin´eaire maximal µmax(E) pr´esent dans la g´eom´etrie vox´elis´ee, la longueur de

parcours du photon est calcul´ee par

l = − ln ζ µmax(E)

(4.3)

avec ζ un nombre al´eatoire entre z´ero et un et E l’´energie du photon. Une fois cette longueur calcul´ee, le photon est transport´e sur la distance l et interagit avec le milieu selon les sections efficaces du mat´eriau dans lequel il se trouve. Advenant une interaction fictive introduite par l’utilisation de l’algorithme de Woodcock, un nouveau parcours est calcul´e dans la mˆeme direction `a l’aide de4.3 et le processus est r´ep´et´e. Si le photon interagit par effet Compton, photo´electrique ou diffusion Rayleigh, la direction et l’´energie du photon sont modifi´ees. La nouvelle ´energie E0 est inf´erieure `a l’´energie initiale s’il y a effet Compton ou photo´electrique alors que pour la diffusion Rayleigh, elle demeure la mˆeme. Apr`es interaction, comme les ´

electrons ne sont pas simul´es, la diff´erence d’´energie E − E0 est emmagasin´ee dans le voxel o`u le photon se trouve et l’´equation 4.3est `a nouveau utilis´ee.

Grille de voxels, surfaces param´etriques et m´ethode analogue

Ici aussi, la longueur de parcours du photon est calcul´ee avec l’´equation 4.3et est d´efinie par l. Cependant, l’aspect `a consid´erer est la valeur du coefficient d’att´enuation lin´eaire pr´esent

dans les surfaces quadratiques. En effet, s’il est largement sup´erieur au coefficient d’att´enuation lin´eaire moyen trouv´e dans la grille de voxels, il doit ˆetre laiss´e de cˆot´e en raison des limitations de l’algorithme de Woodcock tel que mentionn´ees dans la sous-section 2.2.3. C’est pourquoi en g´en´eral deux m´ethodes sont utilis´ees pour transporter le photon lors d’un m´elange de g´eom´etries. Dans la grille vox´elis´ee, l’algorithme de Woodcock est toujours employ´e et le photon est transport´e jusqu’`a une surface param´etrique. Au moment o`u le photon rencontre la surface, la distance `a parcourir restante, l0, est pond´er´ee selon l’att´enuation des surfaces param´etriques. Cette technique se base sur la conservation de la probabilit´e d’absence d’interaction pour un nombre de parcours moyens donn´es [55]. Cette probabilit´e s’´ecrit math´ematiquement comme : e−l0µ= e−yµ0 (4.4)

avec µ le coefficient d’att´enuation lin´eaire dans la g´eom´etrie vox´elis´ee et µ0 le coefficient d’att´enuation lin´eaire du quadrique. La quantit´e y repr´esente la longueur qui serait parcourue par le photon si l0 ´etait calcul´ee `a partir du coefficient d’att´enuation lin´eaire de la surface param´etrique et se trouve `a partir de la relation4.4:

y = l0µ

µ0. (4.5)

Dans le cas o`u y < s, avec s la distance physique `a parcourir pour traverser la surface qua- dratique, le photon ne traversera pas compl`etement la surface et interagira `a l’int´erieur de celle-ci. Dans l’autre cas, le photon passe au-travers et c’est l’algorithme de Woodcock qui reprend le contrˆole du transport avec une longueur de parcours restante ´egale `a l0 − s. Si plusieurs surfaces quadratiques se trouvent sur le chemin du photon, l’´equation4.5est utilis´ee de fa¸con successive jusqu’`a ce que le photon s’arrˆete dans une des surfaces ou qu’il les traverse compl`etement. En ce qui concerne le d´epˆot d’´energie, une technique identique `a celle de la sous-section pr´ec´edente est utilis´ee car la m´ethode analogue est employ´ee.

Utilisation de l’estimateur de parcours lin´eaire

Tel que pr´esent´e `a la section 2.2.2, l’estimateur de parcours lin´eaire permet de diminuer le nombre de photons `a simuler pour obtenir des r´esultats comparables `a la m´ethode analogue. L’utilisation de cet estimateur n´ecessite cependant de connaˆıtre la distance parcourue dans chaque voxel. Pour y arriver, la distance totale `a parcourir selon l’algorithme de Woodcock est tout d’abord calcul´ee `a l’aide de l’´equation 4.3. Ensuite, si des surfaces param´etriques se trouvent sur le chemin du photon, l’´equation 4.5 est utilis´ee afin de tenir compte de l’att´enuation plus ou moins grande des surfaces quadratiques le long du parcours du pho- ton. Une fois que la distance `a parcourir pour le photon est bien d´efinie, la m´ethode d´ecrite par Amanatides et al. [56] permet de calculer la distance dans chaque voxel. Le point de d´epart consiste `a consid´erer la nature vectorielle du d´eplacement d’un photon. Si l’impulsion normalis´ee du photon est d´efinie par ~p et que ce dernier parcourt une longueur l, la position

finale du photon dans les trois directions x, y et z s’´ecrit

xf = xi+ px· l

yf = yi+ py· l (4.6)

zf = zi+ pz· l

avec (xi, yi, zi) et (xf, yf, zf) les positions initiales et finales. La distance pour atteindre le

prochain voxel, dans la direction x par exemple, est alors d´etermin´ee de la fa¸con suivante. La composante x de l’´equation4.7peut s’´ecrire comme

xf − xi = px· l. (4.7)

La quantit´e xf− xi est connue et correspond `a la longueur entre le photon et le prochain voxel

dans une direction parall`ele `a l’axe x. La valeur de xiest la position initiale et comme la grille de voxels est initialis´ee par l’utilisateur, la valeur de xf est d´etermin´ee selon le voxel dans lequel le

photon se trouve et la direction de son impulsion. `A partir de la valeur de xf− xi, une distance dxest calcul´ee `a l’aide de l’impulsion px du photon. Ce processus est r´ep´et´e pour les directions

y, z et il en r´esulte trois diff´erentes distances dx, dy et dz. La distance au prochain voxel est

alors la valeur minimale des trois distances trouv´ees, soit dvoxel= min (dx, dy, dz). Une fois la

distance au prochain voxel ´evalu´ee, la valeur du coefficient d’att´enuation massique en ´energie pour le mat´eriau du voxel et l’´energie du photon est lu dans la m´emoire du programme pour calculer la quantit´e d´efinie par l’´equation2.3, soit

LT E = Eγ·µen/ρ· dvoxel

V .

Le photon est ensuite avanc´e d’une longueur dvoxel et les mˆemes ´etapes sont r´ep´et´ees jusqu’`a

ce que le photon ait parcouru toute la distance d´etermin´ee au d´epart.

4.1.3 G´en´erateur de nombres al´eatoires et interactions physiques

L’adaptation `a la curieth´erapie bGPUMCD utilise le mˆeme g´en´erateur de nombres al´eatoires que GPUMCD [50]. Bien qu’un g´en´erateur soit d´ej`a disponible sur la plate-forme CUDA, il utilise beaucoup de ressources de la carte. Un aspect important de ce nouveau g´en´erateur de nombres al´eatoires est qu’il s’initialise ind´ependemment pour chaque processus l´eger lanc´e sur la carte. Comme chaque processsu l´eger correspond `a un photon simul´e, ceci signifie que le nombre de donn´ees n´ecessaires au g´en´erateur de nombres al´eatoires et emmagasin´e dans la m´emoire de la carte graphique est directement proportionnel au nombre de processus l´eger lanc´es. Il est donc important de ne pas trop simuler de photons simultan´ement sinon la m´emoire disponible sur la carte graphique risque d’ˆetre satur´ee rapidement. Le g´en´erateur d´evelopp´e est bas´e sur le travail de Marsaglia et al. [57] et r´eussit avec succ`es tous les tests sauf un de la classe TESTU01 [50, 25]. Sans entrer dans les d´etails, le test qui ´echoue concerne l’uniformit´e du g´en´erateur de nombre al´eatoire [58]. De plus, toujours selon [58], il est impensable de concevoir

un g´en´erateur de nombres al´eatoires qui satisfait tous les tests ´etant donn´e le nombre presque infini pouvant ˆetre con¸cu. `A l’oppos´e, rien ne garantit avec certitude qu’un g´en´erateur passant avec succ`es une batterie de tests sera totalement fiable pour toutes les situations rencontr´ees. Un mauvais g´en´erateur de nombres al´eatoires sera alors identifi´e lorsque ce dernier ´echoue des tests simples. Il est important que ce g´en´erateur soit ad´equat car il est l’´el´ement de base des simulations Monte Carlo.

Dans la version originale de l’algorithme bGPUMCD, deux interactions physiques ´etaient impl´ement´ees, soit l’effet Compton et l’effet photo´electrique. En ce qui concerne l’effet Comp- ton, l’´electron avec lequel interagit le photon est consid´er´e comme libre. La cin´ematique r´esultante du photon est bas´ee sur le travail de Everett et al. [59]. Pour l’effet photo´electrique, l’´energie du photon est compl`etement absorb´ee sauf lorsque l’interaction survient dans le ti- tane composant la capsule d’une source radioactive. Dans ce cas, il y a ´emission d’un photon de fluorescence avec une ´energie de 4.5 keV. Pour ce qui est des ´electrons lib´er´es lors des deux interactions, l’approximation de la dose par le Kerma collisionnel est utilis´ee telle que d´ecrite dans la section2.2.1, ce qui fait en sorte qu’ils ne sont pas simul´es.

4.1.4 Sections efficaces et coefficients d’absorption massique en ´energie

Les sections efficaces pour les diff´erentes interactions et les coefficients d’absorption massique en ´energie proviennent des donn´ees du NIST [28, 31]. Dans l’algorithme, ces donn´ees sont mises en m´emoire dans des textures en une dimension. Comme les photons ne sont plus simul´es lorsque leur ´energie descend sous 1 keV, les sections efficaces et les coefficients d’absorption massique en ´energie en m´emoire couvrent une gamme d’´energie allant de 1 keV jusqu’`a 20 MeV `

a chaque pas de 100 eV, ce qui fait 199990 valeurs pour chaque mat´eriau dans la simulations. Comme les donn´ees du NIST ne sont pas fournies `a chaque incr´ement de 100 eV, une interpo- lation lin´eaire est utilis´ee pour combler les valeurs manquantes. Dans la version originale du code, cette interpolation ne tient pas compte de l’augmentation soudaine de la section efficace de l’effet photo´electrique pour des photons dont l’´energie est autour de celle de l’´energie de liaison de la couche K de l’atome consid´er´e.

Documents relatifs