5 research outputs found

    Accélération de l'algorithme du lancer de rayons en environnement parallèle hétérogène

    Get PDF
    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.Ray tracing allows to obtain high accuracy to simulate physical phenomena of radiation, and in diverse areas. However, despite its relative simplicity, many problems occur when it comes to the performance. Modern hardware architectures offer a growing parallelism, symbolized by a growing number of available cores, whether on CPU or GPU. The ray tracing algorithm should take advantage of this available computing power. Indeed, instead of treating the rays sequentially, parallel processing can significantly increase performance. Thesis contributions are spread over all the main elements for ray tracing algorithm acceleration. The first one speeds up the construction of a high quality acceleration structure: a KD-Tree. This method can speed up the construction by using jointly CPU and GPU, and outperforms previously published method. The second contribution allows to spread the KD-Tree traversal steps between CPU and GPU transparently for users. The third contribution concerns the ray-triangle intersection test applied to the KD-Tree and allows to maximize the use of the SIMD instructions on CPU in the intersection test while controlling memory usage and maintaining performance on GPU. Finally, the last contribution is more general, and spreads automatically and transparently parallel computations tasks between heterogeneous computing units

    Hybrid CPU/GPU KD-Tree Construction for Versatile Ray Tracing

    No full text
    International audienceIn this paper, we propose an hybrid CPU-GPU ray-tracing implementation based on an optimal Kd-Tree as acceleration structure. The construction and traversal of this KD-tree takes benefits from both the CPU and the GPU to achieve high-performance ray-tracing on mainstream hardware. Our approach, flexible enough to use only one computing units (CPU or GPU), is able to efficiently distribute workload between CPUs and GPUs for fast construction and traversal of the KD-tree
    corecore