Found while extending the unified SVM tests for system SVM scenarios, and discussed in the September 9th memory subgroup: The current unified SVM memcpy tests include the function check_for_common_memory_type:
|
bool check_for_common_memory_type(cl_uint srcTypeIndex, |
The function appears to be filtering combinations of SVM that are tested, based on the SVM capabilities.
|
for (cl_uint src_ti = 0; src_ti < max_ti; src_ti++) |
|
{ |
|
for (cl_uint dst_ti = 0; dst_ti < max_ti; dst_ti++) |
|
{ |
|
if (check_for_common_memory_type(src_ti, dst_ti)) |
|
{ |
|
log_info( |
|
" testing clEnqueueSVMMemcpy() SVM type %u -> SVM " |
|
"type %u\n", |
|
src_ti, dst_ti); |
Is the filtering correct? Specifically, which SVM capabilities should be required for a memcpy source, and which capabilities should be required for a memcpy destination?
From the discussion here KhronosGroup/OpenCL-Docs#1282 (comment), perhaps we only need to check whether the memcpy source supports reading from the device, and whether the memcpy destination supports writing on the device?
CC: @JohnKesapidesARM
Found while extending the unified SVM tests for system SVM scenarios, and discussed in the September 9th memory subgroup: The current unified SVM memcpy tests include the function
check_for_common_memory_type:OpenCL-CTS/test_conformance/SVM/test_unified_svm_mem_cpy.cpp
Line 213 in b63ef2d
The function appears to be filtering combinations of SVM that are tested, based on the SVM capabilities.
OpenCL-CTS/test_conformance/SVM/test_unified_svm_mem_cpy.cpp
Lines 166 to 175 in b63ef2d
Is the filtering correct? Specifically, which SVM capabilities should be required for a memcpy source, and which capabilities should be required for a memcpy destination?
From the discussion here KhronosGroup/OpenCL-Docs#1282 (comment), perhaps we only need to check whether the memcpy source supports reading from the device, and whether the memcpy destination supports writing on the device?
CC: @JohnKesapidesARM