James Edwards edited this page Jan 30, 2015 · 18 revisions

HSA Runtime, Compiler, and Tools Project


Heterogeneous System Architecture Foundation is a not-for-profit industry standards body focused on making it dramatically easier to program heterogeneous computing devices. The consortium comprises various software vendors, IP providers, and academic institutions and develops royalty-free standards and open-source software.


The HSA Foundation recently ratified and released 3 specifications:

  1. HSA Platform System Architecture Specification: Defines the requirements for shared virtual memory, platform coherency, signaling, queuing mechanics and packet formats, context switching, and the HSA memory model.
  2. HSA Programmer’s Reference Manual: Contains the HSAIL Virtual ISA and Programming Model, Compiler Writer’s Guide, and BRIG (the "HSAIL" compiler intermediate language) object format.
  3. HSA Runtime Programmer’s Reference Manual: Defines the APIs in the HSA Runtime used for tasks such as initialization and device discovery, queue creation, and memory management. These specifications are at the "1.0 Provisional" Level and are available from the HSA Foundation web site here (http://www.hsafoundation.com/standards/).

Initial Implementation

The project provides an initial implementation of the HSA specifications on the AMD "Kaveri" silicon. The implementation includes:

  • A Linux kernel and associated kernel-level drivers
  • HSA runtime
  • HSAIL finalizer

The project includes:

  • A reference LLVM-based compiler that generates HSAIL*
  • Tools for assembling and disassembling HSAIL
  • Tools for compiling OpenCL kernels into HSAIL.
  • An approachable runtime layer("OKRA") that minimizes the time required to get started with HSA.

*Compiler can extended to add additional languages that support HSAIL-based compute.

Who should use this project?

The project is aimed at:

  • Compiler and language developers who want to add parallel acceleration to a high-level language.
  • Programmers who want to leverage features of HSA such as shared-virtual-memory, platform atomics, user-level queues, and signals.

Next steps:

For an overall view of the different components of the project, see the list [here] (https://github.com/HSAFoundation/HSA-Docs-AMD/wiki/List-of-Specifications,-Presentations,-Drivers,-Compilers,-Tools,-Libraries).

For information regarding target platforms and installation instructions for the HSA drivers and user-mode libraries, see "HSA Platforms & Installation".

Compiler and programming language developers should investigate the [HSAIL Compiler Writers SDK] (https://github.com/HSAFoundation/HSA-Docs-AMD/wiki/Compiler-Writer-SDK).

Programmers interested in developing code that uses HSA features should investigate these projects:

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.