Cette méthode n’est toutefois applicable qu’aux prochaines générations de GPU.
Si le ray tracing est utilisé depuis des décennies dans certains domaines, il a fallu attendre 2018 et le lancement des cartes graphiques RTX 2000 pour le voir se généraliser dans le secteur du jeu vidéo. Aujourd’hui, il est géré matériellement par les cartes graphiques RTX de NVIDIA, les Radeon RX 6000 d’AMD, le SoC des consoles nouvelle génération (PlayStation 5 et Xbox Series X / S) et prochainement par certains smartphones avec l’arrivée du SoC Exynos 2200 de Samsung. Dans tous les cas, sa mise en œuvre en temps réel reste très gourmande. Une équipe de chercheurs a publié un article qui expose une technique permettant d’améliorer les performances : le GPU Subwarp Interleaving.
Dans une série de jeux (dont Battlefield V, Control et Minecraft RTX) et d’applications avec des charges de travail ray tracing, cette technique apporterait des gains de 6,3 % en moyenne, et jusqu’à 20 % dans le meilleur des cas.
Vidéo : NVIDIA promeut son ray tracing RTX via trois vidéos
Une méthode non applicable aux GPU actuels
Avant tout chose, sachez que cette méthode requiert des ajustements micro architecturaux et ne peut donc s’appliquer à nos GPU actuels par une simple mise à jour des pilotes par exemple. De fait, les travaux des auteurs portent justement sur les entraves induites par la conception actuelle des GPU. Pour leurs expérimentations, ils ont utilisé des GPU Turing modifiés.
Ils expliquent :
“Les GPU regroupent les threads en unités, que nous appelons warps, lesquelles acquièrent un PC (program counter) unique et s’exécutent en SIMT (single instruction, multiple thread) Ensuite, les GPU masquent les interruptions en programmant simultanément plusieurs warps actifs”. Or, ce déroulement peut être à l’origine de problèmes dans le ray tracing en temps réel en raison de la diversité des warps, de la rapidité à laquelle ils changent ou encore des scénarios d’absence de warps. Résultat : une perte d’efficacité des GPU lorsque l’ordonnanceur manque de threads.
C’est là que la technique du Subwarp Interleaving peut potentiellement améliorer les choses : “Lorsqu’une opération à longue latence bloque un warp et que le planificateur de warp du GPU ne trouve pas de warp actif vers lequel basculer, un planificateur de subwarp peut à la place basculer l’exécution vers un autre subwarp divergent du warp actuel.”
Sur un GPU Turing dont la micro architecture a été modifiée pour permettre cet “entrelacement” des warps, les chercheurs ont constaté les gains de performance ci-dessous.
L’article a été publié sur le site de NVIDIA et la plupart des auteurs travaillent pour l’entreprise. Il est ainsi tout à fait envisageable qu’elle mette à profit cette approche pour ses prochaines générations de GPU.
Source : NVIDIA via Tom’s Hardware US
heu j’ai rien compris à la technique utilisée mais ça a l’air assez prometteur… 😉