Description du poste
L’objectif principal du stage est de travailler sur l’intégration de WebGPU dans ParaView (https://www.paraview.org/), logiciel open source de référence pour la visualisation scientifique de données massives.
ParaView se repose sur la bibliothèque VTK (https://vtk.org/) dédiée à la visualisation scientifique. Elle permet d’explorer des données issues de différents domaines (simulation, expériences, mesures…) et de leur donner un sens graphique. Cette bibliothèque ne gérait jusqu’à récemment qu’OpenGL, mais contient maintenant un support expérimental de WebGPU. Pour la partie interface graphique, ParaView se base sur la bibliothèque Qt. Il existe déjà des démonstrateurs Qt WebGPU que nous souhaitons explorer dans le cadre du stage.
Un autre point important avec ParaView est le support de rendu distribué. Actuellement cela est fait grâce à une bibliothèque dédiée nommée IceT (https://gitlab.kitware.com/icet/icet) qui nécessiterait d’être mise à jour pour supporter WebGPU. Le stage explorera les possibilités d’utilisation de IceT avec WebGPU.
En fonction de l'avancée du stage d’autres sujets pourront être étudiés comme le support de cartes graphiques sans rasterisation (tels que certains modèles de GPU IA) souvent utilisées par les superordinateurs. L’intégration de WebGPU dans VTK ne couvrant pas complètement ce que fait la partie OpenGL, d’autres sujets tels que le rendu volumétrique, le PBR ou encore les render passes pourront compléter le sujet si besoin.
Principales missions du stage
Test et évaluation des prototypes Qt et WebGPU
Prototype et intégration du support WebGPU dans ParaView
Prototype et intégration du support de rendu distribué avec IceT pour WebGPU
Evaluation de gain de performance en distribué entre WebGPU et OpenGL dans ParaView
Documenter et communiquer sur l’ensemble du travail réalisé.
Profil recherché
- Ecole d’ingénieur dernière année / Master 2
Compétences attendues
Connaissance des pipelines classiques de rendu (OpenGL ou autres) et leur programmation via des shaders.
Bonnes connaissances en C++.
Connaissances en CMake appréciées.
Connaissances en programmation distribuées avec MPI est un plus.
A l’aise dans la communication en anglais à l’écrit et à l’oral.
En cliquant sur "JE DÉPOSE MON CV", vous acceptez nos CGU et déclarez avoir pris connaissance de la politique de protection des données du site jobijoba.com.