Tools and SDK’s for HSA
HSA can be used to implement traditional GPGPU programming languages like OpenCL™ as well as new emerging standards like Microsoft C++AMP. HSA can also support broad set of languages ( System Programming, Application Programming, DSL) which will broaden the access of HSA programming to all levels of programmers.
Tools Programmers will be able to leverage HSA Run-time to build custom tools at different layers in the stack. HSAIL + AQL for full custom compilers ( GCC, etc) and Virtual Machines ( JVM,etc) , as well as leverage HSA enabled LLVM compiler stack, which generates HSAIL Binaries, for building compilers leveraging their choice in front ends.
HSAIL is HSA Intermediate Language which is the assembly language of HSA. LLVM compiler outputs to HSAIL binary object format which the HSA Finalizer ingests then translate to the native machine code of the Throughput computing unit( GPU, SPU)
HSA Runtime, Compiler, and Tools Project
Getting started programing HSA, AMD has made avalable on GitHub on HSA Foundation Section all the tools and foundation you need to get started.
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.
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.
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
The HSA Foundation is looking to work with companies that would like to engage in the development of tools, libraries and SDKs that support systems programming, application programming and domain specific programming.