Accueil » Actualité » AMD Mantle côté performances

AMD Mantle côté performances

2 : Configuration du test 3 : Thief : APU et cartes graphiques entrée de gamme 4 : Thief : cartes graphiques milieu et haut de gamme 5 : Battlefield 4 : APU 6 : Battlefield 4 : cartes graphiques entrée de gamme 7 : Battlefield 4 : cartes graphiques milieu de gamme 8 : Battlefield 4 : cartes graphiques haut de gamme 9 : Battlefield 4 : problèmes de mémoire vidéo et mise à jour des pilotes 10 : Comparaison visuelle et conclusion

Introduction

Image 1 : AMD Mantle côté performances

L’API Mantle d’AMDest un sujet qui ne laisse pas indifférent dans le monde des jeux PC : on constate de nombreux avis différents, beaucoup d’informations, de la spéculation à la pelle et quelques rares faits établis. Nous souhaitions donc faire un article complet sur le sujet, ce qui passe nécessairement par le jargon propre à l’industrie dans un premier temps. Commençons donc par quelques définitions avant de voir comment et pourquoi nous en sommes arrivés à Mantle.

Qu’est-ce qu’une API ?

L’acronyme API signifie interface de programmation (application programming interface), sachant que le mot interface est primordial : une API est conçue pour permettre aux programmes d’interagir, de communiquer entre eux.

La fonction copier/coller sous Windows constitue un excellent exemple: lorsque l’on copie un paragraphe sur une page Web vers le presse-papier pour ensuite coller ces caractères dans un logiciel de traitement de texte, on a utilisé une API. En effet, les développeurs du navigateur Internet ont inclus une prise en charge de la fonction copier de l’API, tandis que les programmeurs du logiciel de traitement de texte ont intégré la gestion de la commande coller de l’API. Ces deux programmes communiquent donc entre eux via l’API.

L’avantage d’une API tient au fait que les développeurs n’ont pas besoin de coder une prise en charge spécifique pour chaque programme existant. Sans API, tous les logiciels de traitement de texte existants devraient proposer du code spécifique afin de proposer une fonction copier/coller avec n’importe quel autre logiciel de traitement de texte. Bien entendu, ce modèle n’est pas viable.

Les API ont cependant un inconvénient : elles ne sont pas aussi efficaces que le codage spécifique à la communication directe entre les logiciels. L’aspect pratique de l’API se paye donc par une sollicitation plus importante des composants et ressources disponibles.

Qu’est-ce qu’une API graphique ?

Compte tenu de ce que nous venons d’évoquer, une API graphique communique entre un programme et le pilote d’une carte graphique.

La compatibilité est primordiale ici. Au lieu de coder un moteur de jeu de manière à ce qu’il puisse communiquer avec des pilotes de cartes graphiques bien définis, les développeurs peuvent se concentrer sur la communication avec l’API. Cette dernière sollicite ensuite le pilote graphique, lequel envoie ses instructions à la carte graphique. De ce point de vue, les API graphiques peuvent donc être considérées comme l’une des couches d’abstraction entre l’OS et les composants.

Image 2 : AMD Mantle côté performances

Si le but d’une API graphique est la simplicité et la commodité, pourquoi existe-t-il plus d’une API ?

OpenGL trouve ses racines dans Iris GL (Integrated Raster Imaging System Graphics Library), API graphique propriétaire crée par Silicon Graphics au début des années 80. A la surprise générale, l’entreprise américaine a fait évoluer son API pour en faire un standard ouvert : l’API OpenGL (Open Graphics Library). Les concurrents de Silicon Graphics avaient donc accès à l’API moyennant leur participation à la maintenance et à l’actualisation du code.

Microsoft avait même un siège à l’Architecture Review Board (ARB) d’OpenGL jusqu’en 2003, époque à laquelle de géant de Redmond s’est retiré pour promouvoir sa propre API propriétaire, à savoir DirectX. Cette dernière est utilisée par Windows ainsi que les Xbox, ce qui permet de justifier facilement son choix lorsque l’on est un développeur qui souhaite utiliser au mieux ses ressources disponibles.

Ceci étant dit, John Carmack est un résistant célèbre qui a pu prouver le fait qu’OpenGL était encore utilisable pour des jeux PC complexes (comme Rage). De plus, OpenGL est important de par sa compatibilité multiplateformes : Windows, Mac et Linux. Android, Windows Phone et iOS utilisent quant à eux Open GL ES (Open GL pour systèmes embarqués). Au fur et à mesure que les jeux sur appareils mobiles prennent de l’importance, OpenGL s’affirme.

Quelles sont les faiblesses de DirectX 11 et OpenGL ? Pourquoi avait-on besoin d’une autre API graphique ?

Sur le papier, le fait d’avoir deux standards qui cohabitent est déjà suffisamment préjudiciable pour que l’on évite d’en ajouter un troisième. Mais il faut se demander dans quelle mesure les API actuelles ne répondent pas aux attentes des développeurs.

DirectX et OpenGL ont tous deux été créés lors du précédent millénaire, bien avant que les processeurs multicores ne trouvent leur chemin dans les configurations accessibles au plus grand nombre. Certains développeurs ont récemment reproché à ces deux API d’être lourdes, de souffrir d’instabilité et enfin de proposer un mauvais échelonnement des performances (voire aucun) sur des configurations multithread. De plus, aucune API n’est parfaite. Nous sommes nombreux à avoir été contraints, ne serait-ce qu’une seule fois, de mettre à jour nos pilotes graphiques pour faire fonctionner correctement un nouveau jeu. A chaque fois que cette situation se manifeste, l’API graphique a tout simplement échoué dans son rôle de couche d’abstraction.

