AMD's Mantle API Gives Devs Direct Hardware Control

Page 2 - Seeking answers? Join the Tom's Hardware community: where nearly two million members share solutions and discuss the latest tech.
Status
Not open for further replies.




isn't that console have their own API? DX11.2 for Xbone and OpenGL for PS4? also i haven't seen this Mantle API are confirmed to be open source yet.
 

InvalidError

Titan
Moderator

The API itself can be open but that still wouldn't do Nvidia any good since the API is intended to reduce the amount of middleware between applications and the GCN chips under the hood by giving them practically RAW access to compute resources, which means the whole GPU data and instruction flow is already compiled and optimized for GCN which is likely gibberish for Nvidia GPUs so a whole translation layer (middleware) would be needed for Nvidia's drivers to translate Mantle calls to something Nvidia's GPUs can work with, defeating most of the point behind Mantle in the first place.

If you write portable shaders for DX10/11, you use High Level Shader Language (HLSL) which gets compiled by the GPU driver to whatever the GPU requires. With Mantle, you can write and optimize straight GCN code since GCN is the only architecture family Mantle supports. Precompiled and likely hand-tuned GCN shaders are of little use for Nvidia GPUs.

Mantle is a bit like ditching Java's (or .NET MSIL) portability by using a native binary compiler instead of a bytecode compiler: you can run Java bytecode on any platform that has a suitable JRE with or without native recompiler regardless of CPU platform but when you compile direct to native binary, the output only works with that particular CPU architecture and underlying OS.
 

FunSurfer

Distinguished
Does Mantle mean that a 7870 (=PS4 GFX) can be optimized for games along with the consoles for the next 7 -10 years until the next "next gen" consoles? Good for gamers, not so good for business...
 

Kewlx25

Distinguished
People saying it would alienate half of the customers. Nope. AMD GPUs are going to be used in 100% of modern consoles. PS4, xBox One, and Wii.

As for not portable, this API will exist on Windows, Linux, and FreeBSD. I'm not sure how more portable you can get.
 

Not portable across HW.
DirectX and OpenGL as well as the accompanying graphics drivers were created to create an isolation layer that allows software to work across various GPUs without the program needing specific code for each card.

It seems pretty silly to have each program require a hardware specific graphics driver built in.

As much as directx needs to be replaced, going backwards to direct hw access is not the way to go.
 

jakrabbit

Honorable
Sep 26, 2013
2
0
10,510
Devs not being able to get the most out of GPU's is one of the reasons why I've stayed away from PC gaming as i could never justify paying for hardware that's not really being pushed to it's limits. AMD has given me a reason to be interested again :)
 

cmi86

Distinguished
I bet nvidid is really kicking themselves in the butt for not taking ps4/XB1. AMD has the gaming world by the balls and this makes it's grip even tighter. This doesn't look good for the green team.
 

InvalidError

Titan
Moderator

Mantle is unlikely to be portable to Nvidia GPUs, non-GCN AMD GPUs and IGPs, Intel IGPs and SoC IGPs aside from the XBOne and PS4, etc.

It has a very specific purpose: provide uniform low-level access to GCN across the PC and console space. This also means that Mantle (at least in its current incarnation) has a probable lifespan of about 7 years. Once AMD hardware outgrows Mantle/GCN capabilities, they will have to change architecture which will probably break Mantle support and force titles to fall back to DX10/11 unless updated for Mantle2.0/WCN* for newer GPUs.

While developing for the GPU equivalent of native language might bring nice optimization opportunities, it also comes with the inconvenience of having to rewrite and re-compile on a per-architecture basis if you want to get the most out of each of them.

WCN: Whatever (GPU Architecture) Comes Next.
 

Philippe Leblanc

Honorable
Mar 14, 2013
13
0
10,510
As much as I like AMD and how they're able to innovate and chug along despite being totally dwarfed by intel, I think this mantle api is not the right way to go. I know it's business and giving yourself the advantage by providing the best tools available to developers in smart on the short term, long term it does great disservice to the community and consumers. By investing instead in openGL, openCL and heterogenous system architecture using open standards, it would allow the greater community to take this stuff and run with it.

