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

Accord de licence Nvidia-Samsung

Publié le 03/05/2016 à 14:22 par Guillaume Louel

NVIDIA Logo 2010 En 2013, Nvidia avait commencé à parler de proposer des licences pour ses technologies. Quelque chose que nous avions interprété, logiquement, en la volonté pour Nvidia de proposer des blocs d'IP pour les autres fabricants de SoC ARM. L'écosystème ARM fonctionne pour rappel sur un modèle ouvert, un designer de SoC comme Mediatek piochant dans le catalogue des différents acteurs, ARM proposant par exemple de nombreux cores CPU - les Cortex - mais aussi des GPU - les Mali - des interconnexions et des contrôleurs mémoires, tandis que d'autres comme Imagination Technologies proposent plus spécifiquement des GPU (les PowerVR). Le designer de SoC assemble ces blocs (payant les licences nécessaires), parfois avec des blocs d'IP propres pour terminer son design de puce, qui sera fabriqué chez un fondeur tiers comme TSMC par exemple.

Nvidia proposait à l'époque ses SoC Tegra en accolant des blocs CPU développés par ARM à ses propres blocs GPU GeForce. Les dernières générations avaient cependant reçu un accueil frileux auprès des constructeurs de smartphones et de tablettes, le marché des SoC étant excessivement compétitif (Depuis, Nvidia s'est recentré en fabricant ses propres produits et en visant le marché automobile ou les contraintes de puissance, souvent pointés comme problématiques, sont moins importantes). Le nom officieux de la licence (« licence kepler ») semblait confirmer la volonté de Nvidia.

