From 3b79ecdb8750320b2f3b3cfe695daa627651fd7d Mon Sep 17 00:00:00 2001 From: ellnor01 <51320439+ellnor01@users.noreply.github.com> Date: Wed, 15 Apr 2020 14:31:22 +0100 Subject: [PATCH] Replace get_device_version with get_cl_device_version (#733) They are duplicate functions Fixes #709 Change-Id: I8f7d6b8254047adb9e09ede4951dedc3ec5c1099 Signed-off-by: Ellen Norris-Thompson --- test_common/harness/kernelHelpers.cpp | 20 ------------------- test_common/harness/kernelHelpers.h | 3 --- test_conformance/SVM/main.cpp | 7 ++----- test_conformance/atomics/test_atomics.cpp | 9 +++------ test_conformance/basic/test_sizeof.cpp | 6 ++---- .../clcpp/workitems/test_workitems.hpp | 5 ++--- .../test_compiler_defines_for_extensions.cpp | 7 ++----- 7 files changed, 11 insertions(+), 46 deletions(-) diff --git a/test_common/harness/kernelHelpers.cpp b/test_common/harness/kernelHelpers.cpp index cc2817d8..320a980e 100644 --- a/test_common/harness/kernelHelpers.cpp +++ b/test_common/harness/kernelHelpers.cpp @@ -1027,26 +1027,6 @@ int build_program_create_kernel_helper(cl_context context, return 0; } -int get_device_version( cl_device_id id, size_t* major, size_t* minor) -{ - cl_char buffer[ 4098 ]; - size_t length; - - // Device version should fit the regex "OpenCL [0-9]+\.[0-9]+ *.*" - cl_int error = clGetDeviceInfo( id, CL_DEVICE_VERSION, sizeof( buffer ), buffer, &length ); - test_error( error, "Unable to get device version string" ); - - char *p1 = (char *)buffer + strlen( "OpenCL " ); - char *p2; - while( *p1 == ' ' ) - p1++; - *major = strtol( p1, &p2, 10 ); - error = *p2 != '.'; - test_error(error, "ERROR: Version number must contain a decimal point!"); - *minor = strtol( ++p2, NULL, 10 ); - return error; -} - int get_max_allowed_work_group_size( cl_context context, cl_kernel kernel, size_t *outMaxSize, size_t *outLimits ) { cl_device_id *devices; diff --git a/test_common/harness/kernelHelpers.h b/test_common/harness/kernelHelpers.h index d37b7add..e871df49 100644 --- a/test_common/harness/kernelHelpers.h +++ b/test_common/harness/kernelHelpers.h @@ -125,9 +125,6 @@ extern int get_max_common_2D_work_group_size( cl_context context, cl_kernel kern /* Helper to obtain the biggest fit work group size for all the devices in a given group and for the given global thread size */ extern int get_max_common_3D_work_group_size( cl_context context, cl_kernel kernel, size_t *globalThreadSize, size_t *outSizes ); -/* Helper to get major/minor number for a device */ -extern int get_device_version( cl_device_id id, size_t* major, size_t* minor); - /* Helper to obtain the biggest allowed work group size for all the devices in a given group */ extern int get_max_allowed_work_group_size( cl_context context, cl_kernel kernel, size_t *outSize, size_t *outLimits ); diff --git a/test_conformance/SVM/main.cpp b/test_conformance/SVM/main.cpp index 8b24e24a..52a7402b 100644 --- a/test_conformance/SVM/main.cpp +++ b/test_conformance/SVM/main.cpp @@ -198,12 +198,9 @@ cl_int create_cl_objects(cl_device_id device_from_harness, const char** ppCodeSt cl_uint num_capable_devices = 0; for(cl_uint i = 0; i < *num_devices; i++) { - size_t major = 0; - size_t minor = 0; - error = get_device_version(devices[i], &major, &minor); - test_error(error, "get_device_version failed"); + Version version = get_device_cl_version(devices[i]); - if(device_from_harness != devices[i] && major < 2) + if(device_from_harness != devices[i] && version < Version(2,0)) { continue; } diff --git a/test_conformance/atomics/test_atomics.cpp b/test_conformance/atomics/test_atomics.cpp index eb4ada79..7f200fc6 100644 --- a/test_conformance/atomics/test_atomics.cpp +++ b/test_conformance/atomics/test_atomics.cpp @@ -94,16 +94,13 @@ bool check_atomic_support( cl_device_id device, bool extended, bool isLocal, Exp if( isLocal ) index += 2; - size_t major, minor; - - int error = get_device_version(device, &major, &minor); - test_error( error, "get_device_version" ); + Version version = get_device_cl_version(device); switch (dataType) { case kInt: case kUInt: - if( major * 10 + minor >= 11 ) + if( version >= Version(1,1) ) return 1; break; case kLong: @@ -111,7 +108,7 @@ bool check_atomic_support( cl_device_id device, bool extended, bool isLocal, Exp index += 4; break; case kFloat: // this has to stay separate since the float atomics arent in the 1.0 extensions - return major * 10 + minor >= 11; + return version >= Version(1,1); default: log_error( "ERROR: Unsupported data type (%d) in check_atomic_support\n", dataType ); return 0; diff --git a/test_conformance/basic/test_sizeof.cpp b/test_conformance/basic/test_sizeof.cpp index ddb1102f..fc3fd0ad 100644 --- a/test_conformance/basic/test_sizeof.cpp +++ b/test_conformance/basic/test_sizeof.cpp @@ -49,11 +49,9 @@ cl_int get_type_size( cl_context context, cl_command_queue queue, const char *ty { sizeof_kernel_code[0] = "#pragma OPENCL EXTENSION cl_khr_fp16 : enable\n"; } - size_t major = 0; - size_t minor = 0; bool deviceLt20 = false; - int error = get_device_version(device, &major, &minor); - if (major < 2) { + Version version = get_device_cl_version(device); + if (version < Version(2,0)) { deviceLt20 = true; } diff --git a/test_conformance/clcpp/workitems/test_workitems.hpp b/test_conformance/clcpp/workitems/test_workitems.hpp index eb5087c5..099ef344 100644 --- a/test_conformance/clcpp/workitems/test_workitems.hpp +++ b/test_conformance/clcpp/workitems/test_workitems.hpp @@ -218,10 +218,9 @@ int test_workitems(cl_device_id device, cl_context context, cl_command_queue que check_sub_groups_limits = false; if (is_extension_available(device, "cl_khr_subgroups")) { - size_t major, minor; - error = get_device_version(device, &major, &minor); + Version version = get_device_cl_version(device); RETURN_ON_ERROR(error) - check_sub_groups_limits = (major > 2 || major == 2 && minor >= 1); // clGetKernelSubGroupInfo is from 2.1 + check_sub_groups_limits = (version >= Version(2,1)); // clGetKernelSubGroupInfo is from 2.1 check_sub_groups = true; } #endif diff --git a/test_conformance/compiler/test_compiler_defines_for_extensions.cpp b/test_conformance/compiler/test_compiler_defines_for_extensions.cpp index 4e92da53..3d50d1f4 100644 --- a/test_conformance/compiler/test_compiler_defines_for_extensions.cpp +++ b/test_conformance/compiler/test_compiler_defines_for_extensions.cpp @@ -333,12 +333,9 @@ int test_compiler_defines_for_extensions(cl_device_id device, cl_context context cl_program program; cl_kernel kernel; - size_t major = 0; - size_t minor = 0; - error = get_device_version(device, &major, &minor); - test_error(error, "get_device_version failed"); + Version version = get_device_cl_version(device); - error = create_single_kernel_helper(context, &program, &kernel, 1, (const char **)&kernel_code, "test", major < 2 ? "" : "-cl-std=CL2.0"); + error = create_single_kernel_helper(context, &program, &kernel, 1, (const char **)&kernel_code, "test", version < Version(2,0) ? "" : "-cl-std=CL2.0"); test_error(error, "create_single_kernel_helper failed"); data = (cl_int*)malloc(sizeof(cl_int)*(num_not_supported_extensions+num_of_supported_extensions));