Les derniers contenus liés aux tags Imagination Technologies et GDC

GDC: Vulkan trop compliqué ? Imagination a une solution

Publié le 25/03/2016 à 08:59 par Damien Triolet

Maîtriser les API de plus bas niveau telles que Direct3D 12 et Vulkan représente un challenge pour les développeurs, celles-ci ajoutant à leur travail un niveau de complexité supplémentaire. Mais à travers son nouveau framework, Imagination va essayer de leur simplifier la tâche.

A l'occasion de la GDC 2016, Imagination a rendu disponible la version 4.1 de son SDK  et à l'intérieur de celui-ci un nouvel outil a fait son apparition : le PowerVR Framework. Il représente une couche intermédiaire entre un moteur graphique et une API moderne.

Le niveau de complexité des API de plus bas niveau, que ce soit Direct3D 12 ou Vulkan, va amplifier le besoin de middlewares et de moteurs de jeu prêts à l'emploi. Mais il y a malgré tout encore pas mal de développeurs qui préfèrent mettre en place leur propre solution et pourraient profiter d'un accès simplifié aux nouvelles API. C'est en partant de ce constat qu'Imagination a développé le PowerVR Framework.

Le but est simple : aider les développeurs. Pour cela, ce framework est basé sur un ensemble de bibliothèques statiques qui vont permettre de simplifier les tâches courantes telles que la création des objets, les transferts de données, la gestion du multi-threading etc. Il représente une réintroduction d'un certain niveau d'abstraction là où il n'impacte pas la flexibilité et les performances.

A titre d'exemple, Imagination nous explique que sa démonstration Gnome comprenait à l'origine plusieurs milliers de lignes de code qui ont pu être résumées en centaines de lignes en les réécrivant contre ce nouveau framework. De quoi rendre le code plus abordable et plus facile à maintenir, deux arguments qui ne devraient pas laisser les développeurs indifférents.

Ce framework permet également de supporter plus facilement différentes API et différents types de plateformes. Il peut ainsi viser autant OpenGL ES que Vulkan. Par ailleurs, en plus d'un back-end pour les GPU PowerVR, il en propose actuellement deux autres pour les GPU AMD et Nvidia. Suivant les retours des développeurs, Imagination n'est pas contre l'ajout de back-ends supplémentaires pour les GPU Qualcomm et ARM. L'objectif principal étant que les développeurs exploitent cet outil qui permet de tirer plus aisément le meilleur de ses GPU.

Il n'est par contre pas prévu de l'étendre pour supporter Direct3D 12, les GPU PowerVR n'ayant actuellement pas de présence sur la plateforme Windows. Mais compte tenu des difficultés rencontrées par les développeurs, Imagination s'attend à ce que quelqu'un d'autre propose un outil similaire, peut-être directement Microsoft.

Mise à jour de 19h30: Nvidia nous indique avoir sorti discrètement le mois passé un outil qui a des objectifs similaires : l'API open source Vulkan C++ . Il s'agit également d'une couche intermédiaire qui permet de passer l'API Vulkan C classique vers une approche de type C++ plus simple à manipuler.

Vous pourrez retrouver l'intégralité de la présentation d'Imagination ci-dessous :

 
 

GDC: Imagination: encore plus de ray tracing

Publié le 25/03/2016 à 07:29 par Damien Triolet

Comme nous l'expliquions à l'occasion du CES, Imagination mise beaucoup sur sa technologie d'accélération matérielle du ray tracing et a fait fabriquer son propre GPU, le PowerVR GR6500 pour la mettre en avant. A la GDC, de nouvelles démonstrations étaient présentées.

La première démonstration proposée par Imagination met en avant ce que pourrait apporter un tel GPU dans le monde mobile. Rappelons que le PowerVR GR6500, nom de code Wizard, est un petit GPU de catégorie mobile (4 clusters) mais équipé des modules optionnels dédiés au ray tracing capables de lancer jusqu'à 300 millions de rayons par seconde à 600 MHz.

A travers un rendu hybride, basé sur la rastérisation mais avec quelques touches de ray tracing, il est possible d'améliorer la qualité de certains aspects du rendu avec un coût annoncé comme nettement plus faible que via les méthodes traditionnelles qui sont inadaptées pour de petits GPU. C'est le cas des ombres douces et des réflexions spéculaires illustrées dans cette vidéo :

Imagination explique qu'il est relativement aisé d'implémenter de tels effets accélérés par sa technologie de ray tracing via ses extensions OpenGL ES. Pour aller plus loin et montrer tout l'étendue des possibilités, la seconde démonstration est basée intégralement sur un rendu à base de ray tracing :