Pour ne rien arranger, une rumeur selon laquelle Microsoft envisageait d’arrêter le développement de son API a circulé l’année dernière. Lors d’une interview avec nos confrères allemands de heise online, Roy Taylor (vice-Président d’AMD) a affirmé « Les versions successives de DirectX ont apporté un renouveau à l’industrie, tandis que les cartes graphiques qui sont sorties en parallèle nécessitaient plus de ressources CPU et mémoire. Mais c’est désormais du passé : à notre connaissance, DirectX 12 n’est pas prévu ». Enfin, un mail très maladroit de Microsoft aux développeurs le 30 janvier 2013 annonçait tout simplement que « DirectX n’évoluait plus en tant que technologie ». Le géant de Redmond a bien entendu réagi en invoquant une mauvaise communication, sans pour autant expliquer ses intentions pour DirectX 12, ce qui a rendu plus d’un développeur nerveux.

AMD affirme avoir été poussé à la création d’une nouvelle API, capable de répondre à ces problèmes, par les développeurs déçus de l’état dans lequel se trouvent DirectX et OpenGL. Précisons que les APU et cartes graphiques d’AMD équipent la Xbox One, la Playstation 4 ainsi que bon nombre de PC, ce qui met donc le géant de Sunnyvale dans une position unique pour proposer une nouvelle API, puisque cette dernière pourrait être exploitée par de multiples plateformes.

Image 3 : AMD Mantle côté performances

En quoi Mantle fait théoriquement mieux qu’Open GL et DirectX ?

Mantle est souvent associé au terme « bas niveau », mais qu’est-ce que cela signifie vraiment ? Pour répondre très simplement, il s’agit de minimalisme : l’API d’AMD est plus légère, plus simple et par conséquence plus rapide que DirectX 11 et OpenGL. Mantle suppose soit – disant moins la volonté des développeurs que DirectX quant à leur approche pour rendre une scène donnée. Ceci confère donc un contrôle des ressources plus important aux développeurs, au détriment de l’API, permettant donc une meilleure optimisation.

Dans cette optique, Mantle a donc le potentiel pour être plus efficace que DirectX 11 et OpenGL. De plus, l’API d’AMD est capable d’exécuter une multitude de commandes de rendu en parallèle pour répartir la charge sur plusieurs unités d’exécution processeur. Si Mantle parvient à réellement profiter de ressources plus importantes, les processeurs comptant plusieurs unités d’exécution ainsi qu’une fréquence modeste sont moins susceptibles de générer des goulets d’étranglement.

Pour faire simple, AMD affirme que son API a le potentiel pour améliorer les performances sur les configurations à processeurs multicores dont la fréquence est peu élevée. Lorsque le processeur n’est pas le facteur limitant, Mantle pourrait même parvenir à faire baisser la consommation GPU.

AMD affirme être un fervent défenseur des logiciels libres, qu’en est-il de Mantle ?

Mantle n’est pas un logiciel libre et AMD n’a rien annoncé en ce sens pour l’avenir. En revanche, le géant de Sunnyvale a précisé que le SDK (kit de développement logiciel) serait accessible à n’importe qui d’ici la fin de l’année sans frais de licence ou restriction une fois que le programme de beta fermée aura pris fin.

Cet accès au SDK ne veut pas dire que Mantle deviendra un logiciel libre, mais en théorie, NVIDIA comme Intel pourraient très bien proposer des pilotes compatibles Mantle. Dans la pratique, ceci est hautement improbable mais nous reviendrons sur notre analyse de la situation dans la conclusion. Le fait est qu’AMD veut garder le contrôle de Mantle afin de l’optimiser pour l’architecture GCN et permettre une adoption rapide de nouvelles fonctionnalités hardware par les développeurs, ce qui n’est pas pratique avec des API génériques comme DirectX et OpenGL.

A ce stade, nous voulons mettre Mantle à l’épreuve pour voir ce dont l’API est réellement capable. Tandis qu’AMD promet que les développeurs travaillent à la prise en charge de Mantle pour des titres à venir comme Civilization: Beyond Earth, Star Citizen et Dragon Age: Inquisition, seuls trois jeux géraient Mantle lorsque nous avons préparé cet article : Battlefield 4, Thief et Plants vs. Zombies: Garden Warfare. Etant donné que ce dernier ne propose pas de benchmark pour Mantle et qu’il s’appuie sur le même moteur Frostbite que Battlefield 4, nous nous sommes concentrés sur les deux premiers titres.

Sommaire :

  1. Introduction
  2. Configuration du test
  3. Thief : APU et cartes graphiques entrée de gamme
  4. Thief : cartes graphiques milieu et haut de gamme
  5. Battlefield 4 : APU
  6. Battlefield 4 : cartes graphiques entrée de gamme
  7. Battlefield 4 : cartes graphiques milieu de gamme
  8. Battlefield 4 : cartes graphiques haut de gamme
  9. Battlefield 4 : problèmes de mémoire vidéo et mise à jour des pilotes
  10. Comparaison visuelle et conclusion