Add CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED query

Related-To: NEO-4990

Change-Id: I9d26b60ed824ca26d637519785b9c14f0677e4db
Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
Filip Hazubski
2020-08-18 19:16:55 +02:00
committed by sys_ocldev
parent 49f450e094
commit fef4d05832
9 changed files with 16 additions and 2 deletions

View File

@@ -27,6 +27,7 @@ static std::string vendor = "Intel(R) Corporation";
static std::string profile = "FULL_PROFILE"; static std::string profile = "FULL_PROFILE";
static std::string spirVersions = "1.2 "; static std::string spirVersions = "1.2 ";
static std::string spirvName = "SPIR-V"; static std::string spirvName = "SPIR-V";
const char *latestConformanceVersionPassed = "1.0";
#define QTR(a) #a #define QTR(a) #a
#define TOSTR(b) QTR(b) #define TOSTR(b) QTR(b)
static std::string driverVersion = TOSTR(NEO_OCL_DRIVER_VERSION); static std::string driverVersion = TOSTR(NEO_OCL_DRIVER_VERSION);
@@ -117,6 +118,7 @@ void ClDevice::initializeCaps() {
deviceInfo.numericClVersion = CL_MAKE_VERSION(1, 2, 0); deviceInfo.numericClVersion = CL_MAKE_VERSION(1, 2, 0);
break; break;
} }
deviceInfo.latestConformanceVersionPassed = latestConformanceVersionPassed;
initializeOpenclCAllVersions(); initializeOpenclCAllVersions();
deviceInfo.platformLP = (hwInfo.capabilityTable.supportsOcl21Features == false); deviceInfo.platformLP = (hwInfo.capabilityTable.supportsOcl21Features == false);
deviceInfo.spirVersions = spirVersions.c_str(); deviceInfo.spirVersions = spirVersions.c_str();

View File