Look at what happened with CUDA, an NVidia exclusive. It was great technology (and probably still is) when it came out, but developers started realizing that when you're writing code that uses it, you're basically cutting your user base by half (cuda doesn't run on amd graphics card). That's bad for the ecosystem and will simply cause fragmentation.
 

wirefire99

Honorable
Jun 20, 2013
16
0
10,520
The average application will still use the older style API's (DirectX and OpenGL). What this does is actually two-fold for AMD and developers.

1) Gives a common interface to program to for applications for Xbox One / PS4 / Wii U and PC. The PC version of this is not as important up front, but may be used by developers of things like game engines that will be reused over and over by other games. If the programming environment allows the Mantle based code to be ported to DirectX / OpenGL all the better except the optimization will be horrible.

2) If AMD can get game developers on board with this product it could spell the end of NVIDIA. If games come out and all of a sudden work better with a lower priced AMD card in a PC and that game can be rolled out to all platforms on one code base. The law of least resistance will work its magic. Developers will use it because it minimizes cost and lower time to market, Users will buy AMD because they get more performance for less card. This also opens the door for future APUs becoming more powerful gaming machines.

I had doubts about the viability of AMD as a company around the time of the core / core 2 architecture introduction by Intel, but did see merit in their APU aspirations. Now with the console contracts, product lines, and development tools beginning to come in place I am beginning to see a future where AMDs products will dominate several areas in the computing marketplace. They will never be the fastest computer again, they will never control tablet or laptop segments. But general purpose computing and server computing in some areas could end up being steamrolled (haha) by AMD in the near future.
 
I'm sitting on a couple 5xx series graphics cards from nVidia with an aging AMD APU in another machine. This all sounds pretty interesting. I'm intrigued to see how it all really plays out. It's enough to keep me from making any sort of upgrades for the time being.

I have mixed feelings about GTA 5 for instance. Obviously, a PC version won't land until 2014, possibly 2015. We all know how the GTA 4 port pretty much sucked balls as far as optimization goes. If they are still weak in this area, I see the PS4/XB1 version having an easier porting experience over to PC with something like Mantle. Rockstar's too <whatever you want to call it> though, and probably wouldn't implement something that might make their jobs' easier, and then have to share the accolades of a successful port due to assistance from AMD's API (or any other outside source).

Another thing, obviously having multiple choices for graphics cards is good for prices, and innovation, assuming they are always trying to "one up" the competition. I can't help but think though that a single option would be the absolute best for the quality of games. Assuming AMD gets their asses in gear, gets everything else right and nailed down (drivers drivers drivers), it could be a wonderful time for PC gaming. We have to assume that the majority of PC games coming will still be ports of the console versions, regardless what devs say.

I'm rambling now, but yes, this is very interesting, and I'm excited to see where it goes. Let's hope they aren't dicks about it over the next half-decade or so, leave a bad taste in everyone's mouth, and ruin their chances of supplying the next-next-gen consoles with their cpus and gpus.

Lastly, if AMD cards do in fact provide 20% more performance through this API, and it gets wide acceptance, you can be damn sure that AMD requests a premium price for it. I still remember those +$1000 CPUs when they had the upperhand.
 

InvalidError

Titan
Moderator

Consider the alternatives:
1- Microsoft is not interested in OpenGL/OpenCL since they have DirectX, DirectCompute, HLSL, etc. They have been trying to get rid of OpenGL support in Windows for a decade.
2- Sony is not interested in DirectX
3- Both XBOne and PS4 support Mantle
4- AMD has the ability to bring Mantle to PCs using GCN GPU(s) too so console developers do not need to rewrite their heavily optimized console GPU code - at least not for people who choose AMD GCN GPUs or when porting games between GCN-based platforms

