This repository provides a reproducible workflow to build and distribute oneAPI Unified Runtime (UR) adapter installers as self-contained scripts.
The installers embed the required shared libraries (.so) as a base64-encoded payload
and install them directly into a versioned oneAPI compiler directory.
.
├── oneapi-ur-adapter.stub.sh # Installer stub (NO payload, safe to edit)
├── docs/ # GitHub Pages site
│ ├── index.html # Download UI
│ └── manifest.json # Available adapters (source of truth)
└── README.md
The final installer script with payload is not committed to the repository. It is published as a GitHub Release asset.
- The installer script contains:
- shell logic
- validation
- installation steps
- The UR adapter libraries are:
- archived (
tar.gz) - base64-encoded
- appended after a marker line
- archived (
- At runtime the installer:
- decodes the payload
- extracts the libraries
- installs them into:
<ONEAPI_ROOT>/compiler/<ONEAPI_VERSION>/lib
The CUDA adapter is built from Intel’s llvm repository under unified-runtime.
Example:
git clone https://github.com/intel/llvm -b v6.3.0 --depth=1
cd llvm
cmake -S unified-runtime -B build -DUR_BUILD_TESTS=OFF -DUR_ENABLE_TRACING=ON -DUR_BUILD_ADAPTER_OPENCL=ON -DUR_BUILD_ADAPTER_CUDA=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$PWD/ur-install"
cmake --build build -j
cmake --install buildUR_PREFIX="$PWD/ur-install"
rm -rf payload
mkdir -p payload/lib
# Copy libraries including symlinks
cp -a "${UR_PREFIX}/lib/libur"*.so* payload/lib/
tar -czf ur_adapter_payload.tar.gz -C payload .Edit only the stub script (installer.stub.sh).
The stub must end with a marker line:
__PAYLOAD_B64_BELOW__
Create the final installer:
OUT="oneapi-ur-cuda-linux-x86_64-2025.3.sh"
cat installer.stub.sh <(base64 -w 0 ur_adapter_payload.tar.gz) > "$OUT"
chmod +x "$OUT"
⚠️ Do not open or edit the final installer after appending the payload.
./oneapi-ur-cuda-linux-x86_64-2025.3.shCustom oneAPI root:
./oneapi-ur-cuda-linux-x86_64-2025.3.sh --oneapi-root /custom/intel/oneapiVerify:
source /opt/intel/oneapi/setvars.sh
sycl-ls --verbose- GitHub Releases: installer scripts (binary artifacts)
- GitHub Pages: download UI and manifest
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.