@@ -98,6 +98,7 @@ cl_int ClDevice::getDeviceInfo(cl_device_info paramName,
case CL_DEVICE_HOST_UNIFIED_MEMORY: getCap<CL_DEVICE_HOST_UNIFIED_MEMORY >(src, srcSize, retSize); break; case CL_DEVICE_HOST_UNIFIED_MEMORY: getCap<CL_DEVICE_HOST_UNIFIED_MEMORY >(src, srcSize, retSize); break;
case CL_DEVICE_IL_VERSION: getStr<CL_DEVICE_IL_VERSION >(src, srcSize, retSize); break; case CL_DEVICE_IL_VERSION: getStr<CL_DEVICE_IL_VERSION >(src, srcSize, retSize); break;
case CL_DEVICE_IMAGE_SUPPORT: getCap<CL_DEVICE_IMAGE_SUPPORT >(src, srcSize, retSize); break; case CL_DEVICE_IMAGE_SUPPORT: getCap<CL_DEVICE_IMAGE_SUPPORT >(src, srcSize, retSize); break;
case CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED: getStr<CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED >(src, srcSize, retSize); break;
case CL_DEVICE_LINKER_AVAILABLE: getCap<CL_DEVICE_LINKER_AVAILABLE >(src, srcSize, retSize); break; case CL_DEVICE_LINKER_AVAILABLE: getCap<CL_DEVICE_LINKER_AVAILABLE >(src, srcSize, retSize); break;
case CL_DEVICE_LOCAL_MEM_SIZE: getCap<CL_DEVICE_LOCAL_MEM_SIZE >(src, srcSize, retSize); break; case CL_DEVICE_LOCAL_MEM_SIZE: getCap<CL_DEVICE_LOCAL_MEM_SIZE >(src, srcSize, retSize); break;
case CL_DEVICE_LOCAL_MEM_TYPE: getCap<CL_DEVICE_LOCAL_MEM_TYPE >(src, srcSize, retSize); break; case CL_DEVICE_LOCAL_MEM_TYPE: getCap<CL_DEVICE_LOCAL_MEM_TYPE >(src, srcSize, retSize); break;

View File

@@ -49,6 +49,7 @@ struct ClDeviceInfo {
const char *clCVersion; const char *clCVersion;
const char *spirVersions; const char *spirVersions;
const char *deviceExtensions; const char *deviceExtensions;
const char *latestConformanceVersionPassed;
cl_device_id parentDevice; cl_device_id parentDevice;
cl_device_affinity_domain partitionAffinityDomain; cl_device_affinity_domain partitionAffinityDomain;
cl_uint partitionMaxSubDevices; cl_uint partitionMaxSubDevices;

View File

@@ -106,6 +106,7 @@ template<> struct Map<CL_DEVICE_IMAGE3D_MAX_HEIGHT > :
template<> struct Map<CL_DEVICE_IMAGE3D_MAX_WIDTH > : public ClMapBase<CL_DEVICE_IMAGE3D_MAX_WIDTH, size_t, &ClDeviceInfo::image3DMaxWidth> {}; template<> struct Map<CL_DEVICE_IMAGE3D_MAX_WIDTH > : public ClMapBase<CL_DEVICE_IMAGE3D_MAX_WIDTH, size_t, &ClDeviceInfo::image3DMaxWidth> {};
template<> struct Map<CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT > : public ClMapBase<CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT, uint32_t, &ClDeviceInfo::imageBaseAddressAlignment> {}; template<> struct Map<CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT > : public ClMapBase<CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT, uint32_t, &ClDeviceInfo::imageBaseAddressAlignment> {};
template<> struct Map<CL_DEVICE_IMAGE_PITCH_ALIGNMENT > : public ClMapBase<CL_DEVICE_IMAGE_PITCH_ALIGNMENT, uint32_t, &ClDeviceInfo::imagePitchAlignment> {}; template<> struct Map<CL_DEVICE_IMAGE_PITCH_ALIGNMENT > : public ClMapBase<CL_DEVICE_IMAGE_PITCH_ALIGNMENT, uint32_t, &ClDeviceInfo::imagePitchAlignment> {};
template<> struct Map<CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED > : public ClMapBase<CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED, const char *, &ClDeviceInfo::latestConformanceVersionPassed> {};
template<> struct Map<CL_DEVICE_LINKER_AVAILABLE > : public ClMapBase<CL_DEVICE_LINKER_AVAILABLE, uint32_t, &ClDeviceInfo::linkerAvailable> {}; template<> struct Map<CL_DEVICE_LINKER_AVAILABLE > : public ClMapBase<CL_DEVICE_LINKER_AVAILABLE, uint32_t, &ClDeviceInfo::linkerAvailable> {};
template<> struct Map<CL_DEVICE_LOCAL_MEM_TYPE > : public ClMapBase<CL_DEVICE_LOCAL_MEM_TYPE, uint32_t, &ClDeviceInfo::localMemType> {}; template<> struct Map<CL_DEVICE_LOCAL_MEM_TYPE > : public ClMapBase<CL_DEVICE_LOCAL_MEM_TYPE, uint32_t, &ClDeviceInfo::localMemType> {};
template<> struct Map<CL_DEVICE_MAX_COMPUTE_UNITS > : public ClMapBase<CL_DEVICE_MAX_COMPUTE_UNITS, uint32_t, &ClDeviceInfo::maxComputUnits> {}; template<> struct Map<CL_DEVICE_MAX_COMPUTE_UNITS > : public ClMapBase<CL_DEVICE_MAX_COMPUTE_UNITS, uint32_t, &ClDeviceInfo::maxComputUnits> {};

View File

@@ -313,6 +313,7 @@ TEST_P(GetDeviceInfoStr, GivenStringTypeParamWhenGettingDeviceInfoThenSuccessIsR
static cl_device_info deviceInfoStrParams[] = static cl_device_info deviceInfoStrParams[] =
{ {
CL_DEVICE_BUILT_IN_KERNELS, CL_DEVICE_BUILT_IN_KERNELS,
CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED,
CL_DEVICE_NAME, CL_DEVICE_NAME,
CL_DEVICE_OPENCL_C_VERSION, CL_DEVICE_OPENCL_C_VERSION,
CL_DEVICE_PROFILE, CL_DEVICE_PROFILE,

View File

@@ -84,8 +84,8 @@ TEST_P(GetDeviceGlInfoStr, StringType) {
// Define new command types to run the parameterized tests // Define new command types to run the parameterized tests
static cl_device_info deviceInfoStrParams[] = { static cl_device_info deviceInfoStrParams[] = {
CL_DEVICE_BUILT_IN_KERNELS, CL_DEVICE_EXTENSIONS, CL_DEVICE_NAME, CL_DEVICE_OPENCL_C_VERSION, CL_DEVICE_BUILT_IN_KERNELS, CL_DEVICE_EXTENSIONS, CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED, CL_DEVICE_NAME,
CL_DEVICE_PROFILE, CL_DEVICE_VENDOR, CL_DEVICE_VERSION, CL_DRIVER_VERSION}; CL_DEVICE_OPENCL_C_VERSION, CL_DEVICE_PROFILE, CL_DEVICE_VENDOR, CL_DEVICE_VERSION, CL_DRIVER_VERSION};
INSTANTIATE_TEST_CASE_P(api, GetDeviceGlInfoStr, testing::ValuesIn(deviceInfoStrParams)); INSTANTIATE_TEST_CASE_P(api, GetDeviceGlInfoStr, testing::ValuesIn(deviceInfoStrParams));

View File

@@ -126,6 +126,7 @@ TEST_F(DeviceGetCapsTest, WhenCreatingDeviceThenCapsArePopulatedCorrectly) {
EXPECT_GT(caps.openclCAllVersions.size(), 0u); EXPECT_GT(caps.openclCAllVersions.size(), 0u);
EXPECT_GT(caps.openclCFeatures.size(), 0u); EXPECT_GT(caps.openclCFeatures.size(), 0u);
EXPECT_EQ(caps.extensionsWithVersion.size(), 0u); EXPECT_EQ(caps.extensionsWithVersion.size(), 0u);
EXPECT_STREQ("1.0", caps.latestConformanceVersionPassed);
EXPECT_NE(nullptr, caps.spirVersions); EXPECT_NE(nullptr, caps.spirVersions);
EXPECT_NE(nullptr, caps.deviceExtensions); EXPECT_NE(nullptr, caps.deviceExtensions);

View File

@@ -6,6 +6,7 @@
*/ */
#include "shared/source/helpers/get_info.h" #include "shared/source/helpers/get_info.h"
#include "shared/source/helpers/string.h"
#include "opencl/source/cl_device/cl_device_info_map.h" #include "opencl/source/cl_device/cl_device_info_map.h"
#include "opencl/test/unit_test/fixtures/cl_device_fixture.h" #include "opencl/test/unit_test/fixtures/cl_device_fixture.h"
@@ -16,6 +17,10 @@
#include <memory> #include <memory>
namespace NEO {
extern const char *latestConformanceVersionPassed;
} // namespace NEO
using namespace NEO; using namespace NEO;
struct GetDeviceInfoSize : public ::testing::TestWithParam<std::pair<uint32_t /*cl_device_info*/, size_t>> { struct GetDeviceInfoSize : public ::testing::TestWithParam<std::pair<uint32_t /*cl_device_info*/, size_t>> {
@@ -60,6 +65,7 @@ std::pair<uint32_t, size_t> deviceInfoParams2[] = {
{CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE, sizeof(size_t)}, {CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE, sizeof(size_t)},
// {CL_DEVICE_IL_VERSION, sizeof(char[])}, // {CL_DEVICE_IL_VERSION, sizeof(char[])},
{CL_DEVICE_IMAGE_SUPPORT, sizeof(cl_bool)}, {CL_DEVICE_IMAGE_SUPPORT, sizeof(cl_bool)},
{CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED, strlen(latestConformanceVersionPassed) + 1},
{CL_DEVICE_LINKER_AVAILABLE, sizeof(cl_bool)}, {CL_DEVICE_LINKER_AVAILABLE, sizeof(cl_bool)},
{CL_DEVICE_LOCAL_MEM_SIZE, sizeof(cl_ulong)}, {CL_DEVICE_LOCAL_MEM_SIZE, sizeof(cl_ulong)},
{CL_DEVICE_LOCAL_MEM_TYPE, sizeof(cl_device_local_mem_type)}, {CL_DEVICE_LOCAL_MEM_TYPE, sizeof(cl_device_local_mem_type)},

View File

@@ -742,6 +742,7 @@ cl_device_info deviceInfoParams[] = {
CL_DEVICE_HALF_FP_CONFIG, CL_DEVICE_HALF_FP_CONFIG,
CL_DEVICE_HOST_UNIFIED_MEMORY, CL_DEVICE_HOST_UNIFIED_MEMORY,
CL_DEVICE_IMAGE_SUPPORT, CL_DEVICE_IMAGE_SUPPORT,
CL_DEVICE_LATEST_CONFORMANCE_VERSION_PASSED,
CL_DEVICE_LINKER_AVAILABLE, CL_DEVICE_LINKER_AVAILABLE,
CL_DEVICE_LOCAL_MEM_SIZE, CL_DEVICE_LOCAL_MEM_SIZE,
CL_DEVICE_LOCAL_MEM_TYPE, CL_DEVICE_LOCAL_MEM_TYPE,