Les derniers contenus liés aux tags GCN et Mantle

AMD Mantle arrive, patch pour BF4 à 10h !

Publié le 30/01/2014 à 06:00 par Damien Triolet

Enfin ! Après quelques mois d'attente, la première version de l'API graphique Mantle est en approche avec un support intégré aux Catalyst 14.1 beta, un patch pour Battlefield 4 et la démo technique StarSwarm.


Rappel
Dévoilée fin septembre lors de la présentation du GPU Hawaii et des Radeon R9 290/290X, l'API graphique propriétaire Mantle s'est fait quelque peu attendre. Il était au départ question de l'arrivée fin décembre d'un patch dédié pour Battlefield 4, EA-DICE s'étant investi dans le développement de Mantle, mais celui-ci a finalement été reporté d'un mois. Le délai n'est pas réellement lié à Mantle, même si tant AMD qu'EA-DICE ont eu un peu plus de temps pour peaufiner son implémentation, mais plutôt aux nombreux bugs qui ont affectés ce jeu et dont la prise en charge était prioritaire.

Les récentes rumeurs qui mentionnaient un nouveau report d'un mois étaient sans fondement et c'est aujourd'hui que débarque le support officiel de Mantle ainsi qu'un patch pour Battlefield 4 préparé par EA-DICE et la démo technique d'Oxide Games : StarSwarm.


Pour rappel, Mantle est une API graphique tout comme Direct3D ou encore OpenGL. Elle s'en démarque par un niveau d'abstraction différent qui propose un compromis orienté vers plus de liberté pour les développeurs et plus de performances, principalement en réduisant le surcoût CPU du traitement des commandes graphiques au niveau des API et des pilotes. Pour plus de détails à son sujet :

APU13: AMD Mantle : premiers détails
APU13: Frostbite & Mantle: proche de la PS4? 15 jeux...
APU13: Oxide fait exploser la limite CPU avec Mantle

Mantle est globalement une API de plus bas niveau que Direct3D et OpenGL, mais il ne s'agit pas de programmer le GPU dans un langage assembleur barbare, les shaders restent d'ailleurs identiques à ceux de Direct3D. Tout l'héritage et l'aspect rétrocompatibilité de ces API les ont alourdies, notamment en imposant de nombreuses vérifications à chaque commande pour s'assurer qu'elle respecte bien tout un tas des paramètres dont certains n'ont plus aucune base technique sur les GPU modernes.

Mantle profite pleinement de l'architecture unifiée des GPU GCN (depuis les Radeon HD 7000) et du support d'une mémoire virtuelle unifiée pour remettre l'API à plat et la simplifier autant que possible. Sous certains aspects, cela simplifie le travail des développeurs mais leur transfère une plus grande part de responsabilité en ce qui concerne la robustesse de leur moteur graphique.

Les gains principaux en termes de performances sont à chercher du côté CPU, à travers ces quatre points :

- Low-overhead validation and processing of API commands
- Explicit command buffer control
- Close to linear performance scaling from recording command buffers onto multiple CPU cores
- Reduced runtime shader compilation overhead


En d'autres termes, Mantle permet de réduire le coût CPU du rendu graphique et de mieux utiliser les CPU multicores pour le traitement de ce dernier. Des gains sont également possibles à travers une utilisation plus efficace du GPU :

- Reduction of command buffers submissions
- Explicit control of resource compression, expands and synchronizations
- Asynchronous DMA queue for data uploads independent from the graphics engine
- Asynchronous compute queue for overlapping of compute and graphics workloads
- Data formats optimizations via flexible buffer/image access
- Advanced Anti-Aliasing features for MSAA/EQAA optimizations


Il va cependant falloir plus de temps pour que les développeurs en tirent parti, soit parce que cela demande encore pas mal de recherche soit parce que cela correspond à des cas qui sont encore peu courants tels que le traitement simultané de tâches de types graphique et compute.

AMD insiste bien sur le fait que Mantle n'est pas sa vision de choses imposée aux développeurs mais bien une réponse à une demande de leur part. AMD indique travailler sur Mantle depuis 3 ans en étroite collaboration avec EA-DICE qui développe le Frostbite Engine exploité notamment dans Battlefied 4. La version alpha de Mantle, qui sert de base aux deux exemples rendus disponibles aujourd'hui, a ensuite été proposée à une poignée de développeurs dont Oxide Games. AMD fait même référence à un "consortium Mantle", laissant penser que les prises de décisions à son sujet se font au moins en partie par les développeurs.

