• Aucun résultat trouvé

Extension et validation de bGPUMCD, un algorithme de calcul de dose Monte Carlo pour la curiethérapie implémenté sur processeur graphique

N/A
N/A
Protected

Academic year: 2021

Partager "Extension et validation de bGPUMCD, un algorithme de calcul de dose Monte Carlo pour la curiethérapie implémenté sur processeur graphique"

Copied!
63
0
0

Texte intégral

(1)

Extension et validation de bGPUMCD, un algorithme de

calcul de dose Monte Carlo pour la curiethérapie

implémenté sur processeur graphique

Mémoire

Charles Joachim Paquet

Maîtrise en physique - avec mémoire

Maître ès sciences (M. Sc.)

(2)

Résumé

Le présent mémoire présente les récents travaux de développement d’un algorithme de calcul de dose monte carlo en brachythérapie implémenté sur GPU (bGPUMCD, GPU Monte Carlo Dose for brachytherapy) ainsi que la validation des résultats et de la performance de celui-ci en vue d’une utilisation clinique future pour les cas de curiethérapie HDR et d’une utilisation académique permettant de remplacer l’utilisation de codes Monte Carlo plus lents dans le domaine académique. Les cas de test définis par leGroupe de travail sur les algorithmes de calcul de dose en curiethérapie (WG-DCAB, Working Group on Dose Calculation Algorithms in Brachytherapy)[1] et quatre cas de patients cliniques représentant des sites de traitement représentatifs sont utilisés pour explorer la précision, la vitesse et les limites de l’algorithme dans une multitude de contextes. bGPUMCD est comparé aux résultats de calcul de dose provenant de plusieurs codes Monte Carlo tel que MCNP6et ALGEBRA[2]. Les résultats obtenus par bGPUMCDsont dans les limites d’incertitudes requises par les recommandations duRapport du Groupe de Travail No.186 de l’AAPM (TG-186, Report on the Task Group No.43)[3]. Une simulation en situation deRapport du Groupe de Travail No.43 de l’AAPM (TG-43, Report on the Task Group No.43)[4] a été effectuée pour trois modèles de source et les fonctions 𝑔𝐿(𝑟) et 𝐹 (𝑟, 𝜃) obtenues correspondent avec une erreur de 2 % aux valeurs de référence à l’exception des grands angles. Nous démontrons aussi que bGPUMCDest capable de simuler une dose cliniquement équivalente à un code Monte Carlo de référence en une fraction du temps ; en fonction des différents paramètres pouvant modifier le temps de calcul, bGPUMCD permet d’obtenir un résultat équivalent à la dose de référence avec un temps de calcul se trouvant entre quelques secondes à quelques minutes par rapport à plusieurs heures pour ALGEBRA.

(3)

Table des matières

Résumé ii

Table des matières iii

Liste des tableaux v

Liste des figures vi

Glossaire vii

Remerciements ix

Introduction 1

0.1 La radiothérapie et la curiethérapie . . . 1

0.2 Le calcul de dose en curiethérapie et le formalisme TG-43 . . . 2

0.3 Au delà du TG-43, TG-186 et MBDCA . . . 4

0.4 Monte Carlo sur GPU . . . 6

0.5 Présentation et objectif . . . 7

1 Méthodologie 8 1.1 bGPUMCD . . . 8

1.2 Présentation des cas de validation du WG-DCAB . . . 11

1.3 Présentation des cas cliniques standard. . . 13

1.4 Validation des paramètres TG-43 . . . 14

1.5 Estimation de l’erreur systématique de bGPUMCD . . . 16

1.6 Calcul de l’efficacité . . . 19

1.7 Matériel informatique utilisé. . . 19

2 Développements additionnels de bGPUMCD 20 2.1 Modernisation du code . . . 20

2.2 Modification du format des fichiers d’entrée . . . 21

2.3 Correction de la gestion des photons diffusés qui retournent dans la simulation 22 2.4 Correction de l’implémentation de la diffusion Rayleigh . . . 22

2.5 Lecture asynchrone de l’espace de phase et passage du format ROOT à un format binaire. . . 24

2.6 Implémentation de la gestion de l’orientation des sources . . . 26

2.7 Développement de IPDCM pour la gestion des données de matériaux . . . . 27

(4)

2.9 Implémentation de l’algorithme de tracé de rayons itératif de Christiaens. . 29

2.10 Optimisation de l’accès aux textures et à la mémoire globale. . . 31

2.11 Analyse des algorithmes de la diffusion Compton contenus dans bGPUMCD 32 3 Résultats et discussion 34 3.1 Validation du nouvel algorithme de tracé de rayons . . . 34

3.2 Validation des paramètres TG-43 . . . 34

3.3 Validation des cas test du WG-DCAB . . . 37

3.4 Validation des cas cliniques . . . 38

3.5 Validation de l’estimateur de parcours exponentiel . . . 41

3.6 Analyse de la performance . . . 44

Conclusion 47

(5)

Liste des tableaux

1.1 Paramètres géométriques des cas cliniques. . . 13 1.2 Positions d’arrêt et doses de prescription des cas cliniques. . . 14 1.3 Matériaux utilisés pour les différentes structures définies dans les cas cliniques. 15 1.4 Définitions des masses relatives des différents matériaux utilisés dans les cas

cliniques . . . 15 2.1 Temps requis (en ms) pour charger en mémoire un million de photons à partir

de l’espace de phase contenu en mémoire de stockage. . . 25 2.2 Estimation de l’erreur systématique pour les deux algorithmes de la diffusion

Compton . . . 33 3.1 Analyse de l’erreur systématique de bGPUMCD par rapport à ALGEBRA par

l’entremise de la méthode de Kawrakow présentée à la section 1.5. . . 39 3.2 Paramètres dosimétriques pour les cas cliniques de sein, de paroi thoracique et

de prostate pour le formalisme TG-43, bGPUMCD et ALGEBRA. . . 43 3.3 Temps d’exécution de chaque cas analysé pour les estimateurs de parcours

(6)

Liste des figures

0.1 Paramètres géométriques du TG-43 . . . 3

0.2 Estimation de 𝜋 par simulation Monte Carlo . . . 6

1.1 Schéma de la source WG-DCAB . . . 12

1.2 Schéma de la source MicroSelectronV2 . . . 13

1.3 Schéma de la source SelectSeed . . . 16

2.1 Effet de la correction apportée sur la gestion des photons diffusés . . . 23

2.2 Erreur relative de bGPUMCD par rapport à ALGEBRA. . . 24

2.3 Erreur sur la dose normalisée sur la valeur de l’écart type estimée. . . 33

3.1 Facteurs limitant la vitesse de calcul pour les deux algorithmes de tracé de rayon 35 3.2 Fonctions 𝑔𝐿(𝑟) et 𝐹 (𝑟, 𝜃) obtenues par une simulation en conditions de TG-43. 36 3.3 Observation de l’effet de raies dans l’erreur relative lorsque le TLE linéaire est utilisé . . . 37

3.4 Erreur relative de bGPUMCD par rapport à la dose de référence (MCNP6) . . 38

3.5 Erreur relative pour les quatre cas cliniques . . . 40

3.6 DVH des différentes structures d’intérêt pour chaque cas clinique étudié . . . . 41

3.7 Isodoses des cas cliniques . . . 42

3.8 Estimation de l’erreur relative en fonction de la distance pour les estimateurs de parcours linéaire, de parcours exponentiel et analogue. . . 44

(7)

Glossaire

AAPM Association Américaine des Physiciens en Médecine. 2,5

ALGEBRA Algorithme de calcul de dose monte carlo en brachythérapie implémenté avec

Geant4. ii,v,vi,6–8,14,16,21,24–26,32,35–39,41–43,47,48

bGPUMCD algorithme de calcul de dose monte carlo en brachythérapie implémenté sur

GPU. ii,v,vi,7–14,16,19–28,30–33,35–39,41–45,47,48

HDR à haut débit de dose. 1,11,26,27,35

IPDCM Interpolated Photon Data for Compound Materials. 10,27

IROC Centre de traitement du cancer du M.D. Anderson. 12,37

LDR à bas débit de dose. 1,7,14,26,27,35

MBDCA Algorithme de calcul de dose basé sur des modèles. 4,5

MCNP6 Algorithme de calcul de dose utilisé pour produire les données de référence du

WG-DCAB.ii,vi,12,14,37,38

NVVP Nvidia Visual Profiler. 34

TG-186 Rapport du Groupe de Travail No.186 de l’AAPM. ii,5,7,15,47

TG-43 Rapport du Groupe de Travail No.43 de l’AAPM. ii, v, vi,2, 4, 7, 11, 12, 14, 26,

34–36,39,41–43,47

TLE Estimateur de parcours. 11,37,45,46

WG-DCAB Groupe de travail sur les algorithmes de calcul de dose en curiethérapie. ii,11,

(8)

How lucky I am to have had something that makes saying goodbye so hard.

(9)

Remerciements

