Anaconda Enterprise: Documentation

# 5.1. Overview

Numba supports HSA APU programming by directly compiling a restricted subset of Python code into HSA kernels and device functions following the HSA execution model. Kernels written in Numba appear to have direct access to NumPy arrays.

## 5.1.1. Terminology

Several important terms in the topic of HSA programming are listed here:

- kernels: a GPU function launched by the host and executed on the device
- device function: a GPU function executed on the device which can only be called from the device (i.e. from a kernel or another device function)

## 5.1.2. Requirements

This is a preview of the HSA feature. We only support Kavari on 64-bit Ubuntu at this time. Please consult offical documentation at this documentation. about system requirement.

## 5.1.3. Installation

Follow this document for installation instructions to enable HSA support for the system. Be sure to use the `.deb` packages to simplify the process. Aftwards, the following libraries must be added to your `LD_LIBRARY_PATH`:

- libhsakmt.so.1
- libhsa-runtime64.so
- libhsa-runtime-ext64.so

`libhsa-runtime64.so` and `libhsa-runtime-ext64.so` are in `/opt/hsa/lib` `libhsakmt.so.1` has no default location and is available from https://github.com/HSAFoundation/HSA-Drivers-Linux-AMD

The current implementation uses the stable LLVM compiler from AMD. To install, use `.deb` file from https://github.com/HSAFoundation/HSAIL-HLC-Stable This will install the binaries to `/opt/amd/bin`, which is expected by Numba.