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

L'architecture PowerVR a 25 ans

Publié le 25/08/2017 à 10:39 par Marc Prieur

Cet été Imagination Technologies, connue initialement sous le nom de VideoLogic, fête les 25 ans de son architecture PowerVR et de son Tile Rendering. L'occasion pour la société de publier une série de billet sur son blog sur son historique en 3D.

Le premier de ces billets  fait état des débuts en 1997, avec la première carte mise au point qui était à base de FPGA Altera, une société rachetée par Intel en 2015, et Xilinx. Du fait du manque de puissance cette carte n'était pas à même d'appliquer des textures, ce qui sera le cas de la Midas 1 qui faisait cette-fois appel à des ASICs dédiées, l'un dédié aux textures. Comme les premières Voodoo de 3dfx cette carte utilisait un VGA pass trough, on connectait ainsi la carte 2D à la carte 3D en VGA, et la carte 3D à l'écran. Avec la Midas 3, cette solution fut abandonnée au profit d'un envoi des données à la carte 2D par le bus PCI.

Associé à NEC, c'est avec les PCX1 (1996) et PCX2 (1997) que VideoLogic commença à utiliser le nom PowerVR pour ses puces et commencé à se faire connaître du grand public. Ces puces accélératrices 3D gravées en 500 ou et 350nm, fonctionnait à 60-66 MHz et disposaient d'un fillrate de 60-66 Mpixels pour une bande passante de 0.48 à 0.528 Go/s (!!!!), l'avantage du PCX2 étant surtout le support du filtrage de texture bilinéaire qui faisait grandement défaut au PCX1 face au Voodoo Graphics. On trouvait ses puces sur des cartes accélératrices 3D (Matrox M3D, VideoLogic Apocalypse 3D) mais aussi sur l'Apocalypse 5D qui intégrait en plus une puce 2D Tseng Labs ET6100.

A cette époque l'utilisation d'API standardisées (OpenGL, Direct3D) dans le domaine ludique en était encore à ses balbutiements et il fallait donc une version spécifique utilisant l'API propriétaire SGL, mais les portages étaient moins nombreux que ceux en version utilisant l'API Glide de 3dfx ce qui contribua à la domination de ce dernier.

La génération suivante fut utilisée en 1998 par Sega au sein de la Dreamcast, un contrat juteux qui n'aida pas la sortie de la version PC (la Neon 250, en 1999) qui ne faisait alors pas le poids face à la Riva TNT2 de Nvidia.

Associé non plus à NEC mais STMicroelectronics, la société s'attacha ensuite à travailler sur sa troisième génération de PowerVR, les STG4000 (2000) et STG4500 (2001), plus connus sous les noms de Kyro et Kyro II. C'est en 2001, notamment avec l'Hercules 3D Prophet 4500 que nous avions testé, que les premières cartes furent annoncées. En l'absence de moteur géométrique (T&L) contrairement aux Nvidia GeForce 256 (1999) et ATI Radeon (2000), elles visaient (avec succès) un rapport performance/prix supérieur.

Mais alors que ATI et Nvidia enchaînaient les GPU, STMicroelectronics décidait de quitter le marché du GPU PC en 2002 (qui représentait... 0,2% de ses revenus), ce qui sonnait le glas de la 4è génération de PowerVR, mais aussi celui de PowerVR sur PC.

A partir de là Imagination Technologies s'est en effet concentré avec réussite sur le marché mobile avec des architectures vendues sous licence pour intégration au sein de SoC, notamment Apple à partir de 1998. Mais ce partenariat fructueux, représentant jusqu'à 50% des revenus de la société, va prendre fin puisque Apple a annoncé en avril dernier qu'il arrêterait d'utiliser les architectures Imagination au profit des siennes d'ici à 2 ans. Une annonce qui avait entraîné une chute du cours de bourse d'Imagination de 70% et probablement lié à la mise en vente officielle de la société en juin.

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.

CES: Imagination: ray tracing en démonstration

Publié le 22/01/2016 à 05:10 par Damien Triolet

Lors de la GDC 2014, Imagination avait annoncé la possibilité d'intégrer à ses GPU un module d'accélération matérielle du ray tracing, ce que nous avions expliqué en détails ici. A peu près deux ans plus tard, lors de ce CES, nous avons pu observer cette technologie en action… face à un GPU haut de gamme classique.

Pour rappel, Imagination est un fournisseur de technologie et de propriétés intellectuelles, dont les GPU sont par exemple massivement intégrés dans les SoC Apple. Et, à notre connaissance, jusqu'ici aucun de ses clients n'a opté pour l'ajout du module optionnel de ray tracing, développé suite au rachat de Caustic Graphics en 2010. Mais étant donné qu'on n'est jamais aussi bien servi que par soi-même, Imagination a décidé de faire fabriquer en petit volume son propre GPU, le PowerVR GR6500, histoire de disposer d'un kit de développement et de pouvoir présenter quelques démonstrations de sa technologie.


