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”).
Related Articles
- Unified Heterogeneous Computing Arrives
- APU Blends Quad Core x86 With 384 Core GPU
- Interview: Manju Hegde Talks About AMD's Heterogeneous System Architecture
- Unified CPU/GPU Memory Architecture Raises The Performance Bar
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.