Skip to content

Level-Zero on Aurora

Overview

The objective of the ‘oneAPI’ Level-Zero Application Programming Interface (API) is to provide direct-to-metal interfaces to offload accelerator devices. Its programming interface can be tailored to any device needs and can be adapted to support broader set of languages features such as function pointers, virtual functions, unified memory, and I/O capabilities.

Setting the environment to use Level-Zero on Aurora

The Intel Programming Environment is the main environment on Aurora. The Intel Compute Runtime is part of this environment and grants access to Level-Zero. The Intel Compute Runtime is loaded by default in your environment.

> module list

Currently Loaded Modules:
  1) gcc/11.2.0                    3) intel_compute_runtime/release/agama-devel-551   5) libfabric/1.15.2.0   7) cray-libpals/1.3.3
  2) mpich/51.2/icc-all-pmix-gpu   4) oneapi/eng-compiler/2022.12.30.003              6) cray-pals/1.3.3

Building on Aurora

Level-Zero is a C API that can be used in your application by including the ze_api.h file:

#include <ze_api.h>

Application that use the Level-Zero API need to be linked to the Level-Zero loader library by using the -lze_loader linker flag.

Level-Zero Documentation

The Level-Zero documentation can be found here: Level-Zero Specification.