diff --git a/opencl/extensions/public/cl_ext_private.h b/opencl/extensions/public/cl_ext_private.h index 405ebb4d9d..3f99f4b06e 100644 --- a/opencl/extensions/public/cl_ext_private.h +++ b/opencl/extensions/public/cl_ext_private.h @@ -341,32 +341,4 @@ typedef cl_bitfield cl_command_queue_mdapi_properties_intel; // cl_intel_variable_eu_thread_count #define CL_DEVICE_EU_THREAD_COUNTS_INTEL 0x1000A // placeholder -#define CL_KERNEL_EU_THREAD_COUNT_INTEL 0x1000B // placeholder - -/************************************************* - * cl_ext_float_atomics extension * - *************************************************/ - -#if !defined(cl_ext_float_atomics) - -#define cl_ext_float_atomics 1 - -#define CL_DEVICE_SINGLE_FP_ATOMIC_CAPABILITIES_EXT 0x4231 -#define CL_DEVICE_DOUBLE_FP_ATOMIC_CAPABILITIES_EXT 0x4232 -#define CL_DEVICE_HALF_FP_ATOMIC_CAPABILITIES_EXT 0x4233 - -typedef cl_bitfield cl_device_fp_atomic_capabilities_ext; - -#define CL_DEVICE_GLOBAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 0) -#define CL_DEVICE_GLOBAL_FP_ATOMIC_ADD_EXT (1 << 1) -#define CL_DEVICE_GLOBAL_FP_ATOMIC_MIN_MAX_EXT (1 << 2) - -/* bits 3 - 15 are currently unused */ - -#define CL_DEVICE_LOCAL_FP_ATOMIC_LOAD_STORE_EXT (1 << 16) -#define CL_DEVICE_LOCAL_FP_ATOMIC_ADD_EXT (1 << 17) -#define CL_DEVICE_LOCAL_FP_ATOMIC_MIN_MAX_EXT (1 << 18) - -/* bits 19 and beyond are currently unused */ - -#endif +#define CL_KERNEL_EU_THREAD_COUNT_INTEL 0x1000B // placeholder \ No newline at end of file diff --git a/opencl/source/cl_device/cl_device_caps.cpp b/opencl/source/cl_device/cl_device_caps.cpp index 1d5d352271..a135c4dbcc 100644 --- a/opencl/source/cl_device/cl_device_caps.cpp +++ b/opencl/source/cl_device/cl_device_caps.cpp @@ -40,9 +40,6 @@ static constexpr cl_device_fp_config defaultFpFlags = static_cast(CL_DEVICE_GLOBAL_FP_ATOMIC_LOAD_STORE_EXT | - CL_DEVICE_LOCAL_FP_ATOMIC_LOAD_STORE_EXT); - void ClDevice::setupFp64Flags() { auto &hwInfo = getHardwareInfo(); @@ -170,27 +167,6 @@ void ClDevice::initializeCaps() { } } - if (enabledClVersion >= 20) { - deviceExtensions += "cl_ext_float_atomics "; - - deviceInfo.singleFpAtomicCapabilities = defaultFpAtomicCapabilities; - deviceInfo.halfFpAtomicCapabilities = 0; - if (ocl21FeaturesEnabled && hwInfo.capabilityTable.supportsFloatAtomics) { - deviceInfo.singleFpAtomicCapabilities |= static_cast( - CL_DEVICE_GLOBAL_FP_ATOMIC_ADD_EXT | CL_DEVICE_GLOBAL_FP_ATOMIC_MIN_MAX_EXT | CL_DEVICE_LOCAL_FP_ATOMIC_ADD_EXT | CL_DEVICE_LOCAL_FP_ATOMIC_MIN_MAX_EXT); - deviceInfo.halfFpAtomicCapabilities |= static_cast( - CL_DEVICE_GLOBAL_FP_ATOMIC_LOAD_STORE_EXT | CL_DEVICE_GLOBAL_FP_ATOMIC_MIN_MAX_EXT | CL_DEVICE_LOCAL_FP_ATOMIC_LOAD_STORE_EXT | CL_DEVICE_LOCAL_FP_ATOMIC_MIN_MAX_EXT); - } - - const cl_device_fp_atomic_capabilities_ext baseFP64AtomicCapabilities = hwInfo.capabilityTable.ftrSupportsInteger64BitAtomics || hwInfo.capabilityTable.supportsFloatAtomics ? defaultFpAtomicCapabilities : 0; - const cl_device_fp_atomic_capabilities_ext optionalFP64AtomicCapabilities = ocl21FeaturesEnabled && hwInfo.capabilityTable.supportsFloatAtomics ? static_cast( - CL_DEVICE_GLOBAL_FP_ATOMIC_ADD_EXT | CL_DEVICE_GLOBAL_FP_ATOMIC_MIN_MAX_EXT | - CL_DEVICE_LOCAL_FP_ATOMIC_ADD_EXT | CL_DEVICE_LOCAL_FP_ATOMIC_MIN_MAX_EXT) - : 0; - - deviceInfo.doubleFpAtomicCapabilities = deviceInfo.doubleFpConfig != 0u ? baseFP64AtomicCapabilities | optionalFP64AtomicCapabilities : 0; - } - if (DebugManager.flags.EnableNV12.get() && hwInfo.capabilityTable.supportsImages) { deviceExtensions += "cl_intel_planar_yuv "; deviceInfo.nv12Extension = true; diff --git a/opencl/source/cl_device/cl_device_info.cpp b/opencl/source/cl_device/cl_device_info.cpp index 4bf6379748..65f0ef5ac8 100644 --- a/opencl/source/cl_device/cl_device_info.cpp +++ b/opencl/source/cl_device/cl_device_info.cpp @@ -87,7 +87,6 @@ cl_int ClDevice::getDeviceInfo(cl_device_info paramName, case CL_DEVICE_COMPILER_AVAILABLE: getCap(src, srcSize, retSize); break; case CL_DEVICE_CROSS_DEVICE_SHARED_MEM_CAPABILITIES_INTEL: getCap(src, srcSize, retSize); break; case CL_DEVICE_DEVICE_MEM_CAPABILITIES_INTEL: getCap(src, srcSize, retSize); break; - case CL_DEVICE_DOUBLE_FP_ATOMIC_CAPABILITIES_EXT: getCap(src, srcSize, retSize); break; case CL_DEVICE_DOUBLE_FP_CONFIG: getCap(src, srcSize, retSize); break; case CL_DEVICE_DRIVER_VERSION_INTEL: getCap(src, srcSize, retSize); break; case CL_DEVICE_ENDIAN_LITTLE: getCap(src, srcSize, retSize); break; @@ -100,7 +99,6 @@ cl_int ClDevice::getDeviceInfo(cl_device_info paramName, case CL_DEVICE_GLOBAL_MEM_CACHE_TYPE: getCap(src, srcSize, retSize); break; case CL_DEVICE_GLOBAL_MEM_SIZE: getCap(src, srcSize, retSize); break; case CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE: getCap(src, srcSize, retSize); break; - case CL_DEVICE_HALF_FP_ATOMIC_CAPABILITIES_EXT: getCap(src, srcSize, retSize); break; case CL_DEVICE_HALF_FP_CONFIG: getCap(src, srcSize, retSize); break; case CL_DEVICE_HOST_MEM_CAPABILITIES_INTEL: getCap(src, srcSize, retSize); break; case CL_DEVICE_HOST_UNIFIED_MEMORY: getCap(src, srcSize, retSize); break; @@ -168,7 +166,6 @@ cl_int ClDevice::getDeviceInfo(cl_device_info paramName, case CL_DEVICE_QUEUE_ON_HOST_PROPERTIES: getCap(src, srcSize, retSize); break; case CL_DEVICE_SHARED_SYSTEM_MEM_CAPABILITIES_INTEL: getCap(src, srcSize, retSize); break; case CL_DEVICE_SINGLE_DEVICE_SHARED_MEM_CAPABILITIES_INTEL: getCap(src, srcSize, retSize); break; - case CL_DEVICE_SINGLE_FP_ATOMIC_CAPABILITIES_EXT: getCap(src, srcSize, retSize); break; case CL_DEVICE_SINGLE_FP_CONFIG: getCap(src, srcSize, retSize); break; case CL_DEVICE_SLICE_COUNT_INTEL: getCap(src, srcSize, retSize); break; case CL_DEVICE_SPIR_VERSIONS: getStr(src, srcSize, retSize); break; diff --git a/opencl/source/cl_device/cl_device_info.h b/opencl/source/cl_device/cl_device_info.h index 0ada443123..5760e0cd30 100644 --- a/opencl/source/cl_device/cl_device_info.h +++ b/opencl/source/cl_device/cl_device_info.h @@ -76,9 +76,6 @@ struct ClDeviceInfo { cl_bool independentForwardProgress; cl_device_atomic_capabilities atomicMemoryCapabilities; cl_device_atomic_capabilities atomicFenceCapabilities; - cl_device_fp_atomic_capabilities_ext singleFpAtomicCapabilities; - cl_device_fp_atomic_capabilities_ext halfFpAtomicCapabilities; - cl_device_fp_atomic_capabilities_ext doubleFpAtomicCapabilities; cl_bool nonUniformWorkGroupSupport; cl_bool workGroupCollectiveFunctionsSupport; cl_bool genericAddressSpaceSupport; diff --git a/opencl/source/cl_device/cl_device_info_map.h b/opencl/source/cl_device/cl_device_info_map.h index 36c6b3301f..397c8b282e 100644 --- a/opencl/source/cl_device/cl_device_info_map.h +++ b/opencl/source/cl_device/cl_device_info_map.h @@ -88,7 +88,6 @@ template<> struct Map : template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; -template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; @@ -98,7 +97,6 @@ template<> struct Map : template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; -template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; @@ -163,7 +161,6 @@ template<> struct Map : template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; -template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; template<> struct Map : public ClMapBase {}; diff --git a/opencl/test/unit_test/device/device_caps_tests.cpp b/opencl/test/unit_test/device/device_caps_tests.cpp index 80dec2e32b..a943db24aa 100644 --- a/opencl/test/unit_test/device/device_caps_tests.cpp +++ b/opencl/test/unit_test/device/device_caps_tests.cpp @@ -92,16 +92,6 @@ struct DeviceGetCapsTest : public ::testing::Test { EXPECT_STREQ("__opencl_c_program_scope_global_variables", (++openclCFeatureIterator)->name); EXPECT_STREQ("__opencl_c_work_group_collective_functions", (++openclCFeatureIterator)->name); EXPECT_STREQ("__opencl_c_subgroups", (++openclCFeatureIterator)->name); - if (hwInfo.capabilityTable.supportsFloatAtomics) { - EXPECT_STREQ("__opencl_c_ext_fp32_global_atomic_add", (++openclCFeatureIterator)->name); - EXPECT_STREQ("__opencl_c_ext_fp32_local_atomic_add", (++openclCFeatureIterator)->name); - EXPECT_STREQ("__opencl_c_ext_fp32_global_atomic_min_max", (++openclCFeatureIterator)->name); - EXPECT_STREQ("__opencl_c_ext_fp32_local_atomic_min_max", (++openclCFeatureIterator)->name); - EXPECT_STREQ("__opencl_c_ext_fp16_global_atomic_load_store", (++openclCFeatureIterator)->name); - EXPECT_STREQ("__opencl_c_ext_fp16_local_atomic_load_store", (++openclCFeatureIterator)->name); - EXPECT_STREQ("__opencl_c_ext_fp16_global_atomic_min_max", (++openclCFeatureIterator)->name); - EXPECT_STREQ("__opencl_c_ext_fp16_local_atomic_min_max", (++openclCFeatureIterator)->name); - } } if (hwInfo.capabilityTable.supportsDeviceEnqueue) { EXPECT_STREQ("__opencl_c_device_enqueue", (++openclCFeatureIterator)->name); @@ -111,12 +101,6 @@ struct DeviceGetCapsTest : public ::testing::Test { } if (hwInfo.capabilityTable.ftrSupportsFP64) { EXPECT_STREQ("__opencl_c_fp64", (++openclCFeatureIterator)->name); - if (hwInfo.capabilityTable.supportsOcl21Features && hwInfo.capabilityTable.supportsFloatAtomics) { - EXPECT_STREQ("__opencl_c_ext_fp64_global_atomic_add", (++openclCFeatureIterator)->name); - EXPECT_STREQ("__opencl_c_ext_fp64_local_atomic_add", (++openclCFeatureIterator)->name); - EXPECT_STREQ("__opencl_c_ext_fp64_global_atomic_min_max", (++openclCFeatureIterator)->name); - EXPECT_STREQ("__opencl_c_ext_fp64_local_atomic_min_max", (++openclCFeatureIterator)->name); - } } EXPECT_EQ(clDevice.getDeviceInfo().openclCFeatures.end(), ++openclCFeatureIterator); @@ -754,24 +738,6 @@ TEST_F(DeviceGetCapsTest, WhenCheckingFp64ThenResultIsConsistentWithHardwareCapa } } -TEST_F(DeviceGetCapsTest, givenOpenCLVersion20WhenCapsAreCreatedThenFloatAtomicsExtensionIsReported) { - DebugManagerStateRestore dbgRestorer; - DebugManager.flags.ForceOCLVersion.set(20); - auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(defaultHwInfo.get())); - const auto &caps = device->getDeviceInfo(); - - EXPECT_TRUE(hasSubstr(caps.deviceExtensions, std::string("cl_ext_float_atomics"))); -} - -TEST_F(DeviceGetCapsTest, givenOpenCLVersion12WhenCapsAreCreatedThenDeviceDoesntReportFloatAtomicsExtension) { - DebugManagerStateRestore dbgRestorer; - DebugManager.flags.ForceOCLVersion.set(12); - auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(defaultHwInfo.get())); - const auto &caps = device->getDeviceInfo(); - - EXPECT_FALSE(hasSubstr(caps.deviceExtensions, std::string("cl_ext_float_atomics"))); -} - TEST_F(DeviceGetCapsTest, givenEnableAdvancedVmeSetToTrueAndDeviceDoesNotSupportVmeWhenCapsAreCreatedThenDeviceReportAdvancedVmeExtensionAndBuiltins) { DebugManagerStateRestore dbgRestorer; DebugManager.flags.EnableIntelAdvancedVme.set(1); @@ -1006,68 +972,38 @@ TEST_F(DeviceGetCapsTest, givenFp64SupportForcedWhenCheckingFp64SupportThenFp64I auto hwInfo = *defaultHwInfo; for (auto isFp64SupportedByHw : ::testing::Bool()) { - for (auto isInteger64BitAtomicsSupportedByHw : ::testing::Bool()) { - for (auto isFloatAtomicsSupportedByHw : ::testing::Bool()) { - hwInfo.capabilityTable.ftrSupportsInteger64BitAtomics = isInteger64BitAtomicsSupportedByHw; - hwInfo.capabilityTable.ftrSupportsFP64 = isFp64SupportedByHw; - hwInfo.capabilityTable.ftrSupports64BitMath = isFp64SupportedByHw; - hwInfo.capabilityTable.supportsFloatAtomics = isFloatAtomicsSupportedByHw; + hwInfo.capabilityTable.ftrSupportsFP64 = isFp64SupportedByHw; + hwInfo.capabilityTable.ftrSupports64BitMath = isFp64SupportedByHw; - for (auto overrideDefaultFP64Settings : overrideDefaultFP64SettingsValues) { - DebugManager.flags.OverrideDefaultFP64Settings.set(overrideDefaultFP64Settings); - auto pClDevice = std::make_unique(MockDevice::createWithNewExecutionEnvironment(&hwInfo)); - auto &caps = pClDevice->getDeviceInfo(); - std::string extensionString = pClDevice->getDeviceInfo().deviceExtensions; + for (auto overrideDefaultFP64Settings : overrideDefaultFP64SettingsValues) { + DebugManager.flags.OverrideDefaultFP64Settings.set(overrideDefaultFP64Settings); + auto pClDevice = std::make_unique(MockDevice::createWithNewExecutionEnvironment(&hwInfo)); + auto &caps = pClDevice->getDeviceInfo(); + std::string extensionString = pClDevice->getDeviceInfo().deviceExtensions; - size_t fp64FeaturesCount = 0; - for (auto &openclCFeature : caps.openclCFeatures) { - if (0 == strcmp(openclCFeature.name, "__opencl_c_fp64")) { - fp64FeaturesCount++; - } - if (0 == strcmp(openclCFeature.name, "__opencl_c_ext_fp64_global_atomic_add")) { - fp64FeaturesCount++; - } - if (0 == strcmp(openclCFeature.name, "__opencl_c_ext_fp64_local_atomic_add")) { - fp64FeaturesCount++; - } - if (0 == strcmp(openclCFeature.name, "__opencl_c_ext_fp64_global_atomic_min_max")) { - fp64FeaturesCount++; - } - if (0 == strcmp(openclCFeature.name, "__opencl_c_ext_fp64_local_atomic_min_max")) { - fp64FeaturesCount++; - } - } - - bool expectedFp64Support = ((overrideDefaultFP64Settings == -1) ? isFp64SupportedByHw : overrideDefaultFP64Settings); - if (expectedFp64Support) { - const size_t expectedFp64FeaturesCount = hwInfo.capabilityTable.supportsOcl21Features && isFloatAtomicsSupportedByHw ? 5u : 1u; - EXPECT_NE(std::string::npos, extensionString.find(std::string("cl_khr_fp64"))); - EXPECT_NE(0u, caps.doubleFpConfig); - if (hwInfo.capabilityTable.supportsOcl21Features && isFloatAtomicsSupportedByHw) { - const cl_device_fp_atomic_capabilities_ext expectedFpCaps = static_cast(CL_DEVICE_GLOBAL_FP_ATOMIC_LOAD_STORE_EXT | CL_DEVICE_GLOBAL_FP_ATOMIC_ADD_EXT | CL_DEVICE_GLOBAL_FP_ATOMIC_MIN_MAX_EXT | - CL_DEVICE_LOCAL_FP_ATOMIC_LOAD_STORE_EXT | CL_DEVICE_LOCAL_FP_ATOMIC_ADD_EXT | CL_DEVICE_LOCAL_FP_ATOMIC_MIN_MAX_EXT); - EXPECT_EQ(expectedFpCaps, caps.doubleFpAtomicCapabilities); - } else if (isFloatAtomicsSupportedByHw || isInteger64BitAtomicsSupportedByHw) { - const cl_device_fp_atomic_capabilities_ext expectedFpCaps = static_cast(CL_DEVICE_GLOBAL_FP_ATOMIC_LOAD_STORE_EXT | CL_DEVICE_LOCAL_FP_ATOMIC_LOAD_STORE_EXT); - EXPECT_EQ(expectedFpCaps, caps.doubleFpAtomicCapabilities); - } else { - EXPECT_EQ(0u, caps.doubleFpAtomicCapabilities); - } - EXPECT_EQ(expectedFp64FeaturesCount, fp64FeaturesCount); - EXPECT_NE(0u, caps.nativeVectorWidthDouble); - EXPECT_NE(0u, caps.preferredVectorWidthDouble); - EXPECT_TRUE(isValueSet(caps.singleFpConfig, CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT)); - } else { - EXPECT_EQ(std::string::npos, extensionString.find(std::string("cl_khr_fp64"))); - EXPECT_EQ(0u, caps.doubleFpConfig); - EXPECT_EQ(0u, caps.doubleFpAtomicCapabilities); - EXPECT_EQ(0u, fp64FeaturesCount); - EXPECT_EQ(0u, caps.nativeVectorWidthDouble); - EXPECT_EQ(0u, caps.preferredVectorWidthDouble); - EXPECT_FALSE(isValueSet(caps.singleFpConfig, CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT)); - } + size_t fp64FeaturesCount = 0; + for (auto &openclCFeature : caps.openclCFeatures) { + if (0 == strcmp(openclCFeature.name, "__opencl_c_fp64")) { + fp64FeaturesCount++; } } + + bool expectedFp64Support = ((overrideDefaultFP64Settings == -1) ? isFp64SupportedByHw : overrideDefaultFP64Settings); + if (expectedFp64Support) { + EXPECT_NE(std::string::npos, extensionString.find(std::string("cl_khr_fp64"))); + EXPECT_NE(0u, caps.doubleFpConfig); + EXPECT_EQ(1u, fp64FeaturesCount); + EXPECT_NE(0u, caps.nativeVectorWidthDouble); + EXPECT_NE(0u, caps.preferredVectorWidthDouble); + EXPECT_TRUE(isValueSet(caps.singleFpConfig, CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT)); + } else { + EXPECT_EQ(std::string::npos, extensionString.find(std::string("cl_khr_fp64"))); + EXPECT_EQ(0u, caps.doubleFpConfig); + EXPECT_EQ(0u, fp64FeaturesCount); + EXPECT_EQ(0u, caps.nativeVectorWidthDouble); + EXPECT_EQ(0u, caps.preferredVectorWidthDouble); + EXPECT_FALSE(isValueSet(caps.singleFpConfig, CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT)); + } } } } diff --git a/opencl/test/unit_test/device/get_device_info_tests.cpp b/opencl/test/unit_test/device/get_device_info_tests.cpp index 7b7af06270..b1589baecc 100644 --- a/opencl/test/unit_test/device/get_device_info_tests.cpp +++ b/opencl/test/unit_test/device/get_device_info_tests.cpp @@ -897,7 +897,6 @@ cl_device_info deviceInfoParams[] = { CL_DEVICE_IL_VERSION, // NOT_SUPPORTED // CL_DEVICE_TERMINATE_CAPABILITY_KHR, - CL_DEVICE_DOUBLE_FP_ATOMIC_CAPABILITIES_EXT, CL_DEVICE_DOUBLE_FP_CONFIG, CL_DEVICE_ENDIAN_LITTLE, CL_DEVICE_ERROR_CORRECTION_SUPPORT, @@ -909,7 +908,6 @@ cl_device_info deviceInfoParams[] = { CL_DEVICE_GLOBAL_MEM_CACHE_TYPE, CL_DEVICE_GLOBAL_MEM_SIZE, CL_DEVICE_GLOBAL_VARIABLE_PREFERRED_TOTAL_SIZE, - CL_DEVICE_HALF_FP_ATOMIC_CAPABILITIES_EXT, CL_DEVICE_HALF_FP_CONFIG, CL_DEVICE_HOST_UNIFIED_MEMORY, CL_DEVICE_IMAGE_SUPPORT, @@ -976,7 +974,6 @@ cl_device_info deviceInfoParams[] = { CL_DEVICE_QUEUE_ON_DEVICE_PROPERTIES, CL_DEVICE_QUEUE_ON_HOST_PROPERTIES, CL_DEVICE_REFERENCE_COUNT, - CL_DEVICE_SINGLE_FP_ATOMIC_CAPABILITIES_EXT, CL_DEVICE_SINGLE_FP_CONFIG, CL_DEVICE_SPIR_VERSIONS, CL_DEVICE_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS, diff --git a/shared/source/compiler_interface/oclc_extensions.cpp b/shared/source/compiler_interface/oclc_extensions.cpp index b93195a759..3abdb8272c 100644 --- a/shared/source/compiler_interface/oclc_extensions.cpp +++ b/shared/source/compiler_interface/oclc_extensions.cpp @@ -64,7 +64,6 @@ std::string getExtensionsList(const HardwareInfo &hwInfo) { } allExtensionsList += "cl_intel_spirv_subgroups "; allExtensionsList += "cl_khr_spirv_no_integer_wrap_decoration "; - allExtensionsList += "cl_ext_float_atomics "; } if (hwInfo.capabilityTable.ftrSupportsFP64) { @@ -129,32 +128,6 @@ void getOpenclCFeaturesList(const HardwareInfo &hwInfo, OpenClCFeaturesContainer strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_subgroups"); openclCFeatures.push_back(openClCFeature); - - if (hwInfo.capabilityTable.supportsFloatAtomics) { - strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_ext_fp32_global_atomic_add"); - openclCFeatures.push_back(openClCFeature); - - strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_ext_fp32_local_atomic_add"); - openclCFeatures.push_back(openClCFeature); - - strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_ext_fp32_global_atomic_min_max"); - openclCFeatures.push_back(openClCFeature); - - strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_ext_fp32_local_atomic_min_max"); - openclCFeatures.push_back(openClCFeature); - - strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_ext_fp16_global_atomic_load_store"); - openclCFeatures.push_back(openClCFeature); - - strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_ext_fp16_local_atomic_load_store"); - openclCFeatures.push_back(openClCFeature); - - strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_ext_fp16_global_atomic_min_max"); - openclCFeatures.push_back(openClCFeature); - - strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_ext_fp16_local_atomic_min_max"); - openclCFeatures.push_back(openClCFeature); - } } auto forcePipeSupport = DebugManager.flags.ForcePipeSupport.get(); @@ -169,20 +142,6 @@ void getOpenclCFeaturesList(const HardwareInfo &hwInfo, OpenClCFeaturesContainer (forceFp64Support == 1)) { strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_fp64"); openclCFeatures.push_back(openClCFeature); - - if (hwInfo.capabilityTable.supportsOcl21Features && hwInfo.capabilityTable.supportsFloatAtomics) { - strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_ext_fp64_global_atomic_add"); - openclCFeatures.push_back(openClCFeature); - - strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_ext_fp64_local_atomic_add"); - openclCFeatures.push_back(openClCFeature); - - strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_ext_fp64_global_atomic_min_max"); - openclCFeatures.push_back(openClCFeature); - - strcpy_s(openClCFeature.name, CL_NAME_VERSION_MAX_NAME_SIZE, "__opencl_c_ext_fp64_local_atomic_min_max"); - openclCFeatures.push_back(openClCFeature); - } } } diff --git a/shared/source/compiler_interface/oclc_extensions.h b/shared/source/compiler_interface/oclc_extensions.h index 6a1d5c501f..2dfa8d36ac 100644 --- a/shared/source/compiler_interface/oclc_extensions.h +++ b/shared/source/compiler_interface/oclc_extensions.h @@ -13,7 +13,7 @@ #include -using OpenClCFeaturesContainer = StackVec; +using OpenClCFeaturesContainer = StackVec; namespace NEO { struct HardwareInfo; diff --git a/shared/source/gen11/hw_info_ehl.cpp b/shared/source/gen11/hw_info_ehl.cpp index 6ef3451af0..a81f166b2a 100644 --- a/shared/source/gen11/hw_info_ehl.cpp +++ b/shared/source/gen11/hw_info_ehl.cpp @@ -75,8 +75,7 @@ const RuntimeCapabilityTable EHL::capabilityTable{ false, // p2pAccessSupported false, // p2pAtomicAccessSupported false, // fusedEuEnabled - false, // l0DebuggerSupported; - false // supportsFloatAtomics + false // l0DebuggerSupported; }; WorkaroundTable EHL::workaroundTable = {}; diff --git a/shared/source/gen11/hw_info_icllp.cpp b/shared/source/gen11/hw_info_icllp.cpp index 330fae25d5..edc132f0c1 100644 --- a/shared/source/gen11/hw_info_icllp.cpp +++ b/shared/source/gen11/hw_info_icllp.cpp @@ -75,8 +75,7 @@ const RuntimeCapabilityTable ICLLP::capabilityTable{ false, // p2pAccessSupported false, // p2pAtomicAccessSupported false, // fusedEuEnabled - false, // l0DebuggerSupported; - false // supportsFloatAtomics + false // l0DebuggerSupported; }; WorkaroundTable ICLLP::workaroundTable = {}; diff --git a/shared/source/gen11/hw_info_lkf.cpp b/shared/source/gen11/hw_info_lkf.cpp index e745835138..b8b1c2e711 100644 --- a/shared/source/gen11/hw_info_lkf.cpp +++ b/shared/source/gen11/hw_info_lkf.cpp @@ -75,8 +75,7 @@ const RuntimeCapabilityTable LKF::capabilityTable{ false, // p2pAccessSupported false, // p2pAtomicAccessSupported false, // fusedEuEnabled - false, // l0DebuggerSupported; - false // supportsFloatAtomics + false // l0DebuggerSupported; }; WorkaroundTable LKF::workaroundTable = {}; diff --git a/shared/source/gen12lp/hw_info_adln.cpp b/shared/source/gen12lp/hw_info_adln.cpp index a5b889e4fb..61c8e13d5f 100644 --- a/shared/source/gen12lp/hw_info_adln.cpp +++ b/shared/source/gen12lp/hw_info_adln.cpp @@ -77,9 +77,7 @@ const RuntimeCapabilityTable ADLN::capabilityTable{ true, // supportsMediaBlock false, // p2pAccessSupported false, // p2pAtomicAccessSupported - true, // fusedEuEnabled - false, // l0DebuggerSupported; - true // supportsFloatAtomics + true // fusedEuEnabled }; WorkaroundTable ADLN::workaroundTable = {}; diff --git a/shared/source/gen12lp/hw_info_adlp.cpp b/shared/source/gen12lp/hw_info_adlp.cpp index d05bb523cd..03b36ba55c 100644 --- a/shared/source/gen12lp/hw_info_adlp.cpp +++ b/shared/source/gen12lp/hw_info_adlp.cpp @@ -78,8 +78,7 @@ const RuntimeCapabilityTable ADLP::capabilityTable{ false, // p2pAccessSupported false, // p2pAtomicAccessSupported true, // fusedEuEnabled - false, // l0DebuggerSupported; - true // supportsFloatAtomics + false // l0DebuggerSupported; }; WorkaroundTable ADLP::workaroundTable = {}; diff --git a/shared/source/gen12lp/hw_info_adls.cpp b/shared/source/gen12lp/hw_info_adls.cpp index 45f1628b73..340650bb7d 100644 --- a/shared/source/gen12lp/hw_info_adls.cpp +++ b/shared/source/gen12lp/hw_info_adls.cpp @@ -78,8 +78,7 @@ const RuntimeCapabilityTable ADLS::capabilityTable{ false, // p2pAccessSupported false, // p2pAtomicAccessSupported true, // fusedEuEnabled - false, // l0DebuggerSupported; - true // supportsFloatAtomics + false // l0DebuggerSupported; }; WorkaroundTable ADLS::workaroundTable = {}; diff --git a/shared/source/gen12lp/hw_info_dg1.cpp b/shared/source/gen12lp/hw_info_dg1.cpp index b227dd23ba..43c18a9711 100644 --- a/shared/source/gen12lp/hw_info_dg1.cpp +++ b/shared/source/gen12lp/hw_info_dg1.cpp @@ -79,7 +79,6 @@ const RuntimeCapabilityTable DG1::capabilityTable{ false, // p2pAtomicAccessSupported true, // fusedEuEnabled true, // l0DebuggerSupported; - true // supportsFloatAtomics }; WorkaroundTable DG1::workaroundTable = {}; diff --git a/shared/source/gen12lp/hw_info_rkl.cpp b/shared/source/gen12lp/hw_info_rkl.cpp index 48f0476ced..900f9ac2a1 100644 --- a/shared/source/gen12lp/hw_info_rkl.cpp +++ b/shared/source/gen12lp/hw_info_rkl.cpp @@ -79,7 +79,6 @@ const RuntimeCapabilityTable RKL::capabilityTable{ false, // p2pAtomicAccessSupported true, // fusedEuEnabled false, // l0DebuggerSupported; - true // supportsFloatAtomics }; WorkaroundTable RKL::workaroundTable = {}; diff --git a/shared/source/gen12lp/hw_info_tgllp.cpp b/shared/source/gen12lp/hw_info_tgllp.cpp index baf94090b0..f942888241 100644 --- a/shared/source/gen12lp/hw_info_tgllp.cpp +++ b/shared/source/gen12lp/hw_info_tgllp.cpp @@ -79,7 +79,6 @@ const RuntimeCapabilityTable TGLLP::capabilityTable{ false, // p2pAtomicAccessSupported true, // fusedEuEnabled false, // l0DebuggerSupported; - true // supportsFloatAtomics }; WorkaroundTable TGLLP::workaroundTable = {}; diff --git a/shared/source/gen8/hw_info_bdw.cpp b/shared/source/gen8/hw_info_bdw.cpp index c432ed8356..976e803e4c 100644 --- a/shared/source/gen8/hw_info_bdw.cpp +++ b/shared/source/gen8/hw_info_bdw.cpp @@ -75,8 +75,7 @@ const RuntimeCapabilityTable BDW::capabilityTable{ false, // p2pAccessSupported false, // p2pAtomicAccessSupported false, // fusedEuEnabled - false, // l0DebuggerSupported; - false // supportsFloatAtomics + false // l0DebuggerSupported; }; WorkaroundTable BDW::workaroundTable = {}; diff --git a/shared/source/gen9/hw_info_bxt.cpp b/shared/source/gen9/hw_info_bxt.cpp index 817700614d..1a568d36d2 100644 --- a/shared/source/gen9/hw_info_bxt.cpp +++ b/shared/source/gen9/hw_info_bxt.cpp @@ -75,8 +75,7 @@ const RuntimeCapabilityTable BXT::capabilityTable{ false, // p2pAccessSupported false, // p2pAtomicAccessSupported false, // fusedEuEnabled - false, // l0DebuggerSupported; - false // supportsFloatAtomics + false // l0DebuggerSupported; }; WorkaroundTable BXT::workaroundTable = {}; diff --git a/shared/source/gen9/hw_info_cfl.cpp b/shared/source/gen9/hw_info_cfl.cpp index 70175a50df..7fdfce6f02 100644 --- a/shared/source/gen9/hw_info_cfl.cpp +++ b/shared/source/gen9/hw_info_cfl.cpp @@ -75,8 +75,7 @@ const RuntimeCapabilityTable CFL::capabilityTable{ false, // p2pAccessSupported false, // p2pAtomicAccessSupported false, // fusedEuEnabled - false, // l0DebuggerSupported; - false // supportsFloatAtomics + false // l0DebuggerSupported; }; WorkaroundTable CFL::workaroundTable = {}; diff --git a/shared/source/gen9/hw_info_glk.cpp b/shared/source/gen9/hw_info_glk.cpp index 23dcd3a571..bf4c94e9e3 100644 --- a/shared/source/gen9/hw_info_glk.cpp +++ b/shared/source/gen9/hw_info_glk.cpp @@ -75,8 +75,7 @@ const RuntimeCapabilityTable GLK::capabilityTable{ false, // p2pAccessSupported false, // p2pAtomicAccessSupported false, // fusedEuEnabled - false, // l0DebuggerSupported; - false // supportsFloatAtomics + false // l0DebuggerSupported; }; WorkaroundTable GLK::workaroundTable = {}; diff --git a/shared/source/gen9/hw_info_kbl.cpp b/shared/source/gen9/hw_info_kbl.cpp index 7aa59872d4..70b5d82020 100644 --- a/shared/source/gen9/hw_info_kbl.cpp +++ b/shared/source/gen9/hw_info_kbl.cpp @@ -75,8 +75,7 @@ const RuntimeCapabilityTable KBL::capabilityTable{ false, // p2pAccessSupported false, // p2pAtomicAccessSupported false, // fusedEuEnabled - false, // l0DebuggerSupported; - false // supportsFloatAtomics + false // l0DebuggerSupported; }; WorkaroundTable KBL::workaroundTable = {}; diff --git a/shared/source/gen9/hw_info_skl.cpp b/shared/source/gen9/hw_info_skl.cpp index 4d8ca13b4a..9643287732 100644 --- a/shared/source/gen9/hw_info_skl.cpp +++ b/shared/source/gen9/hw_info_skl.cpp @@ -75,8 +75,7 @@ const RuntimeCapabilityTable SKL::capabilityTable{ false, // p2pAccessSupported false, // p2pAtomicAccessSupported false, // fusedEuEnabled - false, // l0DebuggerSupported; - false // supportsFloatAtomics + false // l0DebuggerSupported; }; WorkaroundTable SKL::workaroundTable = {}; diff --git a/shared/source/helpers/hw_info.h b/shared/source/helpers/hw_info.h index 70c20a78de..88b7e98da6 100644 --- a/shared/source/helpers/hw_info.h +++ b/shared/source/helpers/hw_info.h @@ -64,7 +64,6 @@ struct RuntimeCapabilityTable { bool p2pAtomicAccessSupported; bool fusedEuEnabled; bool l0DebuggerSupported; - bool supportsFloatAtomics; }; inline bool operator==(const RuntimeCapabilityTable &lhs, const RuntimeCapabilityTable &rhs) { @@ -129,7 +128,6 @@ inline bool operator==(const RuntimeCapabilityTable &lhs, const RuntimeCapabilit result &= (lhs.supportsMediaBlock == rhs.supportsMediaBlock); result &= (lhs.fusedEuEnabled == rhs.fusedEuEnabled); result &= (lhs.l0DebuggerSupported == rhs.l0DebuggerSupported); - result &= (lhs.supportsFloatAtomics == rhs.supportsFloatAtomics); return result; }