Revert "Add method to set systolic mode"

This reverts commit 7ad007e.

Signed-off-by: Szymon Morek <szymon.morek@intel.com>
This commit is contained in:
Szymon Morek
2021-08-16 11:20:42 +00:00
committed by Compute-Runtime-Automation
parent 6c66c4ab10
commit 945a7cf905
8 changed files with 18 additions and 72 deletions

View File

@@ -579,12 +579,3 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, RenderSurfaceStateXeHPPlusTests, givenSpecificProdu
EXPECT_EQ(FamilyType::RENDER_SURFACE_STATE::COHERENCY_TYPE_GPU_COHERENT, rssCmd.getCoherencyType());
}
HWCMDTEST_F(IGFX_XE_HP_CORE, PreambleFixture, whenCallingIsSpecialPipelineSelectModeChangedThenReturnCorrectValue) {
using PIPELINE_SELECT = typename FamilyType::PIPELINE_SELECT;
bool oldPipelineSelectSpecialMode = true;
bool newPipelineSelectSpecialMode = false;
auto result = PreambleHelper<FamilyType>::isSpecialPipelineSelectModeChanged(oldPipelineSelectSpecialMode, newPipelineSelectSpecialMode, *defaultHwInfo);
EXPECT_TRUE(result);
}

View File

@@ -84,7 +84,6 @@ class UltCommandStreamReceiver : public CommandStreamReceiverHw<GfxFamily>, publ
using BaseClass::CommandStreamReceiver::lastSentL3Config;
using BaseClass::CommandStreamReceiver::lastSentThreadArbitrationPolicy;
using BaseClass::CommandStreamReceiver::lastSentUseGlobalAtomics;
using BaseClass::CommandStreamReceiver::lastSpecialPipelineSelectMode;
using BaseClass::CommandStreamReceiver::lastVmeSubslicesConfig;
using BaseClass::CommandStreamReceiver::latestFlushedTaskCount;
using BaseClass::CommandStreamReceiver::latestSentStatelessMocsConfig;

View File