Mantle reste une API propriétaire, actuellement spécifique aux Radeon, mais elle a été conçue pour pouvoir être étendue à d'autres architecture si nécessaire. Nous estimons cependant nulles les chances que Nvidia accepte de rejoindre une initiative d'AMD et/ou que ce dernier ne pose pas des conditions difficiles à accepter.

Les pilotes Catalyst 14.1 beta
Tout d'abord, AMD s'apprête à distribuer ce qui permet à Mantle de fonctionner, soit un pilote qui intègre son support : les Catalyst 14.1 beta. Initialement ce pilote devait être rendu public ce matin à 6h. AMD nous a indiqué hier soir qu'il y aurait probablement un retard de quelques heures mais s'est ravisé ce matin : suite à des problèmes de dernière minute la sortie du pilote prévu est annulée et un nouveau est en préparation. AMD promet ce pilote rapidement pour la presse, peut-être aujourd'hui, mais il ne sera rendu public que 24h plus tard. Vous pourrez alors les télécharger via ce lien :

Catalyst beta 

Au niveau de l'implémentation, si toutes les pistes étaient sur la table au départ, AMD a opté pour l'intégration classique d'un pilote Mantle dans ses pilotes Catalyst, en opposition, par exemple, à l'intégration d'une DLL directement dans les jeux. Nous avions au départ pensé que cette solution serait proposée par AMD pour éviter qu'une mise à jour des pilotes ne vienne modifier le comportement de Mantle et poser un problème dans certains jeux.

AMD nous explique cependant que Mantle est une API tellement simple qu'il n'y a pas de changement de comportement significatif possible après une mise à jour du pilote qui servira plutôt à ajouter des fonctionnalités ou à optimiser les performances. Pour s'assurer qu'un développeur ne construise pas son code autour d'un bug, ce qui pourrait alors poser problème une fois ce bug corrigé, Mantle intègre directement dans l'API ce qu'AMD appelle le "validation layer". En plus d'être fonctionnel, le code des développeurs devra se conformer aux exigences de ce "validation layer" pour que l'application puisse passer au stade de production.

Ces Catalyst beta intègrent une version alpha de Mantle qui est accompagnée de plusieurs limitations :

- Pas de support direct de CrossFire X
- Pas de support des plateformes Enduro / PowerXpress
- Support limité des GPU GCN "1.0"

Le support des plateformes Enduro viendra plus tard, tout comme des facilités d'utilisation du multi-GPU. En attendant, les développeurs restent libres d'implémenter eux-mêmes le multi-GPU, ce que permet de faire Mantle, par ailleurs avec des possibilités d'optimisation plus poussées. AMD publiera et actualisera la liste des limitations sur cette page :

Mantle Known Issues 

Rappelons qu'AMD a fait évoluer légèrement son architecture GCN, notamment en y intégrant un support complet de la mémoire unifiée virtuelle. Celles-ci étant à la base de l'API Mantle, ces GPU plus récents se trouvent avantagés et AMD a optimisé en priorité pour le cas de figure qui leur correspond. Ces GPU, que nous qualifions de GCN "1.1", sont Bonaire, Hawaii et Kaveri et correspondent à ces produits :

- Radeon HD 7790
- Radeon R7 260/260X
- Radeon R9 290/290X
- APU A-Series 7000

Les autres GPU GCN, niveau "1.0", se contentent d'un support partiel de la mémoire unifiée, suffisant selon AMD pour une compatibilité totale avec Mantle, mais il faudra probablement un peu plus de travail pour en finaliser la prise en charge optimale. Ces GPU, Oland, Cape Verde, Pitcairn et Tahiti sont compatibles avec cette version de Mantle mais les gains de performances seront limités dans Battlefield 4. AMD précise que ces produits représentent la prochaine priorité sur sa liste et que des optimisations leurs seront dédiées dans de futurs pilotes. Cela concerne ces cartes graphiques :

- Radeon HD 7700/7800/7900 (sauf 7790)
- Radeon HD 8000 OEM
- Radeon R9 270/270X/280X
- Radeon HD 7700M/7800M/7900M
- Radeon HD 8000M
- Radeon R5 M230, R7 M265, R9 M290X

