This library provides a shim over functions provided by the SYCL-based Intel MKL library implementation. It is designed to be used as a backend allowing other libraries that provide a well-defined HIP-based interface (e.g. HipBLAS) to run on Intel GPUs. It is needed because:
This library's headers are implemented so that they are accepted by both compilers.
It is implemented as a distinct CMake project and maintained in a distinct source code repository because it is intended to service multiple higher-level libraries.
The project uses CMake for configuration, build, and install.
You need a couple of oneAPI packages installed for the configuration step to succeed. They can be installed in Debian-based Linux distributions using a command along the lines of the following:
sudo apt install intel-oneapi-mkl-devel intel-oneapi-compiler-dpcpp-cpp
An example of a build:
mkdir build && cd build . /opt/intel/oneapi/setvars.sh cmake .. -DCMAKE_CXX_COMPILER=icpx -DCMAKE_INSTALL_PREFIX=$HOME/local/stow/H4I-MKLShim make all install