mirror of
https://github.com/intel/compute-runtime.git
synced 2025-11-15 10:14:56 +08:00
Add TGL devices
Change-Id: I399e54b6ade5ce7ba59d61229ddd9de0b86aedb2 Signed-off-by: Adam Cetnerowski <adam.cetnerowski@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
911e9bfa18
commit
86a5730c27
@@ -8,8 +8,14 @@
|
||||
// clang-format off
|
||||
#ifdef SUPPORT_GEN12LP
|
||||
#ifdef SUPPORT_TGLLP
|
||||
DEVICE( IGEN12LP_GT1_MOB_DEVICE_F0_ID, TGLLP_1x6x16, GTTYPE_GT2 )
|
||||
DEVICE( ITGL_LP_1x6x16_ULT_15W_DEVICE_F0_ID, TGLLP_1x6x16, GTTYPE_GT2 )
|
||||
DEVICE( IGEN12LP_GT1_MOB_DEVICE_F0_ID, TGLLP_1x6x16, GTTYPE_GT2 )
|
||||
DEVICE( ITGL_LP_1x6x16_ULT_15W_DEVICE_F0_ID, TGLLP_1x6x16, GTTYPE_GT2 )
|
||||
DEVICE( ITGL_LP_1x6x16_ULX_5_2W_DEVICE_F0_ID, TGLLP_1x6x16, GTTYPE_GT2 )
|
||||
DEVICE( ITGL_LP_1x6x16_ULT_12W_DEVICE_F0_ID, TGLLP_1x6x16, GTTYPE_GT2 )
|
||||
DEVICE( ITGL_LP_1x2x16_HALO_45W_DEVICE_F0_ID, TGLLP_1x2x16, GTTYPE_GT2 )
|
||||
DEVICE( ITGL_LP_1x2x16_DESK_65W_DEVICE_F0_ID, TGLLP_1x2x16, GTTYPE_GT2 )
|
||||
DEVICE( ITGL_LP_1x2x16_HALO_WS_45W_DEVICE_F0_ID, TGLLP_1x2x16, GTTYPE_GT2 )
|
||||
DEVICE( ITGL_LP_1x2x16_DESK_WS_65W_DEVICE_F0_ID, TGLLP_1x2x16, GTTYPE_GT2 )
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ struct TGLLP : public TGLLPFamily {
|
||||
static void (*setupHardwareInfo)(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const std::string &hwInfoConfig);
|
||||
static void setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo);
|
||||
};
|
||||
|
||||
class TGLLP_1x6x16 : public TGLLP {
|
||||
public:
|
||||
static void setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
@@ -31,4 +32,13 @@ class TGLLP_1x6x16 : public TGLLP {
|
||||
private:
|
||||
static GT_SYSTEM_INFO gtSystemInfo;
|
||||
};
|
||||
|
||||
class TGLLP_1x2x16 : public TGLLP {
|
||||
public:
|
||||
static void setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable);
|
||||
static const HardwareInfo hwInfo;
|
||||
|
||||
private:
|
||||
static GT_SYSTEM_INFO gtSystemInfo;
|
||||
};
|
||||
} // namespace NEO
|
||||
|
||||
@@ -118,7 +118,7 @@ void TGLLP_1x6x16::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTabl
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->SubSliceCount = 6;
|
||||
gtSysInfo->DualSubSliceCount = 6;
|
||||
gtSysInfo->L3CacheSizeInKb = 2048;
|
||||
gtSysInfo->L3CacheSizeInKb = 3840;
|
||||
gtSysInfo->L3BankCount = 8;
|
||||
gtSysInfo->MaxFillRate = 16;
|
||||
gtSysInfo->TotalVsThreads = 336;
|
||||
@@ -143,11 +143,54 @@ void TGLLP_1x6x16::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTabl
|
||||
}
|
||||
};
|
||||
|
||||
const HardwareInfo TGLLP_1x2x16::hwInfo = {
|
||||
&TGLLP::platform,
|
||||
&TGLLP::featureTable,
|
||||
&TGLLP::workaroundTable,
|
||||
&TGLLP_1x2x16::gtSystemInfo,
|
||||
TGLLP::capabilityTable,
|
||||
};
|
||||
|
||||
GT_SYSTEM_INFO TGLLP_1x2x16::gtSystemInfo = {0};
|
||||
void TGLLP_1x2x16::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->EUCount = 32;
|
||||
gtSysInfo->ThreadCount = 32 * TGLLP::threadsPerEu;
|
||||
gtSysInfo->SliceCount = 1;
|
||||
gtSysInfo->SubSliceCount = 2;
|
||||
gtSysInfo->DualSubSliceCount = 2;
|
||||
gtSysInfo->L3CacheSizeInKb = 1920;
|
||||
gtSysInfo->L3BankCount = 4;
|
||||
gtSysInfo->MaxFillRate = 16;
|
||||
gtSysInfo->TotalVsThreads = 224;
|
||||
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;
|
||||
|
||||
void setupTGLLPHardwareInfoImpl(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const std::string &hwInfoConfig) {
|
||||
if (hwInfoConfig == "1x6x16") {
|
||||
TGLLP_1x6x16::setupHardwareInfo(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
} else if (hwInfoConfig == "1x2x16") {
|
||||
TGLLP_1x2x16::setupHardwareInfo(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
} else if (hwInfoConfig == "default") {
|
||||
// Default config
|
||||
TGLLP_1x6x16::setupHardwareInfo(hwInfo, setupFeatureTableAndWorkaroundTable);
|
||||
|
||||
@@ -15,9 +15,15 @@
|
||||
using namespace NEO;
|
||||
|
||||
TEST(TglLpDeviceIdTest, supportedDeviceId) {
|
||||
std::array<DeviceDescriptor, 2> expectedDescriptors = {{
|
||||
std::array<DeviceDescriptor, 8> expectedDescriptors = {{
|
||||
{IGEN12LP_GT1_MOB_DEVICE_F0_ID, &TGLLP_1x6x16::hwInfo, &TGLLP_1x6x16::setupHardwareInfo, GTTYPE_GT2},
|
||||
{ITGL_LP_1x6x16_ULT_15W_DEVICE_F0_ID, &TGLLP_1x6x16::hwInfo, &TGLLP_1x6x16::setupHardwareInfo, GTTYPE_GT2},
|
||||
{ITGL_LP_1x6x16_ULX_5_2W_DEVICE_F0_ID, &TGLLP_1x6x16::hwInfo, &TGLLP_1x6x16::setupHardwareInfo, GTTYPE_GT2},
|
||||
{ITGL_LP_1x6x16_ULT_12W_DEVICE_F0_ID, &TGLLP_1x6x16::hwInfo, &TGLLP_1x6x16::setupHardwareInfo, GTTYPE_GT2},
|
||||
{ITGL_LP_1x2x16_HALO_45W_DEVICE_F0_ID, &TGLLP_1x2x16::hwInfo, &TGLLP_1x2x16::setupHardwareInfo, GTTYPE_GT2},
|
||||
{ITGL_LP_1x2x16_DESK_65W_DEVICE_F0_ID, &TGLLP_1x2x16::hwInfo, &TGLLP_1x2x16::setupHardwareInfo, GTTYPE_GT2},
|
||||
{ITGL_LP_1x2x16_HALO_WS_45W_DEVICE_F0_ID, &TGLLP_1x2x16::hwInfo, &TGLLP_1x2x16::setupHardwareInfo, GTTYPE_GT2},
|
||||
{ITGL_LP_1x2x16_DESK_WS_65W_DEVICE_F0_ID, &TGLLP_1x2x16::hwInfo, &TGLLP_1x2x16::setupHardwareInfo, GTTYPE_GT2},
|
||||
}};
|
||||
|
||||
auto compareStructs = [](const DeviceDescriptor *first, const DeviceDescriptor *second) {
|
||||
|
||||
@@ -22,6 +22,12 @@ TEST(TgllpHwInfoConfig, givenHwInfoConfigStringThenAfterSetupResultingHwInfoIsCo
|
||||
EXPECT_EQ(6u, gtSystemInfo.SubSliceCount);
|
||||
EXPECT_EQ(96u, gtSystemInfo.EUCount);
|
||||
|
||||
strConfig = "1x2x16";
|
||||
hardwareInfoSetup[productFamily](&hwInfo, false, strConfig);
|
||||
EXPECT_EQ(1u, gtSystemInfo.SliceCount);
|
||||
EXPECT_EQ(2u, gtSystemInfo.SubSliceCount);
|
||||
EXPECT_EQ(32u, gtSystemInfo.EUCount);
|
||||
|
||||
strConfig = "default";
|
||||
gtSystemInfo = {0};
|
||||
hardwareInfoSetup[productFamily](&hwInfo, false, strConfig);
|
||||
@@ -47,34 +53,39 @@ TGLLPTEST_F(TgllpHwInfo, givenBoolWhenCallTgllpHardwareInfoSetupThenFeatureTable
|
||||
FeatureTable &featureTable = hwInfo.featureTable;
|
||||
WorkaroundTable &workaroundTable = hwInfo.workaroundTable;
|
||||
|
||||
std::string strConfig = "1x6x16";
|
||||
for (auto setParamBool : boolValue) {
|
||||
std::string strConfig[] = {
|
||||
"1x6x16",
|
||||
"1x2x16"};
|
||||
|
||||
gtSystemInfo = {0};
|
||||
featureTable = {};
|
||||
workaroundTable = {};
|
||||
hardwareInfoSetup[productFamily](&hwInfo, setParamBool, strConfig);
|
||||
for (auto &config : strConfig) {
|
||||
for (auto setParamBool : boolValue) {
|
||||
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrL3IACoherency);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrPPGTT);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrSVM);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrIA32eGfxPTEs);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrStandardMipTailFormat);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrTranslationTable);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrUserModeTranslationTable);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrTileMappedResource);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrEnableGuC);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrFbc);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrFbc2AddressTranslation);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrFbcBlitterTracking);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrFbcCpuTracking);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrTileY);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrAstcHdr2D);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrAstcLdr2D);
|
||||
gtSystemInfo = {0};
|
||||
featureTable = {};
|
||||
workaroundTable = {};
|
||||
hardwareInfoSetup[productFamily](&hwInfo, setParamBool, config);
|
||||
|
||||
EXPECT_EQ(setParamBool, workaroundTable.wa4kAlignUVOffsetNV12LinearSurface);
|
||||
EXPECT_EQ(setParamBool, workaroundTable.waEnablePreemptionGranularityControlByUMD);
|
||||
EXPECT_EQ(setParamBool, workaroundTable.waUntypedBufferCompression);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrL3IACoherency);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrPPGTT);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrSVM);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrIA32eGfxPTEs);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrStandardMipTailFormat);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrTranslationTable);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrUserModeTranslationTable);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrTileMappedResource);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrEnableGuC);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrFbc);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrFbc2AddressTranslation);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrFbcBlitterTracking);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrFbcCpuTracking);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrTileY);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrAstcHdr2D);
|
||||
EXPECT_EQ(setParamBool, featureTable.ftrAstcLdr2D);
|
||||
|
||||
EXPECT_EQ(setParamBool, workaroundTable.wa4kAlignUVOffsetNV12LinearSurface);
|
||||
EXPECT_EQ(setParamBool, workaroundTable.waEnablePreemptionGranularityControlByUMD);
|
||||
EXPECT_EQ(setParamBool, workaroundTable.waUntypedBufferCompression);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user