Pour faire tourner une telle scène en temps réel, qui représente plus de 2 milliards de lancés de rayons par seconde, plus de puissance est bien entendu nécessaire et Imagination exploite plusieurs GR6500 en parallèle. Dans sa vision, ce type de complexité de rendu est ce que pourrait permettre un éventuel GPU PowerVR de classe "desktop", 8 à 16x plus performant qu'un GR6500 (32 clusters et plus haute fréquence).

Avec cette technologie, Imagination est actuellement ouvert à toutes sortes d'options et ne s'en cache pas. Mais si la porte n'est pas fermée à un GPU de type desktop, c'est avant tout une console de premier plan qui est visée. Mais est-ce bien réaliste ?

Nous avons posé la question à l'actuel fournisseur des consoles de Microsoft, Nintendo et Sony. Cette possibilité est rapidement balayée du revers de la main, probablement avec un brin d'arrogance, par AMD qui compte bien conserver ce marché et ne surtout pas laisser penser à ses investisseurs qu'il pourrait en être autrement.

Imagination admet de son côté que ce n'est pas simple de trouver sa place dans une console mais estime avoir de solides arguments. Et surtout être également ouvert à la possibilité de ne pas fournir un GPU complet mais uniquement sa technologie de ray tracing. Celle-ci pourrait alors être greffée à un autre GPU. Une implémentation qui n'est pas triviale et qui demanderait probablement une longue année de collaboration si un fabricant de console imposait ce choix. Mais c'est une option qui semble être envisagée sérieusement.


La carte PCI Express équipée du GR6500.

En attendant, Imagination indique avoir été surpris par la forte demande de la part des développeurs pour son kit de développement et sa carte PCI Express équipée du GR6500. Elle est actuellement en rupture mais une production supplémentaire qui se compterait cette fois en milliers de cartes vient d'être décidée. Gagner le support d'un maximum de développeurs est un premier pas important.

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

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

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.

GDC: L'architecture PowerVR Series 6 Rogue

Publié le 04/04/2013 à 17:32 par Damien Triolet

Dans une session dédiée à l'architecture PowerVR, Imagination a donné quelques détails sur l'architecture Series 6, nom de code Rogue, qui a été dévoilée il y a plus de deux ans et qui devrait très bientôt arriver dans différents SoC.


L'architecture PowerVR Series 5 est exploitée depuis de nombreuses années, par exemple dans les SoC Atom Intel ou dans l'A4 d'Apple. Elle a évolué il y a un peu plus de 3 ans pour passer en version Series 5XT avec le PowerVR SGX543 qui a doublé la puissance de calcul (elle passe de 8 à 16 MAD par cycle) et amélioré l'efficacité au niveau des débits de triangles et de pixels, notamment avec MSAA. Le support d'OpenCL a par ailleurs été introduit.

Par ailleurs, Imagination a introduit la possibilité d'avoir recours au multicore pour démulitplier la puissance des GPU PowerVR. L'ensemble du GPU SGX543 représente alors un core qui peut être dédoublé jusqu'à 8x, le tout étant piloté par un distributeur de tâche qui intègre un cache commun. Cette notion de core est donc ici assez proche d'un core CPU et n'a rien avoir avec la notion de core utilisée par Nvidia dans ses GPU, y compris Tegra. Comparer le GeForce ULP 72 cores du Tegra 4 au PowerVR SGX543MP4 "seulement 4 cores" est donc un non-sens, même si comme vous vous en doutez le côté commercial ne s'en prive pas.

Notez que le PowerVR SGX544 a ajouté le support de DirectX en niveau 9_3 alors que le PowerVR SGX554 a doublé une nouvelle fois la puissance de calcul qui passe à 32 MAD par cycle par core.

Avec l'architecture PowerVR Series 6, Imagination a dû faire face à la problématique de la consommation énergétique. Dédoubler les cores Series 5XT c'était "simple", mais les GPU finissaient alors par devenir trop gourmands. L'architecture a donc été revue pour devenir similaire à celle des GPU desktops modernes et pouvoir multiplier, à l'intérieur d'une structure fixe, des blocs (USC - Unified Shading Clusters) comprenant des unités de calcul et d'autres des unités de texturing. De quoi supprimer la redondance pour rendre le GPU plus compact et plus économe.


De nombreux petits raffinements ont été apportés à l'architecture, toujours dans le but de la rendre plus efficace. C'est le cas par exemple du passage à un fonctionnement perçu de type scalaire des unités de calcul (comme pour les GeForce 8+ et les Radeon HD 7000+) ou encore du support d'une compression lossless pour la géométrie et les pixels. Le support d'OpenGL 3.0 est complet et du côté DirectX on passe au niveau 10_0. Le support de DirectX 11_1 est par ailleurs possible, optionnellement, avec notamment l'ajout d'un tessellateur.

