AMD’s Mantle API – first, bleak opinion

Due to many fuzz coming from recent developments around AMD, I found time today to review some of the very sparse material on AMD’s new Graphics API – Mantle. A good starting point for getting an overview is given via this website.

Now, I have been developing Graphics code and GPU code since many years. It reminds me on my Bachelor’s Thesis times (thesis is here, german), where I worked on parallel, multi-GPU rendering. Due to the different hardware architectures back then (NVIDIA: GT200b; AMD: Streaming Architecture), a developer at some point needs to consider options outside of OpenGL and DirectX in order to leverage such technology features. Yes, there are API extension calls inside OpenGL for everything – but: if one and the same technology (multi-GPU rendering, e.g.) is that poorly converted into a standard (such as OpenGL), then the walk to the more performant API is just recommendable.

Now, back then, we had: NVAPI, NVIDIA SDK (low-level graphics APIs), CUDA (low-level GPGPU API which transformed into PhysX for Graphics, multi-GPU enabled) and AMD Stream SDK (low-level graphics API) and AMD Brook+ (low-level GPGPU API). The difference between both vendors has always been the following:

The bare chip – the graphics architecture embedded in the sillicon chip – has always been superior at AMD’s side. If one is putting a bare OpenGL/CL implementation with no fancy architecture adaptation/optimization to the test (=>simple raytracer tests) for equivalently-emerging GPU’s, then AMD/ATI chips give higher performance rates. Question thus: Why can then NVIDA ask for usually 4/3 of the price of an equivalent AMD-chip ? Why do graphics (resp. graphics developers) work better with NVIDIA cards ? Simple answer: ease of the software stack. While it is relatively easy to squeeze out a bit more performance from an NVIDIA card, due to the superior API collection, documentation, installation etc., it is very, very painful sometimes to optimize for AMD architectures because their API’s are sometimes a bit disorganized – meaning: using e.g. Stream SDK and Brook+ together wasn’t working properly for some time, there’s a constant lack of documentation for the sotware stack and some SDK’s given from AMD are still visibly „a collection of OpenSource libraries“. They miss the glue.

So, what I hope most sincerely from AMD is the distribution of a well-defined, well-documented, IDE-wise well supported (=> Eclipse integration please!!!) API stack that appears also as „one glue – one API“. If that’s the case, Mantle could be the game changer for AMD that they were looking – there counter-piece to NVIDIA’s CUDA (marketshare-wise) some time ago. Let’s hope for the best.

Dieser Beitrag wurde unter English, Graphics, Programming, Work veröffentlicht. Setze ein Lesezeichen auf den Permalink.