.. _global: .. index:: pair: namespace; global Global Namespace ================ .. toctree:: :hidden: namespace_dpctl.rst enum_DPCTLGlobalMemCacheType.rst enum_DPCTLKernelArgType.rst enum_DPCTLPartitionAffinityDomainType.rst enum_DPCTLQueuePropertyType.rst enum_DPCTLSyclAspectType.rst enum_DPCTLSyclBackendType.rst enum_DPCTLSyclDeviceType.rst enum_DPCTLSyclEventStatusType.rst enum_DPCTLSyclUSMType.rst Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block // namespaces namespace :ref:`dpctl`; namespace :ref:`dpctl::syclinterface`; // typedefs typedef void :ref:`error_handler_callback`(int err_code); typedef struct DPCTLDeviceVector* :target:`DPCTLDeviceVectorRef`; typedef struct DPCTLEventVector* :target:`DPCTLEventVectorRef`; 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 DPCTLOpaqueSyclKernelBundle* :ref:`DPCTLSyclKernelBundleRef`; typedef struct DPCTLOpaqueSyclKernel* :ref:`DPCTLSyclKernelRef`; typedef struct DPCTLOpaqueSyclPlatform* :ref:`DPCTLSyclPlatformRef`; typedef struct DPCTLOpaqueSyclQueue* :ref:`DPCTLSyclQueueRef`; typedef struct DPCTLOpaqueSyclUSM* :ref:`DPCTLSyclUSMRef`; // enums enum :ref:`DPCTLGlobalMemCacheType`; enum :ref:`DPCTLKernelArgType`; enum :ref:`DPCTLPartitionAffinityDomainType`; enum :ref:`DPCTLQueuePropertyType`; enum :ref:`DPCTLSyclAspectType`; enum :ref:`DPCTLSyclBackendType`; enum :ref:`DPCTLSyclDeviceType`; enum :ref:`DPCTLSyclEventStatusType`; enum :ref:`DPCTLSyclUSMType`; // global functions DPCTL_API const __dpctl_give char* :ref:`DPCTLService_GetDPCPPVersion`(void); DPCTL_API void :ref:`DPCTLService_InitLogger`( const char* app_name, const char* log_dir ); DPCTL_API void :ref:`DPCTLService_ShutdownLogger`(void); 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`* handler, int properties ); DPCTL_API __dpctl_give :ref:`DPCTLSyclContextRef` :ref:`DPCTLContext_CreateFromDevices`( __dpctl_keep const :ref:`DPCTLDeviceVectorRef` DVRef, :ref:`error_handler_callback`* 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 size_t :ref:`DPCTLContext_Hash`(__dpctl_keep :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 uint32_t :ref:`DPCTLDevice_GetGlobalMemCacheLineSize`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint64_t :ref:`DPCTLDevice_GetGlobalMemCacheSize`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API :ref:`DPCTLGlobalMemCacheType` :ref:`DPCTLDevice_GetGlobalMemCacheType`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint64_t :ref:`DPCTLDevice_GetGlobalMemSize`(__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 uint64_t :ref:`DPCTLDevice_GetLocalMemSize`(__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_GetMaxWorkItemSizes1d`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API __dpctl_keep size_t* :ref:`DPCTLDevice_GetMaxWorkItemSizes2d`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API __dpctl_keep size_t* :ref:`DPCTLDevice_GetMaxWorkItemSizes3d`(__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 uint32_t :ref:`DPCTLDevice_GetNativeVectorWidthChar`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetNativeVectorWidthDouble`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetNativeVectorWidthFloat`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetNativeVectorWidthHalf`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetNativeVectorWidthInt`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetNativeVectorWidthLong`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetNativeVectorWidthShort`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclDeviceRef` :ref:`DPCTLDevice_GetParentDevice`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API uint32_t :ref:`DPCTLDevice_GetPartitionMaxSubDevices`(__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_API size_t :ref:`DPCTLDevice_GetProfilingTimerResolution`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API bool :ref:`DPCTLDevice_GetSubGroupIndependentForwardProgress`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API __dpctl_keep size_t* :ref:`DPCTLDevice_GetSubGroupSizes`( __dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef, size_t* res_len ); 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 size_t :ref:`DPCTLDevice_Hash`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); 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 :ref:`DPCTLSyclContextRef` :ref:`DPCTLDeviceMgr_GetCachedContext`(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef); DPCTL_API const __dpctl_give char* :ref:`DPCTLDeviceMgr_GetDeviceInfoStr`(__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:`DPCTLSyclEventRef` :ref:`DPCTLEvent_Copy`(__dpctl_keep const :ref:`DPCTLSyclEventRef` ERef); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLEvent_Create`(void); DPCTL_API void :ref:`DPCTLEvent_Delete`(__dpctl_take :ref:`DPCTLSyclEventRef` ERef); DPCTL_API :ref:`DPCTLSyclBackendType` :ref:`DPCTLEvent_GetBackend`(__dpctl_keep :ref:`DPCTLSyclEventRef` ERef); DPCTL_API :ref:`DPCTLSyclEventStatusType` :ref:`DPCTLEvent_GetCommandExecutionStatus`(__dpctl_keep :ref:`DPCTLSyclEventRef` ERef); DPCTL_API uint64_t :ref:`DPCTLEvent_GetProfilingInfoEnd`(__dpctl_keep :ref:`DPCTLSyclEventRef` ERef); DPCTL_API uint64_t :ref:`DPCTLEvent_GetProfilingInfoStart`(__dpctl_keep :ref:`DPCTLSyclEventRef` ERef); DPCTL_API uint64_t :ref:`DPCTLEvent_GetProfilingInfoSubmit`(__dpctl_keep :ref:`DPCTLSyclEventRef` ERef); DPCTL_API __dpctl_give :ref:`DPCTLEventVectorRef` :ref:`DPCTLEvent_GetWaitList`(__dpctl_keep :ref:`DPCTLSyclEventRef` ERef); DPCTL_API void :ref:`DPCTLEvent_Wait`(__dpctl_keep :ref:`DPCTLSyclEventRef` ERef); DPCTL_API void :ref:`DPCTLEvent_WaitAndThrow`(__dpctl_keep :ref:`DPCTLSyclEventRef` ERef); DPCTL_API void :ref:`DPCTLEventVector_Clear`(__dpctl_keep :ref:`DPCTLEventVectorRef` VRef); __dpctl_give :ref:`DPCTLEventVectorRef` :ref:`DPCTLEventVector_Create`(void); DPCTL_API __dpctl_give :ref:`DPCTLEventVectorRef` :ref:`DPCTLEventVector_CreateFromArray`( size_t len, __dpctl_keep :ref:`DPCTLSyclEventRef`* elems ); DPCTL_API void :ref:`DPCTLEventVector_Delete`(__dpctl_take :ref:`DPCTLEventVectorRef` VRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLEventVector_GetAt`( __dpctl_keep :ref:`DPCTLEventVectorRef` VRef, size_t index ); DPCTL_API size_t :ref:`DPCTLEventVector_Size`(__dpctl_keep :ref:`DPCTLEventVectorRef` VRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclKernelBundleRef` :ref:`DPCTLKernelBundle_Copy`(__dpctl_keep const :ref:`DPCTLSyclKernelBundleRef` KBRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclKernelBundleRef` :ref:`DPCTLKernelBundle_CreateFromOCLSource`( __dpctl_keep const :ref:`DPCTLSyclContextRef` Ctx, __dpctl_keep const :ref:`DPCTLSyclDeviceRef` Dev, __dpctl_keep const char* Source, __dpctl_keep const char* CompileOpts ); DPCTL_API __dpctl_give :ref:`DPCTLSyclKernelBundleRef` :ref:`DPCTLKernelBundle_CreateFromSpirv`( __dpctl_keep const :ref:`DPCTLSyclContextRef` Ctx, __dpctl_keep const :ref:`DPCTLSyclDeviceRef` Dev, __dpctl_keep const void* IL, size_t Length, const char* CompileOpts ); DPCTL_API void :ref:`DPCTLKernelBundle_Delete`(__dpctl_take :ref:`DPCTLSyclKernelBundleRef` KBRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclKernelRef` :ref:`DPCTLKernelBundle_GetKernel`( __dpctl_keep :ref:`DPCTLSyclKernelBundleRef` KBRef, __dpctl_keep const char* KernelName ); DPCTL_API bool :ref:`DPCTLKernelBundle_HasKernel`( __dpctl_keep :ref:`DPCTLSyclKernelBundleRef` KBRef, __dpctl_keep const char* KernelName ); DPCTL_API __dpctl_give :ref:`DPCTLSyclKernelRef` :ref:`DPCTLKernel_Copy`(__dpctl_keep const :ref:`DPCTLSyclKernelRef` KRef); DPCTL_API void :ref:`DPCTLKernel_Delete`(__dpctl_take :ref:`DPCTLSyclKernelRef` KRef); DPCTL_API uint32_t :ref:`DPCTLKernel_GetCompileNumSubGroups`(__dpctl_keep const :ref:`DPCTLSyclKernelRef` KRef); DPCTL_API uint32_t :ref:`DPCTLKernel_GetCompileSubGroupSize`(__dpctl_keep const :ref:`DPCTLSyclKernelRef` KRef); DPCTL_API uint32_t :ref:`DPCTLKernel_GetMaxNumSubGroups`(__dpctl_keep const :ref:`DPCTLSyclKernelRef` KRef); DPCTL_API uint32_t :ref:`DPCTLKernel_GetMaxSubGroupSize`(__dpctl_keep const :ref:`DPCTLSyclKernelRef` KRef); DPCTL_API size_t :ref:`DPCTLKernel_GetNumArgs`(__dpctl_keep const :ref:`DPCTLSyclKernelRef` KRef); DPCTL_API size_t :ref:`DPCTLKernel_GetPreferredWorkGroupSizeMultiple`(__dpctl_keep const :ref:`DPCTLSyclKernelRef` KRef); DPCTL_API size_t :ref:`DPCTLKernel_GetPrivateMemSize`(__dpctl_keep const :ref:`DPCTLSyclKernelRef` KRef); DPCTL_API size_t :ref:`DPCTLKernel_GetWorkGroupSize`(__dpctl_keep const :ref:`DPCTLSyclKernelRef` KRef); DPCTL_API bool :ref:`DPCTLPlatform_AreEq`( __dpctl_keep const :ref:`DPCTLSyclPlatformRef` PRef1, __dpctl_keep const :ref:`DPCTLSyclPlatformRef` PRef2 ); 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 __dpctl_give :ref:`DPCTLSyclContextRef` :ref:`DPCTLPlatform_GetDefaultContext`(__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 size_t :ref:`DPCTLPlatform_Hash`(__dpctl_keep :ref:`DPCTLSyclPlatformRef` CtxRef); DPCTL_API const __dpctl_give char* :ref:`DPCTLPlatformMgr_GetInfo`( __dpctl_keep const :ref:`DPCTLSyclPlatformRef` PRef, size_t verbosity ); 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 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`* handler, int properties ); DPCTL_API __dpctl_give :ref:`DPCTLSyclQueueRef` :ref:`DPCTLQueue_CreateForDevice`( __dpctl_keep const :ref:`DPCTLSyclDeviceRef` dRef, :ref:`error_handler_callback`* handler, int properties ); DPCTL_API void :ref:`DPCTLQueue_Delete`(__dpctl_take :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_Fill128`( __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef, void* USMRef, uint64_t* Value, size_t Count ); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_Fill16`( __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef, void* USMRef, uint16_t Value, size_t Count ); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_Fill32`( __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef, void* USMRef, uint32_t Value, size_t Count ); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_Fill64`( __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef, void* USMRef, uint64_t Value, size_t Count ); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_Fill8`( __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef, void* USMRef, uint8_t Value, size_t Count ); 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_HasEnableProfiling`(__dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API size_t :ref:`DPCTLQueue_Hash`(__dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API bool :ref:`DPCTLQueue_IsInOrder`(__dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_MemAdvise`( __dpctl_keep :ref:`DPCTLSyclQueueRef` QRef, const void* Ptr, size_t Count, int Advice ); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_Memcpy`( __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef, void* Dest, const void* Src, size_t Count ); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_MemcpyWithEvents`( __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef, void* Dest, const void* Src, size_t Count, __dpctl_keep const :ref:`DPCTLSyclEventRef`* DepEvents, size_t DepEventsCount ); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_Memset`( __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef, void* USMRef, uint8_t Value, size_t Count ); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_Prefetch`( __dpctl_keep :ref:`DPCTLSyclQueueRef` QRef, const void* Ptr, size_t Count ); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_SubmitBarrier`(__dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef); DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` :ref:`DPCTLQueue_SubmitBarrierForEvents`( __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef, __dpctl_keep const :ref:`DPCTLSyclEventRef`* DepEvents, size_t NDepEvents ); DPCTL_API __dpctl_give :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 __dpctl_give :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 ); DPCTL_API :ref:`DPCTLSyclUSMType` :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; DPCTLSyclKernelBundleRef .. _doxid-df/d57/dpctl__sycl__types_8h_1a6d9c52ea7d2e9394ddf7ba7e7f01bebd: .. ref-code-block:: cpp :class: doxyrest-title-code-block typedef struct DPCTLOpaqueSyclKernelBundle* DPCTLSyclKernelBundleRef Opaque pointer to a ``sycl::kernel_bundle`` .. 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; 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_GetGlobalMemCacheLineSize .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1ac47e84e08c40272eb54358b6ab76c0f0: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API uint32_t DPCTLDevice_GetGlobalMemCacheLineSize(__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 size of global memory cache line in bytes as uint32_t. .. index:: pair: function; DPCTLDevice_GetGlobalMemCacheSize .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1ae4641fb22da8c78a1c5b3c9a0c0fd913: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API uint64_t DPCTLDevice_GetGlobalMemCacheSize(__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 size of global memory cache in bytes as uint64_t. .. index:: pair: function; DPCTLDevice_GetGlobalMemCacheType .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1a34aef85cc31edf294aece8d68f5bccba: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API :ref:`DPCTLGlobalMemCacheType` DPCTLDevice_GetGlobalMemCacheType(__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 type of global memory cache supported. .. 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. .. index:: pair: function; DPCTLDevice_GetPartitionMaxSubDevices .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1ab48d25118cd217ccd917993afba98570: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API uint32_t DPCTLDevice_GetPartitionMaxSubDevices(__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 sub-devices that can be created when this device is partitioned. .. index:: pair: function; DPCTLDevice_GetProfilingTimerResolution .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1a5fe67bf4915e62ce08d80d810f0e8632: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API size_t DPCTLDevice_GetProfilingTimerResolution(__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 resolution of device timer in nanoseconds. .. index:: pair: function; DPCTLDevice_Hash .. _doxid-d4/d5a/dpctl__sycl__device__interface_8h_1a28538fa8029a6d4c7ff4d972ec690b97: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API size_t DPCTLDevice_Hash(__dpctl_keep const :ref:`DPCTLSyclDeviceRef` DRef) Wrapper over std::hash's operator() .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - DRef - Opaque pointer to a sycl::device .. rubric:: Returns: Returns hash value. .. index:: pair: function; DPCTLEventVector_Clear .. _doxid-d5/d12/dpctl__sycl__event__interface_8h_1ad2e72f059ec496cfc832b4eedf77157a: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API void DPCTLEventVector_Clear(__dpctl_keep :ref:`DPCTLEventVectorRef` VRef) Delete all the elements of the std::vector. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - VRef - Opaque pointer to a vector. .. index:: pair: function; DPCTLEventVector_Create .. _doxid-d5/d12/dpctl__sycl__event__interface_8h_1a99a7c6375d03047627ecaaac276e650c: .. ref-code-block:: cpp :class: doxyrest-title-code-block __dpctl_give :ref:`DPCTLEventVectorRef` DPCTLEventVector_Create(void) Create an opaque pointer to a std::vector of opaque pointers wrapping the SYCL data type. .. rubric:: Returns: Returns a new opaque pointer to a vector. .. index:: pair: function; DPCTLEventVector_CreateFromArray .. _doxid-d5/d12/dpctl__sycl__event__interface_8h_1abf123b90a1262ca3211d4883f4046170: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API __dpctl_give :ref:`DPCTLEventVectorRef` DPCTLEventVector_CreateFromArray( size_t len, __dpctl_keep :ref:`DPCTLSyclEventRef`* elems ) Create an opaque pointer to a std::vector created from the input raw array. The elements of the input array are deep copied before inserting the copies into the vector. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - len - Number of elements in the input array. * - elems - A C array whose elements will be copied into the returned vector. .. rubric:: Returns: Returns a new opaque pointer to a vector. .. index:: pair: function; DPCTLEventVector_Delete .. _doxid-d5/d12/dpctl__sycl__event__interface_8h_1afa2341f80b22492a36946ac7a2a62f74: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API void DPCTLEventVector_Delete(__dpctl_take :ref:`DPCTLEventVectorRef` VRef) Delete all elements in the vector and then delete the vector. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - VRef - Opaque pointer to a vector to be deleted. .. index:: pair: function; DPCTLEventVector_GetAt .. _doxid-d5/d12/dpctl__sycl__event__interface_8h_1a92fc3661092893538d93983c071e70ef: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` DPCTLEventVector_GetAt( __dpctl_keep :ref:`DPCTLEventVectorRef` VRef, size_t index ) Returns the element at the specified index. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - VRef - Opaque pointer to a vector. * - index - The index position of the element to be returned. .. rubric:: Returns: The element at the specified position, if the index position is out of bounds then a nullptr is returned. .. index:: pair: function; DPCTLEventVector_Size .. _doxid-d5/d12/dpctl__sycl__event__interface_8h_1a65819357fd48d2ed7452b65f9c92ef27: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API size_t DPCTLEventVector_Size(__dpctl_keep :ref:`DPCTLEventVectorRef` VRef) Returns the number of elements in the vector. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - VRef - Opaque pointer to a vector. .. rubric:: Returns: The current size of the vector. .. index:: pair: function; DPCTLQueue_SubmitBarrier .. _doxid-da/db8/dpctl__sycl__queue__interface_8h_1a2453786e50a7d7e51a0d240b2ce52f53: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` DPCTLQueue_SubmitBarrier(__dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef) C-API wrapper for ``sycl::queue::submit_barrier()``. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QRef - An opaque pointer to the ``sycl::queue``. .. rubric:: Returns: An opaque pointer to the ``sycl::event`` returned by the ``sycl::queue::submit_barrier()`` function. .. index:: pair: function; DPCTLQueue_SubmitBarrierForEvents .. _doxid-da/db8/dpctl__sycl__queue__interface_8h_1a1666c1e2da52e7736cfc662a7c0ad6fb: .. ref-code-block:: cpp :class: doxyrest-title-code-block DPCTL_API __dpctl_give :ref:`DPCTLSyclEventRef` DPCTLQueue_SubmitBarrierForEvents( __dpctl_keep const :ref:`DPCTLSyclQueueRef` QRef, __dpctl_keep const :ref:`DPCTLSyclEventRef`* DepEvents, size_t NDepEvents ) C-API wrapper for ``sycl::queue::submit_barrier(event_vector)``. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QRef - An opaque pointer to the ``sycl::queue``. * - DepEvents - List of dependent DPCTLSyclEventRef objects (events) for the barrier. We call ``sycl::handler.depends_on`` for each of the provided events. * - NDepEvents - Size of the DepEvents list. .. rubric:: Returns: An opaque pointer to the ``sycl::event`` returned by the ``sycl::queue::submit_barrier()`` function.