Parmi les détails, Imagination précise ceci :
- les unités de texturing ont gagné en performances lors d'accès dépendants
- le support de la basse précision lowp (FX10) a été abandonné, ne restent que le mediump (FP16) et le highp (FP32)
- les branchements dynamiques sont dorénavant traités par groupes de threads et peuvent être moins performants en cas de divergence, comme sur GPU desktop et contrairement aux Series 5
- lors de l'utilisation de MRT - Multiple Render Targets (écriture vers plusieurs buffers en une seule passe), il faut prendre garde à ne pas dépasser 128 bits par pixel, le maximum supporté pour profiter du buffer lié au tile rendering, ce qui se traduit grossièrement par "HDR + MSAA + MRT = pas bien"

Imagination prévoit actuellement 6 variantes, les PowerVR G6100, G6200 et G6400 ainsi que les PowerVR G6230, G6430 et G6630. D'après ce que communique Imagination, les G6x30 affichent des débits bruts similaires aux G6x00 mais avec quelques améliorations de l'architecture pour gagner en performances. S'il est possible que ces G6x30 soient compatibles avec le niveau 11_1 de DirectX, nous estimons plus probable que ce support ne soit prévu que pour une variante future.

Le second chiffre représente le nombre d'USC : 1 pour le G6100 jusqu'à 6 pour le G6630. Chaque paire d'USC, excepté pour le G6100 bien entendu, est associée à un bloc d'unités de texturing, mais Imagination ne précise pas le nombre d'unités de calcul (MAD) par USC. Il s'agira probablement de 32 unités de calcul par USC, avec, en terme de puissance brute et à fréquence égale, un G6100 qui serait équivalent à un SGX544MP2 et un G64x0 qui serait équivalent à un SGX554MP4.

Si ces GPU semblent prometteurs sur le papier, il faudra cependant patienter jusqu'à l'arrivée des premiers SoC qui les intégreront, et d'informations plus complètes, pour se faire une idée plus précise de leur niveau de performances.

Annoncé il y a plus de 2 ans, le Nova A9600 de ST-Ericsson devait être le premier SoC à intégrer un GPU PowerVR Series 6. Malheureusement le Nova A9600 a fait les frais du divorce entre STMicro et Ericsson.

GDC: AMD, Intel, Nvidia, Qualcomm... à la GDC

Publié le 02/04/2013 à 08:32 par Damien Triolet

Lors de la GDC, dont l'édition 2013 s'est terminée vendredi dernier à San Francisco, les plus importants fournisseurs de technologies graphiques (les GPU Radeon, Mali, PowerVR, HD Graphics, GeForce, Adreno) étaient présents avec notamment pour but de convaincre les développeurs de jeux vidéo d'exploiter toutes les possibilités de leurs produits récents à travers des techniques de rendu toujours plus évoluées que ce soit sur PC ou dans le monde mobile, qui progresse à vive allure.




En plus de diverses présentations, AMD, ARM, Imagination, Intel, Nvidia et Qualcomm étaient présents à travers des stands principalement exploités pour mettre en avant leurs outils maisons : AMD GPU PerfStudio, ARM Mali Graphics Debugger, Imagination PVRTune, Intel Graphics Performance Analyzers, Nvidia Nsight, Qualcomm Adreno Profiler…


Ici en exemple, l'Adreno Profiler de Qualcomm qui permet d'observer assez facilement le comportement des GPU Adreno et d'appliquer des modifications à la volée pour identifier des bugs ou des goulots d'étranglement (bottlenecks). Il est ainsi possible de modifier un shader, de désactiver la synchronisation verticale, de réduire la taille de toutes les textures, etc., et d'observer l'impact en temps réel sur le smartphone ou sur la tablette.

Les outils de tous les acteurs cités proposent des possibilités similaires, chacun ayant des petits avantages ou inconvénients par rapport à la concurrence. Ils sont en général autant adapté au débogage et à l'optimisation de la partie graphique que de la partie "compute" éventuellement exposée pour les GPU.

Lors de plusieurs rencontres avec des développeurs, nous avons voulu savoir quels outils ils préféraient et pourquoi. La réponse de nos interlocuteurs a été unanime : aucun ! Pourquoi ? Tout simplement parce que la multiplication de ces outils devient problématique et que peu importe leurs qualités ou leurs défauts, devoir utiliser un outil spécifique à chaque marque de GPU est tout sauf pratique, d'autant plus quand il faut en supporter bon nombre comme c'est le cas sous Android.


Même avec seulement 3 acteurs, c'est un problème dans le monde PC comme le rappelle Crytek en parlant des opportunités et défis à venir. Il serait ainsi intéressant que Microsoft et Google proposent des outils de développement plus évolués qu'actuellement et dans lesquels les concepteurs de GPU pourraient venir s'interfacer pour proposer autant de détails que dans leurs propres outils mais d'une manière plus ou moins unifiée.

Notez au passage que Crytek en profite pour rappeler à Microsoft qu'il serait peut-être bon de travailler sur la documentation de DirectX !

Top articles