A noter que ces pilotes Catalyst 14.1 beta apportent, enfin, le support du frame pacing (cadence d'affiche régulière en multi-GPU) pour les résolutions supérieures au 1600p pour l'ensemble des cartes graphiques ainsi que pour les APU Kaveri couplées à une Radeon R7 250. Ces pilotes incluent également le support de la HSA pour Kaveri.

Patch Mantle pour Battlefield 4
Selon les informations fournies par AMD, EA-DICE va publier à partir de ce matin à 10h une mise à jour pour Battlefield 4 qui apporte, en plus du moteur de rendu Direct3D, un moteur de rendu Mantle. Nous n'avons pas pu avoir accès en avance à ce patch et tâcherons donc de le tester dans la journée. En attendant, voici ce qu'indique AMD concernant les performances :

- Gains de 41% pour une Radeon R9 290X sur un A10-7700K en 1080p Ultra AA4x
- Gains de 40% pour une Radeon R9 290X sur un A10-7700K en 1600p Ultra AA4x
- Gains de 3% pour une Radeon R7 260X sur un Core i7-4960X en 1080p Ultra FXAA
- Gains de 1% pour une Radeon R7 260X sur un Core i7-4960X en 1600p Ultra FXAA

AMD parle ensuite de gains moyens d'un peu plus de 10% en mélangeant des résultats obtenus sur Radeon R9 290X et Radeon R7 260X avec différents CPU. Un chiffre qui ne veut pas dire grand-chose compte tenu des écarts observés dans les situations données ci-dessus.

Cela confirme donc bien que les gains sont à chercher du côté CPU et non du côté GPU. Ce n'est pas une surprise, EA-DICE l'ayant indiqué dès le départ en précisant que les optimisations au niveau des performances GPU étaient toujours à l'état de R&D.

Battlefield 4 intègre le support de CrossFire X directement au niveau de son moteur. AMD précise malheureusement que la stabilité n'est pas parfaite et que le frame pacing n'est pas fonctionnel. En d'autres termes pour le multi-GPU, il faudra encore patienter un petit peu. Eyefinity est par contre fonctionnel à l'exception des configurations de type 5x1 dans lesquelles les écrans sont en mode portrait.

Mise à jour 10h30 : la mise à jour de Battlefield 4 est arrivée comme prévue. Une option dans les paramètres graphiques permet de passer de Direct3D à Mantle si cette API est supportée par le système :


Vous pourrez retrouver quelques informations de plus sur ce patch ainsi que quelques mesures de performances dans le blog de Johan Andersson , le directeur technique du moteur Frostbite.

Démo StarSwarm
StarSwarm est une démo proposée par Oxide Games tirée d'une scène de test exploité en interne pour le développement du moteur Nitrous qui a été pensé pour pouvoir gérer des immenses champs de bataille et donc de très nombreux éléments. Augmenter le nombre d'éléments fait exploser le surcoût au niveau des API classiques, ce qui fait du moteur Nitrous et de StarSwarm un bon exemple de la différence énorme que peut faire Mantle, AMD annonçant des performances pouvant être jusqu'à 4x supérieures en cas de limite CPU.


L'aspect graphique de la démo est relativement basique mais correspond à un cas réaliste, selon ses développeurs, de simulation spatiale dans laquelle plusieurs milliers d'unités s'affrontent. De quoi mettre à genoux les plus gros CPU dans la version Direct3D alors qu'un CPU modeste peut encaisser la charge sans trop de problème dans la version Mantle.

StarSwarm devrait être disponible publiquement et gratuitement à 21h. Ni le support d'Eyefinity, ni celui de CrossFire X ne seront de la partie, cela viendra dans une future version de la démo. A l'heure où nous écrivons ces lignes, nous disposons d'une version presse de la démo… mais pas encore des pilotes Catalyst 14.1 beta qu'AMD semble fignoler jusqu'à la dernière minute.

Un début et puis ?
AMD indique qu'il ne s'agit que d'un début, que des premiers pas de Mantle alors que de nombreux chantiers restent ouverts. Le spécialiste des technologies graphiques promet ainsi progressivement plus de performances et le support de plus de jeux, 15 sont par exemples prévus sur base du Frostbite 3. En attendant, il reste bien entendu à évaluer les gains réels de ces débuts, ce que nous ferons dès que possible.

APU13: Oxide fait exploser la limite CPU avec Mantle

Tags : AFDS; AMD; GCN; Mantle;
Publié le 14/11/2013 à 04:41 par Damien Triolet

Après AMD et DICE, c'est au tour d'Oxide de donner son avis au sujet de Mantle et cette fois de proposer les premiers résultats pratiques.


Oxide est une société qui vient d'être créée et qui regroupe quelques développeurs spécialisés dans la 3D (dont une partie avait développé le moteur de Civilization V) qui travaillent à la mise au point d'un nouveau moteur graphique prévu avant tout pour PC, mais par la suite pour Xbox One et PS4 : le Nitrous engine. Ce moteur est annoncé comme prévu à sa base directement pour le 64-bit et surtout pour le multicore en évitant d'avoir recours à un énorme thread principal plus ou moins aidé par des threads secondaires comme c'est le cas actuellement. De quoi permettre selon Oxide Games des scènes beaucoup plus complexes en termes de nombre d'objets et d'animations.

Oxide a bien entendu rapidement été limité dans ses travaux par le surcoût CPU des API classiques qui ont fini par influencer directement la conception des niveaux voire les possibilités de gameplay en forçant les développeurs à éviter de multiplier les commandes de rendu (regroupées en batches) et donc au final le nombre d'objets présents dans la scène. Difficile par exemple de mettre au point une énorme simulation de combat spécial dans laquelle plusieurs milliers de vaisseaux s'affrontent.

C'est pourtant ce que compte se donner les moyens de faire Oxide et pour cela quelques essais ont été faits avec plusieurs options. Bien entendu Oxide s'est penché sur les deferred contexts, soit le multi-threading de DirectX 11, mais ils se sont avérés être peu efficaces et une grosse déception en pratique. Pour l'ensemble des développeurs que nous avons pu rencontrer cette fonction est au mieux décevante, au pire une vaste blague. Le problème est que l'application, l'API et le pilote n'arrivent pas à se comprendre.

L'API que propose AMD donne à l'application le contrôle nécessaire pour profiter d'un multi-threading efficace. Sur base de la version alpha de Mantle, et en très peu de temps, Oxide a pu obtenir des résultats impressionnants. Le développeur annonce, en précisant être très conservatif, une réduction d'un facteur 10 du coût de la gestion des batches de commandes de rendu pour un gain de 3x au niveau de l'application dans sa globalité, ce à quoi il faut ajouter en pratique les gains obtenus au niveau du multi-threading.


D'une limite de +/- 15 000 batches à partir de laquelle les performances s'effondrent en version DirectX, le Nitrous Engine en version Mantle n'a aucun problème à gérer 100 000 batches. De quoi autoriser des combats de plusieurs milliers de vaisseaux, difficile à représenter sur base d'une photo de l'écran, mais impressionnants en terme de potentiel de gameplay.

Oxide précise par ailleurs que cette gestion efficace du multi-threading bénéficie aux CPU AMD avec par exemple un FX 8350 capable de rivaliser avec un Core i7 4770K.

Pour Oxide, il est maintenant évident qu'il n'est plus possible de se contenter des limitations des API telles que DirectX, le point de non-retour a été atteint en ce qui les concerne. Là aussi il s'agit d'un appel du pied évident à Nvidia et Intel.

Vous trouverez ci-dessus des clichés de la présentation d'Oxide au Developer Summit 13 d'AMD :














APU13: Frostbite & Mantle: proche de la PS4? 15 jeux...

Tags : AFDS; AMD; GCN; Mantle;
Publié le 14/11/2013 à 01:04 par Damien Triolet


Après AMD c'était au tour de DICE/EA à travers l'architecte principal de son moteur graphique Frostbite, Johan Andersson, de donner quelques détails au sujet de Mantle.

DICE (EA Digitil Illusions CE) est pour rappel à l'origine de l'API graphique Mantle et a travaillé avec AMD en vue de sa mise au point. Battlefield 4 a fait office de cobaye lors son développement, raison pour laquelle il sera le premier jeu à en profiter à travers un patch prévu pour fin décembre. Plants vs Zombies Garden Warfare sera le second jeu d'EA qui utilisera Mantle, cette fois dès sa sortie et en profitant de Mantle pour optimiser pour les APU, alors que Johan Andersson insiste sur le fait que les 15 jeux actuellement en développement sur base du Frostbite Engine 3 utiliseront tous Mantle sur PC (le moteur de DICE est de plus en plus exploité à l'intérieur du groupe EA).



