Accélération de l'algorithme du lancer de rayons en environnement parallèle hétérogène
Auteur / Autrice : | Jean-Patrick Roccia |
Direction : | Mathias Paulin, Christophe Coustet |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance en 2013 |
Etablissement(s) : | Toulouse 3 |
Mots clés
Mots clés contrôlés
Mots clés libres
Résumé
Le lancer de rayons permet d'obtenir une grande précision pour simuler des phénomènes de rayonnements physiques, et ce dans des domaines très variés. Malgré sa relative simplicité, celui-ci pose de multiples problèmes lorsqu'il s'agit de le rendre performant. Les architectures matérielles modernes proposent un parallélisme croissant, symbolisé par une augmentation du nombre de cœurs de calculs disponibles, que ce soit sur CPU ou sur GPU. L'algorithme du lancer de rayons se doit de tirer parti de cette puissance de calcul disponible. En effet, au lieu de traiter les rayons de manière séquentielle, les traiter parallèlement permet d'augmenter significativement les performances. Nos contributions s'étalent sur l'ensemble des éléments clefs pour l'accélération de l'algorithme du lancer de rayons. La première permet d'accélérer la construction d'une structure d'accélération : un KD-Tree. Cette méthode permet d'accélérer la construction en utilisant conjointement le CPU et le GPU, et se compare avantageusement aux méthodes précédemment publiées. Notre seconde contribution permet la répartition des tâches de traversées du KD-Tree entre les CPU et GPU de manière transparente pour l'utilisateur. Notre troisième contribution concerne le test d'intersection rayon-triangle appliqué au KD-Tree et permet de maximiser l'utilisation des instructions SIMD des CPU lors de l'intersection tout en maitrisant la consommation mémoire et préservant les performances sur GPU. Enfin, notre dernière contribution est plus générale, et permet de répartir automatiquement de manière parallèle et transparente des calculs entre les unités de calculs hétérogènes.