Le PowerVR GR6500, nom de code Wizard, est une variante du PowerVR Series 6 XT(Rogue) équipée du module de ray tracing. Il est cadencé à 600 MHz et intègre 4 clusters pour une puissance de calcul de 150 Gflops (et 300 Gflops en basse précision). Une configuration identique, en dehors du ray tracing, à celle du GPU de l'Apple A8 (iPhone 6) mais cadencée à une fréquence doublée. Imagination nous a précisé que ce PowerVR 6500 a été fabriqué en 28nm, mesure un peu plus de 100 mm² et consomme 4.5 W, nous sommes donc plus proche du monde mobile que de celui des gros PC de bureau.

En ce qui concerne le ray tracing, ce GR6500 est capable de lancer 300 millions de rayons par seconde qui pourront représenter jusqu'à 24 milliards de tests et 100 millions de triangles par seconde. Et le tout avec un rendement énergétique très élevé, les techniques de ray tracing intégrées permettant de regrouper intelligemment les calculs et les accès mémoire.


Pour montrer ce dont est capable sa technologie, Imagination a tout d'abord mis en place un rendu de type path tracing, interactif avec amélioration progressive de l'image comme c'est souvent le cas. Une même scène est alors rendue sur le GR6500 ainsi que sur une GTX 980 Ti sous Blender avec accélération CUDA. Il y a quelques petites différences au niveau de l'interprétation des matériaux mais Imagination précise que la charge est identique, même si elle a probablement été choisie de manière à montrer Wizard sous son meilleur jour.


Le rendu du GR6500 en haut, de la GTX 980 Ti en bas.

Le résultat est sans appel : le PowerVR GR6500 est 5x plus performant que la GTX 980 Ti (qui est un modèle EVGA overclocké) tout en consommant nettement moins. Le système équipé du GPU Power consomme ainsi 10x moins que celui équipé de la GeForce, un écart qui exploserait si nous n'observions que la consommation des GPU.

Un rendu interactif c'est bien, mais un rendu en temps réel c'est encore mieux. Pour cela, Imagination a travaillé avec Unity pour intégrer le support de sa technologie, que ce soit pour un rendu 100% à base de ray tracing, ou hybride qui utiliserait cette approche pour certains éléments tels que les ombres, les réflexions ou encore les transparences.

 
 

Deux autres démonstrations étaient ainsi présentées par Imagination. Sur la première, qui tourne sur un GR6500, la géométrie et l'éclairage sont dynamiques et mettent en avant les multiples niveaux de réflexions ainsi que des ombres aux contours parfaits, ce que la rastérisation classique ne parvient pas à obtenir, même en ayant recours à plusieurs niveaux de détails avec les cascaded shadow maps.

La seconde démonstration se contente d'une géométrie fixe mais plus complexe et y ajoute la prise en compte de la réfraction. Pour celle-ci, un système plus musclé a été mis en place avec pas moins de 4 cartes équipées du GPU PowerVR GR6500 qui travaillent de concert. Une configuration globale qui n'est pas si éloignée que ça de ce que l'on pourrait imaginer pour de futurs SoC fabriqués sur des process plus évolués et qui permet à cette démonstration de tourner avec un haut niveau de performances, plus de 30 fps et probablement 60 fps.


Imagination a fourni un kit de développement sur base de cette carte PCI Express équipée du GR6500 à une poignée de développeurs et envisage d'étendre ce programme à d'autres qui en feraient la demande. Car ses ambitions sont sérieuses dans le monde mobile mais pas uniquement.

Comme pour chaque génération de consoles, Imagination compte répondre aux différents appels d'offre de Microsoft, de Sony ou encore de Nintendo pour leurs futurs modèles. Et a bon espoir de convaincre l'un d'eux en jouant sur l'aspect "différenciation". Un argument qui pourrait faire mouche après que deux fabricants se soient retrouvés dans une position délicate suite à une technologie très proche sur la génération de consoles actuelles : en ayant fait le choix d'un GPU AMD similaire mais moins musclé que celui pour lequel a opté Sony, Microsoft a perdu toute possibilité de se démarquer sur le plan graphique.

Le pari d'Imagination est qu'au moins un fabricant de console opte pour un GPU PowerVR de mainère à éviter cette situation, et l'argument du ray tracing pourrait faire la différence. Encore faut-il que les développeurs soient d'accord de faire l'effort nécessaire pour son support, mais Imagination se veut rassurant sur ce point en expliquant qu'utiliser sa technologie demande moins de travail que l'optimisation du rendu des ombres sur les GPU classiques.

Jugement favorable pour Samsung face à Nvidia

Publié le 13/10/2015 à 19:45 par Guillaume Louel

