SYCL* and numba-dpex Feature Comparison¶
The numba-dpex kernel API is developed with the aim of providing a SYCL*-like kernel programming features directly in Python. The page provides a summary of the SYCL* kernel programming features that are currently supported in numba-dpex’s kernel API.
Numba-dpex does not implement wrappers or analogues of SYCL’s host-callable
runtime API. Such features are provided by the dpctl
package.
SYCL* class |
numba-dpex class |
Notes |
---|---|---|
|
||
|
||
|
Not directly supported. All functions that return an |
|
|
||
|
||
|
Not supported. There is no corresponding API in numba-dpex for
|
|
|
||
|
Not supported |
SYCL* class |
numba-dpex class |
Notes |
---|---|---|
|
Not supported |
|
|
Not supported |
SYCL* function for invoking kernels |
numba-dpex function for invoking kernels |
Notes |
---|---|---|
|
Not supported |
|
|
SYCL* feature |
numba-dpex feature |
Notes |
---|---|---|
Accessor classes |
Not supported. Explicit |
|
|
group_barrier does not support synchronization across a sub-group. |
|
|
||
|
Not supported |
|
|
Atomic references are supported for both global and local memory. |
SYCL* class |
numba-dpex class |
Notes |
---|---|---|
|
||
|
Not supported as there is no corresponding API in numba-dpex for
Allocating variables on a work-item’s private memory can be done using
|
|
Constant memory |
SYCL 2020 no longer defines a constant memory region in the device memory model specification and as such the feature is not implemented by numba-dpex. |
|
Global memory |
Global memory allocation is not handled by numba-dpex and the kernel
argument is expected to have allocated memory on a device’s global
memory region using a USM allocators. Such allocators are provided by
the |
SYCL* group function |
numba-dpex function |
Notes |
---|---|---|
|
Not supported |
|
|
group_barrier does not support synchronization across a sub-group. |
SYCL* group algorithm |
numba-dpex function |
Notes |
---|---|---|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
|
|
Not supported |
SYCL* math function category |
numba-dpex |
Notes |
---|---|---|
Math functions |
Refer the kernel programming guide for list of supported functions. |
|
Half and reduced precision math functions |
Not supported |