fix: correct calculating max subslice space

computeMaxNeededSubSliceSpace is no longer needed as getHighestEnabledSubSlice
already determines maximum index from all enabled subslices

Related-To: NEO-12073
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2024-07-31 14:50:14 +00:00
committed by Compute-Runtime-Automation
parent 27ba5f5089
commit 67f2500c03
13 changed files with 8 additions and 61 deletions

View File

@@ -94,7 +94,7 @@ uint32_t GfxCoreHelper::getHighestEnabledSlice(const HardwareInfo &hwInfo) {
return highestEnabledSlice;
}
uint32_t getHighestEnabledSubSlice(const HardwareInfo &hwInfo) {
uint32_t GfxCoreHelper::getHighestEnabledSubSlice(const HardwareInfo &hwInfo) {
uint32_t numSubSlicesPerSlice = hwInfo.gtSystemInfo.MaxSubSlicesSupported / hwInfo.gtSystemInfo.MaxSlicesSupported;
uint32_t highestEnabledSliceIdx = GfxCoreHelper::getHighestEnabledSlice(hwInfo) - 1;
uint32_t highestSubSlice = (highestEnabledSliceIdx + 1) * numSubSlicesPerSlice;

View File

@@ -76,6 +76,7 @@ class GfxCoreHelper {
static bool cacheFlushAfterWalkerSupported(const HardwareInfo &hwInfo);
static uint32_t getHighestEnabledSlice(const HardwareInfo &hwInfo);
static uint32_t getHighestEnabledDualSubSlice(const HardwareInfo &hwInfo);
static uint32_t getHighestEnabledSubSlice(const HardwareInfo &hwInfo);
virtual bool timestampPacketWriteSupported() const = 0;
virtual bool isTimestampWaitSupportedForQueues() const = 0;
virtual bool isUpdateTaskCountFromWaitSupported() const = 0;

View File

@@ -26,9 +26,8 @@ uint32_t GfxCoreHelperHw<GfxFamily>::getComputeUnitsUsedForScratch(const RootDev
return static_cast<uint32_t>(debugManager.flags.OverrideNumComputeUnitsForScratch.get());
}
auto &productHelper = rootDeviceEnvironment.getHelper<ProductHelper>();
auto hwInfo = rootDeviceEnvironment.getHardwareInfo();
auto maxSubSlice = productHelper.computeMaxNeededSubSliceSpace(*hwInfo);
auto maxSubSlice = GfxCoreHelper::getHighestEnabledSubSlice(*hwInfo);
// XeHP and later products return physical threads
return maxSubSlice * hwInfo->gtSystemInfo.MaxEuPerSubSlice * (hwInfo->gtSystemInfo.ThreadCount / hwInfo->gtSystemInfo.EUCount);
}