9
9
10
10
#include " ur_api.h"
11
11
#include < cstdarg>
12
+ #include < sycl/detail/cuda_definitions.hpp>
12
13
#include < sycl/detail/pi.h>
13
14
#include < ur/ur.hpp>
14
15
@@ -18,38 +19,128 @@ static pi_result ur2piResult(ur_result_t urResult) {
18
19
return PI_SUCCESS;
19
20
20
21
switch (urResult) {
21
- case UR_RESULT_ERROR_UNKNOWN:
22
- return PI_ERROR_UNKNOWN;
23
- case UR_RESULT_ERROR_DEVICE_LOST:
24
- return PI_ERROR_DEVICE_NOT_FOUND;
25
22
case UR_RESULT_ERROR_INVALID_OPERATION:
26
23
return PI_ERROR_INVALID_OPERATION;
27
- case UR_RESULT_ERROR_INVALID_PLATFORM :
28
- return PI_ERROR_INVALID_PLATFORM ;
29
- case UR_RESULT_ERROR_INVALID_ARGUMENT :
30
- return PI_ERROR_INVALID_ARG_VALUE ;
24
+ case UR_RESULT_ERROR_INVALID_QUEUE_PROPERTIES :
25
+ return PI_ERROR_INVALID_QUEUE_PROPERTIES ;
26
+ case UR_RESULT_ERROR_INVALID_QUEUE :
27
+ return PI_ERROR_INVALID_QUEUE ;
31
28
case UR_RESULT_ERROR_INVALID_VALUE:
32
29
return PI_ERROR_INVALID_VALUE;
33
- case UR_RESULT_ERROR_INVALID_EVENT:
34
- return PI_ERROR_INVALID_EVENT;
30
+ case UR_RESULT_ERROR_INVALID_CONTEXT:
31
+ return PI_ERROR_INVALID_CONTEXT;
32
+ case UR_RESULT_ERROR_INVALID_PLATFORM:
33
+ return PI_ERROR_INVALID_PLATFORM;
35
34
case UR_RESULT_ERROR_INVALID_BINARY:
36
35
return PI_ERROR_INVALID_BINARY;
37
- case UR_RESULT_ERROR_INVALID_KERNEL_NAME:
38
- return PI_ERROR_INVALID_KERNEL_NAME;
39
- case UR_RESULT_ERROR_INVALID_FUNCTION_NAME:
40
- return PI_ERROR_BUILD_PROGRAM_FAILURE;
36
+ case UR_RESULT_ERROR_INVALID_PROGRAM:
37
+ return PI_ERROR_INVALID_PROGRAM;
38
+ case UR_RESULT_ERROR_INVALID_SAMPLER:
39
+ return PI_ERROR_INVALID_SAMPLER;
40
+ case UR_RESULT_ERROR_INVALID_MEM_OBJECT:
41
+ return PI_ERROR_INVALID_MEM_OBJECT;
42
+ case UR_RESULT_ERROR_INVALID_EVENT:
43
+ return PI_ERROR_INVALID_EVENT;
44
+ case UR_RESULT_ERROR_INVALID_EVENT_WAIT_LIST:
45
+ return PI_ERROR_INVALID_EVENT_WAIT_LIST;
46
+ case UR_RESULT_ERROR_MISALIGNED_SUB_BUFFER_OFFSET:
47
+ return PI_ERROR_MISALIGNED_SUB_BUFFER_OFFSET;
41
48
case UR_RESULT_ERROR_INVALID_WORK_GROUP_SIZE:
42
49
return PI_ERROR_INVALID_WORK_GROUP_SIZE;
43
- case UR_RESULT_ERROR_OUT_OF_DEVICE_MEMORY:
44
- return PI_ERROR_OUT_OF_RESOURCES;
50
+ case UR_RESULT_ERROR_COMPILER_NOT_AVAILABLE:
51
+ return PI_ERROR_COMPILER_NOT_AVAILABLE;
52
+ case UR_RESULT_ERROR_PROFILING_INFO_NOT_AVAILABLE:
53
+ return PI_ERROR_PROFILING_INFO_NOT_AVAILABLE;
54
+ case UR_RESULT_ERROR_DEVICE_NOT_FOUND:
55
+ return PI_ERROR_DEVICE_NOT_FOUND;
56
+ case UR_RESULT_ERROR_INVALID_DEVICE:
57
+ return PI_ERROR_INVALID_DEVICE;
58
+ case UR_RESULT_ERROR_DEVICE_REQUIRES_RESET:
59
+ case UR_RESULT_ERROR_DEVICE_LOST:
60
+ return PI_ERROR_DEVICE_NOT_AVAILABLE;
61
+ case UR_RESULT_ERROR_DEVICE_PARTITION_FAILED:
62
+ return PI_ERROR_DEVICE_PARTITION_FAILED;
63
+ case UR_RESULT_ERROR_INVALID_DEVICE_PARTITION_COUNT:
64
+ return PI_ERROR_INVALID_DEVICE_PARTITION_COUNT;
65
+ case UR_RESULT_ERROR_INVALID_WORK_ITEM_SIZE:
66
+ return PI_ERROR_INVALID_WORK_ITEM_SIZE;
67
+ case UR_RESULT_ERROR_INVALID_WORK_DIMENSION:
68
+ return PI_ERROR_INVALID_WORK_DIMENSION;
69
+ case UR_RESULT_ERROR_INVALID_KERNEL_ARGS:
70
+ return PI_ERROR_INVALID_KERNEL_ARGS;
71
+ case UR_RESULT_ERROR_INVALID_KERNEL:
72
+ return PI_ERROR_INVALID_KERNEL;
73
+ case UR_RESULT_ERROR_INVALID_KERNEL_NAME:
74
+ return PI_ERROR_INVALID_KERNEL_NAME;
75
+ case UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_INDEX:
76
+ return PI_ERROR_INVALID_ARG_INDEX;
77
+ case UR_RESULT_ERROR_INVALID_KERNEL_ARGUMENT_SIZE:
78
+ return PI_ERROR_INVALID_ARG_SIZE;
79
+ case UR_RESULT_ERROR_INVALID_KERNEL_ATTRIBUTE_VALUE:
80
+ return PI_ERROR_INVALID_VALUE;
81
+ case UR_RESULT_ERROR_INVALID_IMAGE_SIZE:
82
+ return PI_ERROR_INVALID_IMAGE_SIZE;
83
+ case UR_RESULT_ERROR_INVALID_IMAGE_FORMAT_DESCRIPTOR:
84
+ return PI_ERROR_INVALID_IMAGE_FORMAT_DESCRIPTOR;
85
+ case UR_RESULT_ERROR_IMAGE_FORMAT_NOT_SUPPORTED:
86
+ return PI_ERROR_IMAGE_FORMAT_NOT_SUPPORTED;
87
+ case UR_RESULT_ERROR_MEM_OBJECT_ALLOCATION_FAILURE:
88
+ return PI_ERROR_MEM_OBJECT_ALLOCATION_FAILURE;
89
+ case UR_RESULT_ERROR_INVALID_PROGRAM_EXECUTABLE:
90
+ return PI_ERROR_INVALID_PROGRAM_EXECUTABLE;
91
+ case UR_RESULT_ERROR_UNINITIALIZED:
92
+ return PI_ERROR_UNINITIALIZED;
45
93
case UR_RESULT_ERROR_OUT_OF_HOST_MEMORY:
46
94
return PI_ERROR_OUT_OF_HOST_MEMORY;
95
+ case UR_RESULT_ERROR_OUT_OF_DEVICE_MEMORY:
96
+ case UR_RESULT_ERROR_OUT_OF_RESOURCES:
97
+ return PI_ERROR_OUT_OF_RESOURCES;
47
98
case UR_RESULT_ERROR_PROGRAM_BUILD_FAILURE:
48
99
return PI_ERROR_BUILD_PROGRAM_FAILURE;
49
- case UR_RESULT_ERROR_UNINITIALIZED:
50
- return PI_ERROR_UNINITIALIZED;
100
+ case UR_RESULT_ERROR_PROGRAM_LINK_FAILURE:
101
+ return PI_ERROR_LINK_PROGRAM_FAILURE;
102
+ case UR_RESULT_ERROR_UNSUPPORTED_VERSION:
103
+ case UR_RESULT_ERROR_UNSUPPORTED_FEATURE:
104
+ case UR_RESULT_ERROR_INVALID_ARGUMENT:
105
+ case UR_RESULT_ERROR_INVALID_NULL_HANDLE:
106
+ case UR_RESULT_ERROR_HANDLE_OBJECT_IN_USE:
107
+ case UR_RESULT_ERROR_INVALID_NULL_POINTER:
108
+ return PI_ERROR_INVALID_VALUE;
109
+ case UR_RESULT_ERROR_INVALID_SIZE:
110
+ case UR_RESULT_ERROR_UNSUPPORTED_SIZE:
111
+ return PI_ERROR_INVALID_BUFFER_SIZE;
112
+ case UR_RESULT_ERROR_UNSUPPORTED_ALIGNMENT:
113
+ return PI_ERROR_INVALID_VALUE;
114
+ case UR_RESULT_ERROR_INVALID_SYNCHRONIZATION_OBJECT:
115
+ case UR_RESULT_ERROR_INVALID_ENUMERATION:
116
+ case UR_RESULT_ERROR_UNSUPPORTED_ENUMERATION:
117
+ return PI_ERROR_INVALID_VALUE;
118
+ case UR_RESULT_ERROR_UNSUPPORTED_IMAGE_FORMAT:
119
+ return PI_ERROR_IMAGE_FORMAT_NOT_SUPPORTED;
120
+ case UR_RESULT_ERROR_INVALID_NATIVE_BINARY:
121
+ return PI_ERROR_INVALID_BINARY;
122
+ case UR_RESULT_ERROR_INVALID_GLOBAL_NAME:
123
+ return PI_ERROR_INVALID_VALUE;
124
+ case UR_RESULT_ERROR_INVALID_FUNCTION_NAME:
125
+ return PI_ERROR_FUNCTION_ADDRESS_IS_NOT_AVAILABLE;
126
+ case UR_RESULT_ERROR_INVALID_GROUP_SIZE_DIMENSION:
127
+ return PI_ERROR_INVALID_WORK_DIMENSION;
128
+ case UR_RESULT_ERROR_INVALID_GLOBAL_WIDTH_DIMENSION:
129
+ return PI_ERROR_INVALID_VALUE;
130
+
131
+ case UR_RESULT_ERROR_PROGRAM_UNLINKED:
132
+ return PI_ERROR_INVALID_PROGRAM_EXECUTABLE;
133
+ case UR_RESULT_ERROR_OVERLAPPING_REGIONS:
134
+ return PI_ERROR_MEM_COPY_OVERLAP;
135
+ case UR_RESULT_ERROR_INVALID_HOST_PTR:
136
+ return PI_ERROR_INVALID_HOST_PTR;
137
+ case UR_RESULT_ERROR_INVALID_USM_SIZE:
138
+ return PI_ERROR_INVALID_BUFFER_SIZE;
139
+ case UR_RESULT_ERROR_OBJECT_ALLOCATION_FAILURE:
140
+ return PI_ERROR_OUT_OF_RESOURCES;
51
141
case UR_RESULT_ERROR_ADAPTER_SPECIFIC:
52
142
return PI_ERROR_PLUGIN_SPECIFIC_ERROR;
143
+ case UR_RESULT_ERROR_UNKNOWN:
53
144
default :
54
145
return PI_ERROR_UNKNOWN;
55
146
};
@@ -253,6 +344,10 @@ inline pi_result ur2piDeviceInfoValue(ur_device_info_t ParamName,
253
344
return PI_QUEUE_FLAG_ON_DEVICE;
254
345
case UR_QUEUE_FLAG_ON_DEVICE_DEFAULT:
255
346
return PI_QUEUE_FLAG_ON_DEVICE_DEFAULT;
347
+ case UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM:
348
+ return static_cast <uint64_t >(__SYCL_PI_CUDA_SYNC_WITH_DEFAULT);
349
+ case UR_QUEUE_FLAG_USE_DEFAULT_STREAM:
350
+ return static_cast <uint64_t >(__SYCL_PI_CUDA_USE_DEFAULT_STREAM);
256
351
default :
257
352
die (" UR_DEVICE_INFO_QUEUE_PROPERTIES: unhandled value" );
258
353
}
@@ -1014,7 +1109,7 @@ inline pi_result piDeviceGetInfo(pi_device Device, pi_device_info ParamName,
1014
1109
break ;
1015
1110
}
1016
1111
case PI_EXT_CODEPLAY_DEVICE_INFO_MAX_REGISTERS_PER_WORK_GROUP: {
1017
- InfoType = UR_EXT_DEVICE_INFO_MAX_REGISTERS_PER_WORK_GROUP ;
1112
+ InfoType = UR_DEVICE_INFO_MAX_REGISTERS_PER_WORK_GROUP ;
1018
1113
break ;
1019
1114
}
1020
1115
default :
@@ -1380,6 +1475,10 @@ inline pi_result piextQueueCreate(pi_context Context, pi_device Device,
1380
1475
UrProperties.flags |= UR_QUEUE_FLAG_PRIORITY_LOW;
1381
1476
if (Properties[1 ] & PI_EXT_ONEAPI_QUEUE_FLAG_PRIORITY_HIGH)
1382
1477
UrProperties.flags |= UR_QUEUE_FLAG_PRIORITY_HIGH;
1478
+ if (Properties[1 ] & __SYCL_PI_CUDA_SYNC_WITH_DEFAULT)
1479
+ UrProperties.flags |= UR_QUEUE_FLAG_SYNC_WITH_DEFAULT_STREAM;
1480
+ if (Properties[1 ] & __SYCL_PI_CUDA_USE_DEFAULT_STREAM)
1481
+ UrProperties.flags |= UR_QUEUE_FLAG_USE_DEFAULT_STREAM;
1383
1482
1384
1483
ur_queue_index_properties_t IndexProperties{};
1385
1484
IndexProperties.stype = UR_STRUCTURE_TYPE_QUEUE_INDEX_PROPERTIES;
@@ -1943,15 +2042,16 @@ inline pi_result piKernelSetArg(pi_kernel Kernel, pi_uint32 ArgIndex,
1943
2042
1944
2043
ur_kernel_handle_t UrKernel = reinterpret_cast <ur_kernel_handle_t >(Kernel);
1945
2044
1946
- HANDLE_ERRORS (urKernelSetArgValue (UrKernel, ArgIndex, ArgSize, ArgValue));
2045
+ HANDLE_ERRORS (
2046
+ urKernelSetArgValue (UrKernel, ArgIndex, ArgSize, nullptr , ArgValue));
1947
2047
return PI_SUCCESS;
1948
2048
}
1949
2049
1950
2050
inline pi_result piKernelSetArgPointer (pi_kernel Kernel, pi_uint32 ArgIndex,
1951
2051
size_t ArgSize, const void *ArgValue) {
1952
2052
std::ignore = ArgSize;
1953
2053
ur_kernel_handle_t UrKernel = reinterpret_cast <ur_kernel_handle_t >(Kernel);
1954
- HANDLE_ERRORS (urKernelSetArgPointer (UrKernel, ArgIndex, ArgValue));
2054
+ HANDLE_ERRORS (urKernelSetArgPointer (UrKernel, ArgIndex, nullptr , ArgValue));
1955
2055
1956
2056
return PI_SUCCESS;
1957
2057
}
@@ -2013,17 +2113,15 @@ inline pi_result piKernelSetExecInfo(pi_kernel Kernel,
2013
2113
break ;
2014
2114
}
2015
2115
case PI_EXT_KERNEL_EXEC_INFO_CACHE_CONFIG: {
2016
- PropName = UR_EXT_KERNEL_EXEC_INFO_CACHE_CONFIG ;
2116
+ PropName = UR_KERNEL_EXEC_INFO_CACHE_CONFIG ;
2017
2117
auto Param = (*(static_cast <const pi_kernel_cache_config *>(ParamValue)));
2018
2118
if (Param == PI_EXT_KERNEL_EXEC_INFO_CACHE_LARGE_SLM) {
2019
- PropValue =
2020
- static_cast <uint64_t >(UR_EXT_KERNEL_EXEC_INFO_CACHE_LARGE_SLM);
2119
+ PropValue = static_cast <uint64_t >(UR_KERNEL_CACHE_CONFIG_LARGE_SLM);
2021
2120
} else if (Param == PI_EXT_KERNEL_EXEC_INFO_CACHE_LARGE_DATA) {
2022
- PropValue =
2023
- static_cast <uint64_t >(UR_EXT_KERNEL_EXEC_INFO_CACHE_LARGE_DATA);
2121
+ PropValue = static_cast <uint64_t >(UR_KERNEL_CACHE_CONFIG_LARGE_DATA);
2024
2122
break ;
2025
2123
} else if (Param == PI_EXT_KERNEL_EXEC_INFO_CACHE_DEFAULT) {
2026
- PropValue = static_cast <uint64_t >(UR_EXT_KERNEL_EXEC_INFO_CACHE_DEFAULT );
2124
+ PropValue = static_cast <uint64_t >(UR_KERNEL_CACHE_CONFIG_DEFAULT );
2027
2125
} else {
2028
2126
die (" piKernelSetExecInfo: unsupported ParamValue\n " );
2029
2127
}
@@ -2032,8 +2130,8 @@ inline pi_result piKernelSetExecInfo(pi_kernel Kernel,
2032
2130
default :
2033
2131
die (" piKernelSetExecInfo: unsupported ParamName\n " );
2034
2132
}
2035
- HANDLE_ERRORS (
2036
- urKernelSetExecInfo (UrKernel, PropName, ParamValueSize, &PropValue));
2133
+ HANDLE_ERRORS (urKernelSetExecInfo (UrKernel, PropName, ParamValueSize, nullptr ,
2134
+ &PropValue));
2037
2135
2038
2136
return PI_SUCCESS;
2039
2137
}
@@ -2211,7 +2309,8 @@ inline pi_result piextKernelSetArgPointer(pi_kernel Kernel, pi_uint32 ArgIndex,
2211
2309
const void *ArgValue) {
2212
2310
ur_kernel_handle_t UrKernel = reinterpret_cast <ur_kernel_handle_t >(Kernel);
2213
2311
2214
- HANDLE_ERRORS (urKernelSetArgValue (UrKernel, ArgIndex, ArgSize, ArgValue));
2312
+ HANDLE_ERRORS (
2313
+ urKernelSetArgValue (UrKernel, ArgIndex, ArgSize, nullptr , ArgValue));
2215
2314
2216
2315
return PI_SUCCESS;
2217
2316
}
@@ -3919,7 +4018,7 @@ inline pi_result piextKernelSetArgSampler(pi_kernel Kernel, pi_uint32 ArgIndex,
3919
4018
ur_sampler_handle_t UrSampler =
3920
4019
reinterpret_cast <ur_sampler_handle_t >(*ArgValue);
3921
4020
3922
- HANDLE_ERRORS (urKernelSetArgSampler (UrKernel, ArgIndex, UrSampler));
4021
+ HANDLE_ERRORS (urKernelSetArgSampler (UrKernel, ArgIndex, nullptr , UrSampler));
3923
4022
3924
4023
return PI_SUCCESS;
3925
4024
}
0 commit comments