Mémoire de maîtrise (2014)
Document en libre accès dans PolyPublie |
|
Libre accès au plein texte de ce document Conditions d'utilisation: Tous droits réservés Télécharger (882kB) |
Résumé
Cette étude se penche sur les erreurs issues de la représentation imparfaite des nombres réels par les ordinateurs dans le cadre de programmes de calcul scientifique, plus particulièrement ceux exécutés sur carte graphique (GPU). Ces erreurs se produisent parce que les nombres manipulés constituent seulement une approximation des nombres réels, qui doivent donc être arrondis. En général, les calculs sont faits avec une précision suffisante pour donner les résultats attendus, mais il arrive que les erreurs d'arrondi s'accumulent ou se combinent pour donner des résultats inexacts. L'objectif de ce travail est de déterminer, à l'aide d'une série de tests, si de telles erreurs sont présentes dans un programme spécifique sur GPU, bGPUMCD. bGPUMCD est un programme utilisé en radiothérapie pour simuler la quantité de radiation distribuée à un patient. La simulation est basée sur une méthode de Monte-Carlo, c'est-à-dire qu'un grand nombre de particules sont simulées individuellement, avec leur trajectoire et leurs interactions, et l'énergie qu'elles déposent en chaque point du volume simulé est enregistrée. Pour calculer le dépôt d'énergie, le volume est divisé en une grille régulière de voxels, qui contiennent chacun l'énergie donnée par toutes les particules qui les ont traversés. Pour évaluer la précision des résultats de bGPUMCD, trois aspects des calculs sont testés : la précision utilisée (simple ou double), l'implantation des fonctions arithmétiques (logicielle ou matérielle) et la dimension des voxels. Deux composantes de bGPUMCD sont également analysées plus en profondeur : l'accumulation de l'énergie dans chaque voxel et le traçage de particule. Pour faciliter, de façon générale, l'analyse de programmes pour des erreurs numériques, une méthode automatisée de détection d'erreurs est développée. Les résultats révèlent la présence d'erreurs importantes dans le processus d'accumulation d'énergie dans les voxels entourant les sources de radiation. Lorsque l'énergie atteint une certaine quantité, les contributions individuelles des particules sont trop petites pour avoir un effet lors d'une addition en précision simple. Par ailleurs, une fonction importante pour le calcul de la trajectoire des particules retourne dans quelques cas rares un résultat erroné. Les autres aspects étudiés, soient l'implantation particulière des fonctions arithmétiques et la discrétisation en voxels, ne semblent pas causer d'erreurs majeures. Finalement, la méthode automatique d'analyse mise au point permet de détecter les erreurs trouvées par d'autres moyens au cours de l'étude. Des erreurs d'origine numérique se produisent en effet dans bGPUMCD, sous des conditions très spécifiques. Certaines de ces erreurs sont facilement réparables, par exemple en changeant l'ordre de certaines opérations, tandis que d'autres nécessitent des changements majeursv dans les algorithmes utilisés. Les types d'erreurs détectées sont très génériques et peuvent se retrouver dans de nombreux programmes de calcul scientifique, qu'ils soient basés sur des méthodes de Monte-Carlo ou non ; nos résultats peuvent donc servir d'exemples pour certaines situations auxquelles il est nécessaire de porter une attention particulière lors du développement d'une application sur GPU.
Abstract
This study examines errors produced by the representation of real numbers by processors in the context of a scientific program executed on a graphics processor (GPU). This representation only approximates real numbers and thus contains a rounding error. In most cases, this error is too small to significantly alter the computed values, but in some situations it can accumulate in such a way that the results become inaccurate or meaningless. The purpose of this work is to design a series of tests that will help determine whether such errors occur in a specific GPU-based program, bGPUMCD. bGPUMCD is used in radiation therapy to simulate the radiation distribution received by a patient. This simulation is based on Monte Carlo methods, by which a large number of particles are simulated individually to determine the amount of energy they deposit in every part of the simulated volume. The volume is divided into voxels for the purpose of energy scoring. To provide a general idea of the precision of bGPUMCD's results, three aspects of the computations were tested: their precision (single or double), the implementation used for arithmetic functions (software of hardware) and voxel size. Additionally, two components of bGPUMCD, energy accumulation per voxel and particle tracking, were further tested. Finally, an automatic error detection method was implemented in order to provide an easier way to analyse programs for numerical errors. Major errors were detected in the energy accumulation process, in the voxels surrounding radiation sources. When the energy in a voxel reaches a certain threshold, contributions from individual particles are too small to be taken into account during a single-precision addition. In the particle tracking component, a function was found to return a meaningless value in some rare cases. The other tests indicate no major errors in other aspects of the computations (arithmetic functions and discretization). The automatic analysis method was able to detect the errors found by other means during the study. Numerical errors do occur in bGPUMCD, under very specific conditions. Some can be avoided by simply reordering some operations, while others require major changes in the algorithm. The detected errors arise from very simple computations which can be found in many program other than bGPUMCD, which may or may not be Monte Carlo simulations. When precision is important, careful consideration must be given to such possibilities.
Département: | Département de génie informatique et génie logiciel |
---|---|
Programme: | Génie informatique |
Directeurs ou directrices: | Philippe Després et Benoît Ozell |
URL de PolyPublie: | https://publications.polymtl.ca/1520/ |
Université/École: | École Polytechnique de Montréal |
Date du dépôt: | 22 déc. 2014 15:14 |
Dernière modification: | 28 sept. 2024 05:24 |
Citer en APA 7: | Magnoux, V. F. (2014). Évaluation de l'impact des erreurs numériques dans un logiciel de calcul de dose en radiothérapie par la méthode de Monte-Carlo sur GPU [Mémoire de maîtrise, École Polytechnique de Montréal]. PolyPublie. https://publications.polymtl.ca/1520/ |
---|---|
Statistiques
Total des téléchargements à partir de PolyPublie
Téléchargements par année
Provenance des téléchargements