mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Revert "Set only base values in GT_SYSTEM_INFO for AOT"
This reverts commit b1f622d700
.
Signed-off-by: Daria Hinz <daria.hinz@intel.com>
This commit is contained in:

committed by
Compute-Runtime-Automation

parent
206e485dfc
commit
5ba56690f5
@ -175,7 +175,7 @@ void MulticontextAubFixture::overridePlatformConfigForAllEnginesSupport(Hardware
|
||||
#ifdef SUPPORT_XE_HP_SDV
|
||||
if (localHwInfo.platform.eProductFamily == IGFX_XE_HP_SDV) {
|
||||
setupCalled = true;
|
||||
XE_HP_SDV_CONFIG::setupHardwareInfo(&localHwInfo, true);
|
||||
XE_HP_SDV_CONFIG::setupHardwareInfoMultiTile(&localHwInfo, true, true);
|
||||
|
||||
// Mock values
|
||||
localHwInfo.gtSystemInfo.SliceCount = 8;
|
||||
@ -195,7 +195,7 @@ void MulticontextAubFixture::overridePlatformConfigForAllEnginesSupport(Hardware
|
||||
ASSERT_TRUE(numberOfEnabledTiles == 1);
|
||||
setupCalled = true;
|
||||
|
||||
DG2_CONFIG::setupHardwareInfo(&localHwInfo, true);
|
||||
DG2_CONFIG::setupHardwareInfoMultiTile(&localHwInfo, true, false);
|
||||
|
||||
// Mock values
|
||||
localHwInfo.gtSystemInfo.SliceCount = 8;
|
||||
@ -214,7 +214,7 @@ void MulticontextAubFixture::overridePlatformConfigForAllEnginesSupport(Hardware
|
||||
if (localHwInfo.platform.eProductFamily == IGFX_PVC) {
|
||||
setupCalled = true;
|
||||
|
||||
PVC_CONFIG::setupHardwareInfo(&localHwInfo, true);
|
||||
PVC_CONFIG::setupHardwareInfoMultiTile(&localHwInfo, true, true);
|
||||
|
||||
// Mock values
|
||||
localHwInfo.gtSystemInfo.SliceCount = 8;
|
||||
|
@ -520,8 +520,7 @@ TEST(MultiCommandWhiteboxTest, GivenInvalidArgsWhenInitializingThenErrorIsReturn
|
||||
EXPECT_NE(std::string::npos, errorPosition);
|
||||
}
|
||||
|
||||
using MockOfflineCompilerTests = ::testing::Test;
|
||||
TEST_F(MockOfflineCompilerTests, givenProductConfigValueWhenInitHwInfoThenBaseHardwareInfoValuesAreSet) {
|
||||
TEST(MockOfflineCompilerTests, givenProductConfigValueWhenInitHwInfoThenResetGtSystemInfo) {
|
||||
MockOfflineCompiler mockOfflineCompiler;
|
||||
auto allEnabledDeviceConfigs = mockOfflineCompiler.argHelper->getAllSupportedDeviceConfigs();
|
||||
if (allEnabledDeviceConfigs.empty()) {
|
||||
@ -540,30 +539,11 @@ TEST_F(MockOfflineCompilerTests, givenProductConfigValueWhenInitHwInfoThenBaseHa
|
||||
EXPECT_FALSE(mockOfflineCompiler.deviceName.empty());
|
||||
|
||||
mockOfflineCompiler.initHardwareInfo(mockOfflineCompiler.deviceName);
|
||||
GT_SYSTEM_INFO expectedGtSystemInfo = {0};
|
||||
|
||||
EXPECT_EQ(mockOfflineCompiler.hwInfo.platform.usRevId, expectedRevId);
|
||||
EXPECT_EQ(mockOfflineCompiler.hwInfo.platform.eProductFamily, productFamily);
|
||||
EXPECT_NE(mockOfflineCompiler.hwInfo.gtSystemInfo.MaxEuPerSubSlice, 0u);
|
||||
EXPECT_NE(mockOfflineCompiler.hwInfo.gtSystemInfo.MaxSlicesSupported, 0u);
|
||||
EXPECT_NE(mockOfflineCompiler.hwInfo.gtSystemInfo.MaxSubSlicesSupported, 0u);
|
||||
}
|
||||
|
||||
HWTEST2_F(MockOfflineCompilerTests, givenProductConfigValueWhenInitHwInfoThenMaxDualSubSlicesSupportedIsSet, IsAtLeastGen12lp) {
|
||||
MockOfflineCompiler mockOfflineCompiler;
|
||||
auto allEnabledDeviceConfigs = mockOfflineCompiler.argHelper->getAllSupportedDeviceConfigs();
|
||||
if (allEnabledDeviceConfigs.empty()) {
|
||||
GTEST_SKIP();
|
||||
}
|
||||
|
||||
for (auto &deviceMapConfig : allEnabledDeviceConfigs) {
|
||||
if (productFamily == deviceMapConfig.hwInfo->platform.eProductFamily) {
|
||||
mockOfflineCompiler.deviceName = ProductConfigHelper::parseMajorMinorRevisionValue(deviceMapConfig.config);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
mockOfflineCompiler.initHardwareInfo(mockOfflineCompiler.deviceName);
|
||||
EXPECT_NE(mockOfflineCompiler.hwInfo.gtSystemInfo.MaxDualSubSlicesSupported, 0u);
|
||||
EXPECT_EQ(memcmp(&mockOfflineCompiler.hwInfo.gtSystemInfo, &expectedGtSystemInfo, sizeof(GT_SYSTEM_INFO)), 0);
|
||||
}
|
||||
|
||||
TEST_F(OfflineCompilerTests, GivenHelpOptionOnQueryThenSuccessIsReturned) {
|
||||
@ -2991,6 +2971,17 @@ TEST(OclocArgHelperTest, GivenDifferentRevisionIdsInDeviceMappingsWhenComparingT
|
||||
EXPECT_FALSE(lhs == rhs);
|
||||
}
|
||||
|
||||
TEST(OclocArgHelperTest, GivenDifferentSetupFeatureAndWorkaroundTableFunctionsInDeviceMappingsWhenComparingThemThenFalseIsReturned) {
|
||||
DeviceMapping lhs{};
|
||||
DeviceMapping rhs{};
|
||||
ASSERT_TRUE(lhs == rhs);
|
||||
|
||||
// Different lambdas are obligated to have different addresses.
|
||||
lhs.setupFeatureAndWorkaroundTable = [](NEO::HardwareInfo *hwInfo) {};
|
||||
rhs.setupFeatureAndWorkaroundTable = [](NEO::HardwareInfo *hwInfo) {};
|
||||
EXPECT_FALSE(lhs == rhs);
|
||||
}
|
||||
|
||||
TEST(OclocArgHelperTest, GivenDifferentHwInfosInDeviceMappingsWhenComparingThemThenFalseIsReturned) {
|
||||
DeviceMapping lhs{};
|
||||
DeviceMapping rhs{};
|
||||
|
@ -63,9 +63,9 @@ OclocArgHelper::OclocArgHelper(const uint32_t numSources, const uint8_t **dataSo
|
||||
#undef NAMEDDEVICE
|
||||
{0u, std::string("")}}),
|
||||
deviceMap({
|
||||
#define DEVICE_CONFIG_IDS_AND_REVISION(product, productConfig, deviceIds, revision_id) {product, &NEO::productConfig::hwInfo, &NEO::deviceIds, revision_id},
|
||||
#define DEVICE_CONFIG_IDS(product, productConfig, deviceIds) {product, &NEO::productConfig::hwInfo, &NEO::deviceIds, NEO::productConfig::hwInfo.platform.usRevId},
|
||||
#define DEVICE_CONFIG(product, productConfig) {product, &NEO::productConfig::hwInfo, nullptr, NEO::productConfig::hwInfo.platform.usRevId},
|
||||
#define DEVICE_CONFIG_IDS_AND_REVISION(product, productConfig, deviceIds, revision_id) {product, &NEO::productConfig::hwInfo, &NEO::deviceIds, NEO::productConfig::setupFeatureAndWorkaroundTable, revision_id},
|
||||
#define DEVICE_CONFIG_IDS(product, productConfig, deviceIds) {product, &NEO::productConfig::hwInfo, &NEO::deviceIds, NEO::productConfig::setupFeatureAndWorkaroundTable, NEO::productConfig::hwInfo.platform.usRevId},
|
||||
#define DEVICE_CONFIG(product, productConfig) {product, &NEO::productConfig::hwInfo, nullptr, NEO::productConfig::setupFeatureAndWorkaroundTable, NEO::productConfig::hwInfo.platform.usRevId},
|
||||
#include "product_config.inl"
|
||||
#undef DEVICE_CONFIG
|
||||
#undef DEVICE_CONFIG_IDS
|
||||
@ -171,13 +171,14 @@ std::unique_ptr<char[]> OclocArgHelper::loadDataFromFile(const std::string &file
|
||||
|
||||
void OclocArgHelper::setDeviceInfoForFatbinaryTarget(const DeviceMapping &device) {
|
||||
deviceForFatbinary.hwInfo = device.hwInfo;
|
||||
deviceForFatbinary.setupFeatureAndWorkaroundTable = device.setupFeatureAndWorkaroundTable;
|
||||
deviceForFatbinary.revId = device.revId;
|
||||
deviceForFatbinary.deviceIds = device.deviceIds;
|
||||
}
|
||||
|
||||
void OclocArgHelper::setHwInfoForFatbinaryTarget(NEO::HardwareInfo &hwInfo) {
|
||||
hwInfo = *deviceForFatbinary.hwInfo;
|
||||
NEO::hardwareInfoBaseSetup[hwInfo.platform.eProductFamily](&hwInfo, true);
|
||||
deviceForFatbinary.setupFeatureAndWorkaroundTable(&hwInfo);
|
||||
hwInfo.platform.usRevId = deviceForFatbinary.revId;
|
||||
if (deviceForFatbinary.deviceIds) {
|
||||
hwInfo.platform.usDeviceID = deviceForFatbinary.deviceIds->front();
|
||||
@ -192,7 +193,7 @@ bool OclocArgHelper::getHwInfoForProductConfig(uint32_t config, NEO::HardwareInf
|
||||
for (auto &deviceConfig : deviceMap) {
|
||||
if (deviceConfig.config == config) {
|
||||
hwInfo = *deviceConfig.hwInfo;
|
||||
NEO::hardwareInfoBaseSetup[hwInfo.platform.eProductFamily](&hwInfo, true);
|
||||
deviceConfig.setupFeatureAndWorkaroundTable(&hwInfo);
|
||||
hwInfo.platform.usRevId = deviceConfig.revId;
|
||||
if (deviceConfig.deviceIds) {
|
||||
hwInfo.platform.usDeviceID = deviceConfig.deviceIds->front();
|
||||
|
@ -51,10 +51,11 @@ struct DeviceMapping {
|
||||
PRODUCT_CONFIG config;
|
||||
const NEO::HardwareInfo *hwInfo;
|
||||
const std::vector<unsigned short> *deviceIds;
|
||||
void (*setupFeatureAndWorkaroundTable)(NEO::HardwareInfo *hwInfo);
|
||||
unsigned int revId;
|
||||
|
||||
bool operator==(const DeviceMapping &rhs) {
|
||||
return config == rhs.config && hwInfo == rhs.hwInfo && revId == rhs.revId;
|
||||
return config == rhs.config && hwInfo == rhs.hwInfo && setupFeatureAndWorkaroundTable == rhs.setupFeatureAndWorkaroundTable && revId == rhs.revId;
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -389,7 +389,7 @@ int OfflineCompiler::initHardwareInfo(std::string deviceName) {
|
||||
|
||||
auto hwInfoConfig = defaultHardwareInfoConfigTable[hwInfo.platform.eProductFamily];
|
||||
setHwInfoValuesFromConfig(hwInfoConfig, hwInfo);
|
||||
hardwareInfoBaseSetup[hwInfo.platform.eProductFamily](&hwInfo, true);
|
||||
hardwareInfoSetup[hwInfo.platform.eProductFamily](&hwInfo, true, hwInfoConfig);
|
||||
setFamilyType();
|
||||
retVal = SUCCESS;
|
||||
break;
|
||||
|
@ -23,7 +23,6 @@ struct EHL : public ICLFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
|
||||
class EHL_HW_CONFIG : public EHL {
|
||||
|
@ -23,7 +23,6 @@ struct ICLLP : public ICLFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
|
||||
class ICLLP_1x8x8 : public ICLLP {
|
||||
|
@ -23,7 +23,6 @@ struct LKF : public ICLFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
class LKF_1x8x8 : public LKF {
|
||||
public:
|
||||
|
@ -124,9 +124,21 @@ void EHL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waReportPerfCountUseGlobalContextID = true;
|
||||
};
|
||||
|
||||
void EHL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
const HardwareInfo EHL_HW_CONFIG::hwInfo = {
|
||||
&EHL::platform,
|
||||
&EHL::featureTable,
|
||||
&EHL::workaroundTable,
|
||||
&EHL_HW_CONFIG::gtSystemInfo,
|
||||
EHL::capabilityTable,
|
||||
};
|
||||
GT_SYSTEM_INFO EHL_HW_CONFIG::gtSystemInfo = {0};
|
||||
void EHL_HW_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * EHL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 1280;
|
||||
gtSysInfo->L3BankCount = 4;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 0;
|
||||
gtSysInfo->TotalHsThreads = 0;
|
||||
gtSysInfo->TotalDsThreads = 0;
|
||||
@ -138,29 +150,9 @@ void EHL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW
|
||||
gtSysInfo->MaxSubSlicesSupported = EHL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo EHL_HW_CONFIG::hwInfo = {
|
||||
&EHL::platform,
|
||||
&EHL::featureTable,
|
||||
&EHL::workaroundTable,
|
||||
&EHL_HW_CONFIG::gtSystemInfo,
|
||||
EHL::capabilityTable,
|
||||
};
|
||||
|
||||
GT_SYSTEM_INFO EHL_HW_CONFIG::gtSystemInfo = {0};
|
||||
void EHL_HW_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
EHL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 1280;
|
||||
gtSysInfo->L3BankCount = 4;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
};
|
||||
|
||||
const HardwareInfo EHL::hwInfo = EHL_HW_CONFIG::hwInfo;
|
||||
|
@ -125,26 +125,6 @@ void ICLLP::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waReportPerfCountUseGlobalContextID = true;
|
||||
};
|
||||
|
||||
void ICLLP::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * ICLLP::threadsPerEu;
|
||||
gtSysInfo->TotalHsThreads = 224;
|
||||
gtSysInfo->TotalGsThreads = 224;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 128;
|
||||
gtSysInfo->CsrSizeInMb = 5;
|
||||
gtSysInfo->MaxEuPerSubSlice = ICLLP::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = ICLLP::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = ICLLP::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo ICLLP_1x8x8::hwInfo = {
|
||||
&ICLLP::platform,
|
||||
&ICLLP::featureTable,
|
||||
@ -155,16 +135,26 @@ const HardwareInfo ICLLP_1x8x8::hwInfo = {
|
||||
|
||||
GT_SYSTEM_INFO ICLLP_1x8x8::gtSystemInfo = {0};
|
||||
void ICLLP_1x8x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
ICLLP::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * ICLLP::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 3072;
|
||||
gtSysInfo->L3BankCount = 8;
|
||||
gtSysInfo->MaxFillRate = 16;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 5;
|
||||
gtSysInfo->MaxEuPerSubSlice = ICLLP::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = ICLLP::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = ICLLP::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo ICLLP_1x4x8::hwInfo = {
|
||||
@ -177,15 +167,27 @@ const HardwareInfo ICLLP_1x4x8::hwInfo = {
|
||||
|
||||
GT_SYSTEM_INFO ICLLP_1x4x8::gtSystemInfo = {0};
|
||||
void ICLLP_1x4x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
ICLLP::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * ICLLP::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 2304;
|
||||
gtSysInfo->L3BankCount = 6;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 364;
|
||||
gtSysInfo->TotalHsThreads = 224;
|
||||
gtSysInfo->TotalDsThreads = 364;
|
||||
gtSysInfo->TotalGsThreads = 224;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 128;
|
||||
gtSysInfo->CsrSizeInMb = 5;
|
||||
gtSysInfo->MaxEuPerSubSlice = ICLLP::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = ICLLP::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = ICLLP::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo ICLLP_1x6x8::hwInfo = {
|
||||
&ICLLP::platform,
|
||||
&ICLLP::featureTable,
|
||||
@ -196,13 +198,26 @@ const HardwareInfo ICLLP_1x6x8::hwInfo = {
|
||||
|
||||
GT_SYSTEM_INFO ICLLP_1x6x8::gtSystemInfo = {0};
|
||||
void ICLLP_1x6x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
ICLLP::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * ICLLP::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 2304;
|
||||
gtSysInfo->L3BankCount = 6;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 364;
|
||||
gtSysInfo->TotalHsThreads = 224;
|
||||
gtSysInfo->TotalDsThreads = 364;
|
||||
gtSysInfo->TotalGsThreads = 224;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 128;
|
||||
gtSysInfo->CsrSizeInMb = 5;
|
||||
gtSysInfo->MaxEuPerSubSlice = ICLLP::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = ICLLP::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = ICLLP::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo ICLLP::hwInfo = ICLLP_1x8x8::hwInfo;
|
||||
|
@ -124,9 +124,21 @@ void LKF::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waReportPerfCountUseGlobalContextID = true;
|
||||
};
|
||||
|
||||
void LKF::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
const HardwareInfo LKF_1x8x8::hwInfo = {
|
||||
&LKF::platform,
|
||||
&LKF::featureTable,
|
||||
&LKF::workaroundTable,
|
||||
&LKF_1x8x8::gtSystemInfo,
|
||||
LKF::capabilityTable,
|
||||
};
|
||||
GT_SYSTEM_INFO LKF_1x8x8::gtSystemInfo = {0};
|
||||
void LKF_1x8x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * LKF::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 2560;
|
||||
gtSysInfo->L3BankCount = 8;
|
||||
gtSysInfo->MaxFillRate = 16;
|
||||
gtSysInfo->TotalVsThreads = 448;
|
||||
gtSysInfo->TotalHsThreads = 448;
|
||||
gtSysInfo->TotalDsThreads = 448;
|
||||
@ -138,29 +150,9 @@ void LKF::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW
|
||||
gtSysInfo->MaxSubSlicesSupported = LKF::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo LKF_1x8x8::hwInfo = {
|
||||
&LKF::platform,
|
||||
&LKF::featureTable,
|
||||
&LKF::workaroundTable,
|
||||
&LKF_1x8x8::gtSystemInfo,
|
||||
LKF::capabilityTable,
|
||||
};
|
||||
GT_SYSTEM_INFO LKF_1x8x8::gtSystemInfo = {0};
|
||||
void LKF_1x8x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
LKF::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * LKF::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 2560;
|
||||
gtSysInfo->L3BankCount = 8;
|
||||
gtSysInfo->MaxFillRate = 16;
|
||||
};
|
||||
|
||||
const HardwareInfo LKF::hwInfo = LKF_1x8x8::hwInfo;
|
||||
|
@ -23,7 +23,6 @@ struct ADLP : public TGLLPFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
|
||||
class ADLP_CONFIG : public ADLP {
|
||||
|
@ -23,7 +23,6 @@ struct ADLS : public TGLLPFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
class ADLS_HW_CONFIG : public ADLS {
|
||||
public:
|
||||
|
@ -22,7 +22,6 @@ struct DG1 : public TGLLPFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
class DG1_CONFIG : public DG1 {
|
||||
public:
|
||||
|
@ -20,7 +20,6 @@ struct RKL : public TGLLPFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
class RKL_HW_CONFIG : public RKL {
|
||||
public:
|
||||
|
@ -23,7 +23,6 @@ struct TGLLP : public TGLLPFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
|
||||
class TGLLP_1x6x16 : public TGLLP {
|
||||
|
@ -120,24 +120,6 @@ void ADLP::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waEnablePreemptionGranularityControlByUMD = true;
|
||||
workaroundTable->flags.waUntypedBufferCompression = true;
|
||||
};
|
||||
|
||||
void ADLP::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * ADLP::threadsPerEu;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = ADLP::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = ADLP::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = ADLP::maxSubslicesSupported;
|
||||
gtSysInfo->MaxDualSubSlicesSupported = ADLP::maxDualSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo ADLP_CONFIG::hwInfo = {
|
||||
&ADLP::platform,
|
||||
&ADLP::featureTable,
|
||||
@ -148,18 +130,28 @@ const HardwareInfo ADLP_CONFIG::hwInfo = {
|
||||
|
||||
GT_SYSTEM_INFO ADLP_CONFIG::gtSystemInfo = {0};
|
||||
void ADLP_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
// non-zero values for unit tests
|
||||
if (gtSysInfo->SliceCount == 0) {
|
||||
gtSysInfo->SliceCount = 2;
|
||||
gtSysInfo->SubSliceCount = 8;
|
||||
gtSysInfo->EUCount = 40;
|
||||
gtSysInfo->MaxEuPerSubSlice = ADLP::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = ADLP::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = ADLP::maxSubslicesSupported;
|
||||
|
||||
gtSysInfo->L3BankCount = 1;
|
||||
|
||||
gtSysInfo->CCSInfo.IsValid = true;
|
||||
gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1;
|
||||
}
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
#include "hw_info_setup_adlp.inl"
|
||||
} // namespace NEO
|
||||
|
@ -121,23 +121,6 @@ void ADLS::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waUntypedBufferCompression = true;
|
||||
};
|
||||
|
||||
void ADLS::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * ADLS::threadsPerEu;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = ADLS::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = ADLS::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = ADLS::maxSubslicesSupported;
|
||||
gtSysInfo->MaxDualSubSlicesSupported = ADLS::maxDualSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo ADLS_HW_CONFIG::hwInfo = {
|
||||
&ADLS::platform,
|
||||
&ADLS::featureTable,
|
||||
@ -148,9 +131,8 @@ const HardwareInfo ADLS_HW_CONFIG::hwInfo = {
|
||||
|
||||
GT_SYSTEM_INFO ADLS_HW_CONFIG::gtSystemInfo = {0};
|
||||
void ADLS_HW_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * ADLS::threadsPerEu;
|
||||
gtSysInfo->DualSubSliceCount = gtSysInfo->SubSliceCount;
|
||||
gtSysInfo->L3CacheSizeInKb = 1920;
|
||||
gtSysInfo->L3BankCount = 4;
|
||||
@ -159,12 +141,22 @@ void ADLS_HW_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTa
|
||||
gtSysInfo->TotalHsThreads = 0;
|
||||
gtSysInfo->TotalDsThreads = 0;
|
||||
gtSysInfo->TotalGsThreads = 0;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = ADLS::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = ADLS::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = 1;
|
||||
gtSysInfo->MaxDualSubSlicesSupported = 2;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
gtSysInfo->CCSInfo.IsValid = true;
|
||||
gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1;
|
||||
gtSysInfo->CCSInfo.Instances.CCSEnableMask = 0b1;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo ADLS::hwInfo = ADLS_HW_CONFIG::hwInfo;
|
||||
|
@ -130,9 +130,22 @@ void DG1::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waEnablePreemptionGranularityControlByUMD = true;
|
||||
};
|
||||
|
||||
void DG1::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
const HardwareInfo DG1_CONFIG::hwInfo = {
|
||||
&DG1::platform,
|
||||
&DG1::featureTable,
|
||||
&DG1::workaroundTable,
|
||||
&DG1_CONFIG::gtSystemInfo,
|
||||
DG1::capabilityTable,
|
||||
};
|
||||
GT_SYSTEM_INFO DG1_CONFIG::gtSystemInfo = {0};
|
||||
void DG1_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * DG1::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->DualSubSliceCount = 6;
|
||||
gtSysInfo->L3CacheSizeInKb = 16384;
|
||||
gtSysInfo->L3BankCount = 8;
|
||||
gtSysInfo->MaxFillRate = 16;
|
||||
gtSysInfo->TotalVsThreads = 672;
|
||||
gtSysInfo->TotalHsThreads = 672;
|
||||
gtSysInfo->TotalDsThreads = 672;
|
||||
@ -146,33 +159,13 @@ void DG1::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo DG1_CONFIG::hwInfo = {
|
||||
&DG1::platform,
|
||||
&DG1::featureTable,
|
||||
&DG1::workaroundTable,
|
||||
&DG1_CONFIG::gtSystemInfo,
|
||||
DG1::capabilityTable,
|
||||
};
|
||||
|
||||
GT_SYSTEM_INFO DG1_CONFIG::gtSystemInfo = {0};
|
||||
void DG1_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
DG1::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->DualSubSliceCount = 6;
|
||||
gtSysInfo->L3CacheSizeInKb = 16384;
|
||||
gtSysInfo->L3BankCount = 8;
|
||||
gtSysInfo->MaxFillRate = 16;
|
||||
|
||||
gtSysInfo->CCSInfo.IsValid = true;
|
||||
gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1;
|
||||
gtSysInfo->CCSInfo.Instances.CCSEnableMask = 0b1;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
DG1::setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo DG1::hwInfo = DG1_CONFIG::hwInfo;
|
||||
|
@ -120,9 +120,21 @@ void RKL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waEnablePreemptionGranularityControlByUMD = true;
|
||||
};
|
||||
|
||||
void RKL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
const HardwareInfo RKL_HW_CONFIG::hwInfo = {
|
||||
&RKL::platform,
|
||||
&RKL::featureTable,
|
||||
&RKL::workaroundTable,
|
||||
&RKL_HW_CONFIG::gtSystemInfo,
|
||||
RKL::capabilityTable,
|
||||
};
|
||||
GT_SYSTEM_INFO RKL_HW_CONFIG::gtSystemInfo = {0};
|
||||
void RKL_HW_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * RKL::threadsPerEu;
|
||||
gtSysInfo->DualSubSliceCount = gtSysInfo->SubSliceCount;
|
||||
gtSysInfo->L3CacheSizeInKb = 1920;
|
||||
gtSysInfo->L3BankCount = 4;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 0;
|
||||
gtSysInfo->TotalHsThreads = 0;
|
||||
gtSysInfo->TotalDsThreads = 0;
|
||||
@ -136,32 +148,13 @@ void RKL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo RKL_HW_CONFIG::hwInfo = {
|
||||
&RKL::platform,
|
||||
&RKL::featureTable,
|
||||
&RKL::workaroundTable,
|
||||
&RKL_HW_CONFIG::gtSystemInfo,
|
||||
RKL::capabilityTable,
|
||||
};
|
||||
|
||||
GT_SYSTEM_INFO RKL_HW_CONFIG::gtSystemInfo = {0};
|
||||
void RKL_HW_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
RKL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->DualSubSliceCount = gtSysInfo->SubSliceCount;
|
||||
gtSysInfo->L3CacheSizeInKb = 1920;
|
||||
gtSysInfo->L3BankCount = 4;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
|
||||
gtSysInfo->CCSInfo.IsValid = true;
|
||||
gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1;
|
||||
gtSysInfo->CCSInfo.Instances.CCSEnableMask = 0b1;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo RKL::hwInfo = RKL_HW_CONFIG::hwInfo;
|
||||
|
@ -125,23 +125,6 @@ void TGLLP::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waUntypedBufferCompression = true;
|
||||
};
|
||||
|
||||
void TGLLP::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * TGLLP::threadsPerEu;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = TGLLP::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = TGLLP::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = TGLLP::maxSubslicesSupported;
|
||||
gtSysInfo->MaxDualSubSlicesSupported = TGLLP::maxDualSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo TGLLP_1x6x16::hwInfo = {
|
||||
&TGLLP::platform,
|
||||
&TGLLP::featureTable,
|
||||
@ -152,9 +135,8 @@ const HardwareInfo TGLLP_1x6x16::hwInfo = {
|
||||
|
||||
GT_SYSTEM_INFO TGLLP_1x6x16::gtSystemInfo = {0};
|
||||
void TGLLP_1x6x16::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
TGLLP::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * TGLLP::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->DualSubSliceCount = 6;
|
||||
gtSysInfo->L3CacheSizeInKb = 3840;
|
||||
@ -164,10 +146,22 @@ void TGLLP_1x6x16::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTabl
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = TGLLP::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = TGLLP::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = TGLLP::maxSubslicesSupported;
|
||||
gtSysInfo->MaxDualSubSlicesSupported = TGLLP::maxDualSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
gtSysInfo->CCSInfo.IsValid = true;
|
||||
gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1;
|
||||
gtSysInfo->CCSInfo.Instances.CCSEnableMask = 0b1;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo TGLLP_1x2x16::hwInfo = {
|
||||
@ -180,9 +174,8 @@ const HardwareInfo TGLLP_1x2x16::hwInfo = {
|
||||
|
||||
GT_SYSTEM_INFO TGLLP_1x2x16::gtSystemInfo = {0};
|
||||
void TGLLP_1x2x16::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
TGLLP::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * TGLLP::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->DualSubSliceCount = 2;
|
||||
gtSysInfo->L3CacheSizeInKb = 1920;
|
||||
@ -192,10 +185,22 @@ void TGLLP_1x2x16::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTabl
|
||||
gtSysInfo->TotalHsThreads = 224;
|
||||
gtSysInfo->TotalDsThreads = 224;
|
||||
gtSysInfo->TotalGsThreads = 224;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = TGLLP::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = TGLLP::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = TGLLP::maxSubslicesSupported;
|
||||
gtSysInfo->MaxDualSubSlicesSupported = TGLLP::maxDualSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
gtSysInfo->CCSInfo.IsValid = true;
|
||||
gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1;
|
||||
gtSysInfo->CCSInfo.Instances.CCSEnableMask = 0b1;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo TGLLP::hwInfo = TGLLP_1x6x16::hwInfo;
|
||||
|
@ -25,7 +25,6 @@ struct BDW : public BDWFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
class BDW_1x2x6 : public BDW {
|
||||
public:
|
||||
|
@ -115,9 +115,22 @@ void BDW::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waSamplerCacheFlushBetweenRedescribedSurfaceReads = true;
|
||||
}
|
||||
|
||||
void BDW::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
const HardwareInfo BDW_1x2x6::hwInfo = {
|
||||
&BDW::platform,
|
||||
&BDW::featureTable,
|
||||
&BDW::workaroundTable,
|
||||
&BDW_1x2x6::gtSystemInfo,
|
||||
BDW::capabilityTable,
|
||||
};
|
||||
|
||||
GT_SYSTEM_INFO BDW_1x2x6::gtSystemInfo = {0};
|
||||
void BDW_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * BDW::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 2;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
@ -129,29 +142,9 @@ void BDW::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW
|
||||
gtSysInfo->MaxSubSlicesSupported = BDW::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo BDW_1x2x6::hwInfo = {
|
||||
&BDW::platform,
|
||||
&BDW::featureTable,
|
||||
&BDW::workaroundTable,
|
||||
&BDW_1x2x6::gtSystemInfo,
|
||||
BDW::capabilityTable,
|
||||
};
|
||||
|
||||
GT_SYSTEM_INFO BDW_1x2x6::gtSystemInfo = {0};
|
||||
void BDW_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
BDW::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 2;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
};
|
||||
|
||||
const HardwareInfo BDW_1x3x6::hwInfo = {
|
||||
@ -163,13 +156,26 @@ const HardwareInfo BDW_1x3x6::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO BDW_1x3x6::gtSystemInfo = {0};
|
||||
void BDW_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
BDW::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * BDW::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 768;
|
||||
gtSysInfo->L3BankCount = 4;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = BDW::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = BDW::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = BDW::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo BDW_1x3x8::hwInfo = {
|
||||
@ -181,13 +187,26 @@ const HardwareInfo BDW_1x3x8::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO BDW_1x3x8::gtSystemInfo = {0};
|
||||
void BDW_1x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
BDW::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * BDW::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 2;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = BDW::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = BDW::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = BDW::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo BDW_2x3x8::hwInfo = {
|
||||
@ -199,13 +218,26 @@ const HardwareInfo BDW_2x3x8::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO BDW_2x3x8::gtSystemInfo = {0};
|
||||
void BDW_2x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
BDW::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * BDW::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 2;
|
||||
gtSysInfo->L3CacheSizeInKb = 1536;
|
||||
gtSysInfo->L3BankCount = 8;
|
||||
gtSysInfo->MaxFillRate = 16;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = BDW::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = BDW::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = BDW::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo BDW::hwInfo = BDW_1x3x8::hwInfo;
|
||||
|
@ -24,7 +24,6 @@ struct BXT : public SKLFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
|
||||
class BXT_1x2x6 : public BXT {
|
||||
|
@ -24,7 +24,6 @@ struct CFL : public SKLFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
|
||||
class CFL_1x2x6 : public CFL {
|
||||
|
@ -24,7 +24,6 @@ struct GLK : public SKLFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
|
||||
class GLK_1x3x6 : public GLK {
|
||||
|
@ -24,7 +24,6 @@ struct KBL : public SKLFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
|
||||
class KBL_1x2x6 : public KBL {
|
||||
|
@ -24,7 +24,6 @@ struct SKL : public SKLFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
|
||||
class SKL_1x2x6 : public SKL {
|
||||
|
@ -132,9 +132,21 @@ void BXT::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waSamplerCacheFlushBetweenRedescribedSurfaceReads = true;
|
||||
}
|
||||
|
||||
void BXT::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
const HardwareInfo BXT_1x2x6::hwInfo = {
|
||||
&BXT::platform,
|
||||
&BXT::featureTable,
|
||||
&BXT::workaroundTable,
|
||||
&BXT_1x2x6::gtSystemInfo,
|
||||
BXT::capabilityTable,
|
||||
};
|
||||
GT_SYSTEM_INFO BXT_1x2x6::gtSystemInfo = {0};
|
||||
void BXT_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * BXT::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 1;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 112;
|
||||
gtSysInfo->TotalHsThreads = 112;
|
||||
gtSysInfo->TotalDsThreads = 112;
|
||||
@ -146,28 +158,9 @@ void BXT::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW
|
||||
gtSysInfo->MaxSubSlicesSupported = BXT::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo BXT_1x2x6::hwInfo = {
|
||||
&BXT::platform,
|
||||
&BXT::featureTable,
|
||||
&BXT::workaroundTable,
|
||||
&BXT_1x2x6::gtSystemInfo,
|
||||
BXT::capabilityTable,
|
||||
};
|
||||
GT_SYSTEM_INFO BXT_1x2x6::gtSystemInfo = {0};
|
||||
void BXT_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
BXT::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 1;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
};
|
||||
|
||||
const HardwareInfo BXT_1x3x6::hwInfo = {
|
||||
@ -179,13 +172,26 @@ const HardwareInfo BXT_1x3x6::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO BXT_1x3x6::gtSystemInfo = {0};
|
||||
void BXT_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
BXT::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * BXT::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 1;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 112;
|
||||
gtSysInfo->TotalHsThreads = 112;
|
||||
gtSysInfo->TotalDsThreads = 112;
|
||||
gtSysInfo->TotalGsThreads = 112;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = BXT::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = BXT::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = BXT::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo BXT::hwInfo = BXT_1x3x6::hwInfo;
|
||||
|
@ -120,9 +120,21 @@ void CFL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waSamplerCacheFlushBetweenRedescribedSurfaceReads = true;
|
||||
}
|
||||
|
||||
void CFL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
const HardwareInfo CFL_1x2x6::hwInfo = {
|
||||
&CFL::platform,
|
||||
&CFL::featureTable,
|
||||
&CFL::workaroundTable,
|
||||
&CFL_1x2x6::gtSystemInfo,
|
||||
CFL::capabilityTable,
|
||||
};
|
||||
GT_SYSTEM_INFO CFL_1x2x6::gtSystemInfo = {0};
|
||||
void CFL_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * CFL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 2;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
@ -134,28 +146,9 @@ void CFL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW
|
||||
gtSysInfo->MaxSubSlicesSupported = CFL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo CFL_1x2x6::hwInfo = {
|
||||
&CFL::platform,
|
||||
&CFL::featureTable,
|
||||
&CFL::workaroundTable,
|
||||
&CFL_1x2x6::gtSystemInfo,
|
||||
CFL::capabilityTable,
|
||||
};
|
||||
GT_SYSTEM_INFO CFL_1x2x6::gtSystemInfo = {0};
|
||||
void CFL_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
CFL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 2;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
};
|
||||
|
||||
const HardwareInfo CFL_1x3x6::hwInfo = {
|
||||
@ -165,16 +158,28 @@ const HardwareInfo CFL_1x3x6::hwInfo = {
|
||||
&CFL_1x3x6::gtSystemInfo,
|
||||
CFL::capabilityTable,
|
||||
};
|
||||
|
||||
GT_SYSTEM_INFO CFL_1x3x6::gtSystemInfo = {0};
|
||||
void CFL_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
CFL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * CFL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 768;
|
||||
gtSysInfo->L3BankCount = 4;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = CFL::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = CFL::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = CFL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo CFL_1x3x8::hwInfo = {
|
||||
@ -184,16 +189,28 @@ const HardwareInfo CFL_1x3x8::hwInfo = {
|
||||
&CFL_1x3x8::gtSystemInfo,
|
||||
CFL::capabilityTable,
|
||||
};
|
||||
|
||||
GT_SYSTEM_INFO CFL_1x3x8::gtSystemInfo = {0};
|
||||
void CFL_1x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
CFL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * CFL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 768;
|
||||
gtSysInfo->L3BankCount = 4;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = CFL::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = CFL::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = CFL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo CFL_2x3x8::hwInfo = {
|
||||
@ -205,13 +222,26 @@ const HardwareInfo CFL_2x3x8::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO CFL_2x3x8::gtSystemInfo = {0};
|
||||
void CFL_2x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
CFL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * CFL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 2;
|
||||
gtSysInfo->L3CacheSizeInKb = 1536;
|
||||
gtSysInfo->L3BankCount = 8;
|
||||
gtSysInfo->MaxFillRate = 16;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = CFL::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = CFL::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = CFL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo CFL_3x3x8::hwInfo = {
|
||||
@ -223,13 +253,26 @@ const HardwareInfo CFL_3x3x8::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO CFL_3x3x8::gtSystemInfo = {0};
|
||||
void CFL_3x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
CFL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * CFL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 3;
|
||||
gtSysInfo->L3CacheSizeInKb = 2304;
|
||||
gtSysInfo->L3BankCount = 12;
|
||||
gtSysInfo->MaxFillRate = 24;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = CFL::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = CFL::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = CFL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo CFL::hwInfo = CFL_1x3x6::hwInfo;
|
||||
|
@ -120,9 +120,22 @@ void GLK::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waSamplerCacheFlushBetweenRedescribedSurfaceReads = true;
|
||||
}
|
||||
|
||||
void GLK::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
const HardwareInfo GLK_1x3x6::hwInfo = {
|
||||
&GLK::platform,
|
||||
&GLK::featureTable,
|
||||
&GLK::workaroundTable,
|
||||
&GLK_1x3x6::gtSystemInfo,
|
||||
GLK::capabilityTable,
|
||||
};
|
||||
|
||||
GT_SYSTEM_INFO GLK_1x3x6::gtSystemInfo = {0};
|
||||
void GLK_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * GLK::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 2;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 112;
|
||||
gtSysInfo->TotalHsThreads = 112;
|
||||
gtSysInfo->TotalDsThreads = 112;
|
||||
@ -134,29 +147,9 @@ void GLK::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW
|
||||
gtSysInfo->MaxSubSlicesSupported = GLK::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo GLK_1x3x6::hwInfo = {
|
||||
&GLK::platform,
|
||||
&GLK::featureTable,
|
||||
&GLK::workaroundTable,
|
||||
&GLK_1x3x6::gtSystemInfo,
|
||||
GLK::capabilityTable,
|
||||
};
|
||||
|
||||
GT_SYSTEM_INFO GLK_1x3x6::gtSystemInfo = {0};
|
||||
void GLK_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GLK::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 2;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
};
|
||||
|
||||
const HardwareInfo GLK_1x2x6::hwInfo = {
|
||||
@ -166,16 +159,28 @@ const HardwareInfo GLK_1x2x6::hwInfo = {
|
||||
&GLK_1x2x6::gtSystemInfo,
|
||||
GLK::capabilityTable,
|
||||
};
|
||||
|
||||
GT_SYSTEM_INFO GLK_1x2x6::gtSystemInfo = {0};
|
||||
void GLK_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GLK::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * GLK::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 2;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 112;
|
||||
gtSysInfo->TotalHsThreads = 112;
|
||||
gtSysInfo->TotalDsThreads = 112;
|
||||
gtSysInfo->TotalGsThreads = 112;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = GLK::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = GLK::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = GLK::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo GLK::hwInfo = GLK_1x3x6::hwInfo;
|
||||
|
@ -129,9 +129,21 @@ void KBL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
}
|
||||
}
|
||||
|
||||
void KBL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
const HardwareInfo KBL_1x2x6::hwInfo = {
|
||||
&KBL::platform,
|
||||
&KBL::featureTable,
|
||||
&KBL::workaroundTable,
|
||||
&KBL_1x2x6::gtSystemInfo,
|
||||
KBL::capabilityTable,
|
||||
};
|
||||
GT_SYSTEM_INFO KBL_1x2x6::gtSystemInfo = {0};
|
||||
void KBL_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * KBL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 2;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
@ -143,28 +155,9 @@ void KBL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW
|
||||
gtSysInfo->MaxSubSlicesSupported = KBL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo KBL_1x2x6::hwInfo = {
|
||||
&KBL::platform,
|
||||
&KBL::featureTable,
|
||||
&KBL::workaroundTable,
|
||||
&KBL_1x2x6::gtSystemInfo,
|
||||
KBL::capabilityTable,
|
||||
};
|
||||
GT_SYSTEM_INFO KBL_1x2x6::gtSystemInfo = {0};
|
||||
void KBL_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
KBL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 2;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
};
|
||||
|
||||
const HardwareInfo KBL_1x3x6::hwInfo = {
|
||||
@ -177,13 +170,26 @@ const HardwareInfo KBL_1x3x6::hwInfo = {
|
||||
|
||||
GT_SYSTEM_INFO KBL_1x3x6::gtSystemInfo = {0};
|
||||
void KBL_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
KBL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * KBL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 768;
|
||||
gtSysInfo->L3BankCount = 4;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = KBL::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = KBL::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = KBL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo KBL_1x3x8::hwInfo = {
|
||||
@ -195,13 +201,26 @@ const HardwareInfo KBL_1x3x8::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO KBL_1x3x8::gtSystemInfo = {0};
|
||||
void KBL_1x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
KBL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * KBL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 768;
|
||||
gtSysInfo->L3BankCount = 4;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = KBL::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = KBL::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = KBL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo KBL_2x3x8::hwInfo = {
|
||||
@ -213,13 +232,26 @@ const HardwareInfo KBL_2x3x8::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO KBL_2x3x8::gtSystemInfo = {0};
|
||||
void KBL_2x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
KBL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * KBL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 2;
|
||||
gtSysInfo->L3CacheSizeInKb = 1536;
|
||||
gtSysInfo->L3BankCount = 8;
|
||||
gtSysInfo->MaxFillRate = 16;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = KBL::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = KBL::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = KBL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo KBL_3x3x8::hwInfo = {
|
||||
@ -231,13 +263,26 @@ const HardwareInfo KBL_3x3x8::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO KBL_3x3x8::gtSystemInfo = {0};
|
||||
void KBL_3x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
KBL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * KBL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 3;
|
||||
gtSysInfo->L3CacheSizeInKb = 2304;
|
||||
gtSysInfo->L3BankCount = 12;
|
||||
gtSysInfo->MaxFillRate = 23;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = KBL::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = KBL::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = KBL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo KBL::hwInfo = KBL_1x3x6::hwInfo;
|
||||
|
@ -141,10 +141,21 @@ void SKL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waCSRUncachable = true;
|
||||
}
|
||||
}
|
||||
|
||||
void SKL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
const HardwareInfo SKL_1x2x6::hwInfo = {
|
||||
&SKL::platform,
|
||||
&SKL::featureTable,
|
||||
&SKL::workaroundTable,
|
||||
&SKL_1x2x6::gtSystemInfo,
|
||||
SKL::capabilityTable,
|
||||
};
|
||||
GT_SYSTEM_INFO SKL_1x2x6::gtSystemInfo = {0};
|
||||
void SKL_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * SKL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 2;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
@ -156,28 +167,9 @@ void SKL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW
|
||||
gtSysInfo->MaxSubSlicesSupported = SKL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo SKL_1x2x6::hwInfo = {
|
||||
&SKL::platform,
|
||||
&SKL::featureTable,
|
||||
&SKL::workaroundTable,
|
||||
&SKL_1x2x6::gtSystemInfo,
|
||||
SKL::capabilityTable,
|
||||
};
|
||||
GT_SYSTEM_INFO SKL_1x2x6::gtSystemInfo = {0};
|
||||
void SKL_1x2x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 384;
|
||||
gtSysInfo->L3BankCount = 2;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
};
|
||||
|
||||
const HardwareInfo SKL_1x3x6::hwInfo = {
|
||||
@ -189,13 +181,26 @@ const HardwareInfo SKL_1x3x6::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO SKL_1x3x6::gtSystemInfo = {0};
|
||||
void SKL_1x3x6::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * SKL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 768;
|
||||
gtSysInfo->L3BankCount = 4;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = SKL::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = SKL::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = SKL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo SKL_1x3x8::hwInfo = {
|
||||
@ -207,13 +212,26 @@ const HardwareInfo SKL_1x3x8::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO SKL_1x3x8::gtSystemInfo = {0};
|
||||
void SKL_1x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * SKL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->L3CacheSizeInKb = 768;
|
||||
gtSysInfo->L3BankCount = 4;
|
||||
gtSysInfo->MaxFillRate = 8;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = SKL::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = SKL::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = SKL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo SKL_2x3x8::hwInfo = {
|
||||
@ -225,13 +243,26 @@ const HardwareInfo SKL_2x3x8::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO SKL_2x3x8::gtSystemInfo = {0};
|
||||
void SKL_2x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * SKL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 2;
|
||||
gtSysInfo->L3CacheSizeInKb = 1536;
|
||||
gtSysInfo->L3BankCount = 8;
|
||||
gtSysInfo->MaxFillRate = 16;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = SKL::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = SKL::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = SKL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo SKL_3x3x8::hwInfo = {
|
||||
@ -243,13 +274,26 @@ const HardwareInfo SKL_3x3x8::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO SKL_3x3x8::gtSystemInfo = {0};
|
||||
void SKL_3x3x8::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * SKL::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 3;
|
||||
gtSysInfo->L3CacheSizeInKb = 2304;
|
||||
gtSysInfo->L3BankCount = 12;
|
||||
gtSysInfo->MaxFillRate = 24;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = SKL::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = SKL::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = SKL::maxSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo SKL::hwInfo = SKL_1x3x8::hwInfo;
|
||||
|
@ -20,7 +20,6 @@ struct EnableGfxProductHw {
|
||||
defaultHardwareInfoConfigTable[gfxProduct] = GfxProduct::defaultHardwareInfoConfig;
|
||||
hardwareInfoTable[gfxProduct] = &GfxProduct::hwInfo;
|
||||
hardwareInfoSetup[gfxProduct] = GfxProduct::setupHardwareInfo;
|
||||
hardwareInfoBaseSetup[gfxProduct] = GfxProduct::setupHardwareInfoBase;
|
||||
}
|
||||
};
|
||||
} // namespace NEO
|
||||
|
@ -45,10 +45,6 @@ void (*hardwareInfoSetup[IGFX_MAX_PRODUCT])(HardwareInfo *, bool, uint64_t) = {
|
||||
0x0,
|
||||
};
|
||||
|
||||
void (*hardwareInfoBaseSetup[IGFX_MAX_PRODUCT])(HardwareInfo *, bool) = {
|
||||
0x0,
|
||||
};
|
||||
|
||||
bool getHwInfoForPlatformString(std::string &platform, const HardwareInfo *&hwInfoIn) {
|
||||
std::transform(platform.begin(), platform.end(), platform.begin(), ::tolower);
|
||||
|
||||
|
@ -165,7 +165,6 @@ extern const char *hardwarePrefix[IGFX_MAX_PRODUCT];
|
||||
extern uint64_t defaultHardwareInfoConfigTable[IGFX_MAX_PRODUCT];
|
||||
extern const HardwareInfo *hardwareInfoTable[IGFX_MAX_PRODUCT];
|
||||
extern void (*hardwareInfoSetup[IGFX_MAX_PRODUCT])(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
extern void (*hardwareInfoBaseSetup[IGFX_MAX_PRODUCT])(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
template <GFXCORE_FAMILY gfxFamily>
|
||||
struct EnableGfxFamilyHw {
|
||||
|
@ -22,12 +22,12 @@ struct XE_HP_SDV : public XeHpFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
};
|
||||
|
||||
class XE_HP_SDV_CONFIG : public XE_HP_SDV {
|
||||
public:
|
||||
static void setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
static void setupHardwareInfoMultiTile(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile);
|
||||
static const HardwareInfo hwInfo;
|
||||
|
||||
private:
|
||||
|
@ -129,27 +129,6 @@ void XE_HP_SDV::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waEnablePreemptionGranularityControlByUMD = true;
|
||||
};
|
||||
|
||||
void XE_HP_SDV::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * XE_HP_SDV::threadsPerEu;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = XE_HP_SDV::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = XE_HP_SDV::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = XE_HP_SDV::maxSubslicesSupported;
|
||||
gtSysInfo->MaxDualSubSlicesSupported = XE_HP_SDV::maxDualSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo XE_HP_SDV_CONFIG::hwInfo = {
|
||||
&XE_HP_SDV::platform,
|
||||
&XE_HP_SDV::featureTable,
|
||||
@ -159,19 +138,35 @@ const HardwareInfo XE_HP_SDV_CONFIG::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO XE_HP_SDV_CONFIG::gtSystemInfo = {0};
|
||||
void XE_HP_SDV_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
XE_HP_SDV_CONFIG::setupHardwareInfoMultiTile(hwInfo, setupFeatureTableAndWorkaroundTable, false);
|
||||
}
|
||||
|
||||
void XE_HP_SDV_CONFIG::setupHardwareInfoMultiTile(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
// non-zero values for unit tests
|
||||
if (gtSysInfo->SliceCount == 0) {
|
||||
gtSysInfo->SliceCount = 2;
|
||||
gtSysInfo->SubSliceCount = 8;
|
||||
gtSysInfo->EUCount = 40;
|
||||
gtSysInfo->MaxEuPerSubSlice = gtSysInfo->EUCount / gtSysInfo->SubSliceCount;
|
||||
gtSysInfo->MaxSlicesSupported = gtSysInfo->SliceCount;
|
||||
gtSysInfo->MaxSubSlicesSupported = gtSysInfo->SubSliceCount;
|
||||
|
||||
gtSysInfo->L3BankCount = 1;
|
||||
|
||||
gtSysInfo->CCSInfo.IsValid = true;
|
||||
gtSysInfo->CCSInfo.NumberOfCCSEnabled = 1;
|
||||
|
||||
hwInfo->featureTable.ftrBcsInfo = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
XE_HP_SDV::setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
#include "hw_info_setup_xehp.inl"
|
||||
} // namespace NEO
|
||||
|
@ -27,8 +27,7 @@ struct PVC : public XE_HPC_COREFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
static void setupHardwareInfoMultiTileBase(HardwareInfo *hwInfo, bool setupMultiTile);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile);
|
||||
static void adjustHardwareInfo(HardwareInfo *hwInfo);
|
||||
static bool isXlA0(const HardwareInfo &hwInfo);
|
||||
static bool isAtMostXtA0(const HardwareInfo &hwInfo);
|
||||
@ -49,6 +48,7 @@ struct PVC : public XE_HPC_COREFamily {
|
||||
class PVC_CONFIG : public PVC {
|
||||
public:
|
||||
static void setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
static void setupHardwareInfoMultiTile(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile);
|
||||
static const HardwareInfo hwInfo;
|
||||
|
||||
private:
|
||||
|
@ -141,7 +141,7 @@ void PVC::adjustHardwareInfo(HardwareInfo *hwInfo) {
|
||||
hwInfo->capabilityTable.sharedSystemMemCapabilities = (UNIFIED_SHARED_MEMORY_ACCESS | UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS | UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS);
|
||||
}
|
||||
|
||||
void PVC::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
void PVC::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * PVC::threadsPerEu;
|
||||
gtSysInfo->MaxFillRate = 128;
|
||||
@ -158,21 +158,14 @@ void PVC::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
PVC::adjustHardwareInfo(hwInfo);
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
void PVC::setupHardwareInfoMultiTileBase(HardwareInfo *hwInfo, bool setupMultiTile) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->MultiTileArchInfo.IsValid = setupMultiTile;
|
||||
gtSysInfo->MultiTileArchInfo.TileCount = 1;
|
||||
if (DebugManager.flags.CreateMultipleSubDevices.get() > 0) {
|
||||
gtSysInfo->MultiTileArchInfo.TileCount = DebugManager.flags.CreateMultipleSubDevices.get();
|
||||
}
|
||||
gtSysInfo->MultiTileArchInfo.TileMask = static_cast<uint8_t>(maxNBitValue(gtSysInfo->MultiTileArchInfo.TileCount));
|
||||
|
||||
PVC::adjustHardwareInfo(hwInfo);
|
||||
}
|
||||
|
||||
FeatureTable PVC::featureTable;
|
||||
@ -188,26 +181,41 @@ const HardwareInfo PVC_CONFIG::hwInfo = {
|
||||
|
||||
GT_SYSTEM_INFO PVC_CONFIG::gtSystemInfo = {0};
|
||||
void PVC_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
PVC::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
PVC_CONFIG::setupHardwareInfoMultiTile(hwInfo, setupFeatureTableAndWorkaroundTable, false);
|
||||
}
|
||||
void PVC_CONFIG::setupHardwareInfoMultiTile(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
// non-zero values for unit tests
|
||||
if (gtSysInfo->SliceCount == 0) {
|
||||
gtSysInfo->SliceCount = 2;
|
||||
gtSysInfo->SubSliceCount = 8;
|
||||
gtSysInfo->DualSubSliceCount = gtSysInfo->SubSliceCount;
|
||||
gtSysInfo->EUCount = 40;
|
||||
gtSysInfo->MaxEuPerSubSlice = gtSysInfo->EUCount / gtSysInfo->SubSliceCount;
|
||||
gtSysInfo->MaxSlicesSupported = gtSysInfo->SliceCount;
|
||||
gtSysInfo->MaxSubSlicesSupported = gtSysInfo->SubSliceCount;
|
||||
|
||||
gtSysInfo->L3BankCount = 1;
|
||||
|
||||
gtSysInfo->CCSInfo.IsValid = true;
|
||||
gtSysInfo->CCSInfo.NumberOfCCSEnabled = 2;
|
||||
gtSysInfo->CCSInfo.Instances.CCSEnableMask = 0b11;
|
||||
|
||||
hwInfo->featureTable.ftrBcsInfo = 1;
|
||||
|
||||
for (uint32_t slice = 0; slice < gtSysInfo->SliceCount; slice++) {
|
||||
gtSysInfo->SliceInfo[slice].Enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
PVC::setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
#include "hw_info_setup_pvc.inl"
|
||||
} // namespace NEO
|
||||
|
@ -27,7 +27,6 @@ struct DG2 : public XE_HPG_COREFamily {
|
||||
static const RuntimeCapabilityTable capabilityTable;
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, uint64_t hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
static void setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
static bool isG10(const HardwareInfo &hwInfo) {
|
||||
auto it = std::find(DG2_G10_IDS.begin(), DG2_G10_IDS.end(), hwInfo.platform.usDeviceID);
|
||||
@ -43,6 +42,7 @@ struct DG2 : public XE_HPG_COREFamily {
|
||||
class DG2_CONFIG : public DG2 {
|
||||
public:
|
||||
static void setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
static void setupHardwareInfoMultiTile(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile);
|
||||
static const HardwareInfo hwInfo;
|
||||
|
||||
private:
|
||||
|
@ -130,27 +130,6 @@ void DG2::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
workaroundTable->flags.waEnablePreemptionGranularityControlByUMD = true;
|
||||
};
|
||||
|
||||
void DG2::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * DG2::threadsPerEu;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
gtSysInfo->TotalHsThreads = 336;
|
||||
gtSysInfo->TotalDsThreads = 336;
|
||||
gtSysInfo->TotalGsThreads = 336;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = DG2::maxEuPerSubslice;
|
||||
gtSysInfo->MaxSlicesSupported = DG2::maxSlicesSupported;
|
||||
gtSysInfo->MaxSubSlicesSupported = DG2::maxSubslicesSupported;
|
||||
gtSysInfo->MaxDualSubSlicesSupported = DG2::maxDualSubslicesSupported;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
}
|
||||
|
||||
const HardwareInfo DG2_CONFIG::hwInfo = {
|
||||
&DG2::platform,
|
||||
&DG2::featureTable,
|
||||
@ -160,9 +139,15 @@ const HardwareInfo DG2_CONFIG::hwInfo = {
|
||||
};
|
||||
GT_SYSTEM_INFO DG2_CONFIG::gtSystemInfo = {0};
|
||||
void DG2_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
DG2::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
DG2_CONFIG::setupHardwareInfoMultiTile(hwInfo, setupFeatureTableAndWorkaroundTable, false);
|
||||
}
|
||||
|
||||
void DG2_CONFIG::setupHardwareInfoMultiTile(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, bool setupMultiTile) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->IsL3HashModeEnabled = false;
|
||||
gtSysInfo->IsDynamicallyPopulated = false;
|
||||
|
||||
// non-zero values for unit tests
|
||||
if (gtSysInfo->SliceCount == 0) {
|
||||
gtSysInfo->SliceCount = 2;
|
||||
@ -184,7 +169,11 @@ void DG2_CONFIG::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableA
|
||||
gtSysInfo->SliceInfo[slice].Enabled = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
DG2::setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
};
|
||||
|
||||
#include "hw_info_setup_dg2.inl"
|
||||
} // namespace NEO
|
||||
|
@ -26,11 +26,11 @@ DG2TEST_F(HwInfoConfigTestDg2, whenConvertingTimestampsToCsDomainThenGpuTicksAre
|
||||
EXPECT_EQ(expectedGpuTicks, gpuTicks);
|
||||
}
|
||||
|
||||
DG2TEST_F(HwInfoConfigTestDg2, givenDg2ConfigWhenSetupHardwareInfoThenGtSystemInfoIsCorrect) {
|
||||
DG2TEST_F(HwInfoConfigTestDg2, givenDg2ConfigWhenSetupHardwareInfoMultiTileThenGtSystemInfoIsSetCorrect) {
|
||||
HardwareInfo hwInfo = *defaultHwInfo;
|
||||
GT_SYSTEM_INFO >SystemInfo = hwInfo.gtSystemInfo;
|
||||
|
||||
DG2_CONFIG::setupHardwareInfo(&hwInfo, false);
|
||||
DG2_CONFIG::setupHardwareInfoMultiTile(&hwInfo, false, false);
|
||||
EXPECT_EQ(8u, gtSystemInfo.CsrSizeInMb);
|
||||
EXPECT_FALSE(gtSystemInfo.IsL3HashModeEnabled);
|
||||
EXPECT_FALSE(gtSystemInfo.IsDynamicallyPopulated);
|
||||
|
Reference in New Issue
Block a user