Highlighted notes on:
Introduction to Level Zero API for Heterogeneous Programming by Juan Fumero
While doing research work with Prof. Dip Sankar Banerjee, Prof. Kishore Kothapalli.
Level-Zero appears quite similar to CUDA, but is very verbose. AS Juan has said, it is quite similar to OpenCL and Vulkan. It has command queues to commands to device for compute or copy. Shared memory (unified memory in CUDA) is used. Synchronization is done with events and fences (need to read what fences are). You can take an OpenCL kernel, compile with clang to SPIRV (used by Vulkan too) and load it up and build to native, and submit in a command list. Similar to CUDA, synchronize is needed to wait for kernel to complete as execution is asynchronous (its just submit to queue).
Like OpenCL, Level-Zero assumes multiple drivers, and devices, queues. Some picking needed for these (atleast for queues=compute).