.. _global: .. index:: pair: namespace; global Global Namespace ================ .. toctree:: :hidden: enum_DPCTLKernelArgType.rst enum_DPCTLPartitionAffinityDomainType.rst enum_DPCTLQueuePropertyType.rst enum_DPCTLSyclAspectType.rst enum_DPCTLSyclBackendType.rst enum_DPCTLSyclDeviceType.rst Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block // typedefs typedef void :ref:`error_handler_callback`(int err_code); typedef struct DPCTLDeviceVector* :target:`DPCTLDeviceVectorRef`; typedef struct DPCTLPlatformVector* :target:`DPCTLPlatformVectorRef`; typedef struct DPCTLOpaqueSyclContext* :ref:`DPCTLSyclContextRef`; typedef struct DPCTLOpaqueSyclDevice* :ref:`DPCTLSyclDeviceRef`; typedef struct DPCTLOpaqueSyclDeviceSelector* :ref:`DPCTLSyclDeviceSelectorRef`; typedef struct DPCTLOpaqueSyclEvent* :ref:`DPCTLSyclEventRef`; typedef struct DPCTLOpaqueSyclKernel* :ref:`DPCTLSyclKernelRef`; typedef struct DPCTLOpaqueSyclPlatform* :ref:`DPCTLSyclPlatformRef`; typedef struct DPCTLOpaqueSyclProgram* :ref:`DPCTLSyclProgramRef`; typedef struct DPCTLOpaqueSyclQueue* :ref:`DPCTLSyclQueueRef`; typedef struct DPCTLOpaqueSyclUSM* :ref:`DPCTLSyclUSMRef`; // enums enum :ref:`DPCTLKernelArgType`; enum :ref:`DPCTLPartitionAffinityDomainType`; enum :ref:`DPCTLQueuePropertyType`; enum :ref:`DPCTLSyclAspectType`; enum :ref:`DPCTLSyclBackendType`; enum :ref:`DPCTLSyclDeviceType`; // global functions DPCTL_API bool :ref:`DPCTLContext_AreEq`( __dpctl_keep const :ref:`DPCTLSyclContextRef` CtxRef1, __dpctl_keep const :ref:`DPCTLSyclContextRef` CtxRef2 ); DPCTL_API __dpctl_give :ref:`DPCTLSyclContextRef` :ref:`DPCTLContext_Copy`(__dpctl_keep const :ref:`DPCTLSyclContextRef` CRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclContextRef` :ref:`DPCTLContext_Create`( __dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef, :ref:`error_handler_callback`* error_handler, int properties ); DPCTL_API __dpctl_give :ref:`DPCTLSyclContextRef` :ref:`DPCTLContext_CreateFromDevices`( __dpctl_keep const :ref:`DPCTLDeviceVectorRef` DVRef, :ref:`error_handler_callback`* error_handler, int properties ); DPCTL_API void :ref:`DPCTLContext_Delete`(__dpctl_take :ref:`DPCTLSyclContextRef` CtxRef); DPCTL_API size_t :ref:`DPCTLContext_DeviceCount`(__dpctl_keep const :ref:`DPCTLSyclContextRef` CRef); DPCTL_API :ref:`DPCTLSyclBackendType` :ref:`DPCTLContext_GetBackend`(__dpctl_keep const :ref:`DPCTLSyclContextRef` CtxRef); DPCTL_API __dpctl_give :ref:`DPCTLDeviceVectorRef` :ref:`DPCTLContext_GetDevices`(__dpctl_keep const :ref:`DPCTLSyclContextRef` CRef); DPCTL_API bool :ref:`DPCTLContext_IsHost`(__dpctl_keep const :ref:`DPCTLSyclContextRef` CtxRef); DPCTL_API bool :ref:`DPCTLDevice_AreEq`( __dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef1, __dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef2 ); DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceRef` :ref:`DPCTLDevice_Copy`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceRef` :ref:`DPCTLDevice_Create`(void); DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceRef` :ref:`DPCTLDevice_CreateFromSelector`(__dpctl_keep const :ref:`DPCTLSyclDeviceSelectorRef` DSRef); DPCTL_API __dpctl_give :ref:`DPCTLDeviceVectorRef` :ref:`DPCTLDevice_CreateSubDevicesByAffinity`( __dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef, :ref:`DPCTLPartitionAffinityDomainType` PartAffDomTy ); DPCTL_API __dpctl_give :ref:`DPCTLDeviceVectorRef` :ref:`DPCTLDevice_CreateSubDevicesByCounts`( __dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef, __dpctl_keep size_t* counts, size_t ncounts ); DPCTL_API __dpctl_give :ref:`DPCTLDeviceVectorRef` :ref:`DPCTLDevice_CreateSubDevicesEqually`( __dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef, size_t count ); DPCTL_API void :ref:`DPCTLDevice_Delete`(__dpctl_take :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API :ref:`DPCTLSyclBackendType` :ref:`DPCTLDevice_GetBackend`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API :ref:`DPCTLSyclDeviceType` :ref:`DPCTLDevice_GetDeviceType`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API const __dpctl_give char* :ref:`DPCTLDevice_GetDriverVersion`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API size_t :ref:`DPCTLDevice_GetImage2dMaxHeight`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API size_t :ref:`DPCTLDevice_GetImage2dMaxWidth`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API size_t :ref:`DPCTLDevice_GetImage3dMaxDepth`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API size_t :ref:`DPCTLDevice_GetImage3dMaxHeight`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API size_t :ref:`DPCTLDevice_GetImage3dMaxWidth`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetMaxComputeUnits`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetMaxNumSubGroups`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetMaxReadImageArgs`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API size_t :ref:`DPCTLDevice_GetMaxWorkGroupSize`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetMaxWorkItemDims`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API __dpctl_keep size_t* :ref:`DPCTLDevice_GetMaxWorkItemSizes`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetMaxWriteImageArgs`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API const __dpctl_give char* :ref:`DPCTLDevice_GetName`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceRef` :ref:`DPCTLDevice_GetParentDevice`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclPlatformRef` :ref:`DPCTLDevice_GetPlatform`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetPreferredVectorWidthChar`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetPreferredVectorWidthDouble`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetPreferredVectorWidthFloat`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetPreferredVectorWidthHalf`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetPreferredVectorWidthInt`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetPreferredVectorWidthLong`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetPreferredVectorWidthShort`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_C_EXTERN_C_END DPCTL_API bool :ref:`DPCTLDevice_GetSubGroupIndependentForwardProgress`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API const __dpctl_give char* :ref:`DPCTLDevice_GetVendor`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API bool :ref:`DPCTLDevice_HasAspect`( __dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef, :ref:`DPCTLSyclAspectType` AT ); DPCTL_API bool :ref:`DPCTLDevice_IsAccelerator`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API bool :ref:`DPCTLDevice_IsCPU`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API bool :ref:`DPCTLDevice_IsGPU`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API bool :ref:`DPCTLDevice_IsHost`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API bool :ref:`DPCTLDevice_IsHostUnifiedMemory`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API :ref:`DPCTLSyclContextRef` :ref:`DPCTLDeviceMgr_GetCachedContext`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API __dpctl_give :ref:`DPCTLDeviceVectorRef` :ref:`DPCTLDeviceMgr_GetDevices`(int device_identifier); DPCTL_API size_t :ref:`DPCTLDeviceMgr_GetNumDevices`(int device_identifier); DPCTL_API int :ref:`DPCTLDeviceMgr_GetPositionInDevices`( __dpctl_keep :ref:`DPCTLSyclDeviceRef` DRef, int device_identifier ); DPCTL_API int64_t :ref:`DPCTLDeviceMgr_GetRelativeId`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API void :ref:`DPCTLDeviceMgr_PrintDeviceInfo`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API void :ref:`DPCTLDeviceVector_Clear`(__dpctl_keep :ref:`DPCTLDeviceVectorRef` VRef); __dpctl_give :ref:`DPCTLDeviceVectorRef` :ref:`DPCTLDeviceVector_Create`(void); DPCTL_API __dpctl_give :ref:`DPCTLDeviceVectorRef` :ref:`DPCTLDeviceVector_CreateFromArray`( size_t len, __dpctl_keep :ref:`DPCTLSyclDeviceRef`* elems ); DPCTL_API void :ref:`DPCTLDeviceVector_Delete`(__dpctl_take :ref:`DPCTLDeviceVectorRef` VRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceRef` :ref:`DPCTLDeviceVector_GetAt`( __dpctl_keep :ref:`DPCTLDeviceVectorRef` VRef, size_t index ); DPCTL_API size_t :ref:`DPCTLDeviceVector_Size`(__dpctl_keep :ref:`DPCTLDeviceVectorRef` VRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceSelectorRef` :ref:`DPCTLAcceleratorSelector_Create`(void); DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceSelectorRef` :ref:`DPCTLCPUSelector_Create`(void); DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceSelectorRef` :ref:`DPCTLDefaultSelector_Create`(void); DPCTL_API void :ref:`DPCTLDeviceSelector_Delete`(__dpctl_take :ref:`DPCTLSyclDeviceSelectorRef` DSRef); DPCTL_API int :ref:`DPCTLDeviceSelector_Score`( __dpctl_keep :ref:`DPCTLSyclDeviceSelectorRef` DSRef, __dpctl_keep :ref:`DPCTLSyclDeviceRef` DRef ); DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceSelectorRef` :ref:`DPCTLFilterSelector_Create`(__dpctl_keep const char* filter_str); DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceSelectorRef` :ref:`DPCTLGPUSelector_Create`(void); DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceSelectorRef` :ref:`DPCTLHostSelector_Create`(void); DPCTL_API void :ref:`DPCTLEvent_Delete`(__dpctl_take :ref:`DPCTLSyclEventRef` ERef); DPCTL_API void :ref:`DPCTLEvent_Wait`(__dpctl_keep :ref:`DPCTLSyclEventRef` ERef); DPCTL_API void :ref:`DPCTLKernel_Delete`(__dpctl_take :ref:`DPCTLSyclKernelRef` KRef); DPCTL_API const __dpctl_give char* :ref:`DPCTLKernel_GetFunctionName`(__dpctl_keep const :ref:`DPCTLSyclKernelRef` KRef); DPCTL_API size_t :ref:`DPCTLKernel_GetNumArgs`(__dpctl_keep const :ref:`DPCTLSyclKernelRef` KRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclPlatformRef` :ref:`DPCTLPlatform_Copy`(__dpctl_keep const :ref:`DPCTLSyclPlatformRef` PRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclPlatformRef` :ref:`DPCTLPlatform_Create`(void); DPCTL_API __dpctl_give :ref:`DPCTLSyclPlatformRef` :ref:`DPCTLPlatform_CreateFromSelector`(__dpctl_keep const :ref:`DPCTLSyclDeviceSelectorRef` DSRef); DPCTL_API void :ref:`DPCTLPlatform_Delete`(__dpctl_take :ref:`DPCTLSyclPlatformRef` PRef); DPCTL_API :ref:`DPCTLSyclBackendType` :ref:`DPCTLPlatform_GetBackend`(__dpctl_keep const :ref:`DPCTLSyclPlatformRef` PRef); DPCTL_API const __dpctl_give char* :ref:`DPCTLPlatform_GetName`(__dpctl_keep const :ref:`DPCTLSyclPlatformRef` PRef); DPCTL_API __dpctl_give :ref:`DPCTLPlatformVectorRef` :ref:`DPCTLPlatform_GetPlatforms`(void); DPCTL_API const __dpctl_give char* :ref:`DPCTLPlatform_GetVendor`(__dpctl_keep const :ref:`DPCTLSyclPlatformRef` PRef); DPCTL_API const __dpctl_give char* :ref:`DPCTLPlatform_GetVersion`(__dpctl_keep const :ref:`DPCTLSyclPlatformRef` PRef); DPCTL_API void :ref:`DPCTLPlatformMgr_PrintInfo`( __dpctl_keep const :ref:`DPCTLSyclPlatformRef` PRef, size_t verbosity ); DPCTL_API void :ref:`DPCTLPlatformVector_Clear`(__dpctl_keep :ref:`DPCTLPlatformVectorRef` VRef); __dpctl_give :ref:`DPCTLPlatformVectorRef` :ref:`DPCTLPlatformVector_Create`(void); DPCTL_API __dpctl_give :ref:`DPCTLPlatformVectorRef` :ref:`DPCTLPlatformVector_CreateFromArray`( size_t len, __dpctl_keep :ref:`DPCTLSyclPlatformRef`* elems ); DPCTL_API void :ref:`DPCTLPlatformVector_Delete`(__dpctl_take :ref:`DPCTLPlatformVectorRef` VRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclPlatformRef` :ref:`DPCTLPlatformVector_GetAt`( __dpctl_keep :ref:`DPCTLPlatformVectorRef` VRef, size_t index ); DPCTL_API size_t :ref:`DPCTLPlatformVector_Size`(__dpctl_keep :ref:`DPCTLPlatformVectorRef` VRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclProgramRef` :ref:`DPCTLProgram_CreateFromOCLSource`( __dpctl_keep const :ref:`DPCTLSyclContextRef` Ctx, __dpctl_keep const char* Source, __dpctl_keep const char* CompileOpts ); DPCTL_API __dpctl_give :ref:`DPCTLSyclProgramRef` :ref:`DPCTLProgram_CreateFromSpirv`( __dpctl_keep const :ref:`DPCTLSyclContextRef` Ctx, __dpctl_keep const void* IL, size_t Length, const char* CompileOpts ); DPCTL_API void :ref:`DPCTLProgram_Delete`(__dpctl_take :ref:`DPCTLSyclProgramRef` PRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclKernelRef` :ref:`DPCTLProgram_GetKernel`( __dpctl_keep :ref:`DPCTLSyclProgramRef` PRef, __dpctl_keep const char* KernelName ); DPCTL_API bool :ref:`DPCTLProgram_HasKernel`( __dpctl_keep :ref:`DPCTLSyclProgramRef` PRef, __dpctl_keep const char* KernelName ); DPCTL_API bool :ref:`DPCTLQueue_AreEq`( __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef1, __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef2 ); DPCTL_API __dpctl_give :ref:`DPCTLSyclQueueRef` :ref:`DPCTLQueue_Copy`(__dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclQueueRef` :ref:`DPCTLQueue_Create`( __dpctl_keep const :ref:`DPCTLSyclContextRef` CRef, __dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef, :ref:`error_handler_callback`* error_handler, int properties ); DPCTL_API __dpctl_give :ref:`DPCTLSyclQueueRef` :ref:`DPCTLQueue_CreateForDevice`( __dpctl_keep const :ref:`DPCTLSyclDeviceRef` dRef, :ref:`error_handler_callback`* error_handler, int properties ); DPCTL_API void :ref:`DPCTLQueue_Delete`(__dpctl_take :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API :ref:`DPCTLSyclBackendType` :ref:`DPCTLQueue_GetBackend`(__dpctl_keep :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclContextRef` :ref:`DPCTLQueue_GetContext`(__dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceRef` :ref:`DPCTLQueue_GetDevice`(__dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API bool :ref:`DPCTLQueue_IsInOrder`(__dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API void :ref:`DPCTLQueue_MemAdvise`( __dpctl_keep :ref:`DPCTLSyclQueueRef` QRef, const void* Ptr, size_t Count, int Advice ); DPCTL_API void :ref:`DPCTLQueue_Memcpy`( __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef, void* Dest, const void* Src, size_t Count ); DPCTL_API void :ref:`DPCTLQueue_Prefetch`( __dpctl_keep :ref:`DPCTLSyclQueueRef` QRef, const void* Ptr, size_t Count ); DPCTL_API :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_SubmitNDRange`( __dpctl_keep const :ref:`DPCTLSyclKernelRef` KRef, __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef, __dpctl_keep void** Args, __dpctl_keep const :ref:`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 :ref:`DPCTLSyclEventRef`* DepEvents, size_t NDepEvents ); DPCTL_API :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_SubmitRange`( __dpctl_keep const :ref:`DPCTLSyclKernelRef` KRef, __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef, __dpctl_keep void** Args, __dpctl_keep const :ref:`DPCTLKernelArgType`* ArgTypes, size_t NArgs, __dpctl_keep const size_t Range[3], size_t NRange, __dpctl_keep const :ref:`DPCTLSyclEventRef`* DepEvents, size_t NDepEvents ); DPCTL_API void :ref:`DPCTLQueue_Wait`(__dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclQueueRef` :ref:`DPCTLQueueMgr_GetCurrentQueue`(void); DPCTL_API size_t :ref:`DPCTLQueueMgr_GetQueueStackSize`(void); DPCTL_API bool :ref:`DPCTLQueueMgr_GlobalQueueIsCurrent`(void); DPCTL_API bool :ref:`DPCTLQueueMgr_IsCurrentQueue`(__dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API void :ref:`DPCTLQueueMgr_PopQueue`(void); DPCTL_API void :ref:`DPCTLQueueMgr_PushQueue`(__dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API void :ref:`DPCTLQueueMgr_SetGlobalQueue`(__dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclUSMRef` :ref:`DPCTLaligned_alloc_device`( size_t alignment, size_t size, __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef ); DPCTL_API __dpctl_give :ref:`DPCTLSyclUSMRef` :ref:`DPCTLaligned_alloc_host`( size_t alignment, size_t size, __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef ); DPCTL_API __dpctl_give :ref:`DPCTLSyclUSMRef` :ref:`DPCTLaligned_alloc_shared`( size_t alignment, size_t size, __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef ); DPCTL_API void :ref:`DPCTLfree_with_context`( __dpctl_take :ref:`DPCTLSyclUSMRef` MRef, __dpctl_keep const :ref:`DPCTLSyclContextRef` CRef ); DPCTL_API void :ref:`DPCTLfree_with_queue`( __dpctl_take :ref:`DPCTLSyclUSMRef` MRef, __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef ); DPCTL_API __dpctl_give :ref:`DPCTLSyclUSMRef` :ref:`DPCTLmalloc_device`( size_t size, __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef ); DPCTL_API __dpctl_give :ref:`DPCTLSyclUSMRef` :ref:`DPCTLmalloc_host`( size_t size, __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef ); DPCTL_API __dpctl_give :ref:`DPCTLSyclUSMRef` :ref:`DPCTLmalloc_shared`( size_t size, __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef ); DPCTL_API :ref:`DPCTLSyclDeviceRef` :ref:`DPCTLUSM_GetPointerDevice`( __dpctl_keep const :ref:`DPCTLSyclUSMRef` MRef, __dpctl_keep const :ref:`DPCTLSyclContextRef` CRef ); const DPCTL_API char* :ref:`DPCTLUSM_GetPointerType`( __dpctl_keep const :ref:`DPCTLSyclUSMRef` MRef, __dpctl_keep const :ref:`DPCTLSyclContextRef` CRef ); .. _details-global: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Typedefs -------- .. index:: pair: typedef; error_handler_callback .. _doxid-de/d75/dpctl__error__handler__type_8h_1aeb0f262687ced57ead8f8b7d0b7dcefe: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef void error_handler_callback(int err_code) Type of function to be used in SYCL async error handler provide by DPCTL. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - err_code - Error code extracted from an SYCL asynchronous error. .. index:: pair: typedef; DPCTLSyclContextRef .. _doxid-df/d57/dpctl__sycl__types_8h_1accf78808322af80b73da617cb2f15f08: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef struct DPCTLOpaqueSyclContext* DPCTLSyclContextRef Opaque pointer to a ``sycl::context`` .. index:: pair: typedef; DPCTLSyclDeviceRef .. _doxid-df/d57/dpctl__sycl__types_8h_1a8dae76b436012ecbdebbd568e77f440d: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef struct DPCTLOpaqueSyclDevice* DPCTLSyclDeviceRef Opaque pointer to a ``sycl::device`` .. index:: pair: typedef; DPCTLSyclDeviceSelectorRef .. _doxid-df/d57/dpctl__sycl__types_8h_1a50a1c6c98f4ca4a27a88e53a7f3eeb83: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef struct DPCTLOpaqueSyclDeviceSelector* DPCTLSyclDeviceSelectorRef Opaque pointer to a ``sycl::device_selector`` .. index:: pair: typedef; DPCTLSyclEventRef .. _doxid-df/d57/dpctl__sycl__types_8h_1a42590892ae4324c54f6ddef34009ca03: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef struct DPCTLOpaqueSyclEvent* DPCTLSyclEventRef Opaque pointer to a ``sycl::event`` .. index:: pair: typedef; DPCTLSyclKernelRef .. _doxid-df/d57/dpctl__sycl__types_8h_1a3f6be07fdf695c015719ce0b0c237844: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef struct DPCTLOpaqueSyclKernel* DPCTLSyclKernelRef Opaque pointer to a ``sycl::kernel`` .. index:: pair: typedef; DPCTLSyclPlatformRef .. _doxid-df/d57/dpctl__sycl__types_8h_1aae750289dcff2c3739f4870086ac7ed0: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef struct DPCTLOpaqueSyclPlatform* DPCTLSyclPlatformRef Opaque pointer to a ``sycl::platform`` .. index:: pair: typedef; DPCTLSyclProgramRef .. _doxid-df/d57/dpctl__sycl__types_8h_1a665a90816ae3328f517ba19c70e4b172: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef struct DPCTLOpaqueSyclProgram* DPCTLSyclProgramRef Opaque pointer to a ``sycl::program`` .. index:: pair: typedef; DPCTLSyclQueueRef .. _doxid-df/d57/dpctl__sycl__types_8h_1af23137a8bf20ff63b10db9f7f987799a: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef struct DPCTLOpaqueSyclQueue* DPCTLSyclQueueRef Opaque pointer to a ``sycl::queue`` .. index:: pair: typedef; DPCTLSyclUSMRef .. _doxid-df/d57/dpctl__sycl__types_8h_1a8c78ad1413045f90e15f5b6a2727d2e6: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef struct DPCTLOpaqueSyclUSM* DPCTLSyclUSMRef Used to pass a ``sycl::usm`` memory opaquely through DPCTL interfaces. Global Functions ---------------- .. index:: pair: function; DPCTLDevice_GetImage2dMaxHeight .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1a4ef25a38cbf63e618016302e8ebf480d: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API size_t DPCTLDevice_GetImage2dMaxHeight(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef) Wrapper over device.get_info(). .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - DRef - Opaque pointer to a sycl::device .. rubric:: 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. .. index:: pair: function; DPCTLDevice_GetImage2dMaxWidth .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1ad1f6957fdc5fb51ed873fa444af17c13: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API size_t DPCTLDevice_GetImage2dMaxWidth(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef) Wrapper over device.get_info(). .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - DRef - Opaque pointer to a sycl::device .. rubric:: 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. .. index:: pair: function; DPCTLDevice_GetImage3dMaxDepth .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1ac64423a160a010d1841b36ae2ab48658: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API size_t DPCTLDevice_GetImage3dMaxDepth(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef) Wrapper over device.get_info(). .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - DRef - Opaque pointer to a sycl::device .. rubric:: Returns: Returns the maximum depth of a 3D image The minimum value is 2048 if the SYCL device has aspect::image. .. index:: pair: function; DPCTLDevice_GetImage3dMaxHeight .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1ac041263954e4e4c2a5bf58eeb08c0b7e: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API size_t DPCTLDevice_GetImage3dMaxHeight(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef) Wrapper over device.get_info(). .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - DRef - Opaque pointer to a sycl::device .. rubric:: Returns: Returns the maximum height of a 3D image The minimum value is 2048 if the SYCL device has aspect::image. .. index:: pair: function; DPCTLDevice_GetImage3dMaxWidth .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1a775e74dcd25c38e1d1575df3262b6f60: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API size_t DPCTLDevice_GetImage3dMaxWidth(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef) Wrapper over device.get_info(). .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - DRef - Opaque pointer to a sycl::device .. rubric:: Returns: Returns the maximum width of a 3D image in pixels. The minimum value is 2048 if the SYCL device has aspect::image. .. index:: pair: function; DPCTLDevice_GetMaxReadImageArgs .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1a9810a239416c53427e3742bfb72ea0a6: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API uint32_t DPCTLDevice_GetMaxReadImageArgs(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef) Wrapper over device.get_info(). .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - DRef - Opaque pointer to a sycl::device .. rubric:: 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. .. index:: pair: function; DPCTLDevice_GetMaxWriteImageArgs .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1a34dbd5b5dbde22ba5f1d5205de298d81: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API uint32_t DPCTLDevice_GetMaxWriteImageArgs(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef) Wrapper over device.get_info(). .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - DRef - Opaque pointer to a sycl::device .. rubric:: 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. .. index:: pair: function; DPCTLDevice_GetParentDevice .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1acccdc3f034e6c5fd2a249907355169bc: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceRef` DPCTLDevice_GetParentDevice(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef) Wrapper over device.get_info .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - DRef - Opaque pointer to a sycl::device .. rubric:: Returns: Returns an opaque pointer to the parent device for a sub-device, or nullptr otherwise.