Programs for Intel GPUs can be written using open industry and cross-platform standards, like:
OpenMP offloading in C/C++ and Fortran, i.e. with the help of compiler directives and a supporting compiler, e.g. Intel’s
icpx
(C/C++ compiler) andifx
(Fortran compiler) which is available inintel/...
environment modules.SYCL for C++, i.e. in a data-parallel and explicit fashion (similar to CUDA). Different to OpenMP, SYCL provides for more control over the code, data movements, allocations and so forth that are actually executed on the GPU. The SYCL implementation for Intel GPUs is provided by oneAPI. On the PVC partition, SYCL code can be compiled with the
icpx
compiler from theintel
environment environment module(s). Migration of existing CUDA codes can be assisted using the DPC++ Compatibility Tool. Thedpct
binary is available via theintel/...
environment modules. Note that SYCL codes can also be executed on Nvidia (and AMD) GPUs.
Please refer to the oneAPI Programming Guide for further details about programming. Contact NHR@ZIB support to get assistance on getting your application run on Intel GPUs
The following tools may be useful to check the availability and performance indicators of the GPUs
xpu-smi
(available without any environment module being loaded) lists the available GPUs from the drivers and selected metrics/properties.sycl-ls [--verbose]
(available inintel/...
environment modules) shows GPUs and their properties as available to applications.nvtop
(available innvtop
environment module) shows GPU compute and memory usage.