diff options
author | Pan Xiuli <xiuli.pan@intel.com> | 2016-10-19 14:37:15 +0800 |
---|---|---|
committer | Yang Rong <rong.r.yang@intel.com> | 2016-11-03 12:23:49 +0800 |
commit | 49a25aef893da9d03bfa1154f916755aa638d729 (patch) | |
tree | 286138c2f5f6dcb8dd8191a771ef4dddb15fe3cb /utests | |
parent | d4f06bd0ecd05b7b27f9bcd89aa3d1325e60940d (diff) |
Utest: Add check subgroup short helper function
Check if the device support intel_subgroups_short extension, also check
if the device support intel_subgroups extension first.
Signed-off-by: Pan Xiuli <xiuli.pan@intel.com>
Reviewed-by: Yang Rong <rong.r.yang@intel.com>
Diffstat (limited to 'utests')
-rw-r--r-- | utests/utest_helper.cpp | 20 | ||||
-rw-r--r-- | utests/utest_helper.hpp | 2 |
2 files changed, 22 insertions, 0 deletions
diff --git a/utests/utest_helper.cpp b/utests/utest_helper.cpp index e87d2309..65c97bb8 100644 --- a/utests/utest_helper.cpp +++ b/utests/utest_helper.cpp @@ -917,6 +917,26 @@ int cl_check_subgroups(void) return 1; } +int cl_check_subgroups_short(void) +{ + if (!cl_check_subgroups()) + return 0; + std::string extStr; + size_t param_value_size; + OCL_CALL(clGetDeviceInfo, device, CL_DEVICE_EXTENSIONS, 0, 0, ¶m_value_size); + std::vector<char> param_value(param_value_size); + OCL_CALL(clGetDeviceInfo, device, CL_DEVICE_EXTENSIONS, param_value_size, + param_value.empty() ? NULL : ¶m_value.front(), ¶m_value_size); + if (!param_value.empty()) + extStr = std::string(¶m_value.front(), param_value_size-1); + + if (std::strstr(extStr.c_str(), "cl_intel_subgroups_short") == NULL) { + printf("No cl_intel_subgroups_short, Skip!"); + return 0; + } + return 1; +} + int cl_check_ocl20(void) { size_t param_value_size; diff --git a/utests/utest_helper.hpp b/utests/utest_helper.hpp index b16aac71..a7613258 100644 --- a/utests/utest_helper.hpp +++ b/utests/utest_helper.hpp @@ -321,4 +321,6 @@ extern uint32_t __half_to_float(uint16_t h, bool* isInf = NULL, bool* infSign = extern uint16_t __float_to_half(uint32_t x); extern float as_float(uint32_t i); extern uint32_t as_uint(float f); +/* Check is intel subgroups short enabled. */ +extern int cl_check_subgroups_short(void); #endif /* __UTEST_HELPER_HPP__ */ |