Il est important de noter qu'à plusieurs reprises, Johan Andersson rapproche le renderer du Frostbite 3 à base de Mantle du renderer dédié à la PS4 qui auraient donc des similitudes. Difficile d'en connaître les raisons et pourquoi le développeur évite par contre de mentionner la Xbox One; il est possible que Sony se soit reposé plus sur AMD que Microsoft pour le développement des API de sa nouvelle console. Dans tous les cas, pour DICE, Mantle et la PS4 représentent dorénavant les plateformes de référence pour les développements futurs.

Toutes les techniques de rendu exploitées dans Battlefield 4 ont pu être transposées sous Mantle et différentes optimisations ont été implémentées tant du côté CPU que GPU. A ce sujet, Johan Andersson précise cependant que dans un premier temps les optimisations GPU restent relativement basiques et que les optimisations potentielles plus poussées en sont encore au stade du R&D. La gestion de la mémoire est par contre totalement implémentée au niveau du moteur, tout comme le support du multi-GPU.

Au final, développer et implémenter Mantle dans le Frostbite 3 aura nécessité 2 mois de travail, avec des résultats qui valent largement cet investissement selon Johan Andersson. Il rappelle une fois de plus que si Mantle a été implémenté pour l'architecture GCN, il a été conçu à sa base de manière à ne pas être lié à une architecture particulière, avec un système d'extensions pour exploiter toutes les possibilités de GPU particuliers. La porte reste donc ouverte à Nvidia et Intel. Même si cela semble peu probable dans un premier temps, il semble évident que Johan Andersson espère les voir rejoindre cette initiative, ne serait-ce qu'avec un support spécifique pour le Frostbite 3.

