AMD Mantle: interview de Raja Koduri
Peu après la présentation par AMD de son GPU Hawaii, nous avons eu l'opportunité de nous entretenir avec Raja Koduri, responsable de l'ensemble de la partie technique liée aux GPU de la société. Difficile de ne pas aborder le dossier Mantle...
Corporate Vice President, Visual Computing : le titre officiel de Raja Koduri depuis son retour chez AMD est assez vague mais représente assez bien l'étendue des domaines qu'il couvre. Les développements actuels et futurs en termes d'architecture graphique, l'implémentation de celle-ci dans les GPU et l'ensemble des développements logiciels d'AMD tombent sous la responsabilité de l'ingénieur. Il est ainsi en charge de l'équipe Mantle. Très apprécié dans le milieu, Raja Koduri est un pragmatique, en général assez franc même si sa progression dans la hiérarchie d'AMD lui impose bien entendu une certaine retenue lorsqu'un enregistreur est en activité.
Mantle (en référence au manteau terrestre), dont nous vous avons déjà parlé ici, est une API PC qui offre un accès de bas niveau au GPU, comme il en existe généralement pour toutes les consoles. Une API de plus bas niveau que les habituels DirectX / OpenGL permet de lever de nombreuses contraintes liées à la standardisation et à la simplification de l'utilisation des API graphiques, de quoi permettre un accès à des fonctionnalités propriétaires et améliorer les performances notamment au niveau du coût CPU du rendu 3D.
Selon Raja Koduri, si la standardisation a été une étape nécessaire sur PC, la situation a évolué en faveur d'une domination du marché par une poignée de moteurs graphiques (Unreal Engine, CryEngine, Frostbite…). Et dans ce contexte, se contenter sur PC du compromis d'une API standard et simple à utiliser ne serait plus une fatalité. Au contraire, pouvoir supporter des lignées de GPU plus en profondeur intéresserait les développeurs de ces moteurs, que ce soit pour se démarquer de leurs concurrents, pouvoir abaisser les spécifications minimales requises ou bénéficier de la même efficacité que sur console. A plusieurs reprises, Raja Koduri insiste sur le fait que Mantle est une demande directe et répétée des développeurs.
Certes cela représente un travail supplémentaire, mais la plupart des gros moteurs supportent déjà au moins 4 versions de leur interface de rendu : DirectX, OpenGL/ES, PS3 et Xbox 360. L'arrivée d'une nouvelle génération de consoles, basées qui plus est sur sa propre architecture, et d'une nouvelle vague de moteurs représente ainsi pour AMD le timing parfait pour introduire sur PC une interface de bas niveau vers ses GPU.
Cela fait longtemps qu'AMD travaille sur le projet Mantle, qui était à la base le nom de code interne, il serait question de plus ou moins 2 ans. Le premier développeur partenaire pour Mantle est DICE et son architecte du moteur de rendu, Johan Andersson, travaille main dans la main avec AMD depuis quelques temps en vue de la création de cette API. C'est la raison pour laquelle le Frostbite 3 sera le premier moteur à l'exploiter. D'autres devraient suivre, AMD laissant penser que des annonces seront faites dans ce sens lors du forum technologique APU13 qui aura lieu à San Jose au mois de novembre.
La grosse question concerne évidemment le point de vue de Microsoft qui pourrait y voir une menace et ne pas apprécier cette évolution. D'une manière détournée, Raja Koduri nous indique qu'AMD a fait part à Microsoft de ses intentions et que ce dernier n'a pas émis d'objection voire a encouragé cette initiative. Si Mantle revient en quelque sorte à concurrencer DirectX, la pierre angulaire de la domination de Microsoft sur le jeu PC, l'API pourrait également être bien utile à la nouvelle Xbox. Nous estimons cependant qu'il ne s'agit pas là de l'argument majeur puisque rien n'empêche de limiter Mantle aux consoles. Microsoft ne peut cependant pas ignorer les intentions des développeurs de jeux vidéo pour lesquels supporter Windows n'est pas un but en soi mais un moyen de toucher les joueurs sur PC. Prenons un exemple simpliste, de son point de vue, qu'est-ce qui est le plus dangereux : Nvidia associé à Valve pour optimiser SteamOS ou une API AMD qui permettra aux jeux PC d'être plus performants sous Windows ? Vu sous cet angle, s'opposer à Mantle serait un très mauvais calcul pour Microsoft.
AMD ne compte cependant pas abandonner DirectX, OpenGL et OpenCL qui restent bien plus importants qu'une librairie à usages très spécifiques telle que Mantle. AMD ne s'attend pas à ce qu'un jeu Windows supporte Mantle et pas DirectX, ce n'est pas imaginable à court et moyen terme. Par ailleurs, si Mantle permettra à AMD d'intégrer quelques fonctionnalités supplémentaires dans ses GPU, leur architecture continuera de s'aligner en priorité sur les évolutions de DirectX et d'OpenGL.
Est-ce que Mantle doit être ouvert à la concurrence ou rester fermé au risque d'une fragmentation du marché du jeu PC ? AMD semble hésitant sur ce point sensible et quand Raja Koduri nous explique que toutes les portes sont ouvertes, son responsable de la communication n'hésite d'ailleurs pas à l'interrompre pour insister sur le lien entre Mantle et l'architecture GCN. L'ingénieur poursuit cependant sa réponse en précisant que DICE a déclaré espérer que Mantle devienne un standard, et que DICE a fait partie du processus du développement. Raja Koduri conclut alors sans ambiguïté que Mantle n'a par conséquent pas été conçu de manière à ne pouvoir être compatible qu'avec une seule architecture. Cela ne veut pas dire que Nvidia acceptera de rejoindre une initiative de son concurrent ni que la direction d'AMD n'y mettra pas des conditions difficiles à accepter, mais sur le plan technique, dont nous savons peu de choses, la base de Mantle pourrait accueillir des branches spécifiques à d'autres architectures.
Au final, nous avons l'impression qu'AMD sent venir une vague de changement chez les développeurs de jeux vidéo, tente d'y répondre avec Mantle en profitant du poids de sa présence dans les nouvelles consoles mais ne sait pas encore précisément où aller et lance en quelque sorte un pavé dans la marre en espérant que l'onde de choc tracera la voie à suivre. Si, sur le principe, les développeurs sont demandeurs, est-ce qu'une partie significative d'entre eux seront réellement prêts à faire l'effort de développement nécessaire à son support ? Des indices dans deux mois, la réponse l'an prochain...
Ci-dessous, la retranscription complète, en anglais, de la discussion que nous avons eue avec Raja Koduri au sujet de Mantle :
A very trivial question : does the name Mantle mean anything ?
Raja Koduri - It was a completely just engineering codename for the project and months ago or so, when we decided we'll go public about it, our marketing team went looking for various names. I like Mantle, it's kind of simple, it's nice, it's not an acronym, it describes what it does. It's kind of cool, if I'm a gamer or a game developer I think I kind of like Mantle. Internally it was called project Mantle so I pushed for just leaving it as Mantle rather than some DIRECTblah, SGX API, Radeon API, GXblah… you know some marketing new names they came up with. Mantle is cool.
Do you plan to have Mantle as an AMD brand ?
RK - Those are questions for our marketing department. For me I want to keep my life simple. Johan [Andersson; DICE] is a great guy, he's so passionate about graphics hardware, GPUs and pushing the envelope. He wanted something and if I can make people like Johan happy it makes everybody happy.
How long have you or AMD been working on Mantle ?
RK - It's an initiative that has been going on for a long time; the problem statement from developers like Johan has been around for more than 5 years. They have been coming and talking to us that they are able to get much more performance from game consoles than on the PC for these exact reasons that we don't have direct access to memory, we don't have direct access to scheduling, we don't have direct access to some of the features that we know are in hardware but are not integrated in APIs.
The idea started then but the timing in terms of when it was the right time for us to do happens to be now. With the new console generation and architecture compatibility it just came together right at the perfect moment for us.
So the new consoles were the catalyst for Mantle to be launched on Windows ?
RK - I wouldn't say that because this is driven more by the game developers than us, so the game developers are ready for major kind of tests, working on new engines, new stuff and they really want to take the PC as a first class citizen. They don't want to forget it as they're architecting their engines for new consoles. They really want to make sure that PC performance moves forward. It's a better timing from a game engine stand point than AMD stand point.
If the game engines [developers] were ready to say "hey we'll put dedicated effort", if Johan came to us and say "I have time I will do the work now" and half dozen other people like Johan also put their hands up, I'm sure other companies and AMD would have say yes years ago to do that thing but they were busy with the last generation consoles, PC and other stuff. Now they're ready.
During the presentation of Mantle you said it was developed with several AAA developers in the gaming industry. In addition to DICE, when can we expect the first announcements ? Around the developer summit (APU13) ?
RK - I think you may see more around developer summit. Mantle for us is a very developer driven effort, when they are ready they'll say it. Johan was ready he said it. It is not like we came up with Mantle then we kind of want to push it, it is not AMD's CUDA.
Let's say I'm a developer and I want to integrate Mantle into my game, would I have to write the whole renderer in Mantle again or could I just use Mantle for specific things ?
RK - When we expose the details of Mantle you can get ideas on how you can use Mantle. I think there are many creative ways you could use Mantle, you could do some things in one place some other things in other places... Mantle is not one solid set in stone thing, we have developers like Johan and others who are currently using it and when they finally get to ship something with it I'm sure they'll have some feedback on what additional things to add and improve. And it will evolve.
So I want to caution my answer, whether this is in Mantle or not in Mantle because it will be something that will evolve but evolve pretty rapidly as we get developer feedback because it is for them. If they say I have this problem to solve and my hardware is capable of solving that problem, I give it to them.
Will Mantle ship directly with the game engine and not with the Radeon driver ?
RK - We are still working on the actual mechanism and in some cases the game engine developer prefers it shipping with the game engine as it makes their install experience better, in other cases they may prefer us to keep updating it through our Radeon driver mechanism. We are still working on that detail.
What is Microsoft's reaction to the Mantle move ? Some would guess they like it, some would guess they hate you for it...
RK - I can't obviously comment on Microsoft, but the thing I can say is we have a great relationship with Microsoft. We are one of the best partners they have in terms of moving DirectX forward. We move DirectX forward, we work with Microsoft on every version of DirectX and we will continue to do that and obviously we wouldn't surprise them with anything like Mantle so you can read between the lines.
Both us and Microsoft are committed to PC gaming and we want to do the right thing for game developers and end-users too. Right now this felt like the right answer, like the right solution to provide for what the game developers are asking during this transition and we are responding to that.
It is not about competition between APIs, we have ten times more resources working on DirectX than Mantle. We have twenty times more resources working on other standard APIs like OpenGL and OpenCL than on Mantle. To keep things in perspective, our support for industry standards hasn't diminished a bit; in fact if anything we'll be focusing more on that stuff. Mantle is solving this specific problem that specific several game developers have and we thought it's the right thing to help them.
Can you see a game developer providing Mantle as the only PC renderer, getting rid of DirectX renderer ?
RK - I can't see that happening. If you look at it practically, that doesn't make sense for any game developer. In fact no single API today makes sense for any game developer. Today if you look at a game engine, they have DirectX, they have OpenGL, more OpenGL ES to get to those other platforms, they have the low level consoles APIs whatever they are. So they at least have 4 paths these days at a minimum that a game engine supports if the game engine needs to be taken seriously. So I don't think it will be a single API world, because it is not a single API world today.
Still we could imagine that a developer could use Mantle-like API on game consoles and would not want to develop a DirectX renderer for the PC market only…
RK - There is a PC market with Mantle but there is a PC market without Mantle…so…
Do you expect your competitors to respond with a Mantle-like approach ?
RK - I can't really comment but my gentle view is I think we all eventually are trying to do what is the right thing for the gamers and the game developers. If Mantle is solving a problem that the game developers have and if our competitors are compelled to solve the same problem, they have to do something about it.
Let's say half the games are using Mantle and the other half are using Nvidia's Mantle ? It could fragment the PC market.
RK - It could but in our view that's the responsibility of the game developers to ensure that their users, that could be on Nvidia, or AMD or consoles or whatever, all are getting a good experience.
The other key thing about Mantle is that today a significant amount of the game titles are based on [middleware] engines, the top 4 or 5 engines are covering a huge percentage of the market. If these engines are taking care of the platform differences, hardware differences, Nvidia, AMD, Sony, Microsoft, the actual game developer is covered from that issue.
That's actually the difference between now and ten years ago. Ten years ago, fifteen years ago the engines didn't have as much market share as today. That's why a combination of the engines being where they are and this new console transition and GCN architecture just felt for us like the right time to do something like this. All the issues you bring up are real issues but now the responsibility of managing that is with the game engine, it's not with us, and frankly it's not with the game developers either. It is with the game engine, think of the game engine as this OS and hardware abstraction layer that is proving the service.
A game engine like Frostbite being able to deliver more performance, more draw calls, more things… their view is that it's a competitor edge for the game engine. The view that it's a competitor edge for AMD is a side effect. It's really about the competitor edge for the game engine that it can do more on this hardware.
Could we say that the game engines are taking the place of traditional APIs nowadays ?
RK - Actually I'd say even a little higher level than that that the game engines are taking the place of the OS. They are actually a mini-OS by themselves, they are abstracting scheduling, hardware and it's not just graphics. The game engines are mini-OS these days, they're as complex as an OS and they're really fascinating things. I see these game engines, the rate at which they're innovating, the rate at which they're adding much greater performance every year, features, in all disciplines not just graphics like audio, network, interactions, databases, AI, physics, natural language interaction, computer generated stuff some engines start adding…
The next computing experience, not gaming computing experience, could be built on these game engines, because these guys are way more advanced, they're pushing the envelope, they're taking advantage of every transistor we put in there and they're doing amazing things. And that could be what build the next big social network. Could be built on game engine technology running in the cloud, running in your device, running on workstations… That's the fascinating thing and I think that initiatives like Mantle are just a step along the way for some amazing things to happen in a few years.
There were reports yesterday about Mantle being an open standard ???
Chris Hook, Head of PR - Mantle is an industry standard.
So Mantle is not an open standard ? Let's say some IHVs [Independent Hardware Vendors] want to write a Mantle backend/driver, what would be the requirements for them ?
RK - Mantle is in a very early stage, it's the first disclosure about it we've done, we have the first proof point using that, that is going to ship into some products. We are open to many possibilities with Mantle. We are open to being open; we are open to being standard. How it evolves if our competitor approaches us and says "we want to be compatible with Mantle" ? ... That's a conversation we are not going to shut down.
Chris Hook, Head of PR - There aren't many companies of course... Because of GCN they don't have Mantle capable hardware today…
RK - But Johan said it clearly in his video that he's hoping that Mantle becomes a standard adopted by other companies which means, because game developers were involved in the design, there was feedback loop, … that it is not designed in such a way that it can only work on our architecture. It's a thin abstraction, it's low level. Still it kind of amazingly provides all the performance, all what can be allowed on our architecture.
Is Mantle already influencing future GPU designs ? Could it bring more freedom for you to add extra features ?
RK - What's happening, the next DirectX, advances in OpenGL, advances in OpenCL, it's the same initiative that we have. We take all of this into consideration. I wouldn't say that we are just looking at Mantle and say "oh I can go off and do something crazy", definitely not thinking along this direction. But it does bring an ability for us to expose if we come off with an hardware innovation and we couldn't get it into a standard API for whatever reason, because of the cycle or something… It does provide a path mechanism for us to make it available to the developers, which is always a nice thing for a hardware company to be able to do.
Could we imagine that in a couple of years, a future architecture won't be able to run the first Mantle games ? Or did you design Mantle to be forward compatible ? There's always this kind of tradeoff with a lower level access…
RK - Those are all great questions but… Frankly we'll see how it goes. At the end of the day forward compatibility and backward compatibility are important aspects but if they're getting in the way of solving a problem at a given point of time, if they're getting in the way of exposing something that the new hardware is capable of that makes the game be hundred times more realistic, we have to be practical about it and that’s how we move things forward. We move technology forward and at some point of time we have to say "out with the old compatibility", and move forward. If not you get stuck.
Contenus relatifs
- [+] 11/07: Un patch Vulkan pour Doom
- [+] 26/03: Le test DirectX 12 de 3DMark est di...
- [+] 19/03: Mantle : guide de programmation dis...
- [+] 16/03: GDC: Quelle API de bas niveau va s'...
- [+] 04/03: GDC: Mantle a rempli son rôle et es...
- [+] 07/02: DirectX 12 : Benchmarks et exclusiv...
- [+] 04/10: Sniper Elite 3, nouveau titre Mantl...
- [+] 14/08: 1ère démo de DX12, +74% de fps
- [+] 12/08: AMD annonce 4 FirePro Wx100, dont l...
- [+] 02/05: SDK Mantle en beta privée