oxicuda-levelzero
Part of the OxiCUDA ecosystem — Pure Rust CUDA replacement for the COOLJAPAN ecosystem.
Overview
oxicuda-levelzero provides a LevelZeroBackend that implements the ComputeBackend trait from oxicuda-backend using Intel's oneAPI Level Zero API. It targets Intel Arc, Xe, and integrated GPUs on Linux and Windows by loading libze_loader.so / ze_loader.dll at runtime via libloading, with no C SDK dependency at compile time.
Features
LevelZeroBackendimplementing the fullComputeBackendtrait (GEMM, conv2D, attention, reduce, unary/binary ops, memory management)- Runtime driver loading via
libloading— zero link-time dependency on the Intel GPU driver - SPIR-V kernel support via the
spirvmodule for cross-vendor shader compilation - Intel Xe Matrix Extensions (XMX) SPIR-V generators via the
spirv_xmxmodule — cooperative-matrix GEMM for Xe/Arc/Ponte Vecchio GPUs - Sub-group optimized kernels via the
spirv_subgroupmodule — warp-level reduction, scan, and GEMM usingGroupNonUniformopcodes - Neural-network SPIR-V kernels via the
spirv_nnmodule — Conv2D and scaled dot-product attention - Multi-tile / multi-device dispatch via the
multi_tilemodule — distributes workloads across Intel Max series GPU sub-device tiles - Device enumeration and selection via the
devicemodule - Memory management with unified shared memory (USM) via the
memorymodule - Compiles on all platforms; returns
UnsupportedPlatformon macOS so cross-platform workspaces are unaffected
Platform Support
| Platform | Status |
|---|---|
| Linux (Intel GPU) | Full support via libze_loader.so |
| Windows (Intel GPU) | Full support via ze_loader.dll |
| macOS | Compile-only; returns UnsupportedPlatform at runtime |
Usage
Add to your Cargo.toml:
[]
= "0.1.5"
use LevelZeroBackend;
use ComputeBackend;
let mut backend = new;
backend.init?;
let ptr = backend.alloc?;
// ... copy data, run kernels ...
backend.free?;
Status
- Version: 0.1.5 (2026-05-01)
- Tests: 104 passing
License
Apache-2.0 — © 2026 COOLJAPAN OU (Team KitaSan)