You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: extensions/cl_intel_unified_shared_memory.asciidoc
+27-3Lines changed: 27 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1062,7 +1062,7 @@ If we did support this then there may be alignment and size granularity requirem
1062
1062
The _flags_ argument was folded into the _properties_ in revision C.
1063
1063
--
1064
1064
1065
-
. What should behavior be for `clGetMemAllocInfoINTEL` if the passed-in _ptr_ is `NULL` or doesn't point into a USM allocation?
1065
+
. What should behavior be for *clGetMemAllocInfoINTEL* if the passed-in _ptr_ is `NULL` or doesn't point into a USM allocation?
1066
1066
+
1067
1067
--
1068
1068
`RESOLVED`:
@@ -1156,11 +1156,14 @@ Is `size` equal to zero valid?
1156
1156
--
1157
1157
1158
1158
. Should we add a device query for a maximum supported USM alignment, or should the maximum supported alignment implicitly be defined by the size of the largest data type supported by the device?
1159
+
Should we allow implementation-defined behavior for alignments larger than the size of the largest data type supported by the device?
1159
1160
+
1160
1161
--
1161
1162
*UNRESOLVED*:
1162
1163
A device query would allow for larger supported alignments, such as page alignment.
1163
1164
Note that supported alignments should always be a power of two.
1165
+
1166
+
Note that there are no maximum supported alignments defined for `posix_memalign` or `_aligned_alloc`, and supported alignments for the standard `aligned_alloc` and `std::aligned_alloc` are implementation-defined.
1164
1167
--
1165
1168
1166
1169
. Should we add a device query for a maximum supported USM fill pattern size, or should the maximum supported fill pattern size implicitly be defined by the size of the largest data type supported by the device?
@@ -1191,7 +1194,7 @@ If the USM allocation is from a different context then behavior could be undefin
1191
1194
Trending "yes" for host USM allocations, both when the host USM allocation is from this context and from another context.
1192
1195
--
1193
1196
1194
-
. Can a pointer to a device, host, or shared USM allocation be passed to API functions to read from or write to `cl_mem` objects, such as `clEnqueueReadBuffer` or `clEnqueueWriteImage`?
1197
+
. Can a pointer to a device, host, or shared USM allocation be passed to API functions to read from or write to `cl_mem` objects, such as *clEnqueueReadBuffer* or *clEnqueueWriteImage*?
1195
1198
+
1196
1199
--
1197
1200
*UNRESOLVED*:
@@ -1204,7 +1207,7 @@ If the shared USM allocation is from the same context this could be an error, su
1204
1207
If the shared USM allocation is from a different context then behavior could be undefined.
1205
1208
--
1206
1209
1207
-
. Can a pointer to a device, host, or shared USM allocation be passed to API functions to fill a `cl_mem`, SVM allocation, or USM allocation, such as `clEnqueueFillBuffer`?
1210
+
. Can a pointer to a device, host, or shared USM allocation be passed to API functions to fill a `cl_mem`, SVM allocation, or USM allocation, such as *clEnqueueFillBuffer*?
1208
1211
+
1209
1212
--
1210
1213
*UNRESOLVED*:
@@ -1230,6 +1233,26 @@ Note that some flags will not be valid, such as `CL_MEM_USE_HOST_PTR`.
1230
1233
*UNRESOLVED*:
1231
1234
--
1232
1235
1236
+
. Should it be an error to set an unknown pointer as a kernel argument using *clSetKernelArgMemPointerINTEL* if no devices support shared system allocations?
1237
+
+
1238
+
--
1239
+
*UNRESOLVED*:
1240
+
Returning an error for an unknown pointer is helpful to identify and diagnose possible programming errors sooner, but passing a pointer to arbitrary memory to a function on the host is not an error until the pointer is dereferenced.
1241
+
1242
+
If we relax the error condition for *clSetKernelArgMemPointerINTEL* then we could also consider relaxing the error condition for *clSetKernelExecInfo*(`CL_KERNEL_EXEC_INFO_USM_PTRS_INTEL`) similarly.
1243
+
1244
+
Note that if the error condition is removed we can still check for possible programming errors via optional USM checking layers, such as the https://github.com/intel/opencl-intercept-layer/blob/master/docs/controls.md#usmchecking-bool[USMChecking] functionality in the https://github.com/intel/opencl-intercept-layer[OpenCL Intercept Layer].
1245
+
--
1246
+
1247
+
. Should we support a "rect" memcpy similar to *clEnqueueCopyBufferRect*?
1248
+
+
1249
+
--
1250
+
*UNRESOLVED*:
1251
+
This would be a fairly straightforward addition if it is useful.
1252
+
1253
+
Note that there is no similar SVM "rect" memcpy.
1254
+
--
1255
+
1233
1256
== Revision History
1234
1257
1235
1258
[cols="5,15,15,70"]
@@ -1257,6 +1280,7 @@ Note that some flags will not be valid, such as `CL_MEM_USE_HOST_PTR`.
1257
1280
|R|2020-08-21|Ben Ashbaugh|Fixed enum name typo in table.
1258
1281
|S|2020-08-26|Maciej Dziuban|Added initial placement flags for shared allocations.
1259
1282
|1.0.0|2021-11-07|Ben Ashbaugh|Added version and other minor updates prior to posting on the OpenCL registry.
1283
+
|1.0.0|2022-11-08|Ben Ashbaugh|Added new issues regarding error behavior for clSetKernelArgMemPointerINTEL and rect copies.
0 commit comments