Revert "Limit cooperative dispatch support to platforms supporting cooperativ...

This reverts commit c124bfbc6c.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
This commit is contained in:
Compute-Runtime-Validation
2022-12-16 02:04:47 +01:00
committed by Compute-Runtime-Automation
parent afd0784c16
commit 1894d2da5b
11 changed files with 23 additions and 193 deletions

View File

@@ -1433,88 +1433,3 @@ TEST(GfxCoreHelperTests, whenIsDynamicallyPopulatedisTrueThengetHighestEnabledSl
auto maxSlice = gfxCoreHelper.getHighestEnabledSlice(hwInfo);
EXPECT_EQ(maxSlice, 7u);
}
HWTEST2_F(GfxCoreHelperTest, WhenIsRcsAvailableIsCalledThenTrueIsReturned, IsAtMostXeHpgCore) {
auto &gfxCoreHelper = GfxCoreHelper::get(defaultHwInfo->platform.eRenderCoreFamily);
EXPECT_TRUE(gfxCoreHelper.isRcsAvailable(*defaultHwInfo));
}
using GfxCoreHelperAdjustMaxWorkGroupCountTests = ::testing::Test;
HWTEST_F(GfxCoreHelperAdjustMaxWorkGroupCountTests, GivenCooperativeEngineSupportedAndNotUsedWhenAdjustMaxWorkGroupCountIsCalledThenSmallerValueIsReturned) {
auto hwInfo = *defaultHwInfo;
auto &gfxCoreHelper = NEO::GfxCoreHelper::get(hwInfo.platform.eRenderCoreFamily);
auto &productHelper = *NEO::ProductHelper::get(hwInfo.platform.eProductFamily);
hwInfo.capabilityTable.defaultEngineType = aub_stream::EngineType::ENGINE_CCS;
hwInfo.featureTable.flags.ftrRcsNode = false;
uint32_t revisions[] = {REVISION_A0, REVISION_B};
for (auto &revision : revisions) {
auto hwRevId = productHelper.getHwRevIdFromStepping(revision, hwInfo);
if (hwRevId == CommonConstants::invalidStepping) {
continue;
}
hwInfo.platform.usRevId = hwRevId;
for (auto isEngineInstanced : ::testing::Bool()) {
for (auto isRcsEnabled : ::testing::Bool()) {
hwInfo.featureTable.flags.ftrRcsNode = isRcsEnabled;
for (auto engineGroupType : {EngineGroupType::RenderCompute, EngineGroupType::Compute, EngineGroupType::CooperativeCompute}) {
if (productHelper.isCooperativeEngineSupported(hwInfo)) {
bool disallowDispatch = (engineGroupType == EngineGroupType::RenderCompute) ||
((engineGroupType == EngineGroupType::Compute) && isRcsEnabled);
bool applyLimitation = !isEngineInstanced &&
(engineGroupType != EngineGroupType::CooperativeCompute);
if (disallowDispatch) {
EXPECT_EQ(1u, gfxCoreHelper.adjustMaxWorkGroupCount(4u, engineGroupType, hwInfo, isEngineInstanced));
EXPECT_EQ(1u, gfxCoreHelper.adjustMaxWorkGroupCount(1024u, engineGroupType, hwInfo, isEngineInstanced));
} else if (applyLimitation) {
hwInfo.gtSystemInfo.CCSInfo.NumberOfCCSEnabled = 4;
EXPECT_EQ(1u, gfxCoreHelper.adjustMaxWorkGroupCount(4u, engineGroupType, hwInfo, isEngineInstanced));
EXPECT_EQ(256u, gfxCoreHelper.adjustMaxWorkGroupCount(1024u, engineGroupType, hwInfo, isEngineInstanced));
hwInfo.gtSystemInfo.CCSInfo.NumberOfCCSEnabled = 2;
EXPECT_EQ(2u, gfxCoreHelper.adjustMaxWorkGroupCount(4u, engineGroupType, hwInfo, isEngineInstanced));
EXPECT_EQ(512u, gfxCoreHelper.adjustMaxWorkGroupCount(1024u, engineGroupType, hwInfo, isEngineInstanced));
} else {
EXPECT_EQ(4u, gfxCoreHelper.adjustMaxWorkGroupCount(4u, engineGroupType, hwInfo, isEngineInstanced));
EXPECT_EQ(1024u, gfxCoreHelper.adjustMaxWorkGroupCount(1024u, engineGroupType, hwInfo, isEngineInstanced));
}
} else {
EXPECT_EQ(1u, gfxCoreHelper.adjustMaxWorkGroupCount(4u, engineGroupType, hwInfo, isEngineInstanced));
EXPECT_EQ(1u, gfxCoreHelper.adjustMaxWorkGroupCount(1024u, engineGroupType, hwInfo, isEngineInstanced));
}
}
}
}
}
}
template <typename FamilyType>
struct MockGfxCoreHelper : GfxCoreHelperHw<FamilyType> {
bool isCooperativeDispatchSupported(const EngineGroupType engineGroupType, const HardwareInfo &hwInfo) const override {
return isCooperativeDispatchSupportedValue;
}
bool isCooperativeDispatchSupportedValue = true;
};
HWTEST_F(GfxCoreHelperAdjustMaxWorkGroupCountTests, GivenDebugTogglesInfluencingMaxWorkGroupCountSetWhenAdjustMaxWorkGroupCountIsCalledThenDontChangeResult) {
MockGfxCoreHelper<FamilyType> gfxCoreHelper{};
auto hwInfo = *defaultHwInfo;
hwInfo.gtSystemInfo.CCSInfo.NumberOfCCSEnabled = 2;
for (auto isCooperativeDispatchSupported : ::testing::Bool()) {
gfxCoreHelper.isCooperativeDispatchSupportedValue = isCooperativeDispatchSupported;
{
DebugManagerStateRestore dbgRestorer;
DebugManager.flags.OverrideMaxWorkGroupCount.set(1);
EXPECT_EQ(4u, gfxCoreHelper.adjustMaxWorkGroupCount(4u, EngineGroupType::RenderCompute, hwInfo, false));
EXPECT_EQ(1024u, gfxCoreHelper.adjustMaxWorkGroupCount(1024u, EngineGroupType::RenderCompute, hwInfo, false));
}
{
DebugManagerStateRestore dbgRestorer;
DebugManager.flags.ForceTheoreticalMaxWorkGroupCount.set(true);
EXPECT_EQ(4u, gfxCoreHelper.adjustMaxWorkGroupCount(4u, EngineGroupType::RenderCompute, hwInfo, false));
EXPECT_EQ(1024u, gfxCoreHelper.adjustMaxWorkGroupCount(1024u, EngineGroupType::RenderCompute, hwInfo, false));
}
}
}

