AMD Team up with Microsoft for HSA C++
Published: 28th August 2014 | Source: AMD |
AMD Team up with Microsoft for HSA C++
Kaveri APUs are the first HSA enabled APUs made by AMD. Simply put HSA is a processor architecture that integrates a CPU and a GPU onto a single bus, allowing them to share tasks and memory. This allows both to work together while sharing the same memory, which can drastically improve performance.
This allows both the CPU and the GPU to be much more highly compatible, at least in the eyes of a programmer, essentially allowing both the CPU and GPU units to be used for a single task without separate memory and scheduling. This in affect relieves the programmer of having to move data between devices and their disjointed memory, as has to be done with Open CL and CUDA.
Today it has been announced that AMD and Microsoft have been working on an opne source C++ compiler which among other things enables support for shared Physical memory, which greatly simplifies making HSA enabled applications on C++. This has the potential to make HSA enabled programs to become much more common, both on Windows and Linux, potentially making AMD's APUs a higher performing part than once thought.
AMD in collaboration with Microsoft today announced the release of C++ AMP version 1.2 – an open source C++ compiler which implements version 1.2 of the open specification for C++ AMP, available on both Linux and Windows for the first time. The release represents another step forward toward AMD’s goal of supporting cross-platform solutions, multiple programming languages and continued contributions to the open source community. The tool, which leverages Clang and LLVM, accelerates productivity and ease of use for developers wishing to harness the full power of modern heterogeneous platforms spanning servers, PCs and handheld devices.
“AMD has a consistent track record of enriching the developer experience, and we’re proud to make the first open source implementation of C++ AMP available to enable greater performance and more power-efficient applications,” said Manju Hegde, corporate vice president, Heterogeneous Applications and Solutions, AMD. “The cross-platform release is another step in strengthening AMD’s developer solutions, allowing for increased productivity and accelerated applications through shared physical memory across the CPU and GPU on both Linux and Windows.”
“AMD continues to deliver excellent developer tools for heterogeneous programming. Partnering with AMD to deliver C++ AMP to the Linux and Open Source communities was a natural step for Microsoft as we work to improve the performance and developer experience on modern computing platforms,” said S. Somasegar, corporate vice president of the Developer Division at Microsoft.
C++ AMP version 1.2 enables C++ developers to accelerate applications across a broad set of hardware and software configurations by supporting three outputs:
- Khronos Group OpenCL1, supporting AMD CPU/APU/GPU, Intel CPU/APU, NVIDIA GPU, Apple Mac OS X and other OpenCL compliant platforms;
- Khronos Group SPIR, supporting AMD CPU/APU/GPU, Intel CPU/APU and future SPIR compliant platforms; and
- HSA Foundation HSAIL, supporting AMD APU and future HSA compliant platforms.
A key performance feature of version 1.2 of the open source C++ AMP specification is support for shared physical memory, which greatly simplifies sharing of data between the CPU and GPU on heterogeneous platforms. Heterogeneous platforms built on the new spec allow programmers to benefit from minimized overhead of expensive data copies and pointer updates when accelerating applications.
- Access latest C++ AMP compiler source code here
- View the Open C++ AMP specification version 1.2 here
- For more information about Clang and LLVM, visit their website.
Join the discussion of AMD and Microsoft's HSA collaboration on the OC3D Forums.