Cette maîtrise aura été difficile. Scientifiquement bien sur mais surtout pour mon développement personnel. J’ai grandi énormément grâce au dévouement de gens formidables qui m’ont permis d’affronter cette étape de ma vie et qui m’ont donné les outils pour y arriver. Merci à la gang du bac, Ced, Xav, Vincent, J, Nic et Pan pour toutes ces fins de semaine de devoir toujours pleines de joie. Un quatres ans difficile mais souriant. Ali pour les calins, le support moral et la volonté de continuer à avancer. Je te dois une plus grosse partie de ce bac que tu ne voudra jamais l’admettre. Merci à la gang du GRPM, Daniel, Romain, Andrea, Ced et tous les autres. Une équipe formidable en compagnie duquel j’ai appris autant la physique que la vie. Merci à mes directeurs qui m’ont offert cette opportunité incroyable. Luc pour l’exigence du travail bien fait, tu as à coeur la réussite de tes élèves. Philippe pour les opportunités et la confiance en mon travail. Merci à tous.

(10)

Introduction

0.1 La radiothérapie et la curiethérapie

La fin du 19e est marquée par deux découvertes fondamentales en physique. La découverte des rayons X par Wilhelm Röentgen en 1895 et la découverte de la radioactivité par Henri Becquerel en 1896[5]. Le potentiel médical remarquable de ces découvertes sera très rapidement reconnu et l’étude de l’effet des radiations ionisantes sur le corps humain mènera à la création de la radio-oncologie, le traitement du cancer par la radiation. Le principe de la radio-oncologie consiste à irradier les cellules cancéreuses afin de causer des dommages irréparables à l’ADN de celles-ci et ainsi causer leur mort[6]. La curiethérapie est une forme de radio-oncologie qui consiste à insérer une ou plusieurs sources radioactives proche ou à l’intérieur de la tumeur. Cette méthode vise à limiter l’exposition des tissus sains au rayonnement puisque celui-ci est émis directement dans le voisinage de la région à traiter. Plusieurs sites peuvent bénéficier de ce type de traitement tel que les cas de cancer du sein, de la prostate ou les cancers gynécologiques. Les sources radioactives de curiethérapie sont généralement présentées sous forme de grains de matériaux radioactif encapsulés dans une capsule de titane ou d’acier. Les deux formes les plus répandues de curiethérapie sont la curiethérapie à bas débit de dose (LDR, Low Dose Rate)et la curiethérapieà haut débit de dose (HDR, High Dose Rate). Dans sa version moderne, la curiethérapie LDR consiste à implanter de manière permanente des sources ayant une émission de 0.4 à 2 Gy h−1 dans la tumeur. La curiethérapieHDRconsiste, quand à elle, à insérer une seule source ayant une émission supérieure à 12 Gy h−1 à différentes positions d’arrêt dans la tumeur pour un temps limité (généralement quelques secondes)[7]. Il est possible de moduler la quantité de dose déposée dans la tumeur et dans les organes à risque en modifiant la position des sources ainsi que la puissance initiale de celles-ci pour la curiethérapie LDRet les temps d’arrêt associés à chaque position d’arrêt pour la curiethérapie HDR. Le processus clinique consiste donc à tenter de trouver le positionnement optimal des sources permettant de guérir le patient avec le moins d’effets secondaires.

Un traitement de curiethérapie s’effectue sur plusieurs étapes. La première consiste à obtenir l’image 3D du patient afin de pouvoir évaluer les positions possibles des sources. Le calcul de la dose associé à chacune de ces positions est ensuite obtenu et une optimisation est effectuée

(11)

afin d’obtenir la configuration qui répond le mieux à la géométrie unique du patient. Une fois l’optimisation terminée, un calcul final de la dose totale est effectuée et la validation du plan de traitement peut être effectuée par un radio-oncologue. Le plan est ensuite administré au patient. Le calcul de la dose de rayonnement déposée en tout point dans le patient est donc une étape cruciale du processus de traitement en curiethérapie et en radiothérapie en général.

0.2 Le calcul de dose en curiethérapie et le formalisme TG-43

Afin de formaliser et d’uniformiser les méthodes de calcul de la dose en curiethérapie, l’Asso-ciation Américaine des Physiciens en Médecine (AAPM, American Assol’Asso-ciation of Physicists in Medicine) a mis sur pied un groupe de travail dont la tâche était de faire une revue de littérature des méthodes de calcul de dose, des caractéristiques des différentes sources et de pro-poser une méthode de calcul de la dose répondant aux besoins de précision et de performance du calcul de dose en clinique. Le Rapport du Groupe de Travail No.43 de l’AAPM (TG-43, Report on the Task Group No.43) de 1995, sa mise à jour de 2004 ainsi que le HEBD présente les résultats de ce groupe de travail et propose une méthode de calcul de dose permettant d’obtenir une précision acceptable sur le calcul avec les performances nécessaires pour être utilisée en clinique [8, 4, 9]. En effet, un traitement de curiethérapie s’effectue généralement en une seule opération de quelques heures et le calcul de dose doit s’effectuer en quelques minutes. Impossible d’utiliser des méthodes de calcul plus précises mais demandant plusieurs heures de calcul. Le calcul précis de la dose dans un milieu hétérogène tel que le corps humain étant une opération complexe, cette méthode utilise plusieurs simplifications afin de permettre un calcul rapide.

Le principe consiste à modéliser l’émission de la source dans l’eau. Le milieu de diffusion est défini comme une sphère d’eau de rayon infini. La plupart des sources ayant une symmétrie de rotation autour de leur grand axe, le modèle assume que l’émission provient d’une ligne de longueur 𝐿. Il est donc possible de séparer les variations de la dose autour de la source selon la distance du centre et l’angle par rapport à cet axe. L’utilisation d’une sphère d’eau comme milieu diffusant permet d’approximer la géométrie d’un patient puisque la majorité des tissus humains ont une réponse à la radiation proche de l’eau[10]. Il est ainsi possible de modéliser la dose déposée à proximité de la source selon l’équation suivante[4]

̇

𝐷(𝑟, 𝜃) = 𝑆𝐾⋅ Λ ⋅ 𝐺𝐿(𝑟, 𝜃0)

𝐺𝐿(𝑟0, 𝜃0) ⋅ 𝑔𝐿(𝑟) ⋅ 𝐹 (𝑟, 𝜃). (1) Le schéma0.1présente le système de coordonnées utilisé par les différentes parties de l’équation. La dose en un point dépend de sa distance 𝑟 par rapport à la source et de l’angle d’incidence 𝜃 par rapport à l’axe de symmétrie de la source. 𝑆𝐾représente la puissance de la source physique et doit être mesurée dans un laboratoire accrédité tel que le National Institute of Standards

(12)

