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 also supports a broad set of languages ( System Programming, Application Programming, DSL) such as Python and C/C++ that broadens access of HSA programming to all levels of programmers.

HSAIL is HSA’s Intermediate Language that is the assembly language of HSA. It abstracts the complexities of compute devices in heterogeneous systems. A compiler outputs HSAIL in a binary object format. An HSA Finalizer then translates HSAIL to the native machine code of the computing unit( GPU, DSP, ISP, etc.).

Tools Programmers can leverage the 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 the HSA-enabled LLVM compiler stack, which generates HSAIL binaries.

HSA Runtime Stack

HSA Platform

HSA-Platform-Simple

HSA Runtime, Compiler, and Tools Project

Getting started programming HSA.

AMD has made available on HSA’s GitHub site all the tools and foundations you need to get started. The project provides an initial implementation of the HSA specifications on AMD 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.
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.

See more here

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:

Even more information can be found here


Compilers

Debugger

Profiler

Simulator

Libraries


Company Support

The HSA Foundation assists companies that engage in the development of tools, libraries and SDKs that support systems programming, application programming and domain specific programming.