Par ailleurs, pour DICE, Mantle facilite les portages sous Linux et sous la plateforme d'Apple, facilite les développements futurs et laisse entrevoir un potentiel énorme dans le monde mobile qui pourrait profiter de moteurs graphiques plus performants pour gagner en efficacité énergétique.

Johan Andersson voit aussi pour Mantle du potentiel dans le monde professionnel avec des stations de travail qui pourraient mieux profiter du multi-GPU même avec 4 ou 8 GPU dans le système. Mantle pourrait également être très utile pour faciliter les efforts de réduction de la latence de rendu, ce qui représente un challenge pour les systèmes de réalité virtuelle (Oculus VR par exemple) en développement.

Vous trouverez ci-dessus des clichés de l'ensemble de la présentation de DICE au Developer Summit 13 d'AMD :












APU13: AMD Mantle : les premiers détails

Tags : AFDS; AMD; GCN; Mantle;
Publié le 13/11/2013 à 02:45 par Damien Triolet

Comme prévu, AMD profite de son Developer Summit pour divulguer quelques détails sur son API graphique Mantle. Nous sommes encore loin d'une documentation complète, mais AMD fait en sorte que les développeurs puissent se faire une idée plus précise des possibilités qu'offrira Mantle.




Mantle est une API ou un langage de programmation et de contrôle du GPU qui a été conçu de manière à se débarrasser des obstacles qui compliquent la vie des développeurs de jeux vidéo et plus précisément de moteurs graphiques. A la base de l'initiative d'AMD se trouve une demande très spécifique de Johan Andersson, le développeur principal du Frosbite Engine, demande qui a trouvé écho auprès de la direction d'AMD qui a décidé de tenter de lui donner vie.

Grossièrement, Mantle est une API de plus bas niveau qu'un DirectX ou même qu'un OpenGL. Cela ne veut pas pour autant dire que Mantle revient à programmer le GPU dans une sorte de langage assembleur barbare. Le but d'AMD n'est pas d'arriver au plus bas niveau possible mais d'essayer de placer son API au niveau d'abstraction qui a le plus de sens du point de vue des développeurs de moteurs graphiques. Par rapport à DirectX, une partie de Mantle sera de plus bas niveau, une autre se situera à un niveau similaire et il est même possible que le niveau d'abstraction soit au final plus élevé sur certains points.

N'aurait-il pas été préférable d'essayer de faire évoluer DirectX et OpenGL ? Selon AMD, en plus de prendre une éternité, notamment pour mettre tout le monde d'accord, cela ne permettrait pas d'apporter des solutions à tous les problèmes actuels. Car en fait, plus que de problèmes, il s'agit de compromis. Plus qu'une solution, Mantle est ainsi un compromis différent.



L'un des problèmes principaux des API PC classiques est le surcoût qu'elles engendrent au niveau des commandes de rendu (draw calls), que ce soit lors des différentes vérifications de conformité, lors de leur traduction vers les commandes natives du GPU etc.

AMD indique ainsi que la plupart des jeux se doivent se contenter aujourd'hui de 3 000 à 5 000 commandes de rendu, un chiffre qui peut monter à 10 000 pour les développeurs qui font en sorte d'optimiser au maximum leur rendu. Avec Mantle AMD compte faire exploser les possibilités à ce niveau et permettre aux développeurs d'aisément décupler les capacités de leurs moteurs pour des scènes plus riches en objets et animations.




