[llvm] [OFFLOAD] Add plugin with support for Intel oneAPI Level Zero (PR #158900)

Piotr Balcer via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 9 03:03:34 PDT 2025


pbalcer wrote:

I've successfully launched a simple SYCL program with a kernel through liboffload using this L0 plugin. I had to do a few minor changes, but it mostly worked.

The biggest problem is that the current Plugin Interface infrastructure assumes that program binaries are ELF images. This seems OpenMP-specific, and is not true for SPIR-V (nor PTX, but it was hacked around to produce CUBIN instead) produced by SYCL. Our existing runtime API simply treats the programs as just binary blobs, and passes it directly into the L0/cuda/hip driver.

Given the existing liboffload API for launching a kernel, the metadata contained in the ELF images doesn't seem necessary to me. And if there's anything missing, we can just add the required information to the API calls themselves. To make liboffload more generic, I think it'd be best to move the ELF requirement up a layer so that OpenMP can continue working as is with elf images, and other higher-level languages (like SYCL) can use whatever they want.

https://github.com/llvm/llvm-project/pull/158900


More information about the llvm-commits mailing list