@@ -69,7 +69,7 @@ void EncodeDispatchKernel<Family>::encode(CommandContainer &container,
if (kernelDescriptor.extendedInfo) {
bool specialModeRequired = kernelDescriptor.extendedInfo->specialPipelineSelectModeRequired();
if (PreambleHelper<Family>::isSpecialPipelineSelectModeChanged(container.lastPipelineSelectModeRequired, specialModeRequired, hwInfo)) {
if (container.lastPipelineSelectModeRequired != specialModeRequired) {
container.lastPipelineSelectModeRequired = specialModeRequired;
EncodeComputeMode<Family>::adjustPipelineSelect(container, kernelDescriptor);
}
@@ -539,10 +539,18 @@ template <typename Family>
void EncodeComputeMode<Family>::adjustPipelineSelect(CommandContainer &container, const NEO::KernelDescriptor &kernelDescriptor) {
using PIPELINE_SELECT = typename Family::PIPELINE_SELECT;
auto pipelineSelectCmd = Family::cmdInitPipelineSelect;
auto isSpecialModeSelected = kernelDescriptor.extendedInfo && kernelDescriptor.extendedInfo->specialPipelineSelectModeRequired();
PreambleHelper<Family>::appendProgramPipelineSelect(&pipelineSelectCmd, isSpecialModeSelected, container.getDevice()->getHardwareInfo());
if (kernelDescriptor.extendedInfo && kernelDescriptor.extendedInfo->specialPipelineSelectModeRequired()) {
pipelineSelectCmd.setSystolicModeEnable(true);
} else {
pipelineSelectCmd.setSystolicModeEnable(false);
}
if (DebugManager.flags.OverrideSystolicPipelineSelect.get() != -1) {
pipelineSelectCmd.setSystolicModeEnable(DebugManager.flags.OverrideSystolicPipelineSelect.get());
}
pipelineSelectCmd.setMaskBits(pipelineSelectSystolicModeEnableMaskBits);
pipelineSelectCmd.setPipelineSelection(PIPELINE_SELECT::PIPELINE_SELECTION_GPGPU);
auto buffer = container.getCommandStream()->getSpace(sizeof(pipelineSelectCmd));

View File

@@ -258,15 +258,12 @@ CompletionStamp CommandStreamReceiverHw<GfxFamily>::flushTask(
}
auto newL3Config = PreambleHelper<GfxFamily>::getL3Config(peekHwInfo(), dispatchFlags.useSLM);
auto isSpecialPipelineSelectModeChanged = PreambleHelper<GfxFamily>::isSpecialPipelineSelectModeChanged(lastSpecialPipelineSelectMode,
dispatchFlags.pipelineSelectArgs.specialPipelineSelectMode,
peekHwInfo());
csrSizeRequestFlags.l3ConfigChanged = this->lastSentL3Config != newL3Config;
csrSizeRequestFlags.coherencyRequestChanged = this->lastSentCoherencyRequest != static_cast<int8_t>(dispatchFlags.requiresCoherency);
csrSizeRequestFlags.preemptionRequestChanged = this->lastPreemptionMode != dispatchFlags.preemptionMode;
csrSizeRequestFlags.mediaSamplerConfigChanged = this->lastMediaSamplerConfig != static_cast<int8_t>(dispatchFlags.pipelineSelectArgs.mediaSamplerRequired);
csrSizeRequestFlags.specialPipelineSelectModeChanged = isSpecialPipelineSelectModeChanged;
csrSizeRequestFlags.specialPipelineSelectModeChanged = this->lastSpecialPipelineSelectMode != dispatchFlags.pipelineSelectArgs.specialPipelineSelectMode;
if (dispatchFlags.numGrfRequired == GrfConfig::NotApplicable) {
dispatchFlags.numGrfRequired = lastSentNumGrfRequired;

View File

@@ -37,7 +37,6 @@ struct PreambleHelper {
static void programPipelineSelect(LinearStream *pCommandStream,
const PipelineSelectArgs &pipelineSelectArgs,
const HardwareInfo &hwInfo);
static void appendProgramPipelineSelect(void *cmd, bool isSpecialModeSelected, const HardwareInfo &hwInfo);
static void programThreadArbitration(LinearStream *pCommandStream, uint32_t requiredThreadArbitrationPolicy);
static void programPreemption(LinearStream *pCommandStream, Device &device, GraphicsAllocation *preemptionCsr);
static void addPipeControlBeforeVfeCmd(LinearStream *pCommandStream, const HardwareInfo *hwInfo, EngineGroupType engineGroupType);
@@ -60,9 +59,6 @@ struct PreambleHelper {
static void programSemaphoreDelay(LinearStream *pCommandStream);
static uint32_t getL3Config(const HardwareInfo &hwInfo, bool useSLM);
static bool isL3Configurable(const HardwareInfo &hwInfo);
static bool isSystolicModeConfigurable(const HardwareInfo &hwInfo);
static bool isSpecialPipelineSelectModeChanged(bool lastSpecialPipelineSelectMode, bool newSpecialPipelineSelectMode,
const HardwareInfo &hwInfo);
static size_t getAdditionalCommandsSize(const Device &device);
static size_t getThreadArbitrationCommandsSize();
static size_t getVFECommandsSize();

View File

@@ -77,17 +77,4 @@ size_t PreambleHelper<GfxFamily>::getVFECommandsSize() {
return sizeof(MEDIA_VFE_STATE) + sizeof(PIPE_CONTROL);
}
template <typename GfxFamily>
void PreambleHelper<GfxFamily>::appendProgramPipelineSelect(void *cmd, bool isSpecialModeSelected, const HardwareInfo &hwInfo) {}
template <typename GfxFamily>
bool PreambleHelper<GfxFamily>::isSystolicModeConfigurable(const HardwareInfo &hwInfo) {
return false;
}
template <typename GfxFamily>
bool PreambleHelper<GfxFamily>::isSpecialPipelineSelectModeChanged(bool lastSpecialPipelineSelectMode, bool newSpecialPipelineSelectMode,
const HardwareInfo &hwInfo) {
return false;
}
} // namespace NEO

View File

@@ -22,12 +22,6 @@
namespace NEO {
template <>
void PreambleHelper<Family>::appendProgramPipelineSelect(void *cmd, bool isSpecialModeSelected, const HardwareInfo &hwInfo);
template <>
bool PreambleHelper<Family>::isSystolicModeConfigurable(const HardwareInfo &hwInfo);
template <>
void PreambleHelper<Family>::programPipelineSelect(LinearStream *pCommandStream,
const PipelineSelectArgs &pipelineSelectArgs,
@@ -51,13 +45,17 @@ void PreambleHelper<Family>::programPipelineSelect(LinearStream *pCommandStream,
auto pCmd = pCommandStream->getSpaceForCmd<PIPELINE_SELECT>();
auto mask = pipelineSelectEnablePipelineSelectMaskBits |
pipelineSelectMediaSamplerDopClockGateMaskBits;
pipelineSelectMediaSamplerDopClockGateMaskBits |
pipelineSelectSystolicModeEnableMaskBits;
cmd.setMaskBits(mask);
cmd.setPipelineSelection(PIPELINE_SELECT::PIPELINE_SELECTION_GPGPU);
cmd.setMediaSamplerDopClockGateEnable(!pipelineSelectArgs.mediaSamplerRequired);
cmd.setSystolicModeEnable(pipelineSelectArgs.specialPipelineSelectMode);
appendProgramPipelineSelect(&cmd, pipelineSelectArgs.specialPipelineSelectMode, hwInfo);
if (DebugManager.flags.OverrideSystolicPipelineSelect.get() != -1) {
cmd.setSystolicModeEnable(DebugManager.flags.OverrideSystolicPipelineSelect.get());
}
*pCmd = cmd;
@@ -69,25 +67,6 @@ void PreambleHelper<Family>::programPipelineSelect(LinearStream *pCommandStream,
}
}
template <>
void PreambleHelper<Family>::appendProgramPipelineSelect(void *cmd, bool isSpecialModeSelected, const HardwareInfo &hwInfo) {
using PIPELINE_SELECT = typename Family::PIPELINE_SELECT;
auto command = static_cast<PIPELINE_SELECT *>(cmd);
auto mask = command->getMaskBits();
if (PreambleHelper<Family>::isSystolicModeConfigurable(hwInfo)) {
command->setSystolicModeEnable(isSpecialModeSelected);
mask |= pipelineSelectSystolicModeEnableMaskBits;
}
if (DebugManager.flags.OverrideSystolicPipelineSelect.get() != -1) {
command->setSystolicModeEnable(DebugManager.flags.OverrideSystolicPipelineSelect.get());
mask |= pipelineSelectSystolicModeEnableMaskBits;
}
command->setMaskBits(mask);
}
template <>
void PreambleHelper<Family>::addPipeControlBeforeVfeCmd(LinearStream *pCommandStream, const HardwareInfo *hwInfo, EngineGroupType engineGroupType) {
}

View File

@@ -35,17 +35,6 @@ void PreambleHelper<Family>::appendProgramVFEState(const HardwareInfo &hwInfo, c
}
}
template <>
bool PreambleHelper<Family>::isSpecialPipelineSelectModeChanged(bool lastSpecialPipelineSelectMode, bool newSpecialPipelineSelectMode,
const HardwareInfo &hwInfo) {
return lastSpecialPipelineSelectMode != newSpecialPipelineSelectMode;
}
template <>
bool PreambleHelper<Family>::isSystolicModeConfigurable(const HardwareInfo &hwInfo) {
return true;
}
template struct PreambleHelper<Family>;
} // namespace NEO