Description
dpctl
program interface only supports OpenCL. To improve the situation, we need to support compiling kernels from Spir-V IL (Numba will be the primary consumer of this feature) and possibly from source files.
DPC++ does not yet provide a way to create a SYCL program from a SPIR-V IL, the feature is intended as a future enhancement. For this reason, dpctl
needs to first generate an interoperability program and then create a SYCL program
object from it. We already do this for OpenCL:
This issue ticket is implement the same feature for Level Zero driver API. Our implementation should be similar to the way the feature is implemented in DPC++:
https://github.com/intel/llvm/blob/68fc7808a50eba4d777e3442fbe5a1cc2e125bcd/sycl/plugins/level_zero/pi_level_zero.cpp#L2672
Other relevant references are:
- Level Zero API: https://spec.oneapi.com/level-zero/latest/core/api.html?highlight=zemodulecreate#module
- Level Zero Programming Guide: https://spec.oneapi.com/level-zero/latest/core/PROG.html#modules-and-kernels