NVIDIA Logo 2010En septembre 2014, Nvidia avait décidé de déposer plainte devant l'ITC (U.S. International Trade Commission) envers Samsung et Qualcomm, demandant le retrait du marché américain de produits dont Nvidia estimait qu'ils violaient certains de ses brevets. Ce dépôt de plainte faisait suite à la « licence Kepler » que Nvidia avait tenté de négocier, laissant penser dans un premier que Nvidia proposerait ses GPU sous forme d'IP aux développeurs de SoC (de la même manière qu'ARM propose des blocs CPU tout faits sous la forme des Cortex, des GPU sont disponibles sous licence pour les constructeurs de SoC comme les Mali d'ARM, ou les PowerVR d'Imagination Technologies), alors qu'il s'agissait plus simplement d'un accord de licence. Cette stratégie infructueuse - aucun accord n'aurait été signé - faisait suite à l'échec des dernières générations de SoC Tegra sur le marché excessivement compétitif des SoC smartphone et tablettes (qui avait déjà fait d'autres victimes comme Texas Instruments), Nvidia s'étant recentré plus récemment sur ses propres produits et le marché automobile.


La plainte de Nvidia comprenait sept brevets dont certains nous semblaient à l'époque, comme celui sur le T&L, ne plus directement s'appliquer au matériel moderne (les GPU s'étant transformés au fil des années en puces plus génériques utilisant de larges blocs d'unités programmables pour exécuter les shaders, associés à des unités fixes pour gérer les textures par exemple). Au cours du mois de juin dernier , Nvidia avait retiré de lui-même quatre de ses brevets en contention (dont celui sur le T&L ) ainsi que différentes revendications de ses autres brevets. L'ITC détermine en effet pour chaque brevet si les revendications qui le compose (« claims » en anglais) sont effectivement utilisées dans les produits pour lesquels la plainte a été déposée. Lors de l'examen cependant, l'ITC peut décider d'invalider un brevet, ce qui peut être extrêmement couteux pour les entreprises (une grande partie de la valeur des brevets tient sur la présomption de leur validité), bien au-delà de la simple plainte concernée.

Il restait donc trois brevets sur lesquels l'ITC devait statuer, ce qui a été fait la semaine dernière . On notera que si Nvidia s'en est pris à Samsung et Qualcomm, c'est avant tout pour pouvoir interdire l'import des produits sur le territoire américain. En pratique, ce sont les IP des GPU qui étaient visées, Samsung ne produit pour rappel pas (encore) de GPU propre (une architecture CPU ARMv8 propre à Samsung est en développement pour 2016, et potentiellement une architecture GPU même si peu d'informations existent sur cette dernière). Trois familles de GPU étaient visées directement dans la plainte, les Mali (blocs d'IP développés par ARM), les PowerVR (blocs d'IP développés par Imagination Technologies) et les Adreno (l'architecture GPU de Qualcomm).

Le juge a déterminé que ces trois familles de GPU ne contrevenaient pas à deux des trois brevets restants (sur des techniques liées aux opérations sur les vertex , et l'autre sur une méthode de multithreading ). Pour le troisième, un brevet sur le shadow mapping , une des revendications a été considérée comme enfreinte par les GPU (claim 23), mais le juge l'a invalidée (tout comme la claim 24) considérant qu'elle n'était pas nouvelle et non évidente. D'autres revendications individuelles ont également été déclarées invalides par le jugement (ce qui n'a pas d'incidence directe, si ce n'est de faire diminuer la valeur de ces brevets pour Nvidia dans ses autres accords de licence).

Nvidia indique par un post de blog  avoir demandé le réexamen de l'invalidation du brevet sur le shadow mapping, ce qui laisse une lueur d'espoir mais si le brevet est bel et bien invalidé, c'est la totalité de la plainte du constructeur qui sera rejetée définitivement par l'ITC.

Un coup dur pour Nvidia dont la stratégie offensive vis-à-vis de ces brevets semblait inhabituelle. On se souvient que Nvidia s'était battu de longues années contre Rambus - jusqu'en février 2012 - face aux brevets sur la SDRAM et la DDR. Une stratégie d'autant plus risquée que comme nous l'indiquions, les GPU modernes n'ont plus grand-chose à voir avec ceux de la fin des années 90, DirectX ayant joué son rôle d'uniformisation pour le meilleur et pour le pire. Si Nvidia a voulu communiquer sur son rôle de « précurseur » dans le domaine du GPU face au monde nouveau des smartphones, cela néglige la réalité de l'histoire. Les acteurs principaux comme Imagination Technologies ne sont pas de nouveaux entrants sur le marché, la société ayant été fondé en 1985 bien avant que Nvidia n'existe et proposait en 1996 ses premiers PowerVR, avant même les Riva, TNT et autres GeForce. On se rappellera également que les Adreno de Qualcomm étaient nés d'une division d'ATI (Imageon).

Et si l'on remonte encore plus en arrière, on pourra dire que l'industrie du GPU a été construite sur le travail préalable de Silicon Graphics, une réalité à laquelle il est difficile d'échapper encore aujourd'hui car si la société a déposé le bilan, ses brevets se retrouvent désormais dans une entité appelée « Graphics Properties » qui s'attaque elle aussi aux fabricants de smartphones (voir ici , là  et là ).

Top articles