Suivez

la liste

Contexte et motivations :

La visualisation est une étape cruciale dans beaucoup de domaine scientifique, aussi bien pour guider la modélisation de phénomènes ou encore pour valider ou invalider des modèles. En visualisation scientifique, le rendu volumique direct est une approche permettant de considérer l’ensemble d’un champ scalaire volumique comme un milieu participatif et de simuler l’émission et l’absorption de la lumière pour modéliser différents types de matériaux semi-transparents (cf. images ci-dessus). D’un autre coté, les jeux de données générées par les simulations numériques sont de plus en plus grands et complexes. Pour garantir une visualisation interactive de tels jeux de données, une solution est d’utiliser des approches de rendu parallèle. Dans ce stage, nous nous intéresserons en particulier à un algorithme GPU de rendu volumique direct par lancer de rayon [1] sur des grilles non-structurées (grille volumiques de polyèdres, généralement des tétraèdres) afin de mettre en place une approche de rendu parallèle sur des architectures multi-GPU.

Objectifs du stage :

L’objectif principal de ce stage est de proposer une approche de rendu parallèle multi- GPU adaptée à des maillages volumiques non-structurés générés par des simulations numériques (CFD, etc.) pour leur visualisation interactive. Nous chercherons en particulier à proposer une méthode permettant de répartir équitablement la charge de rendu sur les différents GPU (load balancing [2]) avec une stratégie de composition tenant compte de l’accumulation des propriétés optiques des matériaux dans le volume. Cette approche sera proposée dans une solution logicielle existante, développée dans notre laboratoire qui propose déjà une méthode de rendu volumique direct (mono-)GPU par lancer de rayon, écrite en C++ avec des shaders en CUDA via l’API OptiX (https://developer.nvidia.com/rtx/ray-tracing/optix). Afin de répondre à cet objectif, il sera premièrement nécessaire de prendre connaissance de la solution de rendu déjà en place, et d’étudier la bibliographie sur les méthodes de rendu volumique parallèle d’autre part. Sur la base de ces études préliminaires, il s’agira de proposer une implémentation ainsi que de réaliser des tests d’évaluation de la méthode. La validation pourra se faire sur des données réelles, issues de simulations numériques développées par des équipes de recherche du laboratoire IRMA de l’université de Strasbourg ou encore en provenance du CEA, sur une machine avec 2 GPU A6000 en local et éventuellement une mise à l’échelle sur un cluster de calcul de grande envergure (avec un accès au centre de calcul Roméo https://romeo.univ-reims.fr/).

Profil du candidat :

  • Master 2 ou école d’ingénieur en informatique
  • Un intérêt pour la 3D, la visualisation, le calcul parallèle, la géométrie et plus généralement pour l’informatique et les mathématiques est requis.
  • Le stagiaire doit être à l’aise avec la programmation C++ et une connaissance en programmation GPU avec CUDA et ou OptiX serait un plus.

Les candidats sont invités à envoyer une lettre de motivations et un CV à Jonathan Sarton (sarton@unistra.fr). Nous vous encourageons à nous contacter par e-mail pour toutes questions ou pour avoir des précisions sur le sujet.

Réferences :

[1] G. Marmitt, H. Friedrich, and P. Slusallek. Interactive Volume Rendering with Ray Tracing. In Eurographics State of the Art Reports, 2006.
[2] S. Zellmann, I. Wald, J. Barbosa, S. Dermici, A. Sahistan and U. Güdükbay, "Hybrid Image-/Data-Parallel Rendering Using Island Parallelism," 2022 IEEE 12th Symposium on Large Data Analysis and Visualization (LDAV)