and Technology (NIST, situé aux États-Unis) ou le Conseil national de recherches Canada (CNRC)[11]. Ses unités sont en U = cGy cm2h−1. Λ est la constante du taux de dose et relie la puissance de la source à la dose mesurée dans l’eau. Ses unités sont cGy h−1U−1 =cm−2. La fonction 𝐺𝐿(𝑟, 𝜃) se nomme la fonction géométrique et permet de prendre en compte la variation du dépot de dose ne provenant pas de l’atténuation et de la diffusion des particules dans le milieu. Elle n’a pas d’unités. La fonction géométrique permet d’augmenter l’exactitude de l’interpolation des deux paramètres suivant en tenant compte de l’atténuation géométrique provenant de l’éloignement d’une source isotrope ou quasi-isotrope comme c’est le cas pour les sources de curiethérapie. 𝐺𝐿(𝑟, 𝜃) = ⎧ { ⎨ { ⎩ 𝛽 𝐿𝑟sin 𝜃 𝜃 ≠0° (𝑟2 𝐿2 4) −1 𝜃 =0° (2)

La fonction 𝑔𝐿(𝑟)se nomme la fonction radiale et représente l’atténuation de la dose due à l’absorption et la diffusion dans le milieu. Elle n’a pas d’unités. Cette fonction est tabulée et les valeurs sont différentes pour chaque modèle de source. Finalement, la fonction 𝐹(𝑟, 𝜃) est la fonction anisotropique et représente la variation de la dose en fonction de l’angle par rapport à l’axe de la source. Elle n’a pas d’unités. Cette fonction est aussi tabulée et dépend du modèle de source. 𝐿 𝑃 (𝑟, 𝜃) 𝑟 𝑧 𝑃 (𝑟0, 𝜃0) 𝑟0=1 cm 𝜃1 𝜃 𝜃2 𝛽

Figure 0.1 – Schéma décrivant les paramètres géométriques utilisés dans la définition du formalisme du TG-43[4].

La valeur de 𝑆𝐾 est associée à chaque source en fonction de la quantité de matériaux radioactif qu’elle contient. Λ, 𝑔𝐿(𝑟) et 𝐹(𝑟, 𝜃) sont dépendantes du modèle de source utilisé et sont des données standardisées. Les fonctions sont tabulées et interpolées afin de permettre de calculer la dose en quelques secondes pour une position donnée. Ce système permet un calcul rapide et standardisé de la dose mais les simplifications de milieu et de géométrie de la source occasionnent une erreur sur la valeur de dose réelle. Premièrement, la dose absorbée

(13)

par les tissus n’est pas équivalente à la dose absorbée dans l’eau[10] puisque le coefficient d’énergie-absorption 𝜇𝑒𝑛 change en fonction des masses relatives des éléments contenus dans les différents types de tissues par rapport à l’eau. Deuxièmement, l’atténuation dans les tissus et dans l’eau n’est pas équivalente due à une plus grande densité et à une plus grande section efficace totale définie par le coefficient d’atténuation 𝜇[10]. Troisièmement, la présence de régions dont le matériau n’est pas du tout comparable à l’eau comme l’air ou les os modifie le milieu diffusant et ainsi la dose absorbée autour de ces régions. La présence de calcifications dans la prostate ou le positionnement des sources proche de la peau dans les cas de cancer du sein sont des exemples où l’approximation d’un milieu diffusant d’eau infini n’est pas valide. Une revue de la littérature a été effectuée par Rivard et al.[10] et a conclu que les paramètres cliniques de dose peuvent être sous ou sur-estimés d’au moins 5 % de la valeur réelle et jusqu’à un facteur 10 dans le cas de la curiethérapie oculaire.

0.3 Au delà du TG-43, TG-186 et MBDCA

Pour pallier aux limites d’exactitude engendrés par le formalisme TG-43, plusieurs Algorithme de calcul de dose basé sur des modèles (MBDCA, Model Based Dose Calculation Algorithm) ont été développés. Citons par exemple ACE[12] développé par Elekta basé sur le principe du Collapsed Cone et Acuros[13] développé par Varian basé sur la résolution déterministe des équations de transport de Boltzman. Une autre méthode permettant de calculer le dépot de la dose dans la matière consiste à simuler directement le parcours des particules dans celle-ci. Cette méthode se nomme le Monte Carlo[14]. Dans une situation réelle, le dépôt de dose engendré par l’émission de particules ionisantes provenant d’une source radioactive est la somme d’une grande quantité d’événements stochastiques. Le parcours d’un photon dans la matière dépend de la probabilité d’interaction, qui varie en fonction de plusieurs paramètres[15]. Si l’énergie du photon est grande, certains types d’interaction deviennent moins probables et d’autres types le deviennent plus. Si la densité ou la composition du matériau change, la distance moyenne parcourue par le photon change aussi. La combinaison de ces facteurs fait en sorte qu’un photon ne suivra pas toujours le même parcours et ne déposera pas toujours la même énergie au même endroit. Par contre, pour une grande quantité de photons, la combinaison de ces effets stochastiques tend vers une valeur moyenne déterministe. C’est cette valeur moyenne que nous tentons de calculer avec les différents algorithmes de calcul de dose. Le principe du Monte Carlo consiste à simuler directement une grande quantité d’interactions stochastiques permettant ainsi d’estimer la valeur déterministe au lieu de tenter de la calculer directement. Il est généralement possible de calculer directement le comportement déterministe d’une situation simple mais le transport de photons, décrit par les équations de transport de Boltzmann, dans le corps humain est beaucoup trop complexe pour cela.

Une des forces du formalisme TG-43 provient de l’uniformité dans la méthode de calcul de la dose en curiethérapie. Celle-ci permet, entre autres, d’assurer un minimum de qualité et

(14)

d’uniformité à travers les différents centres effectuant des traitements de curiethérapie. L’article de Rivard et al.[16] publié en 2010 présente les différentes approches de calcul de dose basées sur des modèles et estime qu’un processus de validation des différents algorithmes est requis afin de conserver cette uniformité. C’est dans cette optique qu’un groupe de travail de l’AAPMest formé. LeTG-186[3] présente ses résultats et recommandations pour la création d’un processus permettant de valider les différents algorithmes développés. Plusieurs algorithmes de type MBDCA ont déjà été développés et validés. La fin de cette section en présente quelques-uns. ACE est un algorithme basé sur le principe du collapsed cone. qui consiste à séparer le calcul de dose en fluence primaire et en fluence secondaire. Le kerma primaire est calculé par tracé de rayon en calculant l’énergie déposée dans chaque voxel rencontré. Chaque matériaux rencontré est pris en compte et le calcul est similaire à celui du TG-43. Le kerma primaire permet de calculer la dose primaire et l’énergie diffusée. La dose déposée par diffusion est ensuite calculée en sélectionnant un nombre limité de directions de propagation et est déposée sur le parcours de ces directions seulement au lieu de calculer le dépôt sur toutes les directions possibles. C’est le principe du collapsed cone. L’algorithme est ensuite appliqué de nouveau pour calculer le dépôt de dose provenant de la diffusion multiple[17,18]. Le principe consiste donc à discrétiser les directions de propagation du diffusé pour limiter le temps et la nature exponentielle du calcul.

Acuros est un algorithme de calcul de dose basé sur le principe de résolution déterministe de l’équation de transport linéaire de Boltzman (Linear Boltzman Transport Equation, LBTE). La LBTE est l’équation qui décrit le comportement macroscopique du transport de particules ionisantes dans la matière. Pour une fluence donnée dans un milieu donné, la résolution de la LBTE permettrait d’obtenir le dépôt de dose exact. Malheureusement, aucune solution analytique n’existe pour des système autres que pour certains cas simples. Le principe d’Acuros est donc de résoudre cette équation itérativement en discrétisant l’espace, l’angle de propagation et l’énergie. L’erreur sur la valeur obtenue diminue avec la finesse de discrétisation[19]. Une autre méthode utilisée pour calculer la dose consiste à effectuer une simulation Monte Carlo. L’idée est de partir des données d’interaction des photons avec la matière qui sont bien connues et de simuler l’interaction d’un grand nombre de photons. Le principe se base sur la loi des grands nombres. C’est à dire que la moyenne des valeurs obtenues par l’échantillonage aléatoire d’un processus stochastique tend vers la valeur déterministe lorsque le nombre d’échantillons est grand. Il est donc possible de suivre le parcours aléatoire d’une grande quantité de photons dans la géométrie d’intérêt et de faire une moyenne du dépôt d’énergie de chacun de ces photons pour obtenir une estimation de la dose. À titre d’exemple, il est possible d’estimer la valeur de 𝜋 à partir de cette méthode. On échantillonne des points dans un espace cartésien allant de (0,0) à (1,1). On compte ensuite le nombre de points ayant une distance à l’origine inférieure à 1. Le ratio du nombre de points sur le nombre de points total est une estimation du ratio des deux aires soit 𝜋/4. La figure 0.2 permet de visualiser un

(15)

0.0 0.2 0.4 0.6 0.8 1.0 0.0 0.2 0.4 0.6 0.8 1.0

~ 3.1488

Figure 0.2 – Estimation de 𝜋 par simulation Monte Carlo. Plus le nombre de points augmente, plus l’estimation est proche de la valeur réelle.

exemple de ce processus avec 10 000 points. Cette technique a l’avantage de se baser sur des principes physique fondamentaux et très bien connus (les types d’interaction des photons avec la matière et leurs sections efficaces).

0.4 Monte Carlo sur GPU

La limitation principale du calcul de dose Monte Carlo provient du grand nombre de particules simulées requis pour obtenir le résultat à une précision suffisante. En effet, chaque particule doit être simulée l’une après l’autre. Ce processus prend beaucoup de particules pour converger et il n’est pas rare qu’une simulation Monte Carlo puisse prendre plusieurs heures voire plusieurs jours pour compléter à la précision voulue. Une approche permettant de diminuer significativement le temps de calcul consiste à paralléliser la simulation. En effet, puisque chaque photon est indépendant l’un de l’autre, il est possible de les calculer simultanément. Malheureusement, les capacités de calcul en parallèle d’un processeur (CPU) sont limitées au nombre de coeurs de calcul qu’il contient. Aujourd’hui, un processeur contient généralement entre 2 et 32 coeurs. Plusieurs implémentations de calcul de dose Monte Carlo utilisent les capacités de parallélisation des processeurs afin d’accélérer leur calcul. C’est la cas, par exemple, du programme ALGEBRA[2]. Le dépôt logiciel contient un script python permettant de lancer plusieurs simulations en parallèle et d’ensuite les combiner en un seul résultat.

Il existe cependant un type de processeur contenant des milliers de coeurs de calcul. Ces proces-seurs sont des procesproces-seurs graphiques (GPU)[20]. Ce sont des unités de calcul spécifiquement

(16)

développées pour effectuer un grand nombre d’opérations simples en parallèle sur une série de données semblables et sont principalement utilisées dans le domaine des jeux vidéos pour calculer l’image à afficher plus rapidement. Ces unités de calcul sont donc particulièrement adaptées pour le calcul Monte Carlo en permettant une parallélisation du calcul beaucoup plus importante que sur les processeurs classiques.

Depuis 2010, plusieurs plateformes de calcul de dose par Monte Carlo ont été développées afin d’explorer la faisabilité et l’efficacité du calcul de dose sur GPU. gDPM en est un exemple[21]. C’est un algorithme de calcul de dose en radiothérapie externe qui se base sur le code original DPM[22]. Dans gDPM, chaque thread simule le parcours d’un photon primaire et de toutes les particules subséquentes de celui-ci. Un autre code développé en 2011 par Sami Hissoiny est GPUMCD[23] et fut lui aussi développé pour effectuer le calcul de dose en radiothérapie externe. Le code fut ensuite adapté à la curiethérapie et une validation préliminaire de l’exactitude de l’algorithme en curiethérapie a été effectuée[24,25]. GMC est un autre exemple de code Monte Carlo développé pour la radiothérapie externe[26]. Celui-ci est basé sur Geant4[27] et tente de limiter les problèmes de divergence associés au Monte Carlo sur GPU en séparant le traitement du parcours d’un électron en plusieurs étapes plus facilement parallélisables contrairement au calcul de tous son parcours en une étape.

0.5 Présentation et objectif

Le Monte Carlo sur GPU est donc une avenue prometteuse pour obtenir une plus grande exactitude dans le calcul de dose en curiethérapie. bGPUMCDest une plateforme de calcul de dose implémentée sur GPU et visant le domaine de la curiethérapie. bGPUMCDse base sur le code de calcul de dose en radiothérapie externe GPUMCD[23] est implémenté à partir de la plateforme de développement CUDA permettant de faire du calcul parallèle sur cartes graphiques de la famille nVidia. bGPUMCD est une plateforme expérimentale et, bien que des analyses préliminaires aient été effectuées, aucun travail de validation suivant le protocole proposé par leTG-186n’a été effectué. Conséquemment, il ne peut présentement pas être utilisé en clinique et ne bénéficie pas non plus d’une large utilisation dans le domaine académique contrairement à d’autres plateformes plus matures tel que EGSnrc[28] ouALGEBRA[2]. L’objectif du présent travail est d’effectuer le processus de validation des capacités de bGPUMCDpour le calcul de dose en curiethérapie à haut débit en conformité avec le protocole recommandé par leTG-186. Cette validation permet d’envisager l’utilisation de l’algorithme en contexte clinique pour calculer la dose finale d’un plan de traitement. Conjointement au but principal, la validation des performances de bGPUMCD dans un contexte TG-43 pour un modèle de source LDRa été effectuée. Aussi, plusieurs modifications et améliorations ont été apportées au code afin d’augmenter l’exactitude des résultats, la vitesse d’exécution ou la qualité du code.

(17)

Chapitre 1

Méthodologie

1.1 bGPUMCD

Le programme bGPUMCD est un algorithme de calcul de dose qui utilise une géométrie voxelisée. Il prend en argument un fichier phantom.egsphant[29] qui définit les dimensions des voxels, les positions absolues de ceux-ci dans l’espace ainsi que le matériau associé à chacun et sa densité. Il prend aussi en entrée les positions d’arrêt, l’orientation des sources à chaque position et le temps d’arrêt dans un fichier dwells.dat. Les différents paramètres de simulation sont fournis au programme à l’aide du fichier passé en argument à l’exécutable. Ce fichier permet de définir, entre autres, le type de source utilisé. Les types de sources utilisés dans la présente validation utilisent tous un espace de phase. C’est-à-dire qu’un programme externe simule l’atténuation due à la géométrie de la source et enregistre en grande quantité les photons qui en sortent. Cette méthode permet de ne pas simuler à nouveau le comportement de la source qui est constant peu importe la géométrie environnante. Les espaces de phase utilisés ici sont générés par ALGEBRA[2]. bGPUMCDutilise le script encodeALGEBRAPhaseSpace1

pour transformer un espace de phase généré par ALGEBRA en son propre format.

1.1.1 Fonctionnement de bGPUMCD

Pour effectuer une simulation, bGPUMCD utilise le concept de lot. Un lot est le processus par lequel bGPUMCD charge un nombre de photons, les simule et récupère le résultat de dose. Une série de lots peuvent être effectuée pour simuler un nombre toujours plus grand de photons. La taille d’un lot est un paramètre modifiable. Celui-ci peut être optimisé pour différents GPU ou différents cas. Une taille de lot trop petite ne remplira pas les capacités de calcul en parallèle de la carte graphique et un lot trop gros ne pourra pas être contenu sur la carte graphique. La taille de lot utilisée dans le présent travail est de 1 millions de photons.

1. https://gitlab.physmed.chudequebec.ca/cjoach/bGPUMCD/blob/master/scripts/ encodeALGEBRAPhaseSpace

(18)

Cette taille est largement supérieure au nombre de processeurs que la carte contient et prend généralement moins d’une seconde à compléter.

Une simulation Monte Carlo ne permet pas d’obtenir un résultat absolu sur la valeur mesurée. Un plus grand nombre de particules simulées donnera un résultat plus précis et il est théori-quement possible d’augmenter la précision de l’estimation autant qu’on le souhaite. Dans la réalité, le nombre de particules à simuler doit être raisonnable pour ne pas prendre trop de temps. bGPUMCDimplémente deux méthodes permettant de décider du nombre de particules à simuler. La première méthode est la plus simple et consiste à préciser le nombre de lots à simuler. Cette méthode permet de simuler un nombre fixe de photons. La seconde méthode utilise la méthode de l’estimation de l’erreur statistique pour évaluer l’erreur moyenne de tous les voxels après chaque lot. Il est possible de spécifier quel niveau de précision est requis pour nos besoins et laisser bGPUMCDdécider. Les paramètres d’arrêt associés sont le pourcentage d’erreur (StatStop) et la dose minimale relative (StatThreshold). Le pourcentage d’arrêt définit l’erreur moyenne à atteindre avant d’arrêter la simulation et la dose minimale relative définit quels voxels seront pris en compte dans le calcul de la moyenne de l’erreur. Celui-ci est défini comme une fraction de la dose maximale. Un voxel contenant une dose plus faible que la fraction définie de la dose maximale ne sera pas compté dans le calcul de la moyenne.

À la sortie de la simulation, bGPUMCD construit un fichier ROOT contenant deux histo-grammes. Le premier contient les informations de dose relatives à chaque voxel et le second contient l’erreur statistique estimée par la méthode History by history présentée par Walters[30]. La méthode consiste à estimer l’incertitude statistique sur le résultat en calculant l’écart type. Celle-ci peut être calculée à partir de la moyenne de l’énergie déposée par photon primaire et de la moyenne du carré de l’énergie déposée comme présenté dans l’équation 1.1.

𝜎𝑋= √⟨𝑋

2⟩ − ⟨𝑋⟩2

𝑁 − 1 (1.1)

1.1.2 Algorithmes d’interaction implémentés et limitations

bGPUMCD implémente trois types d’interaction pour le transport des photons. L’effet photo-électrique est implémenté comme l’absorption complète du photon sans fluorescence. Cette méthode simplifie l’implémentation sans avoir un effet marqué sur le dépot de dose dans les cas clinique puisque ceux-ci ne contiennent pas ou peu de matériaux à Z élevé. La diffusion Rayleigh est implémenté à partir de la diffusion Thomson auquel est appliquée une correction de facteur de forme[31][32]. Pour l’effet Compton, deux implémentations sont contenues dansbGPUMCD, la version par défaut et celle accessible par le flag de compilation ALT_COMPTON_EFFECT. Une analyse comparative des deux algorithmes est présentée à la Section 2.11. L’algorithme ALT_COMPTON_EFFECT est utilisé dans le présent travail.

(19)

1.1.3 Sections efficaces, facteurs de forme et coefficients d’atténuation

Pour l’obtention des données relatives au parcours des photons dans la matière, bGPUMCD utilise la librairie Interpolated Photon Data for Compound Materials (IPDCM) dont le développement et le contenu sont présentés à la Section 2.7. Les sections efficaces et les coefficients d’atténuation proviennent du NIST[33,34]. Les facteurs de forme proviennent de la base de donnée EPICS2017[32].

1.1.4 Estimateurs et techniques de réduction de variance

Lorsqu’on effectue un calcul de dose Monte Carlo en curiethérapie, la plage d’énergie des photons simulés permet de faire plusieurs suppositions sur la physique et de simplifier la simulation par le fait même. Puisque les photons ont une énergie inférieure à 1 MeV, nous pouvons faire deux suppositions. La première est que le parcours moyen des électrons excités par les photons est substantiellement plus petit que la taille des voxels utilisé. En effet, le libre parcours moyen des électrons est obtenue en intégrant la réciproque de pouvoir d’arrêt des électrons sur toute la plage d’énergie :

𝑅CSDA = ∫ 1 0

1

𝑆(𝐸)d𝐸 (1.2)

La base de données ESTAR peut être utilisé pour obtenir le pouvoir d’arrêt et le 𝑅CSDA[35]. Pour des électrons de 1 Mev, le 𝑅𝐶𝑆𝐷𝐴 est d’environ 1 g/cm2 ce qui représente un parcours d’environ 1 cm dans l’eau.

La seconde supposition est que la fraction radiative 𝑔 des électrons est presque nulle. On peut donc supposer que le kerma radiatif, la fraction d’énergie transférée et réémise sous forme de rayonnement électromagnétique, est pratiquement nul. La dose est ainsi approximativement égale au kerma collisionnel, la fraction d’énergie transférée aux électrons et déposée par ionization et excitation due à l’interaction des électrons avec les atomes du milieu.bGPUMCD utilise cette simplification et ne simule pas l’entièreté de la cascade d’électrons excités et mis en mouvement par chaque photon. Il se contente d’estimer le kerma collisionnel.

𝐾col= 𝐾(1 − 𝑔) ≈ 𝐾 (1.3)

𝐷 ≈ 𝐾col (1.4)

On peut donc proposer un estimateur simple pour notre simulation qui mesure l’énergie perdue par chaque photon à chaque interaction et l’enregistre dans le voxel où s’effectue cette interaction. Cette méthode est connue sous le nom d’estimateur analogue et a l’avantage d’être

(20)

simple à comprendre et à implémenter. Par contre, la limitation majeure de cette méthode est le faible nombre d’événements enregistré par photon simulé. Ainsi, un très grand nombre de photons doit être simulé ce qui occasionne un temps de calcul considérable.

À partir des suppositions initiales que nous avons pu faire sur la physique, une autre option s’offre à nous pour calculer la dose. Le principe est de relier la fluence, la quantité de photons émis dans une direction, à la dose, déposée dans la même direction, de la manière suivante

𝐷 = 𝜇𝑒𝑛× Φ = 𝜇𝑒𝑛𝐸𝐿

𝜌𝑉 . (1.5)

Où 𝐷 est la dose, 𝜇𝑒𝑛 est le coefficient d’énergie-absorption, 𝐸 est l’énergie du photon, 𝐿 est la distance parcourue dans le milieu, 𝜌 est la densité du milieu et 𝑉 est le volume de la région d’intérêt.

L’estimation de la fluence permet de calculer la dose. La fluence peut être estimée en enregistrant la distance de parcours dans un voxel à chaque fois qu’un photon le traverse. Le nombre d’événements contribuant à la statistique finale sera donc relié au nombre de voxels traversés par photon et non seulement au nombre d’interactions de celui-ci. Cet estimateur est nommé Estimateur de parcours (TLE, Track Length Estimator)linéaire et a été présenté par Williamson

et al. en 1987[36]. Cet estimateur a déjà été implémenté dans bGPUMCD[24] et permet une performance beaucoup plus importante que l’estimateur analogue.

1.2 Présentation des cas de validation du WG-DCAB

Le WG-DCABa conçu[37] une source hypothétique de curiethérapie pour être utilisée conjoin-tement avec ses fantômes. La source est une construction géométrique simple de taille et de forme représentant les caractéristiques des différentes sources de192𝐼𝑟présentement disponibles en clinique. La figure1.1présente les caractéristiques géométriques de la source. Conjointement à la définition de la source, de multiples calculs Monte Carlo ont été effectués pour obtenir les paramètres TG-43 de la source et le spectre d’émission.

Le design d’une source générique hypothétique basé sur la combinaison des caractéristiques des sources déjà existantes permet d’obtenir un outil d’analyse représentatif de la réalité de l’industrie et de fédérer les différents efforts de validation autour d’un outil libre de droit, simple à implémenter et facile à décrire.

Conjointement avec le design de la source HDRgénérique présenté ci-haut, Le WG-DCAB a défini plusieurs cas simples permettant d’évaluer les performances des algorithmes de calcul de dose[1]. Trois de ces cas typiques ont été utilisés pour cette validation, le quatrième cas utilisant un applicateur générique dont les performances n’ont pas été évaluées ici ; sa pertinence pour le présent sujet est faible.

(21)

Iridium Acier inoxydable Câble d’acier 3.5 0.9 5 2 0.6 1

Figure 1.1 – Schéma décrivant la source hypothétique définie par le WG-DCAB[38]. La longueur active de la source est de 3.5 mm. Les longueurs sont en mm.

Les trois cas sont tous basés sur la même géométrie soit un fantôme cubique voxelisé de 20.1 cm composé de 201 × 201 × 201 voxels de 1 mm3. Le nombre de voxels impair permet d’avoir un voxel central placé exactement à (0, 0, 0). Le fantôme est homogène et entièrement composé d’eau avec une densité de 1 g cm−3. Le fantôme est placé au centre d’un conteneur de géométrie cubique de 51.1 cm de côté.

Le premier cas utilisé est défini en remplissant le conteneur d’eau et en assignant une seule position d’arrêt à (0, 0, 0). Le second cas est défini en remplissant le conteneur d’air et en assignant la même position d’arrêt à (0, 0, 0). Le troisième cas est défini en remplissant le conteneur d’air et en assignant la position d’arrêt unique à la position (7, 0, 0). Le premier cas permet donc d’analyser les performances de l’algorithme en situation où beaucoup de photons sont diffusés à l’extérieur de la zone à l’étude et reviennent dans celle-ci (rétrodiffusion). C’est le cas le plus proche d’une simulation en situation de TG-43. Le second permet d’observer le comportement de l’algorithme dans la situation opposée, où peu de photons reviennent dans la région d’intérêt de l’extérieur. Le troisième cas permet d’évaluer les performances de l’algorithme dans la situation ou la source est positionnée très proche d’une interface. Les cas 2 et 3 permettent d’évaluer les performances de l’algorithme dans une situation où le milieu ne peut pas être apparenté à une sphère d’eau infinie et où la majorité du rayonnement qui sort de la région d’intérêt est perdu. Ces trois cas utilisent la source générique dont le design est présenté ci-haut.

Le WG-DCAB, conjointement avec la publication du design de source et la présentation des différents cas test, a mis à disposition des données de référence permettant de comparer ses propres résultats avec ceux-ci. Plusieurs codes Monte Carlo ont été utilisés pour valider la dose dans ces différents cas et celui provenant du codeMCNP6a été choisi et publié. Ce sont ces données qui ont été utilisées pour valider bGPUMCD dans ces cas. Les données peuvent être obtenues sur le site du Centre de traitement du cancer du M.D. Anderson (IROC, Imaging and Radiation Oncology Core)[39]. L’analyse de la correspondance des différents codes Monte Carlo peut être obtenue dans l’article de Ma et al.[1].

(22)

Iridium Acier inoxydable Câble d’acier 3.5 0.9 5 2 0.6 1

Figure 1.2 – Schéma décrivant la source MicroSelectronV2 produite par Elekta. La longueur active de la source est de 3.5 mm. Les longueurs sont en mm.

Tableau 1.1 – Paramètres géométriques des cas cliniques. Cas Taille des voxels [mm] Taille totale [cm] Sein 0.977 × 0.977 × 1.25 50 × 50 × 9 Paroi thoracique 0.977 × 0.977 × 2 50 × 50 × 20.8 Poumon palliatif 0.684 × 0.684 × 1.5 35 × 35 × 20.4 Prostate 0.371 × 0.371 × 2 19 × 19 × 20.8

1.3 Présentation des cas cliniques standard

Le second groupe de cas utilisés pour la validation debGPUMCD est quatres cas de patients cliniques humains ; un cas de sein, un cas de paroi thoracique, un cas de poumon palliatif et un cas de prostate. Les cas utilisés correspondent à ceux présentés dans la validation de ACE, l’algorithme de calcul de dose d’Elekta[12]. Le type de source utilisé par ces quatre cas est la source MicroSelectronV2 d’Elekta[40] dont le schéma est présenté à la figure 1.2.

Les détails géométrique des cas cliniques sont présentés dans le Tableau 1.1. Les détails de prescription sont présentés dans le Tableau 1.2. Ces quatres cas permettent de couvrir des configurations variées. Les cas de sein et de paroi thoracique ont une interface tissue-air proche des positions d’arrêt, le cas de prostate contient des régions de haute densité et le cas de poumon palliatif contient des régions de basse densité. Les cas cliniques sont les mêmes que ceux utilisés par Ma et al pour la validation de ACE[12].

Les fantômes des quatre cas ont été générés avec l’application WebTPS[41]. Celui-ci lit les fichiers DICOM de TDM et de structures (RTSTRUCT) et permet d’associer une structure anatomique à un matériau précis. Le tableau 1.3 présente les matériaux utilisés pour les différentes structures définies. Aucune courbe de calibration TDM n’a été utilisée puisque les matériaux ont été déterminés à partir des contours. Les fantômes ont été définis avec une taille de voxel de 1 mm3. Les fantômes egsphant ont les dimensions finales suivantes : le cas de

(23)

Tableau 1.2 – Positions d’arrêt et doses de prescription des cas cliniques. Cas Nombre de cathéters Positions d’arrêt Dose de prescription [Gy]

Sein 7 45 3.4

Paroi thoracique 14 344 3.5

Poumon palliatif 1 19 5

Prostate 17 111 15

sein a une taile de 499 × 499 × 88 voxels, le cas de paroi thoracique 321 × 321 × 206, le cas de poumon 350 × 350 × 203 et le cas de prostate 190 × 190 × 207. Le tableau 1.4présente la composition atomique des différents matériaux utilisés en rapports de masse relative.

Pour chaque cas, un calculTG-43sur le TPS OncentraBrachy et une simulationALGEBRAont été effectuées. Le calcul TG-43permet une comparaison des DVH de bGPUMCD par rapport au formalisme de calcul de dose par défaut utilisé en clinique. Le résultat d’ALGEBRAest utilisé comme calcul Monte Carlo de référence. Ce choix s’explique par le fait que ALGEBRA fait partie des algorithmes Monte Carlo utilisés dans la validation des cas de test du WG-DCAB et qu’une bonne correspondance entre le code de référenceMCNP6etALGEBRA a été démontrée. Aussi, ALGEBRA est un programme développé par le GRPM ce qui le rend facile à utiliser et à adapter en vertu de l’expertise du groupe avec ce logiciel.

1.4 Validation des paramètres TG-43

Dans le cadre de la présente validation, trois sources de radiothérapie sont utilisées. La première est la source générique définie par le WG-DCAB utilisée dans les cas de test associés. La seconde est la source MicroSelectronV2 d’Elekta utilisée dans la définition des cas de patients cliniques (sein, paroi thoracique, poumon palliatif et prostate). Une dernière source sera analysée pour la validation des paramètres. La dernière est la source SelectSeed présentée à la figure 1.3et permettra de valider le comportement de bGPUMCDavec une source LDR. Pour chaque source, une simulation dans des conditionsTG-43a été effectuée parbGPUMCD. La géométrie de la simulation est définie comme suit. Une seule position d’arrêt à la position (0,0,0) avec la source orientée selon l’axe des 𝑧. Le fantôme utilisé est un cube homogène d’eau voxelisé de 201x201x201 voxels de 1 mm3 chacun. Le fantôme est placé dans un conteneur homogène d’eau de 1 m de côté pour simuler une situation de TG-43. La simulation a été effectuée avec un milliard de photons primaires. La fonction 𝑔𝐿(𝑟) est calculée à partir de la dose obtenue dans le plan 𝑧 = 0. Pour chaque axe (±x, ±y) la fonction 𝑔𝐿(𝑟) est calculée à partir de la variation de dose et la moyenne des quatre cas est utilisée comme valeur finale. Cette méthode de calcul permet de diminuer les variations des valeurs due à la nature stochastique de la simulation. La fonction 𝐹(𝑟, 𝜃) a été obtenue en moyennant les valeurs

(24)

Tableau 1.3 – Matériaux utilisés pour les différentes structures définies dans les cas cliniques.

Structure Matériaux

Sein

Par défaut Air

Corps (BODY) Water

Cible (PTV) Mean female soft tissue

Poumon droit (RLung) Lung (inflated) Poumon gauche (LLung) Lung (inflated) Applicateur (struts) Air

Cage thoracique (bone) Cortical bone Paroi thoracique

Par défaut Air

Corps (BODY) Water

Poumon gauche (LLung) Lung (inflated)

Coeur (Heart) Heart

Peau (skin) Mean skin

Os (bone) Cortical bone

Cible (PTV) Mean male soft tissue

Poumon palliatif

Par défaut Air

Corps (BODY) Water

Poumons (LLung et RLung) Lung (inflated) Bronche (Bronchus) Air

Prostate

Par défaut Air

Corps (BODY) Water

Cible (PTV) Prostate

Vessie (Bladder) Mean male soft tissue

Rectum (Rectum) Air

Os (Bone) Cortical bone

Urèthre (Urethra) Mean male soft tissue

Tableau 1.4 – Définitions des masses relatives des différents matériaux utilisés dans les cas cliniques. Les définitions proviennent du TG-186[3].

% Massique Densité

Matériaux H C N O Z > 8 g cm−3

Mean male soft tissue 10.5 25.6 2.7 60.2 Na(0.1),P(0.2),S(0.3),Cl(0.2),K(0.2) 1.03

Mean female soft tissue 10.6 31.5 2.4 54.7 Na(0.1),P(0.2),S(0.2),Cl(0.1),K(0.2) 1.02

Cortical bone 3.4 15.5 4.2 43.5 Na(0.1),Mg(0.2),P(10.3),S(0.3),Ca(22.5) 1.92

Prostate 10.5 8.9 2.5 77.4 Na(0.2),P(0.1),S(0.2),K(0.1) 1.04

Heart 10.4 13.9 2.9 71.8 Na(0.1),P(0.2),S(0.2),Cl(0.2),K(0.3) 1.05

Mean skin 10.0 20.4 4.2 64.5 Na(0.2),P(0.1),S(0.2),Cl(0.3),K(0.1) 1.09

Lung (inflated) 10.3 10.5 3.1 74.9 Na(0.2),P(0.2),S(0.3),Cl(0.3),K(0.2) 1.09

Air 75.5 23.2 Ar(1.3) 0.001205

(25)

AgClAgI Titane

3.4 4.5

0.51 0.8

Figure 1.3 – Schéma décrivant la source SelectSeed produite par Elekta[42]. La longueur active de la source est de 3.4 mm. Les longueurs sont en mm.

des voxels en fonction de leur angle 𝜑 par rapport à la source et en ne sélectionnant que les valeurs moyennées se trouvant à 𝑟 = 1 cm. On obtient donc une estimation plus robuste des deux fonctions prédites par le programme. Les données ainsi obtenues sont ensuite comparées aux données de référence pour chaque source. La même simulation a été effectuée avec le programme ALGEBRApour mettre en perspective la précision du résultat obtenu par rapport à un code Monte Carlo vérifié.

1.5 Estimation de l’erreur systématique de bGPUMCD

Une méthode d’analyse est utilisée pour permettre d’estimer l’erreur systématique occasionnée parbGPUMCD, c’est-à-dire l’erreur qui n’est pas due à la nature stochastique de la simulation. Cette méthode a été présentée par Kawrakow et Fipel[43] et utilisée par Ballester[37]. En effet, deux simulations Monte Carlo effectuées dans les même conditions ne donneront pas le même résultat. La technique proposée va comme suit. Pour comparer l’erreur systématique de bGPUMCDpar rapport à ALGEBRA, nous définissons l’erreur en unités de l’incertitude statistique comme

𝑥 = 𝐷 − 𝐷ref √𝜎2+ 𝜎2 ref

. (1.6)

Puisque l’estimation de l’erreur dans un voxel correspond à un écart type, diviser l’erreur réelle par cette estimation permet de normaliser la distribution sur la même échelle et de comparer les erreurs en fonction de leur valeur par rapport à l’écart type et non en fonction de l’erreur sur la dose absolue. Si l’erreur était uniquement due à l’effet stochastique, nous obtiendrions une distribution gaussienne centrée à 0. Cela s’explique par le théorème central limite qui stipule que la distribution de probabilité de la somme normalisée d’un grand nombre d’événements indépendants tend vers une distribution normale. Puisque les photons sont tous

(26)

indépendants, il en résulte que l’erreur d’une simulation Monte Carlo non biaisée a une erreur distribuée en loi normale.

Ainsi, toute déviation par rapport à 0 indique une erreur systématique. Nous pouvons exprimer 𝑥 comme 𝑥 = 𝑦 + 𝑧, 𝑦 étant la contribution stochastique et 𝑧 la contribution systématique. Nous pouvons ensuite calculer les moments de la distribution 𝑥

⟨𝑥𝑛⟩ = 1 𝑁∑𝑖𝑗𝑘(𝑥𝑖𝑗𝑘) 𝑛, (1.7) ⟨𝑥⟩ = ⟨𝑦⟩ + ⟨𝑧⟩ (1.8) ⟨𝑥2⟩ = ⟨𝑦2⟩ + ⟨𝑦⟩⟨𝑧⟩ + ⟨𝑧2 ⟨𝑥3⟩ = ⟨𝑦3⟩ + ⟨𝑦2⟩⟨𝑧⟩ + ⟨𝑦⟩⟨𝑧2⟩ + ⟨𝑧3 ⟨𝑥4⟩ = ⟨𝑦4⟩ + ⟨𝑦3⟩⟨𝑧⟩ + 6⟨𝑦2⟩⟨𝑧2⟩ + ⟨𝑦⟩⟨𝑧3⟩ + ⟨𝑧4⟩.

De plus, les moments de la distribution 𝑦 sont connus puisqu’il s’agit d’une distribution gaussienne

⟨𝑦⟩ = 0 ⟨𝑦2⟩ = 1 ⟨𝑦3⟩ = 0 ⟨𝑦4⟩ = 3 . (1.9) Nous pouvons ainsi obtenir les moments de la distribution 𝑔(𝑧) permettant d’obtenir la probabilité d’avoir un voxel ayant une déviation systématique 𝑧.

⟨𝑧⟩ = ⟨𝑥⟩ (1.10)

⟨𝑧2⟩ = ⟨𝑥2⟩ − 1 ⟨𝑧3⟩ = ⟨𝑥3⟩ − 3⟨𝑧⟩ ⟨𝑧4⟩ = ⟨𝑥4⟩ − 6⟨𝑧2⟩ − 3

Un plus grand nombre de moments permet de définir avec plus de précision la distribution 𝑔(𝑧). En pratique, avec le nombre limité de voxels, les quatre premiers moments sont suffisants. L’ansatz la plus simple de la distribution 𝑔(𝑧) totalement déterminée par ses quatre premiers moments est

𝑔(𝑧) = 𝛼1𝛿(𝑧 − Δ1) + 𝛼2𝛿(𝑧 − Δ2) + (1 − 𝛼1− 𝛼2)𝛿(𝑧) (1.11) avec 𝛼1la fraction de voxels ayant une déviation systématique de Δ1et 𝛼2la fraction de voxels ayant une déviation systématique de Δ2. 𝛿 est le delta de dirac. Les déviations systématiques

(27)

sont évaluées en unités de l’incertitude statistique. La composante restante (1 − 𝛼1− 𝛼2) représente la fraction de voxels n’ayant pas de déviation systématique. On peut obtenir les valeurs des paramètres 𝛼1, Δ1, 𝛼2 et Δ2 à partir des moments et du système d’équation suivant 𝛼1Δ1+ 𝛼2Δ2= ⟨𝑧⟩ (1.12) 𝛼1Δ2 1+ 𝛼2Δ22= ⟨𝑧2⟩ 𝛼1Δ3 1+ 𝛼2Δ32= ⟨𝑧3⟩ 𝛼1Δ4 1+ 𝛼2Δ42= ⟨𝑧4⟩.

(28)

La probabilité 𝑓(𝑥) d’obtenir un voxel ayant une déviation 𝑥 devient 𝑓(𝑥) = √1 2𝜋[𝛼1exp (− (𝑥 − Δ1)2 2 ) + 𝛼2exp (− (𝑥 − Δ2)2 2 ) + (1 − 𝛼1− 𝛼2)exp (− 𝑥2 2 )] . (1.13) Pour chaque cas, l’histogramme d’erreur 𝑥 et ses moments ont été calculés. La fonction scipy.optimize.least_squares a été utilisée pour résoudre le système d’équation avec pour contraintes que les 𝛼 soient contenus entre 0 et 1 puisqu’ils représentent une fraction, les Δ étant en unités de l’incertitude statistique. Afin de pouvoir interpréter les valeurs de Δ, nous calculons l’estimation de l’erreur relative pour chaque voxel

Erreur relative = 100 ×𝜎𝐷

𝐷. (1.14)

En calculant la moyenne sur tous les voxels, nous obtenons une estimation de l’erreur relative correspondant à un écart-type. Cette valeur peut ensuite être multipliée aux Δ pour obtenir une estimation de l’erreur relative provenant de la déviation systématique entre les deux simulations.

1.6 Calcul de l’efficacité

On peut estimer l’efficacité d’un estimateur Monte Carlo en utilisant la formule suivante[43]

𝜀 = 1

𝑡𝜎2, (1.15)

où 𝑡 est le temps requis pour compléter la simulation et 𝜎 est l’erreur relative moyenne. Puisque la diminution d’un facteur 2 de l’erreur demande une augmentation d’un facteur 4 du nombre de particules simulées et donc du temps de calcul, l’efficacité reste constante pour une géométrie donnée. Plus celle-ci est grande, plus l’algorithme calcule le résultat à la précision voulue rapidement.

1.7 Matériel informatique utilisé

Toutes les simulationsbGPUMCDont été effectuées avec une carte graphique Nvidia Titan X (architecture Pascal) contenant 3584 coeurs de calcul et 12 GB de mémoire vive.

(29)

Chapitre 2

Développements additionnels de

bGPUMCD

Conjointement au processus de validation, plusieurs modifications ont été apportées à bG-PUMCD. Un travail de modernisation et d’uniformisation du code a premièrement été effectué. Ensuite, des erreurs ou des manquements dans l’implémentation de l’algorithme ont été corri-gées ou ajoutés. Finalement, plusieurs optimisations ont été apportées afin d’augmenter la vitesse de calcul. Un estimateur de parcours exponentiel a aussi été implémenté et est présenté à la section 2.8.

2.1 Modernisation du code

Un effort de modernisation du a été effectué pour la rendre plus facile à utiliser et à développer. Le système était initialement compilé à l’aide du programe make[44]. Cette méthode est très répandue sur la plateforme Linux mais comporte plusieurs limitations. La gestion manuelle des dépendances et du type d’architecture de la carte graphique, le manque de support pour une compilation multi-plateforme ainsi que le besoin de définir manuellement la manière de compiler le code rendent l’implémentation du build system fragile et difficilement adaptable. Un nouveau build system a été développé à partir de la plateforme CMake[45]. Cette plateforme permet de définir de manière déclarative la construction du projet. De plus, la gestion des dépendances se fait automatiquement. La compilation multi-plateforme sur Windows est potentiellement plus facile mais la gestion des chemins du système de fichier (ie. slash vs.

backslash) reste à modifier pour permettre une utilisation sur Windows. Il n’est ainsi plus

nécessaire de connaître les détails d’installation des dépendances qui varient d’un système à l’autre. Aussi, un script a été développé pour permettre d’obtenir l’architecture des cartes disponibles sur le système et de compiler automatiquement le code en fonction de celles-ci. La version 3.10 a été utilisée.

(30)

L’ajout d’un outil de formattage automatique du code a aussi été effectué. clang-format est un programme permettant de modifier des fichiers sources de manière à ce que tous les paramètres stylistiques tel que l’indentation, le positionnement des brackets, l’utilisation des caractères tab ou la longueur des lignes soit cohérents dans l’ensemble de la codebase. Cette modification du code ne change pas son fonctionnement mais permet plutôt d’augmenter grandement la lisibilité de celui-ci.

Un passage à C++11 a aussi été effectué[46]. Cette version du langage ajoute une grande quantité d’outils dans la librairie standard tel que les variables atomiques qui sont des variables uniquement modifiables par un thread à la fois ce qui évite les situations de concurrence et permet aux threads de communiquer entre eux[47]. Une librairie de nombres aléatoires CPU et une librairie de gestion des threads a aussi été ajoutée. Les implémentations initiales de ces trois éléments étaient des implémentations maison développées dans bGPUMCD. L’utilisation des implémentations faisant partie de la librairie standard diminue la quantité de code à gérer dans le projet en éliminant ces implémentations maison.

Plusieurs avertissements de compilations ont été activés pour permettre de découvrir plus tôt des problèmes potentiels dans la codebase. Les plus importants étant -Wall, -Wextra, -Wshadow et -Wconversion. Les deux premiers sont une collection d’avertissements communs. -Wshadow permet de s’assurer qu’aucune variable n’en cache une autre par utilisation du même nom ce qui est pratique pour gérer convenablement les variables d’incréments des boucles for. -Wconversion permet, quand à lui, de trouver les endroits où une conversion destructrice se produit tel que lors de la conversion d’un double en float ou la conversion d’un float en int. Dans un code qui manipule des positions absolues et des indices en parallèle comme celui de bGPUMCD, cet avertissement est important pour éviter des erreurs silencieuses et difficiles à identifier. L’activation de ces avertissements a fait ressurgir plusieurs endroits potentiellement problématiques dans la codebase. Ceux-ci ont été réglés.

2.2 Modification du format des fichiers d’entrée

Afin de faciliter le processus de validation et de comparaison avecALGEBRA,bGPUMCDa été modifié pour prendre en entrée les mêmes deux fichiers permettant de spécifier la géométrie à simuler que ALGEBRA. Ces deux fichiers sont le fantôme phantom.egsphant dont le format provient de DOSXYZnrc et est défini dans son manuel d’utilisateur[29]. Le fichier contient les dimensions de la géométrie voxelisée ainsi que les informations sur les matériaux et les densités de chaque voxel, ainsi que le fichier dwells.dat contenant les informations de position, d’orientation et de temps d’arrêts des différentes positions d’arrêt à simuler. Le fait que bGPUMCD utilise les mêmes fichiers que ALGEBRApermet de partager tout cas défini pour l’un avec l’autre immédiatement.

(31)

2.3 Correction de la gestion des photons diffusés qui

retournent dans la simulation

DansbGPUMCD, la région d’intérêt voxelisée est appelée la scoring region. Les paramètres de celle-ci permettent de distinguer si un photon s’y trouve ou s’il est à l’extérieur. La scoring

region est elle-même contenue dans une autre région qu’on nomme tracking region qui défini

les limites dans lesquelles les photons se déplacent. La tracking region peut être plus grande que la scoring region pour permettre, par exemple, d’ajouter du milieu diffusé autour d’une géométrie plus petite. C’est le cas, par exemple, du premier cas de test défini par leWG-DCAB dans lequel la région voxelisée de 20.1 cm de côté est englobée dans une région homogène de 51.1 cm de côté[1].

Dans l’implémentation initiale de l’estimateur de parcours linéaire, il existait un problème dans la gestion des photons commençant leur parcours hors de la scoring region. En effet, pour chaque déplacement de photon, l’estimateur doit normalement enregistrer un événement dans chaque voxel parcouru mais peut ignorer les événements se produisant dans la tracking region mais hors de la scoring region. La logique utilisée initialement consistait à vérifier à chaque étape du tracé de rayon si on se trouvait toujours dans la scoring region et à stopper celui-ci du moment que cette condition n’était plus valide.

Le problème de cette implémentation est qu’une catégorie de photons, ceux qui commencent leur parcours hors de la scoring region mais y entrent, ne seront jamais enregistrés convenablement. La logique de la condition étant basée sur le fait qu’un photon commence son parcours dans la

scoring region. Si ce n’est pas le cas, celle-ci se déclenche immédiatement et aucun parcours n’est

enregistré. Cela crée un biais dans l’estimation de la dose proche des interfaces de la scoring

region car une quantité non négligeable de dose diffusée n’est jamais enregistrée. La solution

implémentée consiste à toujours effectuer le tracé de rayon d’un bout à l’autre du parcours du photon. On s’assure ainsi d’enregistrer l’entièreté de la trace à tout coup. La figure 2.1 présente la différence obtenue entre l’implémentation initiale et la nouvelle implémentation. On peut observer que la dose proche de la limite de la scoring region a une erreur relative jusqu’à 5 % par rapport aux données de référence due au fait que les photons de diffusion revenant dans la scoring region n’étaient pas simulés correctement.

2.4 Correction de l’implémentation de la diffusion Rayleigh

L’implémentation de la diffusion Rayleigh consiste à déterminer l’angle de diffusion à partir de l’énergie du photon et du matériau dans lequel il se trouve. La méthode utilisée dans bGPUMCD est la même que celle implémentée dans Geant4[48] qui consiste à échantillonner la section efficace de Thomson couplée à une facteur de forme relativiste[31] tel que présenté par l’équation 2.1. 𝐹 est le facteur de forme atomique. Les facteurs de forme sont définis en

(32)

−10.0 −7.5 −5.0 −2.5 0.0 2.5 5.0 7.5 10.0 y −10.0 −7.5 −5.0 −2.5 0.0 2.5 5.0 7.5 10.0 x z = 0.0 −4 −2 0 2 4 Erreur relative [%]

(a) Résultat initial

−10.0 −7.5 −5.0 −2.5 0.0 2.5 5.0 7.5 10.0 y −10.0 −7.5 −5.0 −2.5 0.0 2.5 5.0 7.5 10.0 x z = 0.0 −1.5 −1.0 −0.5 0.0 0.5 1.0 1.5 Erreur relative [%] (b) Résultat corrigé

Figure 2.1 – Effet de la correction apportée sur la gestion des photons diffusés présenté à la Section 2.3. Le cas de figure utilisé est le premier cas du WG-DCAB[1]. En (a), le résultat obtenu avant la correction. En (b), celui obtenu après la correction.

fonction du paramètre 𝑋 qui dépend de l’angle de diffusion et de l’énergie.

d𝜎(𝐸, 𝜃) dΩ = 𝑟2 𝑒 2(1 +cos 2𝜃) × 𝐹2(𝑋, 𝑍) (2.1) 𝑋 =sin (𝜃/2)/𝜆 (2.2)

Pour sélectionner l’angle de diffusion, bGPUMCD utilise la méthode de rejet qui permet d’échantillonner indirectement une distribution de probabilité. Le principe est le suivant : on échantillonne uniformément la plage de valeurs possibles de la distribution de probabilité, on tire ensuite un second nombre aléatoire entre 0 et la valeur maximale de la distribution, si le second nombre est inférieur à la valeur de la distribution de probabilité à l’endroit du premier nombre, on accepte la première valeur, sinon, on recommence du début. Cette méthode permet d’échantillonner facilement une distribution en échantillonnant l’espace cartésien 2D contenant la distribution et en ne sélectionnant que les éléments se trouvant sous la courbe. Cette méthode est potentiellement très inefficace. En effet, si la distribution est très inégale, un grand nombre d’essais se trouveront en dehors de la distribution. Dans le cas présent, le calcul de l’effet des interactions n’est pas le facteur limitant la vitesse d’exécution. La simplicité d’implémentation de la méthode l’emporte donc sur son inefficacité.

Par contre, l’implémentation initiale comportait une erreur. Premièrement, le facteur de forme est un paramètre qui dépend de l’énergie du photon et du milieu d’interaction[31]. Pourtant, aucune information à propos du matériau n’était fournie à la fonction de l’effet Rayleigh et le facteur de forme du premier matériau défini dans la mémoire globale était toujours utilisé

(33)

−2.5 0.0 2.5 5.0 7.5 10.0 12.5 15.0 y −5.0 −2.5 0.0 2.5 5.0 7.5 10.0 12.5 x z = -68.85000000000001 −2 −1 0 1 2 Erreur relative [%]

(a) Résultat initial

−2.5 0.0 2.5 5.0 7.5 10.0 12.5 15.0 y −5.0 −2.5 0.0 2.5 5.0 7.5 10.0 12.5 x z = -68.85000000000001 −2 −1 0 1 2 Erreur relative [%] (b) Résultat corrigé

Figure 2.2 – Erreur relative debGPUMCD par rapport àALGEBRApour le cas clinique du cancer de la prostate. (a) représente le résultat initial et (b) représente le résultat corrigé.

peu importe l’endroit de l’interaction. La gestion du type de matériau a été implémentée et le bon facteur de forme est maintenant utilisé. Une simulation de validation a été effectuée en utilisant le cas clinique du cancer de la prostate. La figure 2.2 montre que l’effet de la correction est nul pour ce cas. L’erreur n’avait donc pas un impact majeur sur la valeur de la dose déposée pour des cas cliniques.

2.5 Lecture asynchrone de l’espace de phase et passage du

format ROOT à un format binaire

Pour simuler les sources de curiethérapie, bGPUMCD utilise un système de simulation de géométries complexes basé sur des quadriques lui permettant de simuler des formes géométriques tel que des demi-sphères ou des cylindres. Ce système permet donc d’implémenter les différentes composantes des sources qui sont beaucoup plus petites que la taille des voxels généralement utilisés. Cette opération est coûteuse en temps de calcul et est limitée dans la précision de l’implémentation de la géométrie de la source. Puisque la géométrie de la source ne change pas peu importe sa position ou son orientation, nous pouvons utiliser une optimisation courante en Monte Carlo, l’utilisation d’un espace de phase[49]. Un espace de phase est un fichier contenant les caractéristiques d’une grande quantité de photons (dans ce cas). Le principe étant de simuler les interactions à l’intérieur de la source et d’enregistrer les informations de position, de direction et d’énergie de tout photon qui en sort. Le programmeALGEBRA[2] est utilisé pour produire cet espace de phase puisque les géométries des sources utilisées dans la présente validation sont déjà implémentées dans celui-ci. Un autre avantage d’utiliser ALGEBRAest que l’implémentation des sources a déjà été vérifiée et n’a pas à être reproduite dans bGPUMCD.

(34)

Tableau 2.1 – Temps requis (en ms) pour charger en mémoire un million de photons à partir de l’espace de phase contenu en mémoire de stockage.

Format Sans Cache I/O Avec Cache I/O ROOT 10 600 ± 300 860 ± 20

Binaire 520 ± 70 33 ± 3

Lorsqu’un espace de phase est utilisé dans bGPUMCD, le programme doit charger le nombre de photons à simuler avant la simulation de chaque lot. Lorsque le lot a été simulée avec succès, une autre série de photons est chargée et le cycle continue. Le temps requis pour compléter un lot est la somme du temps de chargement de l’espace de phase et de la simulation elle même. L’implémentation initiale de la lecture des espaces de phase utilise le format initial créé par ALGEBRA. Celui-ci est un fichier ROOT organisé en un TTree contenant six branches de float : la position (x, y et z), la direction (𝜃 et 𝜑) et l’énergie du photon. Ce format est portable et facilement utilisable à l’aide de ROOT ou pyROOT. Par contre, la lecture de celui-ci est très lente puisque chaque photon doit être lu séquentiellement et son information doit être convertie dans le format natif qu’utilise bGPUMCD(voir le fragment de code 2.1). Pour accélérer la lecture de l’espace de phase, un script a été développé. Celui-ci convertit l’espace de phase produit parALGEBRAen un fichier binaire contenant la même information mais formattée dans le format natif de bGPUMCD. Cela permet de transformer une série d’accès mémoire et de calcul en un seul accès pour l’entièreté du lot. Le tableau2.1 présente le temps de chargement des deux types de formats. On peut observer une accélération d’un facteur 20 pour le cas avec un cache froid et d’un facteur 26 pour le cas avec cache un cache chaud. Le cache a été purgé avec la commande suivante :

echo 3 | sudo tee /proc/sys/vm/drop\_caches

Listing 2.1 – Structure en mémoire native d’un photon dans bGPUMCD. Si l’espace de phase a le même format sur disque que le format utilisé par bGPUMCD, aucune conversion des données et une seule lecture de disque est requise.

struct particle { float3 position; float3 orientation; float energy;

};

En plus de l’augmentation de la vitesse de chargement des photons, il est possible de diminuer encore plus l’impact de la lecture de l’espace de phase sur le temps de calcul. En effet, lorsque le système effectue la simulation des photons préalablement chargés, il n’y a que la carte graphique qui travaille et le reste du système attend la fin du calcul. Il est donc possible

Figure

Figure 0.1 – Schéma décrivant les paramètres géométriques utilisés dans la définition du formalisme du TG-43[4].
Figure 0.2 – Estimation de
Figure 1.1 – Schéma décrivant la source hypothétique définie par le WG-DCAB[38]. La longueur active de la source est de 3.5 mm
Tableau 1.1 – Paramètres géométriques des cas cliniques. Cas Taille des voxels [mm] Taille totale [cm] Sein 0.977 × 0.977 × 1.25 50 × 50 × 9 Paroi thoracique 0.977 × 0.977 × 2 50 × 50 × 20.8 Poumon palliatif 0.684 × 0.684 × 1.5 35 × 35 × 20.4 Prostate 0.37
+7

Références

Documents relatifs