The console market is already fragmented by definition but Mantle enables game developer to maximize returns on their development efforts by having one single low-level API for all platforms to worry about at least until Mantle/GCN runs out of steam.

Games will still have generic DXn or OGL support to cover non-Mantle/GCN GPUs and IGPs so it isn't quite as if Nvidia and Intel were completely out of the game but it does mean they may have a sizable handicap to overcome - the article did say Mantle allows ~9X faster API call rates than DX/OGL.
 

hannibal

Distinguished
Hmmm... I hope that mantle really is open, but when it is designed to use GCN, not so likely.
It does provide huge boost in speed and effiency, but it allso can unbalance the GPU war and that would not be good in the long run... But there allready are api's that are closed like physX and so on, so this is nothing new.
Interesting to see how this will develop in the future.
 

bustapr

Distinguished
Jan 23, 2009
1,613
0
19,780
this is more something that the console devs would and should use. I dont really see pc game devs using this api unless they are amd partners. in any way, using this would mean more dev time because mantle would work on nvidia hardware, so theyd have to program the old fashioned way for those cards. it is a great step forward for amd however.
 
honestly i don't know if this will be good or not in the long run (good for amd if this was successful anyway). right now nvidia are working with valve to push linux and openGL. instead doubling their effort on existing open standard (OpenGL) amd are working on Mantle.
 

InvalidError

Titan
Moderator

Or plan to port to or from consoles where Mantle's streamlined middleware might be necessary to offset the handicap of much slower individual CPU cores.
 

Philippe Leblanc

Honorable
Mar 14, 2013
13
0
10,510


I agree with pretty much everything you said. Mantle is appealing right now since AMD will dominate the console market for the near future and has a sizeable chunk of the PC market. If mantle is as awesome as they say it is, you'd be crazy not take advantage of it. But in return, I would expect them to open the source code for everyone. If they keep this closed up, they are no better than Microsoft and NVdia with their proprietary DirectX and CUDA APIs. Proprietary APIs are not healthy for the ecosystem longterm.
 

InvalidError

Titan
Moderator

You missed one fundamental problem with that: Mantle is a LOW-LEVEL hardware access API. This means the way software makes API calls to access the hardware is intrinsically bound to the underlying hardware much like native (binary) x86 code is bound to x86 architectures and native ARM code is bound to ARM architectures. If you want to cross architecture boundaries, you need a translation/emulation layer which often means significant performance penalties.

Basically, even if AMD open-sourced all of Mantle, the underlying GPU instruction set, architecture and data structures would still be bound to GCN (Mantle is created specifically to expose the raw GCN architecture to software developers) so neither Nvidia, Intel or anyone else would be able to use it effectively unless they modified their chips to mimic the GCN architecture, instruction set and data structures at least close enough that they won't need a massive on-the-fly translation/emulation layer.

So, regardless of source code openness, Mantle is only portable across platforms with GCN GPUs and IGPs because the API has direct ties to hardware - much like 3dfx's Glide.

OpenGL and DirectX are hardware ABSTRACTION layers which try to decouple the developer from underlying hardware as much as possible. Mantle does exactly the opposite by giving developers almost bare-metal access to the hardware it supports.
 

childofthekorn

Honorable
Jan 31, 2013
359
0
10,780


Mantle is open source, AMD only change to the product is to effectively use its GCN architecture...Nvidia can do the same, so its no...it's not proprietary.
 

InvalidError

Titan
Moderator

Except Nvidia's GPUs do not have the exact same data structures, architectural structures, control/data flows and instruction set as AMD's so even if Nvidia makes a GK1xx-flavored version of Mantle, it likely won't be binary-compatible with applications written for AMD's due to chip architectures being too different so game developers would need to rewrite their Mantle framework to accommodate each vendor's GPU architecture(s) on a case-by-case basis.

So, the way I understand it, Mantle has little practical use beyond AMD's own GCN ecosystem but its inclusion in high-profile consoles will make it difficult to ignore.
 
Status
Not open for further replies.