View File

@@ -160,7 +160,7 @@ HWTEST2_F(GfxCoreHelperTestPvcAndLater, WhenIsCooperativeDispatchSupportedThenCo
EXPECT_TRUE(isCooperativeDispatchSupported);
}
} else {
EXPECT_FALSE(isCooperativeDispatchSupported);
EXPECT_TRUE(isCooperativeDispatchSupported);
}
}
}

View File

@@ -149,7 +149,7 @@ PVCTEST_F(EngineNodeHelperPvcTests, givenCccsDisabledWhenGetGpgpuEnginesCalledTh
EXPECT_EQ(aub_stream::ENGINE_BCS, engines[7].first);
}
PVCTEST_F(EngineNodeHelperPvcTests, givenCCSEngineWhenCallingIsCooperativeDispatchSupportedThenFalseIsReturned) {
PVCTEST_F(EngineNodeHelperPvcTests, givenCCSEngineWhenCallingIsCooperativeDispatchSupportedThenTrueIsReturned) {
const auto &gfxCoreHelper = GfxCoreHelper::get(renderCoreFamily);
auto hwInfo = *defaultHwInfo;
hwInfo.capabilityTable.defaultEngineType = aub_stream::ENGINE_CCS;
@@ -157,7 +157,7 @@ PVCTEST_F(EngineNodeHelperPvcTests, givenCCSEngineWhenCallingIsCooperativeDispat
auto engineGroupType = gfxCoreHelper.getEngineGroupType(pDevice->getDefaultEngine().getEngineType(),
pDevice->getDefaultEngine().getEngineUsage(), hwInfo);
auto retVal = gfxCoreHelper.isCooperativeDispatchSupported(engineGroupType, hwInfo);
EXPECT_FALSE(retVal);
EXPECT_TRUE(retVal);
}
PVCTEST_F(EngineNodeHelperPvcTests, givenCCCSEngineAndRevisionBWhenCallingIsCooperativeDispatchSupportedThenFalseIsReturned) {
@@ -169,7 +169,7 @@ PVCTEST_F(EngineNodeHelperPvcTests, givenCCCSEngineAndRevisionBWhenCallingIsCoop
auto engineGroupType = gfxCoreHelper.getEngineGroupType(pDevice->getDefaultEngine().getEngineType(),
pDevice->getDefaultEngine().getEngineUsage(), hwInfo);
auto retVal = gfxCoreHelper.isCooperativeDispatchSupported(engineGroupType, hwInfo);
EXPECT_FALSE(retVal);
EXPECT_TRUE(retVal);
hwInfo.platform.usRevId = productHelper.getHwRevIdFromStepping(REVISION_B, hwInfo);
retVal = gfxCoreHelper.isCooperativeDispatchSupported(engineGroupType, hwInfo);