The three core HSA Foundation specifications are available for public review. Also in addition a sample runtime, compiler, and driver are available for to interact for your review of the specifications.
HSA Foundation recently ratified and released the three main HSA specifications:
- 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.
- 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.
- HSA Runtime Programmer’s Reference Manual: Defines the APIs in the HSA Runtime used for tasks cuh 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/).
AMD is also supplying early implementation to test out capabilities of HSA
The project provides an initial implementation of the HSA specifications on the AMD “Kaveri” silicon a pre-HSA Compatible part. The implementation includes a Linux kernel and associated kernel-level drivers, the HSA runtime, and the HSAIL finalizer. The project includes a reference LLVM-based compiler which generates HSAIL and can extended to add additional languages that support HSAIL-based compute. The project also includes tools for assembling and disassembling HSAIL and for compiling OpenCL 2.0 kernels into HSAIL. Finally, the project includes an approachable runtime layer called “OKRA” designed to minimize the time required to get started with HSA. You can access these at https://github.com/HSAFoundation
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.
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.
Programmers interested in developing code that uses HSA features should investigate these projects:
- C++ and C++AMP Project
- CL Offline Compiler (CLOC) Project and examples
- OKRA Runtime
- HSAIL Assembler and Disassembler
(1) OpenCL and the OpenCL logo are trademarks of Apple, Inc. and used by permission of Khronos.
