Global Namespace¶
Overview¶
// typedefs typedef void error_handler_callback(int err_code); typedef struct DPCTLDeviceVector* DPCTLDeviceVectorRef; typedef struct DPCTLPlatformVector* DPCTLPlatformVectorRef; typedef struct DPCTLOpaqueSyclContext* DPCTLSyclContextRef; typedef struct DPCTLOpaqueSyclDevice* DPCTLSyclDeviceRef; typedef struct DPCTLOpaqueSyclDeviceSelector* DPCTLSyclDeviceSelectorRef; typedef struct DPCTLOpaqueSyclEvent* DPCTLSyclEventRef; typedef struct DPCTLOpaqueSyclKernel* DPCTLSyclKernelRef; typedef struct DPCTLOpaqueSyclPlatform* DPCTLSyclPlatformRef; typedef struct DPCTLOpaqueSyclProgram* DPCTLSyclProgramRef; typedef struct DPCTLOpaqueSyclQueue* DPCTLSyclQueueRef; typedef struct DPCTLOpaqueSyclUSM* DPCTLSyclUSMRef; // enums enum DPCTLKernelArgType; enum DPCTLPartitionAffinityDomainType; enum DPCTLQueuePropertyType; enum DPCTLSyclAspectType; enum DPCTLSyclBackendType; enum DPCTLSyclDeviceType; // global functions DPCTL_API bool DPCTLContext_AreEq( __dpctl_keep const DPCTLSyclContextRef CtxRef1, __dpctl_keep const DPCTLSyclContextRef CtxRef2 ); DPCTL_API __dpctl_give DPCTLSyclContextRef DPCTLContext_Copy(__dpctl_keep const DPCTLSyclContextRef CRef); DPCTL_API __dpctl_give DPCTLSyclContextRef DPCTLContext_Create( __dpctl_keep const DPCTLSyclDeviceRef DRef, error_handler_callback* error_handler, int properties ); DPCTL_API __dpctl_give DPCTLSyclContextRef DPCTLContext_CreateFromDevices( __dpctl_keep const DPCTLDeviceVectorRef DVRef, error_handler_callback* error_handler, int properties ); DPCTL_API void DPCTLContext_Delete(__dpctl_take DPCTLSyclContextRef CtxRef); DPCTL_API size_t DPCTLContext_DeviceCount(__dpctl_keep const DPCTLSyclContextRef CRef); DPCTL_API DPCTLSyclBackendType DPCTLContext_GetBackend(__dpctl_keep const DPCTLSyclContextRef CtxRef); DPCTL_API __dpctl_give DPCTLDeviceVectorRef DPCTLContext_GetDevices(__dpctl_keep const DPCTLSyclContextRef CRef); DPCTL_API bool DPCTLContext_IsHost(__dpctl_keep const DPCTLSyclContextRef CtxRef); DPCTL_API bool DPCTLDevice_AreEq( __dpctl_keep const DPCTLSyclDeviceRef DRef1, __dpctl_keep const DPCTLSyclDeviceRef DRef2 ); DPCTL_API __dpctl_give DPCTLSyclDeviceRef DPCTLDevice_Copy(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API __dpctl_give DPCTLSyclDeviceRef DPCTLDevice_Create(void); DPCTL_API __dpctl_give DPCTLSyclDeviceRef DPCTLDevice_CreateFromSelector(__dpctl_keep const DPCTLSyclDeviceSelectorRef DSRef); DPCTL_API __dpctl_give DPCTLDeviceVectorRef DPCTLDevice_CreateSubDevicesByAffinity( __dpctl_keep const DPCTLSyclDeviceRef DRef, DPCTLPartitionAffinityDomainType PartAffDomTy ); DPCTL_API __dpctl_give DPCTLDeviceVectorRef DPCTLDevice_CreateSubDevicesByCounts( __dpctl_keep const DPCTLSyclDeviceRef DRef, __dpctl_keep size_t* counts, size_t ncounts ); DPCTL_API __dpctl_give DPCTLDeviceVectorRef DPCTLDevice_CreateSubDevicesEqually( __dpctl_keep const DPCTLSyclDeviceRef DRef, size_t count ); DPCTL_API void DPCTLDevice_Delete(__dpctl_take DPCTLSyclDeviceRef DRef); DPCTL_API DPCTLSyclBackendType DPCTLDevice_GetBackend(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API DPCTLSyclDeviceType DPCTLDevice_GetDeviceType(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API const __dpctl_give char* DPCTLDevice_GetDriverVersion(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API size_t DPCTLDevice_GetImage2dMaxHeight(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API size_t DPCTLDevice_GetImage2dMaxWidth(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API size_t DPCTLDevice_GetImage3dMaxDepth(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API size_t DPCTLDevice_GetImage3dMaxHeight(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API size_t DPCTLDevice_GetImage3dMaxWidth(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API uint32_t DPCTLDevice_GetMaxComputeUnits(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API uint32_t DPCTLDevice_GetMaxNumSubGroups(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API uint32_t DPCTLDevice_GetMaxReadImageArgs(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API size_t DPCTLDevice_GetMaxWorkGroupSize(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API uint32_t DPCTLDevice_GetMaxWorkItemDims(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API __dpctl_keep size_t* DPCTLDevice_GetMaxWorkItemSizes(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API uint32_t DPCTLDevice_GetMaxWriteImageArgs(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API const __dpctl_give char* DPCTLDevice_GetName(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API __dpctl_give DPCTLSyclDeviceRef DPCTLDevice_GetParentDevice(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API __dpctl_give DPCTLSyclPlatformRef DPCTLDevice_GetPlatform(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API uint32_t DPCTLDevice_GetPreferredVectorWidthChar(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API uint32_t DPCTLDevice_GetPreferredVectorWidthDouble(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API uint32_t DPCTLDevice_GetPreferredVectorWidthFloat(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API uint32_t DPCTLDevice_GetPreferredVectorWidthHalf(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API uint32_t DPCTLDevice_GetPreferredVectorWidthInt(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API uint32_t DPCTLDevice_GetPreferredVectorWidthLong(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API uint32_t DPCTLDevice_GetPreferredVectorWidthShort(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_C_EXTERN_C_END DPCTL_API bool DPCTLDevice_GetSubGroupIndependentForwardProgress(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API const __dpctl_give char* DPCTLDevice_GetVendor(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API bool DPCTLDevice_HasAspect( __dpctl_keep const DPCTLSyclDeviceRef DRef, DPCTLSyclAspectType AT ); DPCTL_API bool DPCTLDevice_IsAccelerator(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API bool DPCTLDevice_IsCPU(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API bool DPCTLDevice_IsGPU(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API bool DPCTLDevice_IsHost(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API bool DPCTLDevice_IsHostUnifiedMemory(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API DPCTLSyclContextRef DPCTLDeviceMgr_GetCachedContext(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API __dpctl_give DPCTLDeviceVectorRef DPCTLDeviceMgr_GetDevices(int device_identifier); DPCTL_API size_t DPCTLDeviceMgr_GetNumDevices(int device_identifier); DPCTL_API int DPCTLDeviceMgr_GetPositionInDevices( __dpctl_keep DPCTLSyclDeviceRef DRef, int device_identifier ); DPCTL_API int64_t DPCTLDeviceMgr_GetRelativeId(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API void DPCTLDeviceMgr_PrintDeviceInfo(__dpctl_keep const DPCTLSyclDeviceRef DRef); DPCTL_API void DPCTLDeviceVector_Clear(__dpctl_keep DPCTLDeviceVectorRef VRef); __dpctl_give DPCTLDeviceVectorRef DPCTLDeviceVector_Create(void); DPCTL_API __dpctl_give DPCTLDeviceVectorRef DPCTLDeviceVector_CreateFromArray( size_t len, __dpctl_keep DPCTLSyclDeviceRef* elems ); DPCTL_API void DPCTLDeviceVector_Delete(__dpctl_take DPCTLDeviceVectorRef VRef); DPCTL_API __dpctl_give DPCTLSyclDeviceRef DPCTLDeviceVector_GetAt( __dpctl_keep DPCTLDeviceVectorRef VRef, size_t index ); DPCTL_API size_t DPCTLDeviceVector_Size(__dpctl_keep DPCTLDeviceVectorRef VRef); DPCTL_API __dpctl_give DPCTLSyclDeviceSelectorRef DPCTLAcceleratorSelector_Create(void); DPCTL_API __dpctl_give DPCTLSyclDeviceSelectorRef DPCTLCPUSelector_Create(void); DPCTL_API __dpctl_give DPCTLSyclDeviceSelectorRef DPCTLDefaultSelector_Create(void); DPCTL_API void DPCTLDeviceSelector_Delete(__dpctl_take DPCTLSyclDeviceSelectorRef DSRef); DPCTL_API int DPCTLDeviceSelector_Score( __dpctl_keep DPCTLSyclDeviceSelectorRef DSRef, __dpctl_keep DPCTLSyclDeviceRef DRef ); DPCTL_API __dpctl_give DPCTLSyclDeviceSelectorRef DPCTLFilterSelector_Create(__dpctl_keep const char* filter_str); DPCTL_API __dpctl_give DPCTLSyclDeviceSelectorRef DPCTLGPUSelector_Create(void); DPCTL_API __dpctl_give DPCTLSyclDeviceSelectorRef DPCTLHostSelector_Create(void); DPCTL_API void DPCTLEvent_Delete(__dpctl_take DPCTLSyclEventRef ERef); DPCTL_API void DPCTLEvent_Wait(__dpctl_keep DPCTLSyclEventRef ERef); DPCTL_API void DPCTLKernel_Delete(__dpctl_take DPCTLSyclKernelRef KRef); DPCTL_API const __dpctl_give char* DPCTLKernel_GetFunctionName(__dpctl_keep const DPCTLSyclKernelRef KRef); DPCTL_API size_t DPCTLKernel_GetNumArgs(__dpctl_keep const DPCTLSyclKernelRef KRef); DPCTL_API __dpctl_give DPCTLSyclPlatformRef DPCTLPlatform_Copy(__dpctl_keep const DPCTLSyclPlatformRef PRef); DPCTL_API __dpctl_give DPCTLSyclPlatformRef DPCTLPlatform_Create(void); DPCTL_API __dpctl_give DPCTLSyclPlatformRef DPCTLPlatform_CreateFromSelector(__dpctl_keep const DPCTLSyclDeviceSelectorRef DSRef); DPCTL_API void DPCTLPlatform_Delete(__dpctl_take DPCTLSyclPlatformRef PRef); DPCTL_API DPCTLSyclBackendType DPCTLPlatform_GetBackend(__dpctl_keep const DPCTLSyclPlatformRef PRef); DPCTL_API const __dpctl_give char* DPCTLPlatform_GetName(__dpctl_keep const DPCTLSyclPlatformRef PRef); DPCTL_API __dpctl_give DPCTLPlatformVectorRef DPCTLPlatform_GetPlatforms(void); DPCTL_API const __dpctl_give char* DPCTLPlatform_GetVendor(__dpctl_keep const DPCTLSyclPlatformRef PRef); DPCTL_API const __dpctl_give char* DPCTLPlatform_GetVersion(__dpctl_keep const DPCTLSyclPlatformRef PRef); DPCTL_API void DPCTLPlatformMgr_PrintInfo( __dpctl_keep const DPCTLSyclPlatformRef PRef, size_t verbosity ); DPCTL_API void DPCTLPlatformVector_Clear(__dpctl_keep DPCTLPlatformVectorRef VRef); __dpctl_give DPCTLPlatformVectorRef DPCTLPlatformVector_Create(void); DPCTL_API __dpctl_give DPCTLPlatformVectorRef DPCTLPlatformVector_CreateFromArray( size_t len, __dpctl_keep DPCTLSyclPlatformRef* elems ); DPCTL_API void DPCTLPlatformVector_Delete(__dpctl_take DPCTLPlatformVectorRef VRef); DPCTL_API __dpctl_give DPCTLSyclPlatformRef DPCTLPlatformVector_GetAt( __dpctl_keep DPCTLPlatformVectorRef VRef, size_t index ); DPCTL_API size_t DPCTLPlatformVector_Size(__dpctl_keep DPCTLPlatformVectorRef VRef); DPCTL_API __dpctl_give DPCTLSyclProgramRef DPCTLProgram_CreateFromOCLSource( __dpctl_keep const DPCTLSyclContextRef Ctx, __dpctl_keep const char* Source, __dpctl_keep const char* CompileOpts ); DPCTL_API __dpctl_give DPCTLSyclProgramRef DPCTLProgram_CreateFromSpirv( __dpctl_keep const DPCTLSyclContextRef Ctx, __dpctl_keep const void* IL, size_t Length, const char* CompileOpts ); DPCTL_API void DPCTLProgram_Delete(__dpctl_take DPCTLSyclProgramRef PRef); DPCTL_API __dpctl_give DPCTLSyclKernelRef DPCTLProgram_GetKernel( __dpctl_keep DPCTLSyclProgramRef PRef, __dpctl_keep const char* KernelName ); DPCTL_API bool DPCTLProgram_HasKernel( __dpctl_keep DPCTLSyclProgramRef PRef, __dpctl_keep const char* KernelName ); DPCTL_API bool DPCTLQueue_AreEq( __dpctl_keep const DPCTLSyclQueueRef QRef1, __dpctl_keep const DPCTLSyclQueueRef QRef2 ); DPCTL_API __dpctl_give DPCTLSyclQueueRef DPCTLQueue_Copy(__dpctl_keep const DPCTLSyclQueueRef QRef); DPCTL_API __dpctl_give DPCTLSyclQueueRef DPCTLQueue_Create( __dpctl_keep const DPCTLSyclContextRef CRef, __dpctl_keep const DPCTLSyclDeviceRef DRef, error_handler_callback* error_handler, int properties ); DPCTL_API __dpctl_give DPCTLSyclQueueRef DPCTLQueue_CreateForDevice( __dpctl_keep const DPCTLSyclDeviceRef dRef, error_handler_callback* error_handler, int properties ); DPCTL_API void DPCTLQueue_Delete(__dpctl_take DPCTLSyclQueueRef QRef); DPCTL_API DPCTLSyclBackendType DPCTLQueue_GetBackend(__dpctl_keep DPCTLSyclQueueRef QRef); DPCTL_API __dpctl_give DPCTLSyclContextRef DPCTLQueue_GetContext(__dpctl_keep const DPCTLSyclQueueRef QRef); DPCTL_API __dpctl_give DPCTLSyclDeviceRef DPCTLQueue_GetDevice(__dpctl_keep const DPCTLSyclQueueRef QRef); DPCTL_API bool DPCTLQueue_IsInOrder(__dpctl_keep const DPCTLSyclQueueRef QRef); DPCTL_API void DPCTLQueue_MemAdvise( __dpctl_keep DPCTLSyclQueueRef QRef, const void* Ptr, size_t Count, int Advice ); DPCTL_API void DPCTLQueue_Memcpy( __dpctl_keep const DPCTLSyclQueueRef QRef, void* Dest, const void* Src, size_t Count ); DPCTL_API void DPCTLQueue_Prefetch( __dpctl_keep DPCTLSyclQueueRef QRef, const void* Ptr, size_t Count ); DPCTL_API DPCTLSyclEventRef DPCTLQueue_SubmitNDRange( __dpctl_keep const DPCTLSyclKernelRef KRef, __dpctl_keep const DPCTLSyclQueueRef QRef, __dpctl_keep void** Args, __dpctl_keep const DPCTLKernelArgType* ArgTypes, size_t NArgs, __dpctl_keep const size_t gRange[3], __dpctl_keep const size_t lRange[3], size_t NDims, __dpctl_keep const DPCTLSyclEventRef* DepEvents, size_t NDepEvents ); DPCTL_API DPCTLSyclEventRef DPCTLQueue_SubmitRange( __dpctl_keep const DPCTLSyclKernelRef KRef, __dpctl_keep const DPCTLSyclQueueRef QRef, __dpctl_keep void** Args, __dpctl_keep const DPCTLKernelArgType* ArgTypes, size_t NArgs, __dpctl_keep const size_t Range[3], size_t NRange, __dpctl_keep const DPCTLSyclEventRef* DepEvents, size_t NDepEvents ); DPCTL_API void DPCTLQueue_Wait(__dpctl_keep const DPCTLSyclQueueRef QRef); DPCTL_API __dpctl_give DPCTLSyclQueueRef DPCTLQueueMgr_GetCurrentQueue(void); DPCTL_API size_t DPCTLQueueMgr_GetQueueStackSize(void); DPCTL_API bool DPCTLQueueMgr_GlobalQueueIsCurrent(void); DPCTL_API bool DPCTLQueueMgr_IsCurrentQueue(__dpctl_keep const DPCTLSyclQueueRef QRef); DPCTL_API void DPCTLQueueMgr_PopQueue(void); DPCTL_API void DPCTLQueueMgr_PushQueue(__dpctl_keep const DPCTLSyclQueueRef QRef); DPCTL_API void DPCTLQueueMgr_SetGlobalQueue(__dpctl_keep const DPCTLSyclQueueRef QRef); DPCTL_API __dpctl_give DPCTLSyclUSMRef DPCTLaligned_alloc_device( size_t alignment, size_t size, __dpctl_keep const DPCTLSyclQueueRef QRef ); DPCTL_API __dpctl_give DPCTLSyclUSMRef DPCTLaligned_alloc_host( size_t alignment, size_t size, __dpctl_keep const DPCTLSyclQueueRef QRef ); DPCTL_API __dpctl_give DPCTLSyclUSMRef DPCTLaligned_alloc_shared( size_t alignment, size_t size, __dpctl_keep const DPCTLSyclQueueRef QRef ); DPCTL_API void DPCTLfree_with_context( __dpctl_take DPCTLSyclUSMRef MRef, __dpctl_keep const DPCTLSyclContextRef CRef ); DPCTL_API void DPCTLfree_with_queue( __dpctl_take DPCTLSyclUSMRef MRef, __dpctl_keep const DPCTLSyclQueueRef QRef ); DPCTL_API __dpctl_give DPCTLSyclUSMRef DPCTLmalloc_device( size_t size, __dpctl_keep const DPCTLSyclQueueRef QRef ); DPCTL_API __dpctl_give DPCTLSyclUSMRef DPCTLmalloc_host( size_t size, __dpctl_keep const DPCTLSyclQueueRef QRef ); DPCTL_API __dpctl_give DPCTLSyclUSMRef DPCTLmalloc_shared( size_t size, __dpctl_keep const DPCTLSyclQueueRef QRef ); DPCTL_API DPCTLSyclDeviceRef DPCTLUSM_GetPointerDevice( __dpctl_keep const DPCTLSyclUSMRef MRef, __dpctl_keep const DPCTLSyclContextRef CRef ); const DPCTL_API char* DPCTLUSM_GetPointerType( __dpctl_keep const DPCTLSyclUSMRef MRef, __dpctl_keep const DPCTLSyclContextRef CRef );
Detailed Documentation¶
Typedefs¶
typedef void error_handler_callback(int err_code)
Type of function to be used in SYCL async error handler provide by DPCTL.
Parameters:
err_code |
Error code extracted from an SYCL asynchronous error. |
typedef struct DPCTLOpaqueSyclContext* DPCTLSyclContextRef
Opaque pointer to a sycl::context
typedef struct DPCTLOpaqueSyclDevice* DPCTLSyclDeviceRef
Opaque pointer to a sycl::device
typedef struct DPCTLOpaqueSyclDeviceSelector* DPCTLSyclDeviceSelectorRef
Opaque pointer to a sycl::device_selector
typedef struct DPCTLOpaqueSyclEvent* DPCTLSyclEventRef
Opaque pointer to a sycl::event
typedef struct DPCTLOpaqueSyclKernel* DPCTLSyclKernelRef
Opaque pointer to a sycl::kernel
typedef struct DPCTLOpaqueSyclPlatform* DPCTLSyclPlatformRef
Opaque pointer to a sycl::platform
typedef struct DPCTLOpaqueSyclProgram* DPCTLSyclProgramRef
Opaque pointer to a sycl::program
typedef struct DPCTLOpaqueSyclQueue* DPCTLSyclQueueRef
Opaque pointer to a sycl::queue
typedef struct DPCTLOpaqueSyclUSM* DPCTLSyclUSMRef
Used to pass a sycl::usm
memory opaquely through DPCTL interfaces.
Global Functions¶
DPCTL_API size_t DPCTLDevice_GetImage2dMaxHeight(__dpctl_keep const DPCTLSyclDeviceRef DRef)
Wrapper over device.get_info<info::device::image2d_max_height>().
Parameters:
DRef |
Opaque pointer to a sycl::device |
Returns:
Returns the maximum height of a 2D image or 1D image in pixels. The minimum value is 8192 if the SYCL device has aspect::image.
DPCTL_API size_t DPCTLDevice_GetImage2dMaxWidth(__dpctl_keep const DPCTLSyclDeviceRef DRef)
Wrapper over device.get_info<info::device::image2d_max_width>().
Parameters:
DRef |
Opaque pointer to a sycl::device |
Returns:
Returns the maximum width of a 2D image or 1D image in pixels. The minimum value is 8192 if the SYCL device has aspect::image.
DPCTL_API size_t DPCTLDevice_GetImage3dMaxDepth(__dpctl_keep const DPCTLSyclDeviceRef DRef)
Wrapper over device.get_info<info::device::image3d_max_depth>().
Parameters:
DRef |
Opaque pointer to a sycl::device |
Returns:
Returns the maximum depth of a 3D image The minimum value is 2048 if the SYCL device has aspect::image.
DPCTL_API size_t DPCTLDevice_GetImage3dMaxHeight(__dpctl_keep const DPCTLSyclDeviceRef DRef)
Wrapper over device.get_info<info::device::image3d_max_height>().
Parameters:
DRef |
Opaque pointer to a sycl::device |
Returns:
Returns the maximum height of a 3D image The minimum value is 2048 if the SYCL device has aspect::image.
DPCTL_API size_t DPCTLDevice_GetImage3dMaxWidth(__dpctl_keep const DPCTLSyclDeviceRef DRef)
Wrapper over device.get_info<info::device::image3d_max_width>().
Parameters:
DRef |
Opaque pointer to a sycl::device |
Returns:
Returns the maximum width of a 3D image in pixels. The minimum value is 2048 if the SYCL device has aspect::image.
DPCTL_API uint32_t DPCTLDevice_GetMaxReadImageArgs(__dpctl_keep const DPCTLSyclDeviceRef DRef)
Wrapper over device.get_info<info::device::max_read_image_args>().
Parameters:
DRef |
Opaque pointer to a sycl::device |
Returns:
Returns the maximum number of simultaneous image objects that can be read from by a kernel. The minimum value is 128 if the SYCL device has aspect::image.
DPCTL_API uint32_t DPCTLDevice_GetMaxWriteImageArgs(__dpctl_keep const DPCTLSyclDeviceRef DRef)
Wrapper over device.get_info<info::device::max_write_image_args>().
Parameters:
DRef |
Opaque pointer to a sycl::device |
Returns:
Returns the maximum number of simultaneous image objects that can be written to by a kernel. The minimum value is 8 if the SYCL device has aspect::image.
DPCTL_API __dpctl_give DPCTLSyclDeviceRef DPCTLDevice_GetParentDevice(__dpctl_keep const DPCTLSyclDeviceRef DRef)
Wrapper over device.get_info<info::device::parent_device>
Parameters:
DRef |
Opaque pointer to a sycl::device |
Returns:
Returns an opaque pointer to the parent device for a sub-device, or nullptr otherwise.