mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 14:55:24 +08:00
refactor: numThreadsPerEu
Signed-off-by: Radoslaw Jablonski <radoslaw.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
26d9fa49cd
commit
393604ef80
@@ -104,7 +104,8 @@ void ADLN::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
|
||||
void ADLN::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * 7u;
|
||||
gtSysInfo->NumThreadsPerEu = 7u;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * gtSysInfo->NumThreadsPerEu;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = ADLN::maxEuPerSubslice;
|
||||
@@ -117,6 +118,8 @@ void ADLN::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAnd
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
|
||||
applyDebugOverrides(*hwInfo);
|
||||
}
|
||||
|
||||
const HardwareInfo AdlnHwConfig::hwInfo = {
|
||||
|
||||
@@ -104,7 +104,8 @@ void ADLP::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
|
||||
void ADLP::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * 7u;
|
||||
gtSysInfo->NumThreadsPerEu = 7u;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * gtSysInfo->NumThreadsPerEu;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = ADLP::maxEuPerSubslice;
|
||||
@@ -117,6 +118,8 @@ void ADLP::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAnd
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
|
||||
applyDebugOverrides(*hwInfo);
|
||||
}
|
||||
|
||||
const HardwareInfo AdlpHwConfig::hwInfo = {
|
||||
|
||||
@@ -104,7 +104,8 @@ void ADLS::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
|
||||
void ADLS::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * 7u;
|
||||
gtSysInfo->NumThreadsPerEu = 7u;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * gtSysInfo->NumThreadsPerEu;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = ADLS::maxEuPerSubslice;
|
||||
@@ -117,6 +118,8 @@ void ADLS::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAnd
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
|
||||
applyDebugOverrides(*hwInfo);
|
||||
}
|
||||
|
||||
const HardwareInfo AdlsHwConfig::hwInfo = {
|
||||
|
||||
@@ -105,7 +105,8 @@ void DG1::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
|
||||
void DG1::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * 7u;
|
||||
gtSysInfo->NumThreadsPerEu = 7u;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * gtSysInfo->NumThreadsPerEu;
|
||||
gtSysInfo->TotalVsThreads = 672;
|
||||
gtSysInfo->TotalHsThreads = 672;
|
||||
gtSysInfo->TotalDsThreads = 672;
|
||||
@@ -122,6 +123,8 @@ void DG1::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
|
||||
applyDebugOverrides(*hwInfo);
|
||||
}
|
||||
|
||||
const HardwareInfo Dg1HwConfig::hwInfo = {
|
||||
|
||||
@@ -103,7 +103,8 @@ void RKL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
|
||||
void RKL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * 7u;
|
||||
gtSysInfo->NumThreadsPerEu = 7u;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * gtSysInfo->NumThreadsPerEu;
|
||||
gtSysInfo->TotalVsThreads = 0;
|
||||
gtSysInfo->TotalHsThreads = 0;
|
||||
gtSysInfo->TotalDsThreads = 0;
|
||||
@@ -120,6 +121,8 @@ void RKL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndW
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
|
||||
applyDebugOverrides(*hwInfo);
|
||||
}
|
||||
|
||||
const HardwareInfo RklHwConfig::hwInfo = {
|
||||
|
||||
@@ -104,7 +104,8 @@ void TGLLP::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo) {
|
||||
|
||||
void TGLLP::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * 7u;
|
||||
gtSysInfo->NumThreadsPerEu = 7u;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * gtSysInfo->NumThreadsPerEu;
|
||||
gtSysInfo->TotalPsThreadsWindowerRange = 64;
|
||||
gtSysInfo->CsrSizeInMb = 8;
|
||||
gtSysInfo->MaxEuPerSubSlice = TGLLP::maxEuPerSubslice;
|
||||
@@ -117,6 +118,8 @@ void TGLLP::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAn
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo);
|
||||
}
|
||||
|
||||
applyDebugOverrides(*hwInfo);
|
||||
}
|
||||
|
||||
const HardwareInfo TgllpHw1x6x16::hwInfo = {
|
||||
|
||||
@@ -53,7 +53,7 @@ bool GfxCoreHelper::cacheFlushAfterWalkerSupported(const HardwareInfo &hwInfo) {
|
||||
}
|
||||
|
||||
uint32_t GfxCoreHelper::getMaxThreadsForVfe(const HardwareInfo &hwInfo) {
|
||||
uint32_t threadsPerEU = (hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount) + hwInfo.capabilityTable.extraQuantityThreadsPerEU;
|
||||
uint32_t threadsPerEU = hwInfo.gtSystemInfo.NumThreadsPerEu + hwInfo.capabilityTable.extraQuantityThreadsPerEU;
|
||||
auto maxHwThreadsCapable = hwInfo.gtSystemInfo.EUCount * threadsPerEU;
|
||||
auto maxHwThreadsReturned = maxHwThreadsCapable;
|
||||
if (debugManager.flags.MaxHwThreadsPercent.get() != 0) {
|
||||
|
||||
@@ -132,7 +132,7 @@ aub_stream::EngineType getChosenEngineType(const HardwareInfo &hwInfo) {
|
||||
? hwInfo.capabilityTable.defaultEngineType
|
||||
: static_cast<aub_stream::EngineType>(debugManager.flags.NodeOrdinal.get());
|
||||
}
|
||||
void setupDefaultGtSysInfo(HardwareInfo *hwInfo, const ReleaseHelper *releaseHelper) {
|
||||
void setupDefaultGtSysInfo(HardwareInfo *hwInfo) {
|
||||
GT_SYSTEM_INFO *gtSysInfo = &hwInfo->gtSystemInfo;
|
||||
gtSysInfo->L3CacheSizeInKb = 1;
|
||||
gtSysInfo->CCSInfo.IsValid = 1;
|
||||
@@ -144,14 +144,14 @@ void setupDefaultGtSysInfo(HardwareInfo *hwInfo, const ReleaseHelper *releaseHel
|
||||
gtSysInfo->SubSliceCount = 8;
|
||||
gtSysInfo->DualSubSliceCount = gtSysInfo->SubSliceCount;
|
||||
gtSysInfo->EUCount = 64;
|
||||
gtSysInfo->NumThreadsPerEu = 8u;
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * gtSysInfo->NumThreadsPerEu;
|
||||
|
||||
gtSysInfo->MaxEuPerSubSlice = gtSysInfo->EUCount / gtSysInfo->SubSliceCount;
|
||||
gtSysInfo->MaxSlicesSupported = gtSysInfo->SliceCount;
|
||||
gtSysInfo->MaxSubSlicesSupported = gtSysInfo->SubSliceCount;
|
||||
gtSysInfo->MaxDualSubSlicesSupported = gtSysInfo->DualSubSliceCount;
|
||||
}
|
||||
|
||||
gtSysInfo->ThreadCount = gtSysInfo->EUCount * releaseHelper->getNumThreadsPerEu();
|
||||
}
|
||||
|
||||
void setupDefaultFeatureTableAndWorkaroundTable(HardwareInfo *hwInfo, const ReleaseHelper &releaseHelper) {
|
||||
@@ -181,6 +181,13 @@ void setupDefaultFeatureTableAndWorkaroundTable(HardwareInfo *hwInfo, const Rele
|
||||
workaroundTable->flags.wa4kAlignUVOffsetNV12LinearSurface = true;
|
||||
}
|
||||
|
||||
void applyDebugOverrides(HardwareInfo &hwInfo) {
|
||||
if (debugManager.flags.OverrideNumThreadsPerEu.get() != -1) {
|
||||
hwInfo.gtSystemInfo.NumThreadsPerEu = debugManager.flags.OverrideNumThreadsPerEu.get();
|
||||
hwInfo.gtSystemInfo.ThreadCount = hwInfo.gtSystemInfo.EUCount * hwInfo.gtSystemInfo.NumThreadsPerEu;
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t getNumSubSlicesPerSlice(const HardwareInfo &hwInfo) {
|
||||
return static_cast<uint32_t>(Math::divideAndRoundUp(hwInfo.gtSystemInfo.SubSliceCount, hwInfo.gtSystemInfo.SliceCount));
|
||||
}
|
||||
|
||||
@@ -93,8 +93,9 @@ bool getHwInfoForPlatformString(std::string &platform, const HardwareInfo *&hwIn
|
||||
void setHwInfoValuesFromConfig(const uint64_t hwInfoConfig, HardwareInfo &hwInfoIn);
|
||||
bool parseHwInfoConfigString(const std::string &hwInfoConfigStr, uint64_t &hwInfoConfig);
|
||||
aub_stream::EngineType getChosenEngineType(const HardwareInfo &hwInfo);
|
||||
void setupDefaultGtSysInfo(HardwareInfo *hwInfo, const ReleaseHelper *releaseHelper);
|
||||
void setupDefaultGtSysInfo(HardwareInfo *hwInfo);
|
||||
void setupDefaultFeatureTableAndWorkaroundTable(HardwareInfo *hwInfo, const ReleaseHelper &releaseHelper);
|
||||
uint32_t getNumSubSlicesPerSlice(const HardwareInfo &hwInfo);
|
||||
void applyDebugOverrides(HardwareInfo &hwInfo);
|
||||
|
||||
} // namespace NEO
|
||||
|
||||
@@ -61,7 +61,7 @@ class RayTracingHelper : public NonCopyableAndNonMovableClass {
|
||||
UNRECOVERABLE_IF(hwInfo.gtSystemInfo.EUCount == 0)
|
||||
|
||||
uint32_t maxNumEUsPerDSS = hwInfo.gtSystemInfo.MaxEuPerSubSlice;
|
||||
uint32_t maxNumThreadsPerEU = hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount;
|
||||
uint32_t maxNumThreadsPerEU = hwInfo.gtSystemInfo.NumThreadsPerEu;
|
||||
uint32_t maxSIMTThreadsPerThread = CommonConstants::maximalSimdSize;
|
||||
|
||||
return std::min(maxSizeOfRtStacksPerDss, maxNumEUsPerDSS * maxNumThreadsPerEU * maxSIMTThreadsPerThread);
|
||||
|
||||
@@ -510,6 +510,8 @@ int Drm::setupHardwareInfo(const DeviceDescriptor *device, bool setupFeatureTabl
|
||||
if (numRegions > 0) {
|
||||
hwInfo->featureTable.regionCount = numRegions;
|
||||
}
|
||||
|
||||
hwInfo->gtSystemInfo.NumThreadsPerEu = systemInfo->getNumThreadsPerEu();
|
||||
}
|
||||
|
||||
auto &productHelper = rootDeviceEnvironment.getProductHelper();
|
||||
@@ -618,12 +620,11 @@ int Drm::setupHardwareInfo(const DeviceDescriptor *device, bool setupFeatureTabl
|
||||
return -1;
|
||||
}
|
||||
|
||||
auto numThreadsPerEu = systemInfo ? systemInfo->getNumThreadsPerEu() : (releaseHelper ? releaseHelper->getNumThreadsPerEu() : 7u);
|
||||
if (debugManager.flags.OverrideNumThreadsPerEu.get() != -1) {
|
||||
numThreadsPerEu = debugManager.flags.OverrideNumThreadsPerEu.get();
|
||||
hwInfo->gtSystemInfo.NumThreadsPerEu = debugManager.flags.OverrideNumThreadsPerEu.get();
|
||||
}
|
||||
|
||||
hwInfo->gtSystemInfo.ThreadCount = numThreadsPerEu * hwInfo->gtSystemInfo.EUCount;
|
||||
hwInfo->gtSystemInfo.ThreadCount = hwInfo->gtSystemInfo.NumThreadsPerEu * hwInfo->gtSystemInfo.EUCount;
|
||||
|
||||
if (ioctlHelper->overrideMaxSlicesSupported()) {
|
||||
hwInfo->gtSystemInfo.MaxSlicesSupported = hwInfo->gtSystemInfo.SliceCount;
|
||||
|
||||
@@ -248,8 +248,7 @@ bool ProductHelperHw<gfxProduct>::isMaxThreadsForWorkgroupWARequired(const Hardw
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
uint32_t ProductHelperHw<gfxProduct>::getMaxThreadsForWorkgroup(const HardwareInfo &hwInfo, uint32_t maxNumEUsPerSubSlice) const {
|
||||
uint32_t numThreadsPerEU = hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount;
|
||||
return maxNumEUsPerSubSlice * numThreadsPerEU;
|
||||
return maxNumEUsPerSubSlice * hwInfo.gtSystemInfo.NumThreadsPerEu;
|
||||
}
|
||||
|
||||
template <PRODUCT_FAMILY gfxProduct>
|
||||
|
||||
@@ -110,6 +110,9 @@ bool Wddm::init() {
|
||||
hardwareInfo->capabilityTable.instrumentationEnabled =
|
||||
(hardwareInfo->capabilityTable.instrumentationEnabled && instrumentationEnabled);
|
||||
|
||||
DEBUG_BREAK_IF(hardwareInfo->gtSystemInfo.NumThreadsPerEu != hardwareInfo->gtSystemInfo.ThreadCount / hardwareInfo->gtSystemInfo.EUCount);
|
||||
hardwareInfo->gtSystemInfo.NumThreadsPerEu = hardwareInfo->gtSystemInfo.ThreadCount / hardwareInfo->gtSystemInfo.EUCount;
|
||||
|
||||
rootDeviceEnvironment.initProductHelper();
|
||||
rootDeviceEnvironment.initCompilerProductHelper();
|
||||
auto &productHelper = rootDeviceEnvironment.getHelper<ProductHelper>();
|
||||
|
||||
@@ -49,7 +49,6 @@ class ReleaseHelper {
|
||||
virtual std::vector<uint32_t> getSupportedNumGrfs() const = 0;
|
||||
virtual bool isBindlessAddressingDisabled() const = 0;
|
||||
virtual bool isGlobalBindlessAllocatorEnabled() const = 0;
|
||||
virtual uint32_t getNumThreadsPerEu() const = 0;
|
||||
virtual uint64_t getTotalMemBankSize() const = 0;
|
||||
virtual const ThreadsPerEUConfigs getThreadsPerEUConfigs(uint32_t numThreadsPerEu) const = 0;
|
||||
virtual const std::string getDeviceConfigString(uint32_t tileCount, uint32_t sliceCount, uint32_t subSliceCount, uint32_t euPerSubSliceCount) const = 0;
|
||||
@@ -97,7 +96,6 @@ class ReleaseHelperHw : public ReleaseHelper {
|
||||
std::vector<uint32_t> getSupportedNumGrfs() const override;
|
||||
bool isBindlessAddressingDisabled() const override;
|
||||
bool isGlobalBindlessAllocatorEnabled() const override;
|
||||
uint32_t getNumThreadsPerEu() const override;
|
||||
uint64_t getTotalMemBankSize() const override;
|
||||
const StackVec<uint32_t, 6> getThreadsPerEUConfigs(uint32_t numThreadsPerEu) const override;
|
||||
const std::string getDeviceConfigString(uint32_t tileCount, uint32_t sliceCount, uint32_t subSliceCount, uint32_t euPerSubSliceCount) const override;
|
||||
|
||||
@@ -24,14 +24,6 @@ std::vector<uint32_t> ReleaseHelperHw<release>::getSupportedNumGrfs() const {
|
||||
return {32u, 64u, 96u, 128u, 160u, 192u, 256u};
|
||||
}
|
||||
|
||||
template <>
|
||||
uint32_t ReleaseHelperHw<release>::getNumThreadsPerEu() const {
|
||||
if (debugManager.flags.OverrideNumThreadsPerEu.get() != -1) {
|
||||
return debugManager.flags.OverrideNumThreadsPerEu.get();
|
||||
}
|
||||
return 10;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool ReleaseHelperHw<release>::isLocalOnlyAllowed() const {
|
||||
return false;
|
||||
|
||||
@@ -24,14 +24,6 @@ std::vector<uint32_t> ReleaseHelperHw<release>::getSupportedNumGrfs() const {
|
||||
return {32u, 64u, 96u, 128u, 160u, 192u, 256u};
|
||||
}
|
||||
|
||||
template <>
|
||||
uint32_t ReleaseHelperHw<release>::getNumThreadsPerEu() const {
|
||||
if (debugManager.flags.OverrideNumThreadsPerEu.get() != -1) {
|
||||
return debugManager.flags.OverrideNumThreadsPerEu.get();
|
||||
}
|
||||
return 10;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool ReleaseHelperHw<release>::isLocalOnlyAllowed() const {
|
||||
return false;
|
||||
|
||||
@@ -24,14 +24,6 @@ std::vector<uint32_t> ReleaseHelperHw<release>::getSupportedNumGrfs() const {
|
||||
return {32u, 64u, 96u, 128u, 160u, 192u, 256u};
|
||||
}
|
||||
|
||||
template <>
|
||||
uint32_t ReleaseHelperHw<release>::getNumThreadsPerEu() const {
|
||||
if (debugManager.flags.OverrideNumThreadsPerEu.get() != -1) {
|
||||
return debugManager.flags.OverrideNumThreadsPerEu.get();
|
||||
}
|
||||
return 10;
|
||||
}
|
||||
|
||||
template <>
|
||||
bool ReleaseHelperHw<release>::isLocalOnlyAllowed() const {
|
||||
return false;
|
||||
|
||||
@@ -90,14 +90,6 @@ bool ReleaseHelperHw<releaseType>::isGlobalBindlessAllocatorEnabled() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
template <ReleaseType releaseType>
|
||||
uint32_t ReleaseHelperHw<releaseType>::getNumThreadsPerEu() const {
|
||||
if (debugManager.flags.OverrideNumThreadsPerEu.get() != -1) {
|
||||
return debugManager.flags.OverrideNumThreadsPerEu.get();
|
||||
}
|
||||
return 8u;
|
||||
}
|
||||
|
||||
template <ReleaseType releaseType>
|
||||
uint64_t ReleaseHelperHw<releaseType>::getTotalMemBankSize() const {
|
||||
return 32ull * MemoryConstants::gigaByte;
|
||||
|
||||
@@ -106,12 +106,17 @@ GT_SYSTEM_INFO BmgHwConfig::gtSystemInfo = {};
|
||||
const HardwareInfo BMG::hwInfo = BmgHwConfig::hwInfo;
|
||||
|
||||
void BMG::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
setupDefaultGtSysInfo(hwInfo, releaseHelper);
|
||||
setupDefaultGtSysInfo(hwInfo);
|
||||
|
||||
hwInfo->gtSystemInfo.NumThreadsPerEu = 8u;
|
||||
hwInfo->gtSystemInfo.ThreadCount = hwInfo->gtSystemInfo.EUCount * hwInfo->gtSystemInfo.NumThreadsPerEu;
|
||||
|
||||
BMG::adjustHardwareInfo(hwInfo);
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
BMG::setupFeatureAndWorkaroundTable(hwInfo, *releaseHelper);
|
||||
}
|
||||
|
||||
applyDebugOverrides(*hwInfo);
|
||||
}
|
||||
|
||||
void BmgHwConfig::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
|
||||
@@ -104,12 +104,17 @@ GT_SYSTEM_INFO LnlHwConfig::gtSystemInfo = {};
|
||||
const HardwareInfo LNL::hwInfo = LnlHwConfig::hwInfo;
|
||||
|
||||
void LNL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
setupDefaultGtSysInfo(hwInfo, releaseHelper);
|
||||
setupDefaultGtSysInfo(hwInfo);
|
||||
|
||||
hwInfo->gtSystemInfo.NumThreadsPerEu = 8u;
|
||||
hwInfo->gtSystemInfo.ThreadCount = hwInfo->gtSystemInfo.EUCount * hwInfo->gtSystemInfo.NumThreadsPerEu;
|
||||
|
||||
LNL::adjustHardwareInfo(hwInfo);
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
LNL::setupFeatureAndWorkaroundTable(hwInfo, *releaseHelper);
|
||||
}
|
||||
|
||||
applyDebugOverrides(*hwInfo);
|
||||
}
|
||||
void LnlHwConfig::setupHardwareInfo(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
LNL::setupHardwareInfoBase(hwInfo, setupFeatureTableAndWorkaroundTable, releaseHelper);
|
||||
|
||||
@@ -90,12 +90,17 @@ void PTL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo, const ReleaseHelp
|
||||
}
|
||||
|
||||
void PTL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
setupDefaultGtSysInfo(hwInfo, releaseHelper);
|
||||
setupDefaultGtSysInfo(hwInfo);
|
||||
|
||||
hwInfo->gtSystemInfo.NumThreadsPerEu = 10u;
|
||||
hwInfo->gtSystemInfo.ThreadCount = hwInfo->gtSystemInfo.EUCount * hwInfo->gtSystemInfo.NumThreadsPerEu;
|
||||
|
||||
adjustHardwareInfo(hwInfo);
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo, *releaseHelper);
|
||||
}
|
||||
|
||||
applyDebugOverrides(*hwInfo);
|
||||
}
|
||||
|
||||
FeatureTable PTL::featureTable{};
|
||||
|
||||
@@ -101,14 +101,19 @@ void PVC::adjustHardwareInfo(HardwareInfo *hwInfo) {
|
||||
}
|
||||
|
||||
void PVC::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
setupDefaultGtSysInfo(hwInfo, releaseHelper);
|
||||
setupDefaultGtSysInfo(hwInfo);
|
||||
setupHardwareInfoMultiTileBase(hwInfo, true);
|
||||
|
||||
hwInfo->gtSystemInfo.NumThreadsPerEu = 8u;
|
||||
hwInfo->gtSystemInfo.ThreadCount = hwInfo->gtSystemInfo.EUCount * hwInfo->gtSystemInfo.NumThreadsPerEu;
|
||||
|
||||
PVC::adjustHardwareInfo(hwInfo);
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo, *releaseHelper);
|
||||
}
|
||||
|
||||
applyDebugOverrides(*hwInfo);
|
||||
}
|
||||
|
||||
void PVC::setupHardwareInfoMultiTileBase(HardwareInfo *hwInfo, bool setupMultiTile) {
|
||||
|
||||
@@ -85,11 +85,16 @@ void ARL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo, const ReleaseHelp
|
||||
};
|
||||
|
||||
void ARL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
setupDefaultGtSysInfo(hwInfo, releaseHelper);
|
||||
setupDefaultGtSysInfo(hwInfo);
|
||||
|
||||
hwInfo->gtSystemInfo.NumThreadsPerEu = 8u;
|
||||
hwInfo->gtSystemInfo.ThreadCount = hwInfo->gtSystemInfo.EUCount * hwInfo->gtSystemInfo.NumThreadsPerEu;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo, *releaseHelper);
|
||||
}
|
||||
|
||||
applyDebugOverrides(*hwInfo);
|
||||
}
|
||||
|
||||
const HardwareInfo ArlHwConfig::hwInfo = {
|
||||
|
||||
@@ -91,11 +91,16 @@ void DG2::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo, const ReleaseHelp
|
||||
};
|
||||
|
||||
void DG2::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
setupDefaultGtSysInfo(hwInfo, releaseHelper);
|
||||
setupDefaultGtSysInfo(hwInfo);
|
||||
|
||||
hwInfo->gtSystemInfo.NumThreadsPerEu = 8u;
|
||||
hwInfo->gtSystemInfo.ThreadCount = hwInfo->gtSystemInfo.EUCount * hwInfo->gtSystemInfo.NumThreadsPerEu;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo, *releaseHelper);
|
||||
}
|
||||
|
||||
applyDebugOverrides(*hwInfo);
|
||||
}
|
||||
|
||||
const HardwareInfo Dg2HwConfig::hwInfo = {
|
||||
|
||||
@@ -86,11 +86,16 @@ void MTL::setupFeatureAndWorkaroundTable(HardwareInfo *hwInfo, const ReleaseHelp
|
||||
};
|
||||
|
||||
void MTL::setupHardwareInfoBase(HardwareInfo *hwInfo, bool setupFeatureTableAndWorkaroundTable, const ReleaseHelper *releaseHelper) {
|
||||
setupDefaultGtSysInfo(hwInfo, releaseHelper);
|
||||
setupDefaultGtSysInfo(hwInfo);
|
||||
|
||||
hwInfo->gtSystemInfo.NumThreadsPerEu = 8u;
|
||||
hwInfo->gtSystemInfo.ThreadCount = hwInfo->gtSystemInfo.EUCount * hwInfo->gtSystemInfo.NumThreadsPerEu;
|
||||
|
||||
if (setupFeatureTableAndWorkaroundTable) {
|
||||
setupFeatureAndWorkaroundTable(hwInfo, *releaseHelper);
|
||||
}
|
||||
|
||||
applyDebugOverrides(*hwInfo);
|
||||
}
|
||||
|
||||
const HardwareInfo MtlHwConfig::hwInfo = {
|
||||
|
||||
@@ -28,7 +28,6 @@ class MockReleaseHelper : public ReleaseHelper {
|
||||
ADDMETHOD_CONST_NOBASE(getSupportedNumGrfs, std::vector<uint32_t>, {128}, ());
|
||||
ADDMETHOD_CONST_NOBASE(isBindlessAddressingDisabled, bool, true, ());
|
||||
ADDMETHOD_CONST_NOBASE(isGlobalBindlessAllocatorEnabled, bool, false, ());
|
||||
ADDMETHOD_CONST_NOBASE(getNumThreadsPerEu, uint32_t, 8u, ());
|
||||
ADDMETHOD_CONST_NOBASE(getTotalMemBankSize, uint64_t, 32ull * MemoryConstants::gigaByte, ());
|
||||
ADDMETHOD_CONST_NOBASE(getThreadsPerEUConfigs, const ThreadsPerEUConfigs, {}, (uint32_t numThreadsPerEu));
|
||||
ADDMETHOD_CONST_NOBASE(getDeviceConfigString, const std::string, {}, (uint32_t tileCount, uint32_t sliceCount, uint32_t subSliceCount, uint32_t euPerSubSliceCount));
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (C) 2023-2024 Intel Corporation
|
||||
* Copyright (C) 2023-2025 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
@@ -24,8 +24,6 @@ void adjustHwInfoForTests(HardwareInfo &hwInfoForTests, uint32_t euPerSubSlice,
|
||||
auto hwInfoConfig = compilerProductHelper->getHwInfoConfig(hwInfoForTests);
|
||||
setHwInfoValuesFromConfig(hwInfoConfig, hwInfoForTests);
|
||||
|
||||
uint32_t threadsPerEu = releaseHelper ? releaseHelper->getNumThreadsPerEu() : 7u;
|
||||
|
||||
// set Gt and FeatureTable to initial state
|
||||
bool setupFeatureTableAndWorkaroundTable = isAubTestMode(testMode);
|
||||
hardwareInfoSetup[hwInfoForTests.platform.eProductFamily](&hwInfoForTests, setupFeatureTableAndWorkaroundTable, hwInfoConfig, releaseHelper.get());
|
||||
@@ -48,7 +46,8 @@ void adjustHwInfoForTests(HardwareInfo &hwInfoForTests, uint32_t euPerSubSlice,
|
||||
gtSystemInfo.SubSliceCount = gtSystemInfo.SliceCount * subSlicePerSliceCount;
|
||||
gtSystemInfo.DualSubSliceCount = gtSystemInfo.SubSliceCount;
|
||||
gtSystemInfo.EUCount = gtSystemInfo.SubSliceCount * euPerSubSlice - dieRecovery;
|
||||
gtSystemInfo.ThreadCount = gtSystemInfo.EUCount * threadsPerEu;
|
||||
gtSystemInfo.NumThreadsPerEu = 8;
|
||||
gtSystemInfo.ThreadCount = gtSystemInfo.EUCount * gtSystemInfo.NumThreadsPerEu;
|
||||
gtSystemInfo.MaxEuPerSubSlice = std::max(gtSystemInfo.MaxEuPerSubSlice, euPerSubSlice);
|
||||
gtSystemInfo.MaxSlicesSupported = std::max(gtSystemInfo.MaxSlicesSupported, gtSystemInfo.SliceCount);
|
||||
gtSystemInfo.MaxSubSlicesSupported = std::max(gtSystemInfo.MaxSubSlicesSupported, gtSystemInfo.SubSliceCount);
|
||||
|
||||
@@ -1551,7 +1551,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, DeviceTest, givenHwInfoWhenRequestedComputeUnitsUse
|
||||
auto &productHelper = pDevice->getProductHelper();
|
||||
|
||||
const uint32_t multiplyFactor = productHelper.getThreadEuRatioForScratch(hwInfo) / 8u;
|
||||
const uint32_t numThreadsPerEu = (hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount) * multiplyFactor;
|
||||
const uint32_t numThreadsPerEu = hwInfo.gtSystemInfo.NumThreadsPerEu * multiplyFactor;
|
||||
|
||||
uint32_t expectedValue = productHelper.computeMaxNeededSubSliceSpace(hwInfo) * hwInfo.gtSystemInfo.MaxEuPerSubSlice * numThreadsPerEu;
|
||||
|
||||
@@ -2952,4 +2952,4 @@ TEST(DeviceCanAccessPeerTest, givenTwoSubDevicesFromTheSameRootDeviceThenCanAcce
|
||||
bool res = subDevice0->canAccessPeer(queryPeerAccess, subDevice1, canAccess);
|
||||
EXPECT_TRUE(res);
|
||||
EXPECT_TRUE(canAccess);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include "shared/source/debug_settings/debug_settings_manager.h"
|
||||
#include "shared/source/helpers/hw_info.h"
|
||||
#include "shared/test/common/helpers/debug_manager_state_restore.h"
|
||||
#include "shared/test/common/mocks/mock_release_helper.h"
|
||||
#include "shared/test/common/test_macros/test.h"
|
||||
|
||||
@@ -65,3 +66,15 @@ TEST(HwInfoTest, whenGettingHwInfoForUnknownPlatformStringThenFailureIsReturned)
|
||||
std::string invalidPlatformString = "invalid";
|
||||
EXPECT_FALSE(getHwInfoForPlatformString(invalidPlatformString, pHwInfo));
|
||||
}
|
||||
|
||||
TEST(HwInfoTest, whenApplyDebugOverrideCalledThenDebugVariablesAreApplied) {
|
||||
DebugManagerStateRestore debugRestorer;
|
||||
debugManager.flags.OverrideNumThreadsPerEu.set(123);
|
||||
|
||||
HardwareInfo hwInfo{};
|
||||
hwInfo.gtSystemInfo.EUCount = 2;
|
||||
|
||||
applyDebugOverrides(hwInfo);
|
||||
EXPECT_EQ(hwInfo.gtSystemInfo.NumThreadsPerEu, 123u);
|
||||
EXPECT_EQ(hwInfo.gtSystemInfo.ThreadCount, hwInfo.gtSystemInfo.EUCount * 123u);
|
||||
}
|
||||
|
||||
@@ -90,11 +90,13 @@ TEST(RayTracingHelperTests, whenNumRtStacksPerDssIsRequestedAndFixedValueIsFalse
|
||||
uint32_t maxEuPerSubSlice = 16;
|
||||
uint32_t threadCount = 672;
|
||||
uint32_t euCount = 96;
|
||||
uint32_t numThreadsPerEu = threadCount / euCount;
|
||||
|
||||
auto hwInfo = *NEO::defaultHwInfo;
|
||||
hwInfo.gtSystemInfo.MaxEuPerSubSlice = maxEuPerSubSlice;
|
||||
hwInfo.gtSystemInfo.ThreadCount = threadCount;
|
||||
hwInfo.gtSystemInfo.EUCount = euCount;
|
||||
hwInfo.gtSystemInfo.NumThreadsPerEu = numThreadsPerEu;
|
||||
|
||||
std::unique_ptr<MockDevice> mockDevice(MockDevice::createWithNewExecutionEnvironment<MockDevice>(&hwInfo, 0));
|
||||
mockDevice->mockReleaseHelper = &mockReleaseHelper;
|
||||
@@ -113,6 +115,7 @@ TEST(RayTracingHelperTests, whenNumRtStacksPerDssExceedsMaxThenReturnsMaxRtStack
|
||||
hwInfo.gtSystemInfo.MaxEuPerSubSlice = 512;
|
||||
hwInfo.gtSystemInfo.ThreadCount = 2048;
|
||||
hwInfo.gtSystemInfo.EUCount = 256;
|
||||
hwInfo.gtSystemInfo.NumThreadsPerEu = hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount;
|
||||
|
||||
std::unique_ptr<MockDevice> mockDevice(MockDevice::createWithNewExecutionEnvironment<MockDevice>(&hwInfo, 0));
|
||||
mockDevice->mockReleaseHelper = &mockReleaseHelper;
|
||||
@@ -120,4 +123,4 @@ TEST(RayTracingHelperTests, whenNumRtStacksPerDssExceedsMaxThenReturnsMaxRtStack
|
||||
uint32_t maxSizeOfRtStacksPerDss = 4096;
|
||||
uint32_t result = RayTracingHelper::getNumRtStacksPerDss(*mockDevice);
|
||||
EXPECT_EQ(maxSizeOfRtStacksPerDss, result);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,7 +128,7 @@ HWTEST_F(PreambleTest, givenDebuggerInitializedAndMidThreadPreemptionWhenGetAddi
|
||||
|
||||
HWTEST_F(PreambleTest, givenDefaultPreambleWhenGetThreadsMaxNumberIsCalledThenMaximumNumberOfThreadsIsReturned) {
|
||||
const HardwareInfo &hwInfo = *defaultHwInfo;
|
||||
uint32_t threadsPerEU = (hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount) + hwInfo.capabilityTable.extraQuantityThreadsPerEU;
|
||||
uint32_t threadsPerEU = hwInfo.gtSystemInfo.NumThreadsPerEu + hwInfo.capabilityTable.extraQuantityThreadsPerEU;
|
||||
uint32_t value = GfxCoreHelper::getMaxThreadsForVfe(hwInfo);
|
||||
|
||||
uint32_t expected = hwInfo.gtSystemInfo.EUCount * threadsPerEU;
|
||||
@@ -137,7 +137,7 @@ HWTEST_F(PreambleTest, givenDefaultPreambleWhenGetThreadsMaxNumberIsCalledThenMa
|
||||
|
||||
HWTEST_F(PreambleTest, givenMaxHwThreadsPercentDebugVariableWhenGetThreadsMaxNumberIsCalledThenMaximumNumberOfThreadsIsCappedToRequestedNumber) {
|
||||
const HardwareInfo &hwInfo = *defaultHwInfo;
|
||||
uint32_t threadsPerEU = (hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount) + hwInfo.capabilityTable.extraQuantityThreadsPerEU;
|
||||
uint32_t threadsPerEU = hwInfo.gtSystemInfo.NumThreadsPerEu + hwInfo.capabilityTable.extraQuantityThreadsPerEU;
|
||||
DebugManagerStateRestore debugManagerStateRestore;
|
||||
debugManager.flags.MaxHwThreadsPercent.set(80);
|
||||
uint32_t value = GfxCoreHelper::getMaxThreadsForVfe(hwInfo);
|
||||
@@ -148,7 +148,7 @@ HWTEST_F(PreambleTest, givenMaxHwThreadsPercentDebugVariableWhenGetThreadsMaxNum
|
||||
|
||||
HWTEST_F(PreambleTest, givenMinHwThreadsUnoccupiedDebugVariableWhenGetThreadsMaxNumberIsCalledThenMaximumNumberOfThreadsIsCappedToMatchRequestedNumber) {
|
||||
const HardwareInfo &hwInfo = *defaultHwInfo;
|
||||
uint32_t threadsPerEU = (hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount) + hwInfo.capabilityTable.extraQuantityThreadsPerEU;
|
||||
uint32_t threadsPerEU = hwInfo.gtSystemInfo.NumThreadsPerEu + hwInfo.capabilityTable.extraQuantityThreadsPerEU;
|
||||
DebugManagerStateRestore debugManagerStateRestore;
|
||||
debugManager.flags.MinHwThreadsUnoccupied.set(2);
|
||||
uint32_t value = GfxCoreHelper::getMaxThreadsForVfe(hwInfo);
|
||||
|
||||
@@ -37,7 +37,6 @@ TEST_F(ReleaseHelper1255Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_TRUE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_FALSE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_TRUE(releaseHelper->isGlobalBindlessAllocatorEnabled());
|
||||
EXPECT_EQ(8u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_EQ(0u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_TRUE(releaseHelper->isNumRtStacksPerDssFixedValue());
|
||||
@@ -81,10 +80,6 @@ TEST_F(ReleaseHelper1255Tests, whenProgrammAdditionalStallPriorToBarrierWithTime
|
||||
whenProgrammAdditionalStallPriorToBarrierWithTimestampCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1255Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1255Tests, whenIsPostImageWriteFlushRequiredCalledThenTrueReturned) {
|
||||
for (auto &revision : getRevisions()) {
|
||||
ipVersion.revision = revision;
|
||||
|
||||
@@ -37,7 +37,6 @@ TEST_F(ReleaseHelper1256Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_TRUE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_FALSE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_TRUE(releaseHelper->isGlobalBindlessAllocatorEnabled());
|
||||
EXPECT_EQ(8u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_EQ(0u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_TRUE(releaseHelper->isNumRtStacksPerDssFixedValue());
|
||||
@@ -81,10 +80,6 @@ TEST_F(ReleaseHelper1256Tests, whenProgrammAdditionalStallPriorToBarrierWithTime
|
||||
whenProgrammAdditionalStallPriorToBarrierWithTimestampCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1256Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1256Tests, whenIsPostImageWriteFlushRequiredCalledThenTrueReturned) {
|
||||
for (auto &revision : getRevisions()) {
|
||||
ipVersion.revision = revision;
|
||||
|
||||
@@ -37,7 +37,6 @@ TEST_F(ReleaseHelper1257Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_TRUE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_FALSE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_TRUE(releaseHelper->isGlobalBindlessAllocatorEnabled());
|
||||
EXPECT_EQ(8u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_EQ(0u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_TRUE(releaseHelper->isNumRtStacksPerDssFixedValue());
|
||||
@@ -80,9 +79,6 @@ TEST_F(ReleaseHelper1257Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTru
|
||||
TEST_F(ReleaseHelper1257Tests, whenProgrammAdditionalStallPriorToBarrierWithTimestampCalledThenFalseReturned) {
|
||||
whenProgrammAdditionalStallPriorToBarrierWithTimestampCalledThenFalseReturned();
|
||||
}
|
||||
TEST_F(ReleaseHelper1257Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1257Tests, whenIsPostImageWriteFlushRequiredCalledThenTrueReturned) {
|
||||
for (auto &revision : getRevisions()) {
|
||||
|
||||
@@ -34,7 +34,6 @@ TEST_F(ReleaseHelper1260Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_TRUE(releaseHelper->isResolvingSubDeviceIDNeeded());
|
||||
EXPECT_TRUE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_TRUE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_EQ(8u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_EQ(0u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_TRUE(releaseHelper->isNumRtStacksPerDssFixedValue());
|
||||
@@ -70,10 +69,6 @@ TEST_F(ReleaseHelper1260Tests, whenProgrammAdditionalStallPriorToBarrierWithTime
|
||||
whenProgrammAdditionalStallPriorToBarrierWithTimestampCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1260Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1260Tests, whenIsPostImageWriteFlushRequiredCalledThenFalseReturned) {
|
||||
whenIsPostImageWriteFlushRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ TEST_F(ReleaseHelper1261Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_TRUE(releaseHelper->isResolvingSubDeviceIDNeeded());
|
||||
EXPECT_TRUE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_TRUE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_EQ(8u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_EQ(0u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_TRUE(releaseHelper->isNumRtStacksPerDssFixedValue());
|
||||
@@ -69,10 +68,6 @@ TEST_F(ReleaseHelper1261Tests, whenProgrammAdditionalStallPriorToBarrierWithTime
|
||||
whenProgrammAdditionalStallPriorToBarrierWithTimestampCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1261Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1261Tests, whenIsPostImageWriteFlushRequiredCalledThenFalseReturned) {
|
||||
whenIsPostImageWriteFlushRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -38,7 +38,6 @@ TEST_F(ReleaseHelper1270Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_FALSE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_FALSE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_TRUE(releaseHelper->isGlobalBindlessAllocatorEnabled());
|
||||
EXPECT_EQ(8u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_EQ(0u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_TRUE(releaseHelper->isNumRtStacksPerDssFixedValue());
|
||||
@@ -82,9 +81,6 @@ TEST_F(ReleaseHelper1270Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTru
|
||||
TEST_F(ReleaseHelper1270Tests, whenProgrammAdditionalStallPriorToBarrierWithTimestampCalledThenFalseReturned) {
|
||||
whenProgrammAdditionalStallPriorToBarrierWithTimestampCalledThenFalseReturned();
|
||||
}
|
||||
TEST_F(ReleaseHelper1270Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1270Tests, whenIsPostImageWriteFlushRequiredCalledThenFalseReturned) {
|
||||
whenIsPostImageWriteFlushRequiredCalledThenFalseReturned();
|
||||
|
||||
@@ -38,7 +38,6 @@ TEST_F(ReleaseHelper1271Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_FALSE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_FALSE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_TRUE(releaseHelper->isGlobalBindlessAllocatorEnabled());
|
||||
EXPECT_EQ(8u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_EQ(0u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_TRUE(releaseHelper->isNumRtStacksPerDssFixedValue());
|
||||
@@ -83,10 +82,6 @@ TEST_F(ReleaseHelper1271Tests, whenProgrammAdditionalStallPriorToBarrierWithTime
|
||||
whenProgrammAdditionalStallPriorToBarrierWithTimestampCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1271Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1271Tests, whenIsPostImageWriteFlushRequiredCalledThenFalseReturned) {
|
||||
whenIsPostImageWriteFlushRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -37,7 +37,6 @@ TEST_F(ReleaseHelper1274Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_FALSE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_FALSE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_TRUE(releaseHelper->isGlobalBindlessAllocatorEnabled());
|
||||
EXPECT_EQ(8u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_EQ(0u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_TRUE(releaseHelper->isNumRtStacksPerDssFixedValue());
|
||||
@@ -78,10 +77,6 @@ TEST_F(ReleaseHelper1274Tests, whenProgrammAdditionalStallPriorToBarrierWithTime
|
||||
whenProgrammAdditionalStallPriorToBarrierWithTimestampCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1274Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper1274Tests, whenIsPostImageWriteFlushRequiredCalledThenFalseReturned) {
|
||||
whenIsPostImageWriteFlushRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@ TEST_F(ReleaseHelper2001Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_TRUE(releaseHelper->isAuxSurfaceModeOverrideRequired());
|
||||
EXPECT_TRUE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_FALSE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_EQ(8u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_EQ(0u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_TRUE(releaseHelper->isGlobalBindlessAllocatorEnabled());
|
||||
@@ -76,10 +75,6 @@ TEST_F(ReleaseHelper2001Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTru
|
||||
whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper2001Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper2001Tests, whenIsPostImageWriteFlushRequiredCalledThenFalseReturned) {
|
||||
whenIsPostImageWriteFlushRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -37,7 +37,6 @@ TEST_F(ReleaseHelper2002Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_TRUE(releaseHelper->isAuxSurfaceModeOverrideRequired());
|
||||
EXPECT_TRUE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_FALSE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_EQ(8u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_EQ(0u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_TRUE(releaseHelper->isNumRtStacksPerDssFixedValue());
|
||||
@@ -76,10 +75,6 @@ TEST_F(ReleaseHelper2002Tests, whenIsBlitImageAllowedForDepthFormatCalledThenTru
|
||||
whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper2002Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper2002Tests, whenIsPostImageWriteFlushRequiredCalledThenFalseReturned) {
|
||||
whenIsPostImageWriteFlushRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -37,7 +37,6 @@ TEST_F(ReleaseHelper2004Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_TRUE(releaseHelper->isAuxSurfaceModeOverrideRequired());
|
||||
EXPECT_TRUE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_FALSE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_EQ(8u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_EQ(0u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_TRUE(releaseHelper->isGlobalBindlessAllocatorEnabled());
|
||||
@@ -82,10 +81,6 @@ TEST_F(ReleaseHelper2004Tests, whenProgrammAdditionalStallPriorToBarrierWithTime
|
||||
whenProgrammAdditionalStallPriorToBarrierWithTimestampCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper2004Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper2004Tests, whenIsPostImageWriteFlushRequiredCalledThenFalseReturned) {
|
||||
whenIsPostImageWriteFlushRequiredCalledThenFalseReturned();
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@ TEST_F(ReleaseHelper3000Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_TRUE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_FALSE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_TRUE(releaseHelper->isGlobalBindlessAllocatorEnabled());
|
||||
EXPECT_EQ(10u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_TRUE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_EQ(64u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isNumRtStacksPerDssFixedValue());
|
||||
@@ -48,10 +47,6 @@ TEST_F(ReleaseHelper3000Tests, whenGettingSupportedNumGrfsThenCorrectValuesAreRe
|
||||
whenGettingSupportedNumGrfsThenValuesUpTo256Returned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper3000Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper3000Tests, whenGettingThreadsPerEuConfigsThenCorrectValueIsReturnedBasedOnNumThreadPerEu) {
|
||||
whenGettingThreadsPerEuConfigsThenCorrectValueIsReturnedBasedOnNumThreadPerEu();
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@ TEST_F(ReleaseHelper3001Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_TRUE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_FALSE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_TRUE(releaseHelper->isGlobalBindlessAllocatorEnabled());
|
||||
EXPECT_EQ(10u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_TRUE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_EQ(64u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isNumRtStacksPerDssFixedValue());
|
||||
@@ -48,10 +47,6 @@ TEST_F(ReleaseHelper3001Tests, whenGettingSupportedNumGrfsThenCorrectValuesAreRe
|
||||
whenGettingSupportedNumGrfsThenValuesUpTo256Returned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper3001Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper3001Tests, whenGettingThreadsPerEuConfigsThenCorrectValueIsReturnedBasedOnNumThreadPerEu) {
|
||||
whenGettingThreadsPerEuConfigsThenCorrectValueIsReturnedBasedOnNumThreadPerEu();
|
||||
}
|
||||
|
||||
@@ -36,7 +36,6 @@ TEST_F(ReleaseHelper3003Tests, whenGettingCapabilitiesThenCorrectPropertiesAreRe
|
||||
EXPECT_TRUE(releaseHelper->isRcsExposureDisabled());
|
||||
EXPECT_FALSE(releaseHelper->isBindlessAddressingDisabled());
|
||||
EXPECT_TRUE(releaseHelper->isGlobalBindlessAllocatorEnabled());
|
||||
EXPECT_EQ(10u, releaseHelper->getNumThreadsPerEu());
|
||||
EXPECT_FALSE(releaseHelper->isRayTracingSupported());
|
||||
EXPECT_EQ(0u, releaseHelper->getStackSizePerRay());
|
||||
EXPECT_TRUE(releaseHelper->isNumRtStacksPerDssFixedValue());
|
||||
@@ -48,10 +47,6 @@ TEST_F(ReleaseHelper3003Tests, whenGettingSupportedNumGrfsThenCorrectValuesAreRe
|
||||
whenGettingSupportedNumGrfsThenValuesUpTo256Returned();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper3003Tests, whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey) {
|
||||
whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
}
|
||||
|
||||
TEST_F(ReleaseHelper3003Tests, whenGettingThreadsPerEuConfigsThenCorrectValueIsReturnedBasedOnNumThreadPerEu) {
|
||||
whenGettingThreadsPerEuConfigsThenCorrectValueIsReturnedBasedOnNumThreadPerEu();
|
||||
}
|
||||
|
||||
@@ -115,21 +115,6 @@ void ReleaseHelperTestsBase::whenGettingSupportedNumGrfsThenValuesUpTo256Returne
|
||||
}
|
||||
}
|
||||
|
||||
void ReleaseHelperTestsBase::whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey() {
|
||||
DebugManagerStateRestore restorer;
|
||||
for (auto &revision : getRevisions()) {
|
||||
ipVersion.revision = revision;
|
||||
releaseHelper = ReleaseHelper::create(ipVersion);
|
||||
ASSERT_NE(nullptr, releaseHelper);
|
||||
debugManager.flags.OverrideNumThreadsPerEu.set(7);
|
||||
EXPECT_EQ(7u, releaseHelper->getNumThreadsPerEu());
|
||||
debugManager.flags.OverrideNumThreadsPerEu.set(8);
|
||||
EXPECT_EQ(8u, releaseHelper->getNumThreadsPerEu());
|
||||
debugManager.flags.OverrideNumThreadsPerEu.set(10);
|
||||
EXPECT_EQ(10u, releaseHelper->getNumThreadsPerEu());
|
||||
}
|
||||
}
|
||||
|
||||
void ReleaseHelperTestsBase::whenGettingThreadsPerEuConfigsThenCorrectValueIsReturnedBasedOnNumThreadPerEu() {
|
||||
for (auto &revision : getRevisions()) {
|
||||
ipVersion.revision = revision;
|
||||
|
||||
@@ -32,7 +32,6 @@ struct ReleaseHelperTestsBase : public ::testing::Test {
|
||||
void whenIsLocalOnlyAllowedCalledThenFalseReturned();
|
||||
void whenGettingPreferredSlmSizeThenAllEntriesEmpty();
|
||||
void whenGettingSupportedNumGrfsThenValuesUpTo256Returned();
|
||||
void whenGettingNumThreadsPerEuThenCorrectValueIsReturnedBasedOnOverrideNumThreadsPerEuDebugKey();
|
||||
void whenGettingThreadsPerEuConfigsThenCorrectValueIsReturnedBasedOnNumThreadPerEu();
|
||||
void whenIsBlitImageAllowedForDepthFormatCalledThenTrueReturned();
|
||||
void whenProgrammAdditionalStallPriorToBarrierWithTimestampCalledThenFalseReturned();
|
||||
|
||||
@@ -217,13 +217,13 @@ PVCTEST_F(PvcProductHelper, givenDeviceIdThenProperMaxThreadsForWorkgroupIsRetur
|
||||
|
||||
for (const auto &deviceId : pvcXtDeviceIds) {
|
||||
hwInfo.platform.usDeviceID = deviceId;
|
||||
uint32_t numThreadsPerEU = hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount;
|
||||
uint32_t numThreadsPerEU = hwInfo.gtSystemInfo.NumThreadsPerEu;
|
||||
EXPECT_EQ(64u * numThreadsPerEU, productHelper->getMaxThreadsForWorkgroupInDSSOrSS(hwInfo, 64u, 64u));
|
||||
}
|
||||
|
||||
for (const auto &deviceId : pvcXtVgDeviceIds) {
|
||||
hwInfo.platform.usDeviceID = deviceId;
|
||||
uint32_t numThreadsPerEU = hwInfo.gtSystemInfo.ThreadCount / hwInfo.gtSystemInfo.EUCount;
|
||||
uint32_t numThreadsPerEU = hwInfo.gtSystemInfo.NumThreadsPerEu;
|
||||
EXPECT_EQ(64u * numThreadsPerEU, productHelper->getMaxThreadsForWorkgroupInDSSOrSS(hwInfo, 64u, 64u));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user