Tout en visant un niveau de performances optimal et l'ajout de fonctionnalités, AMD a fait en sorte de conserver une API simple, qui permet aux développeurs de visualiser aisément son fonctionnement et d'en prédire le comportement. Cela ne veut pas dire qu'exploiter Mantle sera facile mais que pour un développeur spécialiste de la 3D il n'y aura pas de mauvaise surprise cachée derrière différents niveaux de complexité, de choses étranges qui se passent dans l'API sans qu'il soit possible de comprendre pourquoi.

AMD résume les problèmes sur PC de la sorte : surcoût des API, absence de threading efficace, contrôle de la mémoire limité et absence de contrôle direct du GPU. Pour y répondre, Mantle propose plus de possibilités de précalcul et de réutilisation de certaines données, un contrôle de la gestion de la mémoire et un contrôle de la génération des commandes de rendu ainsi que de leur exécution. L'application contrôle alors directement le rendu et ne transfère plus une partie de cette responsabilité à une "grosse" API.

Une autre façon de voir les choses est de se dire que Mantle transfère aux développeurs des moteurs de jeux vidéo certaines possibilités d'optimisations actuellement exploitées par les développeurs des pilotes d'AMD, si ce n'est qu'ils pourront le faire avec bien plus d'efficacité.



Le fonctionnement basique de Mantle est relativement simple : l'application génère des listes de commandes de rendu qui prennent place dans la file d'attente appropriée du GPU qui les exécute au fur et à mesure qu'il termine les tâches précédentes. La différence fondamentale c'est que ce n'est plus le driver qui gère et réparti les commandes de rendu avec plus ou moins d'efficacité, c'est l'application qui gère le tout aussi finement que le développeur le veut.

Par ailleurs, effacer le surcoût des commandes de rendu n'est pas suffisant, il devient également primordial de proposer un multi-threading efficace, ce que ne permet pas de faire DirectX selon AMD, les fonctionnalités de DirectX 11 à ce niveau s'étant avérées difficiles à exploiter en pratique. Mantle permet à l'application de préparer différentes listes de commandes et de contrôler le multi-threading sans devoir sacrifier les performances ou la robustesse.

L'application acquiert également la possibilité de prendre le contrôle du multi-GPU et de pouvoir décider où exécuter chaque commande rendu. Pour cela AMD a prévu dans Mantle l'accès au moteur de composition CrossFire, au transfert de données entre GPU etc. De quoi autoriser des modes multi-GPU qui iront au-delà de l'AFR et qui s'adapteront mieux par exemple à l'utilisation du GPU computing dans les jeux ou aux systèmes multi-GPU asymétriques comme c'est le cas pour les APU combinés à un GPU. Il est par exemple possible d'imaginer le GPU se charger de la base du rendu et l'APU s'occuper du post processing.



Mantle introduit un nouveau type d'objet : le pipeline monolithique. Grossièrement ce type d'objet permet de définir dans un seul bloc l'empreinte ou la configuration du rendu, ce qui inclut tous les shaders, tous les états GPU etc. Ce pipeline configurable et flexible devrait à termes autoriser de nouveaux types de rendu, impossibles à l'heure actuelle.

Dans l'immédiat, l'intérêt de la chose concerne les performances. Dans DirectX, la gestion des états GPU, des différents shaders etc., peut représenter une charge CPU très lourde. Mantle réduit cette charge et facilite le travail du compilateur qui profite d'une vision globale du rendu.

AMD remet également à plat la gestion de toutes les ressources. Là où DirectX jongle avec de nombreux formats de buffers qui ont chacun leurs limitations liées à leurs usages spécifiques, dont certains sont présents uniquement pour garantir la compatibilité avec d'anciens GPU, Mantle se contente de zones mémoire (Memory) et de zones de rendu (Images). AMD revoit également la manière dont sont attachées certaines données liées au rendu, par exemple les buffers de constantes pour proposer un meilleur compromis entre fiabilité, complexité et performances.



Dans les applications actuelles, les différents buffers se voient attribuer une zone mémoire par le driver d'une façon très rigide, ce qui rend difficile la réutilisation de certaines zones mémoire, multiplie le nombre de ces zones à gérer et amplifie la consommation mémoire totale. C'est en partie pour cela que la consommation mémoire du rendu 3D sur PC est général nettement plus élevée que sur console où les développeurs ont la possibilité de tirer le maximum des ressources disponibles.

Mantle permet à l'application de contrôler directement les transferts de données et la gestion de la mémoire vidéo, pour éviter les automatismes actuels peu efficaces, en partie pour des raisons de fiabilité. Puisque l'application sait précisément ce qu'elle veut faire, de nombreuses vérifications génériques n'ont plus lieu d'être. AMD précise par ailleurs qu'une partie de ces vérifications automatiques est redondante sur PC, les moteurs s'en chargeant directement dans certains cas puisque cela peut déjà être nécessaire sur console.

