What's The Difference Between AMD's Mantle and Media SDK

April 22, 2014
AMD's Mantle and Media SDK are designed to take advantage of AMD’s latest accelerated processing units.

AMD is well known for its processor and GPU technology. It blended the two with its Accelerated Processing Unit (APU) technology (see “APU Blends Quad Core x86 With 384 Core GPU”). The initial incarnation combined multiple CPU and GPU cores together but the relationship between the two types of cores was similar to having an off-chip GPU. Performance was improved but programming practices remained the same.

AMD's move to the Heterogeneous System Architecture (HSA) that utilized heterogeneous unified memory access (hUMA) allowed the CPU and GPU to share the same virtual memory space (Fig. 1) changing the way programmers deal with applications that span the CPU and GPU (see “Unified CPU/GPU Memory Architecture Raises The Performance Bar”).

Figure 1. Heterogeneous System Architecture (HSA) unifies the memory access so CPU and GPU share the same virtual memory space.

Related Articles

Mantle and the AMD Media SDK are two AMD technologies that build on the APU and HSA approach but they target different multimedia areas.

Mantle is a new graphics API designed for high performance and low overhead programming. It takes advantage of the APU and provides programmers with more control and access to the APU. Mantle targets gaming but only because performance is critical to gaming. Mantle is actually useful for any graphics application area especially if developers want to tease out all the performance available using the Graphics Core Next (GCN) architecture found in AMD’s APUs.

The AMD Media SDK (AMS) supports the AMD Media Framework (AMF). It addresses video streaming and multimedia applications. There is also an AMD App SDK for GPU compute support using OpenCL as well as the True Audio support for audio.

Mantle is designed to run as part of AMD's Catalyst software suite and to target GPUs and APUs that are built on AMD's Core Next architecture. The AMS can be downloaded from AMD's website. This includes platforms like the AMD “Kaveri” A10-7000 Series and AMD A8-7000 Series APUs as well as GPUs like the Radeon HD 8000, R7 and R9 Series.

Mantle is designed to provide more power to programmers by taking advantage of the improved hardware and the interaction between the CPU and GPU. AMD developers wanted to provide a system that improved performance compared to Direct3D and OpenGL.

Mantle reduces runtime shader compilation overhead and provides explicit command buffer control. This fine grain control over the CPU and GPU via APIs is designed to have a low overhead. This includes explicit control of resource compression, expansion, and synchronization. It should provide near linear performance scaling from command buffers onto multiple CPU cores. Multicore rendering should support more than eight cores.

In theory, Mantle should provide a more efficient abstraction layer. It should be able to deliver higher number of frames per second than the alternatives on the same hardware reducing problems like micro stuttering and texture corruption.

Improved hardware support including the Video Coding Engine (VCE) and Unified Video Decoder (UVD) allows display encode mode as well as a direct connection between display and encoder, also known as the Display Encode Mode (DEM). An application can now do video capture and encode in one step with optimized latency. AMS initially supports Microsoft Windows 7 and 8 with Linux finding a home later on the AMD roadmap.

About the Author

William G. Wong | Senior Content Director - Electronic Design and Microwaves & RF

I am Editor of Electronic Design focusing on embedded, software, and systems. As Senior Content Director, I also manage Microwaves & RF and I work with a great team of editors to provide engineers, programmers, developers and technical managers with interesting and useful articles and videos on a regular basis. Check out our free newsletters to see the latest content.

You can send press releases for new products for possible coverage on the website. I am also interested in receiving contributed articles for publishing on our website. Use our template and send to me along with a signed release form. 

Check out my blog, AltEmbedded on Electronic Design, as well as his latest articles on this site that are listed below. 

You can visit my social media via these links:

I earned a Bachelor of Electrical Engineering at the Georgia Institute of Technology and a Masters in Computer Science from Rutgers University. I still do a bit of programming using everything from C and C++ to Rust and Ada/SPARK. I do a bit of PHP programming for Drupal websites. I have posted a few Drupal modules.  

I still get a hand on software and electronic hardware. Some of this can be found on our Kit Close-Up video series. You can also see me on many of our TechXchange Talk videos. I am interested in a range of projects from robotics to artificial intelligence. 

Sponsored Recommendations


To join the conversation, and become an exclusive member of Electronic Design, create an account today!