DirectGMA on AMD’s FirePro GPUs

Efficiently Exchange data with your GPU with Direct Graphic Memory Access

In the visual computing world, accelerators of many types are now very common for a lot of different applications. These days the need to have them communicating and exchanging data together is critical.

In order to do that very efficiently and with minimum latency, like streams, we need direct communication between the devices. This is why AMD, leader in heterogeneous computing architectures, has introduced DirectGMA for their AMD FireProTM W5x00 and above and for all AMD FireProTM S series products, as well as some embedded products, to be able to exchange data efficiently between different devices like GPUs, FPGAs, etc.

S9150Birdseye_RGB_10inDirectGMA exposes a part of the GPU memory and makes it accessible to other devices on the bus. By knowing the address of the exposed memory, any device that supports DirectGMA can write directly into GPU memory and vice versa the GPU can write into the memory of a peer device instead of transferring the data to system memory first.  This mechanism can be used to exchange data between AMD FireProTM GPUs and third devices or to do peer-to-peer transfers between multiple AMD FirePro GPUs in one system. With today’s PCIE 3.0 technology, DirectGMA is a very efficient way of transferring data at very low latency.

One example of efficient use of DirectGMA is live video processing. DirectGMA is widely supported by SDI video I/O PCIe board vendors, enabling their SDI devices to stream video directly into and from GPU memory. The GPU can process the video stream and write it back into the memory of the SDI device that will finally display the processed frame.

Other use cases are the peer-to-peer data exchange between GPUs to combine their processing power for complex compute tasks or the support of network adapters to allow low latency data exchange in a compute cluster.

Another parameter is the API support for developers to integrate this into their application and workflows. DirectGMA is supported on OpenCL™, OpenGL, DirectX® 9, DirectX 10 and DirectX 11. So it brings complete flexibility for any application to integrate it and get the benefits.

The OS support is also interesting since DirectGMA supports Linux 64bit as well as Windows® 7 64bit.

A lot of different partners are already using DirectGMA, and new areas are more and more able to get the benefits of it from heterogeneous hardware architectures with a mix of FPGAs and GPUs.

If you would like more technical details, feel free to contact us at, visit the AMD FirePro developer forums or view the technical presentation below.

DirectGMA on AMD’s FirePro™ GPUs
DirectGMA Technical Presentation
Click to view technical presentation




Bruno Stefanizzi is Senior Manager Software Development at AMD. HIs postings are his own opinions and may not represent AMD’s positions, strategies or opinions. Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such linked sites and no endorsement is implied.


3 Responses