Mantle permet également aux développeurs de facilement réutiliser le résultat de certaines opérations, sans devoir les répéter parce qu'en stocker le résultat était trop complexe ou ne correspondait pas aux critères stricts de DirectX.

Mantle repose bien entendu sur la gestion par les GPU récent d'une mémoire virtuelle unifiée et AMD précise que cela ne limite pas son support aux récents GPU Hawaii et Bonaire, qui sont les premiers à proposer un support complet à ce niveau. Sans rentrer dans le détail, AMD indique que le support des premiers GPU GCN est suffisant pour permettre de faire tout ce qui est nécessaire pour Mantle.



AMD cite quelques premiers exemples d'utilité de Mantle. Par exemple, préparer certaines données est coûteux (vider le cache, les décompresser…) alors qu'il peut s'avérer qu'elles ne sont pas toutes nécessaires, ce que ne peuvent pas savoir le pilote et une API classique, mais ce que peut contrôler l'application.

Mantle permet de profiter plus souvent d'un cache des shaders et d'éviter un maximum de phases de compilations, coûteuses soit en performances soit en temps de chargement. Il est également possible de rendre conditionnelles certaines phases de rendu et donc de profiter d'un pipeline dynamique. Par exemple lorsque la tessellation est activée, si un objet n'a pas besoin de tessellation, DirectX va devoir traiter la tessellation avec un niveau d'expansion géométrique nul, ce qui a un coût qui peut être non négligeable, alors que toutes les phases du rendu liées à la tessellation pourraient être totalement évitées avec Mantle.

AMD pourra exposer toutes les capacités de ses GPU au niveau de l'antialiasing de type multisample, de quoi laisser les développeurs profiter, s'ils le veulent, de modes actuellement accessibles uniquement aux pilotes.


Au final, Mantle va permettre selon AMD d'aider les systèmes d'entrée de gamme, de permettre aux développeurs de mieux prédire les performances et le comportement de leurs moteurs ainsi que de partager les optimisations entre PC et consoles next gen, et à plus long terme de permettre l'arrivée de nouvelles techniques de rendu.

Pour cela, AMD a cependant besoin d'outils efficaces et indique que le tout est en bonne voie. Par ailleurs, AMD a intégré une large partie de ses fonctions de débogage et de validation directement dans l'API, ce qui facilite la création d'outils efficaces et plus précis sur les bottlenecks éventuels. Les développeurs pourront également intégrer directement l'accès aux différents compteurs du GPU dans leurs propres outils, d'une manière plus complète qu'actuellement.

AMD indique que de son côté le développement avance bien et que le timing de décembre pour le patch Mantle de Battlefield 4 reste d'actualité. Actuellement, Mantle est proposé en version alpha à une poignée de développeurs, mais d'ici quelques temps une version beta sera proposée à de plus en plus de développeurs, s'ils en font la demande. Pour une documentation publique, il faudra probablement attendre la GDC de mars 2014 alors que la disponibilité de la version finale de Mantle est prévue pour la seconde moitié de l'an prochain. D'ici là, le support de l'API sera bien entendu intégré dans tous les pilotes.

AMD insiste sur le fait que Mantle n'a pas été prévue pour être limitée à une architecture. La base de Mantle se contente de fonctions relativement génériques qui pourraient être supportées par d'autres architectures alors qu'un niveau étendu de Mantle apporte le support de fonctionnalités actuellement spécifiques aux Radeon. Mantle pourrait ainsi potentiellement devenir un standard avec des extensions, mais rien ne dit que cela intéressera Nvidia ni que la direction d'AMD n'y posera pas des conditions difficiles à accepter.

Notez que, le forum d'AMD n'étant fermé à personne, à la sortie de cette présentation liée à Mantle, nous avons pu croiser plusieurs employés de Nvidia, dont un des architectes principaux des GPU GeForce. Le concurrent d'AMD semble visiblement aussi curieux que nous au sujet de Mantle !

AMD Mantle : 3 développeurs de plus l'adoptent

Tags : AFDS; AMD; GCN; Mantle;
Publié le 08/11/2013 à 16:34 par Damien Triolet

