is changing the software equation with its Heterogeneous System Architecture (HSA) design (see Unified CPU/GPU Memory Architecture Raises The Performance Bar). It is a hardware architecture based on their APU (accelerated processing unit) that combines CPU and GPU cores. HSA takes the combination a step further with HSA that provides a single address space for the CPU and GPU cores. The unified approach is going to have a major impact on software development which is why AMD's technology received the Best of 2013 Embedded Software award.
I talked with Manju Hegde, Corporate Vice President, Heterogeneous Applications and Developer Solutions, about HSA.
Wong: What is the Heterogeneous System Architecture?
Hegde: HSA is a revolutionary system architecture intended to make CPU, GPU, DSP and other processors work together in harmony by improving programmability. It provides a much better power efficient computing by unlocking the entire compute performance of the APU or SoC. It does this by giving all-processors-equitable access to memory and other resources. HSA is an industry standard designed to improve the programmability of heterogeneous systems.
Wong: What are the main components of HSA?
Hegde: HSA provides a uniform memory architecture for heterogeneous computing devices, and an architected queuing mechanism for efficient processor-to-processor communication. For instance in AMD’s APU
- hUMA defines how processors inside an APU access memory
- hQ defines how processors inside an APU interact with each other to handle computational tasks
Wong: Can the architecture work with different CPU and GPU architectures?
Hegde: Yes. HSA Foundation is an industry standards body and its members include AMD, ARM, Imagination Technologies, Samsung, Texas Instruments, Qualcomm, and more – these vendors support a wide variety of CPU, GPU, and DSP architectures.
Wong: What impact will HSA have on programming and applications?
Hegde: HSA changes everything with respect to how accelerated devices are programmed. Programmers can get the power and performance benefits of accelerated devices using the same programming techniques used for multicore CPU devices.
Wong: What software tools are being developed to take advantage of the architecture?
Embedded developers will typically use C/C++, OpenCL, and Java. HSA will accelerate widely used libraries. This includes popular “domain” libs such as libraries used for language acceleration. Popular domain-specific libraries for math, media, vision, analytics, and simulation are also in the mix.
HSA has support from the top Linux variants including Ubuntu, RHEL, SLES, Android, and Yocto. These provide comprehensive tools, SDKs and community support.
Wong: How will programmers be able to take advantage of the architecture?
Hegde: Programmers will use existing programming models such as Java or C++. Similar to multi-core CPU programming, programmers will need to identify parallel code regions, but can benefit from additional performance provided by hardware designed for efficient data-parallel execution such as GPUs.
- Programmers will be able to create the next wave of game-changing and differentiated GPU-accelerated applications that will work across X86 and ARM platforms using familiar programming tools and existing skill sets. Some of the benefits include:
- Familiar and Powerful Programming Models. Dramatically ease the programming for heterogeneous parallel devices by using familiar development languages (Python, C++ and Java) and existing skill sets and without the complexity of using special purpose APIs
- Low Development Costs. HSA is an industry standard architecture that enables your applications to run across multiple devices and hardware ecosystems.
Wong: When will hardware be available to run the software?
Hegde: Kaveri will be the first APU to take advantage of HSA Features