mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-08 22:12:59 +08:00
feature: add new PVC device id
Related-To: NEO-9736 Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
edd6fd5e6c
commit
87857a6558
@@ -336,7 +336,7 @@ if(SUPPORT_XE_HPC_CORE)
|
||||
|
||||
if(SUPPORT_PVC)
|
||||
set(PVC_XE_HPC_CORE_REVISIONS 3 47)
|
||||
set(PVC_XE_HPC_CORE_RELEASES "12.60.0" "12.60.1" "12.60.3" "12.60.5" "12.60.6" "12.60.7")
|
||||
set(PVC_XE_HPC_CORE_RELEASES "12.60.0" "12.60.1" "12.60.3" "12.60.5" "12.60.6" "12.60.7" "12.61.7")
|
||||
ADD_PRODUCT("SUPPORTED" "PVC" "IGFX_PVC")
|
||||
ADD_PLATFORM_FOR_CORE_TYPE("SUPPORTED" "XE_HPC_CORE" "PVC")
|
||||
ADD_PLATFORM_FOR_CORE_TYPE("SUPPORTED_AUX_TRANSLATION" "XE_HPC_CORE" "PVC")
|
||||
|
||||
@@ -89,14 +89,27 @@ PVCTEST_F(DeviceTestPvc, givenPvcXtDeviceIdAndRevIdWhenGetDeviceIpVersion) {
|
||||
ze_device_ip_version_ext_t zeDeviceIpVersion = {ZE_STRUCTURE_TYPE_DEVICE_IP_VERSION_EXT};
|
||||
zeDeviceIpVersion.ipVersion = std::numeric_limits<uint32_t>::max();
|
||||
deviceProperties.pNext = &zeDeviceIpVersion;
|
||||
std::vector<std::pair<uint32_t, AOT::PRODUCT_CONFIG>> pvcValues = {
|
||||
std::vector<std::pair<uint32_t, AOT::PRODUCT_CONFIG>> pvcXtValues = {
|
||||
{0x3, AOT::PVC_XT_A0},
|
||||
{0x5, AOT::PVC_XT_B0},
|
||||
{0x6, AOT::PVC_XT_B1},
|
||||
{0x7, AOT::PVC_XT_C0}};
|
||||
|
||||
std::vector<std::pair<uint32_t, AOT::PRODUCT_CONFIG>> pvcXtVgValues = {{0x7, AOT::PVC_XT_C0_VG}};
|
||||
|
||||
for (const auto &deviceId : pvcXtDeviceIds) {
|
||||
for (const auto &[revId, config] : pvcValues) {
|
||||
for (const auto &[revId, config] : pvcXtValues) {
|
||||
device->getNEODevice()->getRootDeviceEnvironment().getMutableHardwareInfo()->platform.usDeviceID = deviceId;
|
||||
device->getNEODevice()->getRootDeviceEnvironment().getMutableHardwareInfo()->platform.usRevId = revId;
|
||||
device->getProperties(&deviceProperties);
|
||||
|
||||
EXPECT_NE(std::numeric_limits<uint32_t>::max(), zeDeviceIpVersion.ipVersion);
|
||||
EXPECT_EQ(config, zeDeviceIpVersion.ipVersion);
|
||||
}
|
||||
}
|
||||
|
||||
for (const auto &deviceId : pvcXtVgDeviceIds) {
|
||||
for (const auto &[revId, config] : pvcXtVgValues) {
|
||||
device->getNEODevice()->getRootDeviceEnvironment().getMutableHardwareInfo()->platform.usDeviceID = deviceId;
|
||||
device->getNEODevice()->getRootDeviceEnvironment().getMutableHardwareInfo()->platform.usRevId = revId;
|
||||
device->getProperties(&deviceProperties);
|
||||
|
||||
@@ -42,7 +42,7 @@ components:
|
||||
dest_dir: kernels_bin
|
||||
type: git
|
||||
branch: kernels_bin
|
||||
revision: 2214-1182
|
||||
revision: 2214-1188
|
||||
kmdaf:
|
||||
branch: kmdaf
|
||||
dest_dir: kmdaf
|
||||
|
||||
@@ -61,6 +61,32 @@ PVCTEST_F(PvcOfflineCompilerTests, givenPvcDeviceAndRevisionIdValueWhenInitHwInf
|
||||
}
|
||||
}
|
||||
|
||||
PVCTEST_F(PvcOfflineCompilerTests, givenPvcXtVgDeviceAndRevisionIdValueWhenInitHwInfoThenCorrectValuesAreSet) {
|
||||
MockOfflineCompiler mockOfflineCompiler;
|
||||
|
||||
std::string deviceStr;
|
||||
auto deviceID = pvcXtVgDeviceIds.front();
|
||||
|
||||
HardwareIpVersion config = AOT::PVC_XT_C0_VG;
|
||||
int revisionID = 0x2f;
|
||||
|
||||
std::stringstream deviceIDStr, expectedOutput;
|
||||
mockOfflineCompiler.revisionId = revisionID;
|
||||
|
||||
deviceIDStr << "0x" << std::hex << deviceID;
|
||||
deviceStr = mockOfflineCompiler.argHelper->productConfigHelper->getAcronymForProductConfig(config.value);
|
||||
|
||||
testing::internal::CaptureStdout();
|
||||
mockOfflineCompiler.initHardwareInfo(deviceIDStr.str());
|
||||
std::string output = testing::internal::GetCapturedStdout();
|
||||
expectedOutput << "Auto-detected target based on " << deviceIDStr.str() << " device id: " << deviceStr << "\n";
|
||||
|
||||
EXPECT_STREQ(output.c_str(), expectedOutput.str().c_str());
|
||||
EXPECT_EQ(mockOfflineCompiler.hwInfo.platform.usDeviceID, deviceID);
|
||||
EXPECT_EQ(mockOfflineCompiler.hwInfo.platform.usRevId, revisionID);
|
||||
EXPECT_EQ(mockOfflineCompiler.deviceConfig, config.value);
|
||||
}
|
||||
|
||||
PVCTEST_F(PvcOfflineCompilerTests, givenPvcXtDeviceAndUnknownRevisionIdValueWhenInitHwInfoThenDefaultConfigIsSet) {
|
||||
MockOfflineCompiler mockOfflineCompiler;
|
||||
mockOfflineCompiler.argHelper->getPrinterRef().setSuppressMessages(true);
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
using namespace NEO;
|
||||
|
||||
PVCTEST_F(DeviceIdTests, GivenPvcSupportedDeviceIdThenConfigIsCorrect) {
|
||||
std::array<DeviceDescriptor, 10> expectedDescriptors = {{
|
||||
std::array<DeviceDescriptor, 11> expectedDescriptors = {{
|
||||
{0x0BD0, &PvcHwConfig::hwInfo, &PvcHwConfig::setupHardwareInfo},
|
||||
{0x0BD5, &PvcHwConfig::hwInfo, &PvcHwConfig::setupHardwareInfo},
|
||||
{0x0BD6, &PvcHwConfig::hwInfo, &PvcHwConfig::setupHardwareInfo},
|
||||
@@ -21,6 +21,7 @@ PVCTEST_F(DeviceIdTests, GivenPvcSupportedDeviceIdThenConfigIsCorrect) {
|
||||
{0x0BDB, &PvcHwConfig::hwInfo, &PvcHwConfig::setupHardwareInfo},
|
||||
{0x0B69, &PvcHwConfig::hwInfo, &PvcHwConfig::setupHardwareInfo},
|
||||
{0x0B6E, &PvcHwConfig::hwInfo, &PvcHwConfig::setupHardwareInfo},
|
||||
{0x0BD4, &PvcHwConfig::hwInfo, &PvcHwConfig::setupHardwareInfo},
|
||||
}};
|
||||
|
||||
testImpl(expectedDescriptors);
|
||||
|
||||
@@ -73,6 +73,7 @@ set(CLOC_LIB_SRCS_LIB
|
||||
${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1256.cpp
|
||||
${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1257.cpp
|
||||
${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1260.cpp
|
||||
${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1261.cpp
|
||||
${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1270.cpp
|
||||
${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1271.cpp
|
||||
${NEO_SHARED_DIRECTORY}/release_helper/release_helper_1274.cpp
|
||||
|
||||
@@ -17,6 +17,7 @@ NAMEDDEVICE(0x0BDA, PvcHwConfig, "Intel(R) Data Center GPU Max 1100")
|
||||
NAMEDDEVICE(0x0BDB, PvcHwConfig, "Intel(R) Data Center GPU Max 1100")
|
||||
NAMEDDEVICE(0x0B69, PvcHwConfig, "Intel(R) Data Center GPU Max 1450")
|
||||
NAMEDDEVICE(0x0B6E, PvcHwConfig, "Intel(R) Data Center GPU Max 1100C")
|
||||
NAMEDDEVICE(0x0BD4, PvcHwConfig, "Intel(R) Data Center GPU Max 1550VG")
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@ DEVICE_CONFIG(PVC_XT_A0, PvcHwConfig, pvcXtDeviceIds, XE_FAMILY, XE_HPC_RELEASE)
|
||||
DEVICE_CONFIG(PVC_XT_B0, PvcHwConfig, pvcXtDeviceIds, XE_FAMILY, XE_HPC_RELEASE)
|
||||
DEVICE_CONFIG(PVC_XT_B1, PvcHwConfig, pvcXtDeviceIds, XE_FAMILY, XE_HPC_RELEASE)
|
||||
DEVICE_CONFIG(PVC_XT_C0, PvcHwConfig, pvcXtDeviceIds, XE_FAMILY, XE_HPC_RELEASE)
|
||||
DEVICE_CONFIG(PVC_XT_C0_VG, PvcHwConfig, pvcXtVgDeviceIds, XE_FAMILY, XE_HPC_RELEASE)
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -21,6 +21,7 @@ if(SUPPORT_XE_HPG_CORE OR SUPPORT_XE_HPC_CORE)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1256.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1257.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1260.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1261.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1270.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1271.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/release_helper_1274.cpp
|
||||
|
||||
@@ -14,6 +14,7 @@ enum class ReleaseType {
|
||||
release1256,
|
||||
release1257,
|
||||
release1260,
|
||||
release1261,
|
||||
release1270,
|
||||
release1271,
|
||||
release1274,
|
||||
|
||||
@@ -19,6 +19,7 @@ EnableReleaseHelper<ReleaseType::release1255> enablerReleaseHelper1255{releaseHe
|
||||
EnableReleaseHelper<ReleaseType::release1256> enablerReleaseHelper1256{releaseHelperFactoryXe[56]};
|
||||
EnableReleaseHelper<ReleaseType::release1257> enablerReleaseHelper1257{releaseHelperFactoryXe[57]};
|
||||
EnableReleaseHelper<ReleaseType::release1260> enablerReleaseHelper1260{releaseHelperFactoryXe[60]};
|
||||
EnableReleaseHelper<ReleaseType::release1261> enablerReleaseHelper1261{releaseHelperFactoryXe[61]};
|
||||
EnableReleaseHelper<ReleaseType::release1270> enablerReleaseHelper1270{releaseHelperFactoryXe[70]};
|
||||
EnableReleaseHelper<ReleaseType::release1271> enablerReleaseHelper1271{releaseHelperFactoryXe[71]};
|
||||
EnableReleaseHelper<ReleaseType::release1274> enablerReleaseHelper1274{releaseHelperFactoryXe[74]};
|
||||
|
||||
22
shared/source/release_helper/release_helper_1261.cpp
Normal file
22
shared/source/release_helper/release_helper_1261.cpp
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright (C) 2023 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include "shared/source/release_helper/release_helper.h"
|
||||
#include "shared/source/release_helper/release_helper_base.inl"
|
||||
|
||||
#include "release_definitions.h"
|
||||
|
||||
namespace NEO {
|
||||
constexpr auto release = ReleaseType::release1261;
|
||||
|
||||
template <>
|
||||
bool ReleaseHelperHw<release>::isRcsExposureDisabled() const {
|
||||
return true;
|
||||
}
|
||||
} // namespace NEO
|
||||
|
||||
template class NEO::ReleaseHelperHw<NEO::release>;
|
||||
@@ -28,7 +28,13 @@ uint32_t CompilerProductHelperHw<IGFX_PVC>::getProductConfigFromHwInfo(const Har
|
||||
auto deviceId = hwInfo.platform.usDeviceID;
|
||||
bool isPvcXl = (std::find(pvcXlDeviceIds.begin(), pvcXlDeviceIds.end(), deviceId) != pvcXlDeviceIds.end());
|
||||
bool isPvcXt = (std::find(pvcXtDeviceIds.begin(), pvcXtDeviceIds.end(), deviceId) != pvcXtDeviceIds.end());
|
||||
if (isPvcXl) {
|
||||
bool isPvcXtVg = (std::find(pvcXtVgDeviceIds.begin(), pvcXtVgDeviceIds.end(), deviceId) != pvcXtVgDeviceIds.end());
|
||||
|
||||
if (isPvcXtVg) {
|
||||
if ((hwInfo.platform.usRevId & PVC::pvcSteppingBits) == 7) {
|
||||
return AOT::PVC_XT_C0_VG;
|
||||
}
|
||||
} else if (isPvcXl) {
|
||||
switch (hwInfo.platform.usRevId & PVC::pvcSteppingBits) {
|
||||
case 0x0:
|
||||
return AOT::PVC_XL_A0;
|
||||
|
||||
@@ -23,4 +23,9 @@ bool PVC::isXt(const HardwareInfo &hwInfo) {
|
||||
return it != pvcXtDeviceIds.end();
|
||||
}
|
||||
|
||||
bool PVC::isXtVg(const HardwareInfo &hwInfo) {
|
||||
auto it = std::find(pvcXtVgDeviceIds.begin(), pvcXtVgDeviceIds.end(), hwInfo.platform.usDeviceID);
|
||||
return it != pvcXtVgDeviceIds.end();
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
@@ -55,6 +55,7 @@ struct PVC : public XeHpcCoreFamily {
|
||||
static bool isXl(const HardwareInfo &hwInfo);
|
||||
|
||||
static bool isXt(const HardwareInfo &hwInfo);
|
||||
static bool isXtVg(const HardwareInfo &hwInfo);
|
||||
|
||||
static bool isXlA0(const HardwareInfo &hwInfo) {
|
||||
auto revId = hwInfo.platform.usRevId & pvcSteppingBits;
|
||||
|
||||
@@ -12,4 +12,5 @@
|
||||
namespace NEO {
|
||||
inline const std::vector<unsigned short> pvcXlDeviceIds{0x0BD0};
|
||||
inline const std::vector<unsigned short> pvcXtDeviceIds{0x0BD5, 0x0BD6, 0x0BD7, 0x0BD8, 0x0BD9, 0x0BDA, 0x0BDB, 0x0B69, 0x0B6E};
|
||||
inline const std::vector<unsigned short> pvcXtVgDeviceIds{0x0BD4};
|
||||
} // namespace NEO
|
||||
|
||||
@@ -18,7 +18,11 @@ bool ProductHelperHw<gfxProduct>::isMaxThreadsForWorkgroupWARequired(const Hardw
|
||||
|
||||
template <>
|
||||
uint32_t ProductHelperHw<gfxProduct>::getHwRevIdFromStepping(uint32_t stepping, const HardwareInfo &hwInfo) const {
|
||||
if (PVC::isXt(hwInfo)) {
|
||||
if (PVC::isXtVg(hwInfo)) {
|
||||
if (stepping == REVISION_C) {
|
||||
return 0x7;
|
||||
}
|
||||
} else if (PVC::isXt(hwInfo)) {
|
||||
switch (stepping) {
|
||||
case REVISION_A0:
|
||||
return 0x3;
|
||||
@@ -44,7 +48,13 @@ uint32_t ProductHelperHw<gfxProduct>::getHwRevIdFromStepping(uint32_t stepping,
|
||||
|
||||
template <>
|
||||
uint32_t ProductHelperHw<gfxProduct>::getSteppingFromHwRevId(const HardwareInfo &hwInfo) const {
|
||||
switch (hwInfo.platform.usRevId & PVC::pvcSteppingBits) {
|
||||
auto rev = hwInfo.platform.usRevId & PVC::pvcSteppingBits;
|
||||
|
||||
if (PVC::isXtVg(hwInfo) && rev != 7) {
|
||||
return CommonConstants::invalidStepping;
|
||||
}
|
||||
|
||||
switch (rev) {
|
||||
case 0x0:
|
||||
case 0x1:
|
||||
case 0x3:
|
||||
@@ -178,7 +188,7 @@ bool ProductHelperHw<gfxProduct>::isComputeDispatchAllWalkerEnableInCfeStateRequ
|
||||
|
||||
template <>
|
||||
bool ProductHelperHw<gfxProduct>::isIpSamplingSupported(const HardwareInfo &hwInfo) const {
|
||||
return PVC::isXt(hwInfo);
|
||||
return PVC::isXt(hwInfo) || PVC::isXtVg(hwInfo);
|
||||
}
|
||||
|
||||
template <>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2022 Intel Corporation
|
||||
* Copyright (C) 2022-2023 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -15,5 +15,6 @@ inline constexpr AOT::PRODUCT_CONFIG productConfigs[] = {
|
||||
AOT::PVC_XT_A0,
|
||||
AOT::PVC_XT_B0,
|
||||
AOT::PVC_XT_B1,
|
||||
AOT::PVC_XT_C0};
|
||||
AOT::PVC_XT_C0,
|
||||
AOT::PVC_XT_C0_VG};
|
||||
}
|
||||
|
||||
@@ -22,12 +22,18 @@ PVCTEST_F(CompilerProductHelperPvcTest, givenPvcConfigsWhenMatchConfigWithRevIdT
|
||||
auto &compilerProductHelper = rootDeviceEnvironment.getHelper<CompilerProductHelper>();
|
||||
|
||||
for (const auto &config : AOT_PVC::productConfigs) {
|
||||
if (config == AOT::PVC_XT_C0_VG) {
|
||||
continue;
|
||||
}
|
||||
|
||||
EXPECT_EQ(compilerProductHelper.matchRevisionIdWithProductConfig(config, 0x0), AOT::PVC_XL_A0);
|
||||
EXPECT_EQ(compilerProductHelper.matchRevisionIdWithProductConfig(config, 0x1), AOT::PVC_XL_A0P);
|
||||
EXPECT_EQ(compilerProductHelper.matchRevisionIdWithProductConfig(config, 0x3), AOT::PVC_XT_A0);
|
||||
EXPECT_EQ(compilerProductHelper.matchRevisionIdWithProductConfig(config, 0x26), AOT::PVC_XT_B1);
|
||||
EXPECT_EQ(compilerProductHelper.matchRevisionIdWithProductConfig(config, 0x2f), AOT::PVC_XT_C0);
|
||||
}
|
||||
|
||||
EXPECT_EQ(compilerProductHelper.matchRevisionIdWithProductConfig(AOT::PVC_XT_C0_VG, 0x2f), AOT::PVC_XT_C0_VG);
|
||||
}
|
||||
|
||||
PVCTEST_F(CompilerProductHelperPvcTest, givenPvcWhenFailBuildProgramWithStatefulAccessPreferenceThenFalseIsReturned) {
|
||||
|
||||
@@ -28,6 +28,7 @@ PVCTEST_F(PvcConfigHwInfoTests, givenPvcDeviceIdsAndRevisionsWhenCheckingConfigs
|
||||
hwInfo.platform.usDeviceID = deviceId;
|
||||
EXPECT_TRUE(PVC::isXl(hwInfo));
|
||||
EXPECT_FALSE(PVC::isXt(hwInfo));
|
||||
EXPECT_FALSE(PVC::isXtVg(hwInfo));
|
||||
|
||||
hwInfo.platform.usRevId = 0x0;
|
||||
EXPECT_TRUE(PVC::isXlA0(hwInfo));
|
||||
@@ -46,6 +47,26 @@ PVCTEST_F(PvcConfigHwInfoTests, givenPvcDeviceIdsAndRevisionsWhenCheckingConfigs
|
||||
hwInfo.platform.usDeviceID = deviceId;
|
||||
EXPECT_FALSE(PVC::isXl(hwInfo));
|
||||
EXPECT_TRUE(PVC::isXt(hwInfo));
|
||||
EXPECT_FALSE(PVC::isXtVg(hwInfo));
|
||||
|
||||
hwInfo.platform.usRevId = 0x0;
|
||||
EXPECT_TRUE(PVC::isAtMostXtA0(hwInfo));
|
||||
|
||||
hwInfo.platform.usRevId = 0x1;
|
||||
EXPECT_TRUE(PVC::isAtMostXtA0(hwInfo));
|
||||
|
||||
hwInfo.platform.usRevId = 0x3;
|
||||
EXPECT_TRUE(PVC::isAtMostXtA0(hwInfo));
|
||||
|
||||
hwInfo.platform.usRevId = 0x5;
|
||||
EXPECT_FALSE(PVC::isAtMostXtA0(hwInfo));
|
||||
}
|
||||
|
||||
for (auto &deviceId : pvcXtVgDeviceIds) {
|
||||
hwInfo.platform.usDeviceID = deviceId;
|
||||
EXPECT_FALSE(PVC::isXl(hwInfo));
|
||||
EXPECT_FALSE(PVC::isXt(hwInfo));
|
||||
EXPECT_TRUE(PVC::isXtVg(hwInfo));
|
||||
|
||||
hwInfo.platform.usRevId = 0x0;
|
||||
EXPECT_TRUE(PVC::isAtMostXtA0(hwInfo));
|
||||
|
||||
@@ -81,6 +81,14 @@ PVCTEST_F(ProductConfigTests, givenPvcXtDeviceIdWhenDifferentRevisionIsPassedThe
|
||||
productConfig = compilerProductHelper->getHwIpVersion(hwInfo);
|
||||
EXPECT_EQ(productConfig, AOT::PVC_XT_C0);
|
||||
}
|
||||
|
||||
for (const auto &deviceId : pvcXtVgDeviceIds) {
|
||||
hwInfo.platform.usDeviceID = deviceId;
|
||||
|
||||
hwInfo.platform.usRevId = 0x17;
|
||||
productConfig = compilerProductHelper->getHwIpVersion(hwInfo);
|
||||
EXPECT_EQ(productConfig, AOT::PVC_XT_C0_VG);
|
||||
}
|
||||
}
|
||||
|
||||
PVCTEST_F(ProductConfigTests, givenDefaultDeviceAndRevisionIdWhenGetProductConfigThenPvcXtC0ConfigIsReturned) {
|
||||
|
||||
@@ -80,6 +80,11 @@ PVCTEST_F(PvcProductHelper, givenPvcHwInfoWhenIsIpSamplingSupportedThenCorrectRe
|
||||
hwInfo.platform.usDeviceID = deviceId;
|
||||
EXPECT_TRUE(productHelper->isIpSamplingSupported(hwInfo));
|
||||
}
|
||||
|
||||
for (const auto &deviceId : pvcXtVgDeviceIds) {
|
||||
hwInfo.platform.usDeviceID = deviceId;
|
||||
EXPECT_TRUE(productHelper->isIpSamplingSupported(hwInfo));
|
||||
}
|
||||
}
|
||||
|
||||
PVCTEST_F(PvcProductHelper, givenProductHelperWhenGettingEvictIfNecessaryFlagSupportedThenExpectTrue) {
|
||||
@@ -221,13 +226,19 @@ PVCTEST_F(PvcProductHelper, givenDeviceIdThenProperMaxThreadsForWorkgroupIsRetur
|
||||
uint32_t numThreadsPerEU = hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount;
|
||||
EXPECT_EQ(64u * numThreadsPerEU, productHelper->getMaxThreadsForWorkgroupInDSSOrSS(hwInfo, 64u, 64u));
|
||||
}
|
||||
|
||||
for (const auto &deviceId : pvcXtVgDeviceIds) {
|
||||
hwInfo.platform.usDeviceID = deviceId;
|
||||
uint32_t numThreadsPerEU = hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount;
|
||||
EXPECT_EQ(64u * numThreadsPerEU, productHelper->getMaxThreadsForWorkgroupInDSSOrSS(hwInfo, 64u, 64u));
|
||||
}
|
||||
}
|
||||
|
||||
PVCTEST_F(PvcProductHelper, givenVariousValuesWhenConvertingHwRevIdAndSteppingThenConversionIsCorrect) {
|
||||
auto hwInfo = *defaultHwInfo;
|
||||
|
||||
for (uint32_t testValue = 0; testValue < 0xFF; testValue++) {
|
||||
for (const auto *pvc : {&pvcXlDeviceIds, &pvcXtDeviceIds}) {
|
||||
for (const auto *pvc : {&pvcXlDeviceIds, &pvcXtDeviceIds, &pvcXtVgDeviceIds}) {
|
||||
for (const auto &deviceId : *pvc) {
|
||||
hwInfo.platform.usDeviceID = deviceId;
|
||||
auto hwRevIdFromStepping = productHelper->getHwRevIdFromStepping(testValue, hwInfo);
|
||||
@@ -241,7 +252,7 @@ PVCTEST_F(PvcProductHelper, givenVariousValuesWhenConvertingHwRevIdAndSteppingTh
|
||||
auto steppingFromHwRevId = productHelper->getSteppingFromHwRevId(hwInfo);
|
||||
if (steppingFromHwRevId != CommonConstants::invalidStepping) {
|
||||
bool anyMatchAfterConversionFromStepping = false;
|
||||
for (const auto *pvc : {&pvcXlDeviceIds, &pvcXtDeviceIds}) {
|
||||
for (const auto *pvc : {&pvcXlDeviceIds, &pvcXtDeviceIds, &pvcXtVgDeviceIds}) {
|
||||
for (const auto &deviceId : *pvc) {
|
||||
hwInfo.platform.usDeviceID = deviceId;
|
||||
auto hwRevId = productHelper->getHwRevIdFromStepping(steppingFromHwRevId, hwInfo);
|
||||
@@ -270,6 +281,11 @@ PVCTEST_F(PvcProductHelper, givenPvcProductHelperWhenIsIpSamplingSupportedThenCo
|
||||
hwInfo.platform.usDeviceID = deviceId;
|
||||
EXPECT_TRUE(productHelper->isIpSamplingSupported(hwInfo));
|
||||
}
|
||||
|
||||
for (const auto &deviceId : pvcXtVgDeviceIds) {
|
||||
hwInfo.platform.usDeviceID = deviceId;
|
||||
EXPECT_TRUE(productHelper->isIpSamplingSupported(hwInfo));
|
||||
}
|
||||
}
|
||||
|
||||
PVCTEST_F(PvcProductHelper, givenPvcProductHelperAndKernelBinaryFormatsWhenCheckingIsDetectIndirectAccessInKernelSupportedThenCorrectValueIsReturned) {
|
||||
|
||||
2
third_party/aot_config_headers/platforms.h
vendored
2
third_party/aot_config_headers/platforms.h
vendored
@@ -48,6 +48,7 @@ enum PRODUCT_CONFIG : uint32_t {
|
||||
PVC_XT_B0 = 0x030f0005,
|
||||
PVC_XT_B1 = 0x030f0006,
|
||||
PVC_XT_C0 = 0x030f0007,
|
||||
PVC_XT_C0_VG = 0x030f4007,
|
||||
MTL_M_A0 = 0x03118000,
|
||||
MTL_M_B0 = 0x03118004,
|
||||
MTL_P_A0 = 0x0311c000,
|
||||
@@ -189,6 +190,7 @@ inline const std::map<std::string, AOT::PRODUCT_CONFIG> deviceAcronyms = {
|
||||
#ifdef SUPPORT_PVC
|
||||
{"pvc-sdv", PVC_XL_A0P},
|
||||
{"pvc", PVC_XT_C0},
|
||||
{"pvc-xt-c0-vg", PVC_XT_C0_VG},
|
||||
#endif
|
||||
#ifdef SUPPORT_MTL
|
||||
{"mtl-s", MTL_M_B0},
|
||||
|
||||
Reference in New Issue
Block a user