mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-20 08:53:55 +08:00
Disable adjusting tg dispatch size on pvc
Disable only on asymmetric SKUs Disabling because of issues with specaccel Related-To: NEO-6989 Signed-off-by: Dominik Dabek <dominik.dabek@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
26144d38a6
commit
040dd8302c
@@ -36,7 +36,7 @@ void EncodeDispatchKernel<Family>::adjustInterfaceDescriptorData(INTERFACE_DESCR
|
|||||||
|
|
||||||
if (hwInfoConfig.isDisableOverdispatchAvailable(hwInfo)) {
|
if (hwInfoConfig.isDisableOverdispatchAvailable(hwInfo)) {
|
||||||
interfaceDescriptor.setThreadGroupDispatchSize(INTERFACE_DESCRIPTOR_DATA::THREAD_GROUP_DISPATCH_SIZE_TG_SIZE_1);
|
interfaceDescriptor.setThreadGroupDispatchSize(INTERFACE_DESCRIPTOR_DATA::THREAD_GROUP_DISPATCH_SIZE_TG_SIZE_1);
|
||||||
bool adjustTGDispatchSize = true;
|
bool adjustTGDispatchSize = hwInfo.gtSystemInfo.MaxDualSubSlicesSupported == hwInfo.gtSystemInfo.DualSubSliceCount;
|
||||||
if (DebugManager.flags.AdjustThreadGroupDispatchSize.get() != -1) {
|
if (DebugManager.flags.AdjustThreadGroupDispatchSize.get() != -1) {
|
||||||
adjustTGDispatchSize = !!DebugManager.flags.AdjustThreadGroupDispatchSize.get();
|
adjustTGDispatchSize = !!DebugManager.flags.AdjustThreadGroupDispatchSize.get();
|
||||||
}
|
}
|
||||||
@@ -49,7 +49,6 @@ void EncodeDispatchKernel<Family>::adjustInterfaceDescriptorData(INTERFACE_DESCR
|
|||||||
uint32_t availableThreadCount = hwHelper.calculateAvailableThreadCount(hwInfo, numGrf);
|
uint32_t availableThreadCount = hwHelper.calculateAvailableThreadCount(hwInfo, numGrf);
|
||||||
uint32_t numberOfThreadsInThreadGroup = interfaceDescriptor.getNumberOfThreadsInGpgpuThreadGroup();
|
uint32_t numberOfThreadsInThreadGroup = interfaceDescriptor.getNumberOfThreadsInGpgpuThreadGroup();
|
||||||
uint32_t dispatchedTotalThreadCount = numberOfThreadsInThreadGroup * threadGroupCount;
|
uint32_t dispatchedTotalThreadCount = numberOfThreadsInThreadGroup * threadGroupCount;
|
||||||
|
|
||||||
UNRECOVERABLE_IF(numberOfThreadsInThreadGroup == 0u);
|
UNRECOVERABLE_IF(numberOfThreadsInThreadGroup == 0u);
|
||||||
|
|
||||||
if (dispatchedTotalThreadCount <= availableThreadCount) {
|
if (dispatchedTotalThreadCount <= availableThreadCount) {
|
||||||
|
|||||||
@@ -510,6 +510,28 @@ XE_HPC_CORETEST_F(EncodeKernelXeHpcCoreTest, givenCleanHeapsAndSlmNotChangedAndU
|
|||||||
(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)));
|
(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XE_HPC_CORETEST_F(EncodeKernelXeHpcCoreTest, givenInterfaceDescriptorDataAndNonSymmetricalSkuWhenAdjustInterfaceDescriptorDataIsCalledThenThreadGroupDispatchSizeIsCorrectlySet) {
|
||||||
|
using INTERFACE_DESCRIPTOR_DATA = typename FamilyType::INTERFACE_DESCRIPTOR_DATA;
|
||||||
|
|
||||||
|
INTERFACE_DESCRIPTOR_DATA iddArg = FamilyType::cmdInitInterfaceDescriptorData;
|
||||||
|
const auto &hwInfoConfig = *HwInfoConfig::get(productFamily);
|
||||||
|
auto hwInfo = pDevice->getHardwareInfo();
|
||||||
|
hwInfo.gtSystemInfo.DualSubSliceCount = 32u;
|
||||||
|
ASSERT_NE(hwInfo.gtSystemInfo.DualSubSliceCount, hwInfo.gtSystemInfo.MaxDualSubSlicesSupported);
|
||||||
|
|
||||||
|
for (const auto &revision : {REVISION_A0, REVISION_B}) {
|
||||||
|
hwInfo.platform.usRevId = hwInfoConfig.getHwRevIdFromStepping(revision, hwInfo);
|
||||||
|
|
||||||
|
EncodeDispatchKernel<FamilyType>::adjustInterfaceDescriptorData(iddArg, hwInfo, 0, 0);
|
||||||
|
|
||||||
|
if (hwInfoConfig.isDisableOverdispatchAvailable(hwInfo)) {
|
||||||
|
EXPECT_EQ(INTERFACE_DESCRIPTOR_DATA::THREAD_GROUP_DISPATCH_SIZE_TG_SIZE_1, iddArg.getThreadGroupDispatchSize());
|
||||||
|
} else {
|
||||||
|
EXPECT_EQ(INTERFACE_DESCRIPTOR_DATA::THREAD_GROUP_DISPATCH_SIZE_TG_SIZE_8, iddArg.getThreadGroupDispatchSize());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
XE_HPC_CORETEST_F(EncodeKernelXeHpcCoreTest, givenDispatchSizeSmallerOrEqualToAvailableThreadCountWhenAdjustInterfaceDescriptorDataIsCalledThenThreadGroupDispatchSizeIsCorrectlySet) {
|
XE_HPC_CORETEST_F(EncodeKernelXeHpcCoreTest, givenDispatchSizeSmallerOrEqualToAvailableThreadCountWhenAdjustInterfaceDescriptorDataIsCalledThenThreadGroupDispatchSizeIsCorrectlySet) {
|
||||||
using INTERFACE_DESCRIPTOR_DATA = typename FamilyType::INTERFACE_DESCRIPTOR_DATA;
|
using INTERFACE_DESCRIPTOR_DATA = typename FamilyType::INTERFACE_DESCRIPTOR_DATA;
|
||||||
|
|
||||||
@@ -548,7 +570,11 @@ XE_HPC_CORETEST_F(EncodeKernelXeHpcCoreTest, givenNumberOfThreadsInThreadGroupWh
|
|||||||
|
|
||||||
EncodeDispatchKernel<FamilyType>::adjustInterfaceDescriptorData(iddArg, hwInfo, threadGroupCount, numGrf);
|
EncodeDispatchKernel<FamilyType>::adjustInterfaceDescriptorData(iddArg, hwInfo, threadGroupCount, numGrf);
|
||||||
|
|
||||||
|
if (hwInfo.gtSystemInfo.MaxDualSubSlicesSupported == hwInfo.gtSystemInfo.DualSubSliceCount) {
|
||||||
EXPECT_EQ(expectedThreadGroupDispatchSize, iddArg.getThreadGroupDispatchSize());
|
EXPECT_EQ(expectedThreadGroupDispatchSize, iddArg.getThreadGroupDispatchSize());
|
||||||
|
} else {
|
||||||
|
EXPECT_EQ(INTERFACE_DESCRIPTOR_DATA::THREAD_GROUP_DISPATCH_SIZE_TG_SIZE_1, iddArg.getThreadGroupDispatchSize());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user