GDC: GPU PowerVR Wizard avec ray tracing accéléré

Publié le 19/03/2014 à 09:42 par
Imprimer

Imagination Technologies profite de la Game Developer Conference de San Francisco pour faire une annonce qui pourra difficilement passer inaperçue dans le petit monde du rendu 3D temps-réel : la possibilité d'intégrer un module d'accélération matérielle du ray tracing dans ses GPU PowerVR mobiles !

Il y a 4 ans, certains ont pu se demander pourquoi Imagination Technologies avait mis la main sur Caustic Graphics, une petite startup californienne qui misait sur l'accélération matérielle du ray tracing. Nous avons dorénavant la réponse : intégrer sa technologie dans les GPU PowerVR.


Un exemple de rendu faisant appel au ray tracing PowerVR

Cette technologie issue de Caustic Graphics et dont le développement a été poursuivi par Imagination Technologies repose sur une API de bas niveau, OpenRL, développée sur la base du modèle d'OpenGL. Cette API peut être exploitée autant sans accélération matérielle qu'avec, notamment parce qu'elle gère d'une manière transparente pour le développeur les structures de données nécessaire au ray tracing. Des accélérateurs Caustic R2100 (500$) et R2500 (1000$) sont d'ailleurs commercialisés et peuvent être exploités pour réduire significativement le temps de rendu sous Maya ou mental ray.

Le cœur de métier d'Imagination Technologies se situe dans la mobilité, notamment à travers ses GPU PowerVR commercialisés sous licence, et il peut paraître autant surprenant que logique d'y voir débarquer le ray tracing. Cette technique de rendu n'est-elle pas trop gourmande pour de petits SoC ? Oui et non. Imagination Technologies est très claire quant au but visé : le rendu hybride. Il ne s'agit pas de remplacer le rendu 3D classique (ou TBDR cher à la société) mais de l'améliorer ou de l'optimiser à travers quelques touches plus ou moins importantes de ray tracing.

Plusieurs cas pratiques sont présentés par Imagination Technologies, à commencer par l'éclairage précalculé dans des lightmaps, des "textures" qui sont ensuite appliquées sur les surfaces pour en représenter l'éclairage (avec illumination globale et occultation ambiante). Mettre en place un éclairage dynamique à base de lightmaps n'est pas simple, il est d'ailleurs en général statique, puisque cela revient à devoir les mettre à jour pour chaque image. Le ray tracing permet d'accélérer cette tâche et de la rendre réaliste pour du rendu en temps réel.

Un autre cas est un rendu hybride dans lequel le ray tracing n'est utilisé que pour certaines surfaces qui présentent de la transparence ou des réflexions. De quoi profiter des performances du rendu classique et de la finesse du ray tracing uniquement là où c'est jugé utile par les développeurs. De quoi également profiter d'optimisations énergétique en utilisant le ray tracing là où le rendu classique est peu efficace et demande des algorithmes lourds pour contourner ses limitations. Un rendu purement à base de ray tracing est possible mais en termes de performances, l'implémentation n'est pas prévue pour cela.


[ Rastérisation classique ]  [ Rendu hybride avec ray tracing ]


Avec les futurs GPU PowerVR Wizard, Imagination Technologies vient en fait "simplement" greffer un module de ray tracing sur ses GPU actuels, de la série PowerVR Series6XT (nom de code Rogue, que nous avions abordé l'an passé sur base des premières déclinaisons). Le futur PowerVR GR6500 est ainsi identique à l'actuel PowerVR Series6XT GX6450 mais intègre l'unité de ray tracing (RTU). Cette unité spécialisée communique avec les unités de calcul principales du GPU (les "cores") mais Imagination Technologies ne précise comment le travail est réparti ni quel est le coût de la RTU. Nous pouvons cependant supposer au vu de l'usage mobile qui est visé, et donc de l'intégration dans un GPU lui-même intégré dans un SoC, que ce coût reste modéré.

Voici la description des blocs qui ont été ajoutés au GPU pour supporter l'accélération du ray tracing :
- a dedicated ray tracing data master that feeds ray intersection data to the main scheduler, in preparation for shaders to run, which evaluate the ultimate data contribution from the ray.
- a specialized Ray Tracing Unit (RTU) which uses fixed-function math to perform ray tracing intersection queries, in addition to gathering ray coherency in order to reduce power and bandwidth consumption.
- a scene hierarchy generator to speed up dynamic object updates.
- a frame accumulator cache that provides write-combining scattered access to the frame buffer.



A une fréquence de 600 MHz, la RTU et le GR6500 sont capables de lancer 300 millions de rayons par seconde qui pourront représenter jusqu'à 24 milliards de tests et 100 millions de triangles par seconde. A côté de cela nous retrouverons des unités de calcul capables de 150 Gflops (32-bit) ou de 300 Gflops (16-bit), mais il est probable qu'une partie de cette puissance de calcul soit monopolisée par le côté ray tracing du rendu. Notons qu'il est possible d'effectuer du ray tracing via le GPU computing sur la plupart des GPU, mais Imagination Technologies précise que son unité spécialisée est 100x plus rapide dans le cas du PowerVR GR6500.

Voici les détails publiés par la société :
- Full-blown graphics and compute performance: four Unified Shading Clusters (USCs), with 128 ALU cores delivering more than 150 GFLOPS (FP32) or 300 GFLOPS (FP16) at 600 MHz
- Unmatched real-world ray tracing performance: Up to 300 MRPS (million rays per second), 24 billion node tests per second and 100 million dynamic triangles per second at 600 MHz
- PowerGearing G6XT for advanced power management and dynamic resource allocation
- PVR3C™ triple compression technologies (PVRTC and ASTC for texture compression, PVRIC for frame buffer compression, PVRGC for geometry compression)
- Deep Color support for very high image quality at Ultra HD resolutions and beyond
- Support for a range of APIs such as OpenGL ES 3.1/2.0/1.1, OpenGL 3.x, Direct3D 11 Level 10_0, OpenCL 1.2, and OpenRL 1.x
A noter que pour la première fois, Imagination Technologies n'est pas mentionné par Microsoft parmi les partenaires privilégiés pour le développement du futur DirectX. Par ailleurs, alors que pour la Series6 Rogue il était question d'un module DirectX 11 / Tessellation optionnel, il n'est plus mentionné dans le cas des GPU Wizard. Dans un sens, Imagination Technologies pourrait avoir sacrifié le support de toutes les fonctionnalités de DirectX 11/12 au profit du ray tracing.

Imagination Technologies ne commercialise pas directement ses GPU ou des SoC et il reste donc à voir si cette initiative trouvera preneur. Apple, l'un de ses plus gros clients, pourrait par exemple y voir l'opportunité de se démarquer de la concurrence. Dans l'immédiat, Unity vient d'annoncer supporter OpenRL et l'accélération du ray tracing PowerVR dans son moteur Unity 5.

Nous sommes actuellement en route pour la GDC et nous tâcherons d'essayer de voir le tout en action chez Imagination Technologies et/ou Unity que nous avons également prévu de rencontrer.

Vos réactions

Top articles