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.