En coulisse cependant, Nvidia tentait de négocier un tout autre type d'accord auprès des constructeurs de SoC, souhaitant obtenir des royalties pour des brevets qu'ils jugeaient essentiels à la création de GPU, et qu'ils pensaient enfreints par leurs concurrents. Une stratégie lucrative dans le mobile lorsqu'elle réussit, on sait par exemple que Microsoft obtient de chaque constructeur de smartphone Android des royalties (un montant variable estimé à 3.41 dollars pour Samsung en 2013, et 5 dollars pour HTC ) pour certaines de ses technologies (comme le système de fichiers FAT32, plus de 310 brevets sont concernés d'après une liste ayant fuité en 2014 ).

Dans le cas de Nvidia, les négociations ont été infructueuses (et coûteuses, on notera par exemple qu'à compter de cette période, les GPU Nvidia ont complètement disparus des gammes Apple) qui ont culminé en septembre 2014 par un dépôt de plainte de Nvidia auprès de l'ITC (U.S. International Trade Commission). Cette plainte envers Samsung et Qualcomm demandait le retrait du marché américain de produits qui enfreignaient, selon Nvidia, leurs brevets.


Un des brevets "essentiels" de Nvidia concernait le Transform&Lighting, une technologie ayant disparue des GPU modernes

En octobre 2015, l'ITC avait statué de manière défavorable sur la plainte de Nvidia, un jugement que nous vous avions relaté en détail dans cet article. Le résultat de ce jugement avait été entériné définitivement en décembre : ni Samsung, ni Qualcomm, n'enfreignaient les brevets de Nvidia.

Bien que Samsung et Qualcomm étaient directement visés (parce qu'ils produisent les SoC et que ces derniers étaient visés par l'interdiction d'importation), techniquement ce sont les GPU ARM (Mali), Imagination Technologies (PowerVR) et Adreno (Qualcomm) qui enfreignaient potentiellement les brevets. Ce jugement empêche donc toute procédure du type de la part de Nvidia contre d'autres fabricants de SoC qui utiliseraient ces mêmes coeurs graphiques.

Conséquences coûteuses

En parallèle, Samsung avait bien évidemment contre attaqué Nvidia (et l'un de ses clients, Velocity Micro) auprès de l'ITC (la plainte est ici ). En décembre dernier, nos confrères de Bloomberg  rapportaient que l'ITC avait jugé en première instance que trois brevets de Samsung avaient été enfreints par Nvidia.

Un jugement définitif était attendu hier, pouvant entraîner dans la foulée une interdiction d'importation aux états unis de produits Nvidia. Cependant, comme le relate une fois de plus Bloomberg , quelques heures avant l'annonce définitive de l'ITC, Nvidia et Samsung ont annoncé un accord croisé de licence mettant un terme à leurs différentes procédures. Le communiqué  est particulièrement avare en détails, indiquant simplement qu'il se limite à quelques brevets (il ne s'agit pas d'un accord de licence croisé « large ») et qu'il n'y aurait pas eu de compensation additionnelle (comprendre financière) en contrepartie. Etant donné la position de faiblesse de Nvidia au moment de la négociation, on imagine que d'autres concessions ont été faites, mais ces dernières resteront, d'après le communiqué, secrètes.

Il était bien évidemment dans l'intérêt de Nvidia d'éviter un retrait du marché de ses produits. La plainte originale visait spécifiquement les tablettes Nvidia Shield, même si Samsung avait étendu le cadre de sa plainte à Biostar et ECS (on ne sait pas exactement pour quels produits). Nvidia va également pouvoir tourner la page de cette stratégie de « licence kepler » mal pensée dès l'origine.

Pour Samsung, dont le département légal est rôdé, la normalisation des relations entre les deux sociétés sera une bonne chose, d'autant que Nvidia semble travailler avec Samsung Foundries pour produire certaines de ses puces, quelque chose qui avait été noté dans un document administratif l'année dernière. Bien évidemment, Samsung Foundries a longtemps produit des puces pour Apple tout en entretenant des relations légales hautement conflictuelles, même si là aussi, ces deux dernières années, les deux sociétés ont progressivement  normalisé leurs relations .

Vulkan 1.0 dispo, avec pilotes et jeu beta!

Publié le 16/02/2016 à 15:38 par Damien Triolet

Après 18 mois de gestation, Khronos annonce la disponibilité immédiate de la variante plus bas niveau d'OpenGL : Vulkan. Pour les premiers pas de cette API graphique qui promet une meilleure exploitation des différentes plateformes, sont directement proposés des kits de développements, des pilotes et même le portage beta d'un jeu PC.

Il y a un an, lors de la GDC 2015, Khronos dévoilait Vulkan, sa vision de l'API graphique de plus bas niveau. Face à Mantle, Direct3D 12 ou encore Metal, Khronos se devait de réagir rapidement pour rester dans la course. Avec cette concurrence et une demande insistante des développeurs, une évolution radicale d'OpenGL, son API graphique historique, était aussi nécessaire que difficile à mettre en place. Pour bouger rapidement et éviter tout compromis boiteux, Khronos a pris la décision de mettre au point une API complémentaire à OpenGL et non de faire évoluer cette dernière vers un plus bas niveau d'abstraction. OpenGL et Vulkan vont coexister, évoluer côte à côte dans le futur, partager certains points communs mais rester distinctes sur d'autres.

Ces API de plus bas niveau permettent aux développeurs de mieux contrôler le GPU et sa gestion, ce qui a pour principal effet de réduire le coût CPU des commandes de rendu et d'autoriser une exploitation efficace du multi-threading. En contrepartie, le travail des développeurs se complexifie quelque peu, notamment en ce qui concerne la robustesse de leur code, qui ne sera plus facilitée par de lourdes sécurités mises en place au niveau des API classiques et de leurs pilotes. Ce dernier point est cependant un mal pour un bien puisque les meilleurs développeurs auront tout le contrôle nécessaire pour assurer un code robuste, sans devoir prendre en compte l'inconnue de ce qui peut se passer à l'intérieur des pilotes.

Pour en savoir plus sur la philosophie qui se cache derrière Vulkan, n'hésitez pas à repasser par l'actualité liée à la présentation de Vulkan en mars dernier. Rappelons simplement qu'à la base des travaux de Khronos, nous retrouvons l'API Mantle qui a été "offerte" par AMD (une contribution que Khronos affiche sans détour contrairement à Nvidia qui ne peut s'empêcher d'essayer de la minimiser autant que possible).

Ses fondamentaux sont toujours là, il aurait été inutile de réinventer la roue, mais après 18 mois de travaux, de nombreuses modifications plus ou moins importantes ont été apportées par le groupe de travail mis en place au sein de Vulkan. Dans sa documentation destinée aux développeurs, Nvidia indique ainsi qu'une douzaine de sociétés ont apporté des contributions majeures et au moins le double étaient sérieusement impliquées dans le projet. Neil Trevett, le Président du consortium (et accessoirement le Vice-Président de l'écosystème développeur chez Nvidia) avec lequel nous avons pu nous entretenir, a tenu à insister sur l'implication plus importante que jamais des développeurs de moteurs de jeu.

Si les plus grosses modifications concernent la gestion des ressources et la prise en compte des architectures de type TBDR (Tiled-Based Deferred Rendering), telles que celle des GPU PowerVR, la présence des développeurs a fait en sorte de contrebalancer les demandes spécifiques que pouvaient avoir les concepteurs de GPU pour éviter de trop complexifier l'API.

Vulkan supporte tout type d'extensions, exactement comme OpenGL, mais face à la large plage de possibilités liée au matériel supporté (de type OpenGL ES 3.1 mobile à OpenGL 4.5 desktop et supérieur), Khronos a mis en place des feature sets, soit un niveau de fonctionnalité minimum garanti. Ceux-ci sont définis par plateforme, de préférence par l'organisme qui contrôle la dite plateforme, et par Khronos si cet acteur tiers ne souhaite pas s'impliquer. Ces feature sets sont toujours en cours de finalisation et ne devraient être publiés que d'ici 1 ou 2 mois.

Sur PC, comme vous vous en doutez, Microsoft n'a pas réellement intérêt à pousser l'arrivée de Vulkan, préférant sa propre API Direct3D 12 liée à Windows 10 et qui est également disponible sur Xbox One. C'est donc Khronos qui se chargera de définir le feature set sous Windows (avec un support de Windows XP à Windows 10), après les premiers retours des développeurs et en jonglant avec le lobbying intense d'AMD, d'Intel et de Nvidia. Ce même feature set devrait également être étendu à Linux, même si certaines releases pourraient mettre en place un feature set spécifique. Il sera évidemment possible d'aller plus loin que le feature set, via le système d'extensions.

Sous Android, Google sera aux commandes. Et c'est là le point qui est probablement le plus important pour Vulkan. L'an passé, nous émettions quelques doutes quant au succès de Vulkan. Pourquoi ? Bien que tout cela n'ait jamais été annoncé publiquement, nous savons de multiples sources sûres que Google préparait sa propre API de bas niveau avec pour projet de la rendre disponible sur d'autres plateformes. Mais quelque part entre la GDC et la fin de 2015, Google a changé son fusil d'épaule, est passé au statut de Promoter au sein de Khronos (le plus élevé) et a abandonné son API propriétaire au profit exclusif de Vulkan. Google proposera ainsi un peu plus tard une version d'Android avec intégration complète de Vulkan, ce qui ne manquera pas de faciliter l'adoption de cette API.

Les possibilités pour cette API sont multiples. Vulkan a un intérêt évident dans le monde mobile, en termes de performances directes bien entendu, mais également au niveau des effets indirects que cela peut avoir : un coût CPU moindre implique une réduction de la consommation, un argument de poids. Vulkan devrait également trouver sa place dans le monde professionnel où les moteurs de visualisation sont souvent lourdement limités par le CPU. Vulkan pourra également aider à réduire la latence et à éviter les petites saccades dans le cadre de la réalité virtuelle.

 
 
La grosse inconnue se trouve plutôt du côté de nos PC équipés de Windows, ce qui représente l'énorme majorité du jeu PC. Tout le poids de Microsoft étant posé sur Direct3D 12, il y a peu de place pour une autre API de bas niveau. Valve a cependant sponsorisé le développement par LunarG d'un SDK open source et gratuit, disponible dès aujourd'hui pour Windows et Linux, avant une version Android prévue pour un peu plus tard. Et pour démontrer la pertinence de Vulkan sur PC, Khronos met en avant la disponibilité dès aujourd'hui sur Steam d'une version beta de The Talos Principle qui propose un renderer Vulkan . Pour mettre en place rapidement celui-ci, Croteam a travaillé étroitement avec Nvidia.

C'est d'ailleurs une autre observation importante que nous pouvons faire aujourd'hui. Si l'ADN de Mantle d'AMD est bel et bien à la base de Vulkan, ce qui a mis Nvidia dans une position inconfortable au départ, c'est bien ce dernier qui est progressivement devenu le plus actif autour de cette nouvelle API. Nvidia propose ainsi un pilote Vulkan beta à destination de ses GPU Kepler et Maxwell, qu'ils soient GeForce, Quadro ou Tegra, et que ce soit sous Windows 7-8-10, sous Linux ou sous Android 6.0.

Mais surtout, Nvidia est particulièrement actif au niveau de la documentation et des démos fournies aux développeurs et a mis en place plusieurs mécanismes pour aider ces derniers à passer à cette nouvelle API. Le pilote Vulkan de Nvidia accepte ainsi les shaders OpenGL classiques de type GLSL et pas uniquement le langage intermédiaire SPIR-V de la nouvelle API. Par ailleurs, ce pilote autorise de faire tourner Vulkan à l'intérieur d'un contexte OpenGL. De quoi pouvoir faire des essais rapidement et expérimenter avec Vulkan sans devoir repartir de zéro, ce que de nombreux développeurs devraient apprécier.

> Les pilotes Nvidia pour Windows 7/8.1/10 et Linux 

La documentation et les démos de Nvidia pour les développeurs 

Du côté d'AMD, qui en amont a communiqué très peu (ou très mal ?) sur Vulkan, aucun pilote n'a encore été certifié par Khronos  mais nous venons de remarquer qu'un pilote beta est disponible sur son portail GPUOpen. Il est compatible avec tous les GPU GCN, même s'il y a probablement des limitations pour les plus anciens de ces GPU, et supporte Windows 7, 8.1 et 10. La version Linux arrivera un peu plus tard. Nous ne savons pas pourquoi ce pilote n'a pas encore passé la certification de Khronos.

> Les pilotes AMD pour Windows 7/8.1/10 

La documentation d'AMD pour les développeurs 

Du côté d'Intel, un pilote a été certifié par Khronos pour Skylake sous Linux, mais nous ne savons pas quand il sera disponible. Imagination dispose également d'un pilote certifié sous Linux (nous avons pu le voir en démo lors du CES), tout comme Qualcomm sous Android 6.0. ARM est également annoncé comme prêt à fournir un pilote sous peu.

> La page dédiée d'Imagination 

Notons que dans le cas du support sous iOS, qui ne sera pas natif, Apple privilégiant Metal, Vulkan devrait être proposé d'une manière détournée puisque The Brenwill Workshop développe Molten (MetalGL + MetalVK), une surcouche qui permet de faire tourner OpenGL ES ou Vulkan par-dessus Metal. A voir cependant quelles seront les limitations et autres impacts sur les performances.

Enfin, Khronos tient à insister sur le fait que Vulkan, comme les autres API de plus bas niveau, n'est pas fait pour tous les développeurs, compte tenu de sa complexité plus élevée et d'avantages qui ne s'appliquent pas à toutes les situations. Mais au vu de l'intérêt apporté à ces API par les spécialistes du moteur graphique et d'autres middlewares, qui feront le travail pour la plupart des développeurs de jeux vidéo, le premier point ne devrait pas être un obstacle. Attendez-vous à de nombreuses annonces annexes lors de la GDC 2016 qui se tiendra le mois prochain à San Francisco.

Pour plus d'informations techniques, les spécifications de Vulkan sont disponibles sur le site de Khronos  et nous avons ajouté ci-dessous la présentation complète de Khronos destinée à la presse technique :

 
 

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à ).

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