oxicuda-levelzero 0.1.2

OxiCUDA Level Zero — GPU compute via Intel oneAPI/Level Zero (pure Rust, libloading)
Documentation

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

  • LevelZeroBackend implementing the full ComputeBackend trait (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 spirv module for cross-vendor shader compilation
  • Device enumeration and selection via the device module
  • Memory management with unified shared memory (USM) via the memory module
  • Compiles on all platforms; returns UnsupportedPlatform on 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:

[dependencies]
oxicuda-levelzero = "0.1.2"
use oxicuda_levelzero::LevelZeroBackend;
use oxicuda_backend::ComputeBackend;

let mut backend = LevelZeroBackend::new();
backend.init()?;

let ptr = backend.alloc(1024)?;
// ... copy data, run kernels ...
backend.free(ptr)?;

License

Apache-2.0 — © 2026 COOLJAPAN OU (Team KitaSan)