Update StateComputeModeProperties design

Related-To: NEO-6728

Signed-off-by: Filip Hazubski <filip.hazubski@intel.com>
This commit is contained in:
Filip Hazubski
2022-03-08 13:46:04 +00:00
committed by Compute-Runtime-Automation
parent cd15c82eab
commit 43ed1acc63
4 changed files with 44 additions and 6 deletions

View File

@@ -47,8 +47,9 @@ set(NEO_CORE_COMMAND_STREAM
${CMAKE_CURRENT_SOURCE_DIR}/scratch_space_controller.h
${CMAKE_CURRENT_SOURCE_DIR}/scratch_space_controller_base.cpp
${CMAKE_CURRENT_SOURCE_DIR}/scratch_space_controller_base.h
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}stream_properties.cpp
${CMAKE_CURRENT_SOURCE_DIR}/stream_properties.cpp
${CMAKE_CURRENT_SOURCE_DIR}/stream_properties.h
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}stream_properties_extra.cpp
${CMAKE_CURRENT_SOURCE_DIR}/stream_property.h
${CMAKE_CURRENT_SOURCE_DIR}/submission_status.h
${CMAKE_CURRENT_SOURCE_DIR}/submissions_aggregator.cpp

View File

@@ -19,7 +19,14 @@ struct StateComputeModeProperties {
void setProperties(bool requiresCoherency, uint32_t numGrfRequired, int32_t threadArbitrationPolicy, const HardwareInfo &hwInfo);
void setProperties(const StateComputeModeProperties &properties);
bool isDirty() const;
protected:
void clearIsDirty();
bool isDirtyExtra() const;
void setPropertiesExtra();
void setPropertiesExtra(const StateComputeModeProperties &properties);
void clearIsDirtyExtra();
};
struct FrontEndProperties {
@@ -28,9 +35,12 @@ struct FrontEndProperties {
StreamProperty disableOverdispatch{};
StreamProperty singleSliceDispatchCcsMode{};
void setProperties(bool isCooperativeKernel, bool disableEUFusion, bool disableOverdispatch, int32_t engineInstancedDevice, const HardwareInfo &hwInfo);
void setProperties(bool isCooperativeKernel, bool disableEUFusion, bool disableOverdispatch, int32_t engineInstancedDevice,
const HardwareInfo &hwInfo);
void setProperties(const FrontEndProperties &properties);
bool isDirty() const;
protected:
void clearIsDirty();
};

View File

@@ -45,6 +45,8 @@ void StateComputeModeProperties::setProperties(bool requiresCoherency, uint32_t
threadArbitrationPolicy = DebugManager.flags.OverrideThreadArbitrationPolicy.get();
}
this->threadArbitrationPolicy.set(threadArbitrationPolicy);
setPropertiesExtra();
}
void StateComputeModeProperties::setProperties(const StateComputeModeProperties &properties) {
@@ -55,11 +57,13 @@ void StateComputeModeProperties::setProperties(const StateComputeModeProperties
zPassAsyncComputeThreadLimit.set(properties.zPassAsyncComputeThreadLimit.value);
pixelAsyncComputeThreadLimit.set(properties.pixelAsyncComputeThreadLimit.value);
threadArbitrationPolicy.set(properties.threadArbitrationPolicy.value);
setPropertiesExtra(properties);
}
bool StateComputeModeProperties::isDirty() const {
return isCoherencyRequired.isDirty || largeGrfMode.isDirty || zPassAsyncComputeThreadLimit.isDirty ||
pixelAsyncComputeThreadLimit.isDirty || threadArbitrationPolicy.isDirty;
pixelAsyncComputeThreadLimit.isDirty || threadArbitrationPolicy.isDirty || isDirtyExtra();
}
void StateComputeModeProperties::clearIsDirty() {
@@ -68,10 +72,12 @@ void StateComputeModeProperties::clearIsDirty() {
zPassAsyncComputeThreadLimit.isDirty = false;
pixelAsyncComputeThreadLimit.isDirty = false;
threadArbitrationPolicy.isDirty = false;
clearIsDirtyExtra();
}
void FrontEndProperties::setProperties(bool isCooperativeKernel, bool disableEUFusion, bool disableOverdispatch, int32_t engineInstancedDevice,
const HardwareInfo &hwInfo) {
void FrontEndProperties::setProperties(bool isCooperativeKernel, bool disableEUFusion, bool disableOverdispatch,
int32_t engineInstancedDevice, const HardwareInfo &hwInfo) {
clearIsDirty();
this->computeDispatchAllWalkerEnable.set(isCooperativeKernel);
@@ -90,7 +96,8 @@ void FrontEndProperties::setProperties(const FrontEndProperties &properties) {
}
bool FrontEndProperties::isDirty() const {
return disableOverdispatch.isDirty || disableEUFusion.isDirty || singleSliceDispatchCcsMode.isDirty || computeDispatchAllWalkerEnable.isDirty;
return disableOverdispatch.isDirty || disableEUFusion.isDirty || singleSliceDispatchCcsMode.isDirty ||
computeDispatchAllWalkerEnable.isDirty;
}
void FrontEndProperties::clearIsDirty() {

View File

@@ -0,0 +1,20 @@
/*
* Copyright (C) 2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/command_stream/stream_properties.h"
using namespace NEO;
void StateComputeModeProperties::setPropertiesExtra() {
}
void StateComputeModeProperties::setPropertiesExtra(const StateComputeModeProperties &properties) {
}
bool StateComputeModeProperties::isDirtyExtra() const {
return false;
}
void StateComputeModeProperties::clearIsDirtyExtra() {
}