Kernel_bundle class C wrapper
Overview
// global functions DPCTL_API __dpctl_give DPCTLSyclKernelBundleRef DPCTLKernelBundle_Copy(__dpctl_keep const DPCTLSyclKernelBundleRef KBRef); DPCTL_API __dpctl_give DPCTLSyclKernelBundleRef DPCTLKernelBundle_CreateFromOCLSource( __dpctl_keep const DPCTLSyclContextRef Ctx, __dpctl_keep const DPCTLSyclDeviceRef Dev, __dpctl_keep const char* Source, __dpctl_keep const char* CompileOpts ); DPCTL_API __dpctl_give DPCTLSyclKernelBundleRef DPCTLKernelBundle_CreateFromSpirv( __dpctl_keep const DPCTLSyclContextRef Ctx, __dpctl_keep const DPCTLSyclDeviceRef Dev, __dpctl_keep const void* IL, size_t Length, const char* CompileOpts ); DPCTL_API void DPCTLKernelBundle_Delete(__dpctl_take DPCTLSyclKernelBundleRef KBRef); DPCTL_API __dpctl_give DPCTLSyclKernelRef DPCTLKernelBundle_GetKernel( __dpctl_keep DPCTLSyclKernelBundleRef KBRef, __dpctl_keep const char* KernelName ); DPCTL_API bool DPCTLKernelBundle_HasKernel( __dpctl_keep DPCTLSyclKernelBundleRef KBRef, __dpctl_keep const char* KernelName );
Detailed Documentation
Global Functions
DPCTL_API __dpctl_give DPCTLSyclKernelBundleRef DPCTLKernelBundle_Copy(__dpctl_keep const DPCTLSyclKernelBundleRef KBRef)
Returns a copy of the DPCTLSyclKernelBundleRef object.
Parameters:
| KBRef | DPCTLSyclKernelBundleRef object to be copied. | 
Returns:
A new DPCTLSyclKernelBundleRef created by copying the passed in DPCTLSyclKernelBundleRef object.
DPCTL_API __dpctl_give DPCTLSyclKernelBundleRef DPCTLKernelBundle_CreateFromOCLSource( __dpctl_keep const DPCTLSyclContextRef Ctx, __dpctl_keep const DPCTLSyclDeviceRef Dev, __dpctl_keep const char* Source, __dpctl_keep const char* CompileOpts )
Create a Sycl kernel bundle from an OpenCL kernel source string.
Parameters:
| Ctx | An opaque pointer to a sycl::context | 
| Dev | An opaque pointer to a sycl::device | 
| Source | OpenCL source string | 
| CompileOpts | Extra compiler flags (refer Sycl spec.) | 
Returns:
A new SyclKernelBundleRef pointer if the program creation succeeded, else returns NULL.
DPCTL_API __dpctl_give DPCTLSyclKernelBundleRef DPCTLKernelBundle_CreateFromSpirv( __dpctl_keep const DPCTLSyclContextRef Ctx, __dpctl_keep const DPCTLSyclDeviceRef Dev, __dpctl_keep const void* IL, size_t Length, const char* CompileOpts )
Create a Sycl kernel_bundle from an OpenCL SPIR-V binary file.
Uses SYCL2020 interoperability layer to create sycl::kernel_bundle object in executable state for OpenCL and Level-Zero backends from SPIR-V binary.
Parameters:
| Ctx | An opaque pointer to a sycl::context | 
| Dev | An opaque pointer to a sycl::device | 
| IL | SPIR-V binary | 
| Length | The size of the IL binary in bytes. | 
| CompileOpts | Optional compiler flags used when compiling the SPIR-V binary. | 
Returns:
A new SyclKernelBundleRef pointer if the kernel_bundle creation succeeded, else returns NULL.
DPCTL_API void DPCTLKernelBundle_Delete(__dpctl_take DPCTLSyclKernelBundleRef KBRef)
Frees the DPCTLSyclKernelBundleRef pointer.
Parameters:
| KBRef | Opaque pointer to a sycl::kernel_bundle | 
DPCTL_API __dpctl_give DPCTLSyclKernelRef DPCTLKernelBundle_GetKernel( __dpctl_keep DPCTLSyclKernelBundleRef KBRef, __dpctl_keep const char* KernelName )
Returns the SyclKernel with given name from the program, if not found then return NULL.
Parameters:
| KBRef | Opaque pointer to a sycl::kernel_bundle | 
| KernelName | Name of kernel | 
Returns:
A SyclKernel reference if the kernel exists, else NULL
DPCTL_API bool DPCTLKernelBundle_HasKernel( __dpctl_keep DPCTLSyclKernelBundleRef KBRef, __dpctl_keep const char* KernelName )
Return True if a SyclKernel with given name exists in the program, if not found then returns False.
Parameters:
| KBRef | Opaque pointer to a sycl::kernel_bundle | 
| KernelName | Name of kernel | 
Returns:
True if the kernel exists, else False