add initial unified SVM capability tests (#2210)

These tests are passing on many devices using the unified SVM emulation
layer.

Specifically, adds tests for:

* CL_SVM_CAPABILITY_SINGLE_ADDRESS_SPACE_KHR
* CL_SVM_CAPABILITY_DEVICE_UNASSOCIATED_KHR
* CL_SVM_CAPABILITY_HOST_READ_KHR
* CL_SVM_CAPABILITY_HOST_WRITE_KHR
* CL_SVM_CAPABILITY_HOST_MAP_KHR
* CL_SVM_CAPABILITY_DEVICE_READ_KHR
* CL_SVM_CAPABILITY_DEVICE_WRITE_KHR
* CL_SVM_CAPABILITY_DEVICE_ATOMIC_ACCESS_KHR
* CL_SVM_CAPABILITY_INDIRECT_ACCESS_KHR

Still TODO:

* CL_SVM_CAPABILITY_SYSTEM_ALLOCATED_KHR
* CL_SVM_CAPABILITY_DEVICE_OWNED_KHR
* CL_SVM_CAPABILITY_CONTEXT_ACCESS_KHR
* CL_SVM_CAPABILITY_HOST_OWNED_KHR
* CL_SVM_CAPABILITY_CONCURRENT_ACCESS_KHR
* CL_SVM_CAPABILITY_CONCURRENT_ATOMIC_ACCESS_KHR
This commit is contained in:
Ben Ashbaugh
2025-02-11 11:42:32 -08:00
committed by GitHub
parent 9123b05c1f
commit 1da0f4f8d7
4 changed files with 1129 additions and 5 deletions

View File

@@ -19,7 +19,7 @@
REGISTER_TEST(unified_svm_consistency)
{
if (!is_extension_available(deviceID, "cl_khr_unified_svm"))
if (!is_extension_available(device, "cl_khr_unified_svm"))
{
log_info("cl_khr_unified_svm is not supported, skipping test.\n");
return TEST_SKIPPED_ITSELF;
@@ -28,7 +28,7 @@ REGISTER_TEST(unified_svm_consistency)
cl_int err;
cl_platform_id platformID;
err = clGetDeviceInfo(deviceID, CL_DEVICE_PLATFORM, sizeof(cl_platform_id),
err = clGetDeviceInfo(device, CL_DEVICE_PLATFORM, sizeof(cl_platform_id),
(void *)(&platformID), nullptr);
test_error(err, "clGetDeviceInfo failed for CL_DEVICE_PLATFORM");
@@ -122,7 +122,7 @@ REGISTER_TEST(unified_svm_consistency)
}
if (platformCapabilities[i] != check)
{
test_fail("Platform SVM type capabilities at index %zu: 0x%" PRIx64
test_fail("Platform SVM type capabilities at index %d: 0x%" PRIx64
" do not match the intersection of device capabilities "
"0x%" PRIx64 ".\n",
i, platformCapabilities[i], check);
@@ -135,7 +135,7 @@ REGISTER_TEST(unified_svm_consistency)
// supported.
std::vector<cl_svm_capabilities_khr> deviceCapabilities(capabilityCount);
err = clGetDeviceInfo(deviceID, CL_DEVICE_SVM_TYPE_CAPABILITIES_KHR,
err = clGetDeviceInfo(device, CL_DEVICE_SVM_TYPE_CAPABILITIES_KHR,
platformSize, deviceCapabilities.data(), nullptr);
test_error(err,
"clGetDeviceInfo failed for CL_DEVICE_SVM_CAPABILITIES_KHR");
@@ -148,7 +148,7 @@ REGISTER_TEST(unified_svm_consistency)
if (!consistent)
{
test_fail(
"Device SVM type capabilities at index %zu: 0x%" PRIx64
"Device SVM type capabilities at index %d: 0x%" PRIx64
" are not consistent with platform SVM type capabilities: "
"0x%" PRIx64 ".\n",
i, deviceCapabilities[i], platformCapabilities[i]);