AMD a annoncé cette semaine que 3 développeurs de plus venaient de faire part de leur intention d'exploiter Mantle dans leur(s) jeu(x) à venir. Pour rappel, Mantle est une API graphique de plus bas niveau que DirectX qui permet d'exploiter plus efficacement les GPU Radeon de génération GCN, notamment à travers un coût CPU (overhead) plus faible pour la gestion des commandes graphiques. Nous vous en avions déjà parler ici lors de son annonce ainsi que à travers une interview de Raja Koduri, responsable des technologies graphiques d'AMD.

DICE, qui développe le Frostbite Engine, est à la base du projet Mantle, le développeur ayant collaboré avec AMD pour sa mise au point. Fort logiquement ce sera donc Battlefield 4 qui sera le premier jeu à l'exploiter à travers un patch prévu pour le mois de décembre. D'autres jeux qui exploiteront ce moteur devraient également supporter Mantle selon DICE.

AMD a cependant subi un petit revers de la part de Microsoft qui ne ménage en général pas ses partenaires de manière à garder le contrôle. Microsoft a ainsi déclaré il y a quelques semaines que la Xbox One utiliserait exclusivement DirectX en mentionnant explicitement l'absence de support de Mantle. Un joli petit cadeau pour Nvidia qui organisait sa contre-offensive juste après.

Cette déclaration de Microsoft ne change cependant pas réellement la donne. DirectX sur console est différent de DirectX sur PC et inclus déjà des accès au GPU avec overhead réduit. Mantle n'ayant pas encore été détaillé, nous pouvons supposer que ce que fait cette API propriétaire, DirectX sur console est déjà, au moins en partie, capable de le faire. Supporter directement Mantle sur console aurait cependant permis un portage presqu'automatique vers PC mais nous pouvons ici aussi supposer qu'AMD a conçu Mantle de manière à être proche des accès bas niveau de DirectX sur la Xbox One et de PSSL sur PS4.


Cette semaine nous apprenons que DICE n'est pas le seul développeur à travailler à l'implémentation de Mantle. Cloud Imperium Games, compte l'implémenter dans Star Citizen, la nouvelle simulation spatiale de Chris Roberts, à la base des célèbres Wing Commanders. C'est ensuite au tour d'Eidos-Montréal, qui fait partie de Square Enix, d'annoncer le support de Mantle pour le prochain Thief dont la sortie a été quelque peu repoussée. Ce support n'est pas réellement une surprise, Square Enix travaillant régulièrement avec AMD comme cela a par exemple été le cas avec TressFX dans Tomb Raider.

Enfin Oxyde Games est une société qui vient d'être créée et qui regroupé quelques développeurs spécialisés dans la 3D (dont une grosse partie avait développé le moteur de Civilization V) qui travaillent à la mise au point d'un nouveau moteur graphique prévu pour PC, Xbox One et PS4 : le Nitrous engine. Ce moteur est annoncé comme prévu à sa base directement pour le 64-bit et surtout pour le multicore en évitant d'avoir recours à un thread principal et des threads secondaires comme c'est le cas actuellement. De quoi permettre selon Oxyde Games des scènes beaucoup plus complexes en terme de nombre d'objets et d'animations. Il s'agit probablement d'un exemple pour lequel Mantle devrait se montrer particulièrement intéressant.

Reste bien entendu que pour généraliser l'utilisation de Mantle, AMD devra convaincre bien plus de développeurs de moteurs graphiques et ce n'est pas gagné. La plus célèbre d'entre eux, l'Unreal Engine, devrait ainsi faire l'impasse sur l'API d'AMD, Tim Sweeney, qui en dirige l'évolution, ayant sans ambiguïté exposé son hostilité à Mantle lors d'une récente conférence Nvidia. A noter que le concurrent d'AMD ne compte pas répliquer à Mantle dans l'immédiat avec un API propriétaire de plus, mais compte par contre insister sur ses extensions OpenGL qui permettent également de réduire les différents surcoût CPU et d'accéder à des fonctionnalités spécifiques de ses GPU.

DICE, Cloud Imperium Games, Eidos-Montréal et Oxyde Games parleront plus en détail de Mantle la semaine prochaine lors du forum APU13  d'AMD (AMD Developer Summit), avec nous l'espérons quelques premiers résultats pratiques. Initialement focalisé sur le calcul hétérogène, l'APU13 devrait cette année laisser pas mal d'espace à Mantle. A noter que Sony sera également de la partie pour y parler PS4, tout comme Imagination Technologies, ARM ou encore Oculus VR.


Nous serons sur place pour couvrir l'évènement et essayer de grappiller quelques détails de plus. A noter que les keynotes seront retransmises en direct sur la page des relations aux investisseurs d'AMD .

Top articles