Create method adjustWalkOrder

Signed-off-by: Katarzyna Cencelewska <katarzyna.cencelewska@intel.com>
This commit is contained in:
Katarzyna Cencelewska
2022-05-26 17:53:33 +00:00
committed by Compute-Runtime-Automation
parent b3814e41b4
commit b2021498e2
4 changed files with 13 additions and 2 deletions

View File

@@ -103,6 +103,8 @@ struct EncodeDispatchKernel {
static void adjustTimestampPacket(WALKER_TYPE &walkerCmd, const HardwareInfo &hwInfo); static void adjustTimestampPacket(WALKER_TYPE &walkerCmd, const HardwareInfo &hwInfo);
static void setupPostSyncMocs(WALKER_TYPE &walkerCmd, const RootDeviceEnvironment &rootDeviceEnvironment); static void setupPostSyncMocs(WALKER_TYPE &walkerCmd, const RootDeviceEnvironment &rootDeviceEnvironment);
static void adjustWalkOrder(WALKER_TYPE &walkerCmd, uint32_t requiredWorkGroupOrder);
}; };
template <typename GfxFamily> template <typename GfxFamily>

View File

@@ -504,4 +504,7 @@ inline void EncodeMiArbCheck<Family>::adjust(MI_ARB_CHECK &miArbCheck) {
template <typename Family> template <typename Family>
void EncodeDispatchKernel<Family>::setupPostSyncMocs(WALKER_TYPE &walkerCmd, const RootDeviceEnvironment &rootDeviceEnvironment) {} void EncodeDispatchKernel<Family>::setupPostSyncMocs(WALKER_TYPE &walkerCmd, const RootDeviceEnvironment &rootDeviceEnvironment) {}
template <typename Family>
void EncodeDispatchKernel<Family>::adjustWalkOrder(WALKER_TYPE &walkerCmd, uint32_t requiredWorkGroupOrder) {}
} // namespace NEO } // namespace NEO

View File

@@ -444,6 +444,7 @@ void EncodeDispatchKernel<Family>::encodeThreadData(WALKER_TYPE &walkerCmd,
walkerCmd.setGenerateLocalId(1); walkerCmd.setGenerateLocalId(1);
walkerCmd.setWalkOrder(requiredWorkGroupOrder); walkerCmd.setWalkOrder(requiredWorkGroupOrder);
adjustWalkOrder(walkerCmd, requiredWorkGroupOrder);
} }
if (inlineDataProgrammingRequired == true) { if (inlineDataProgrammingRequired == true) {
walkerCmd.setEmitInlineParameter(1); walkerCmd.setEmitInlineParameter(1);
@@ -743,4 +744,7 @@ inline void EncodeStoreMMIO<Family>::appendFlags(MI_STORE_REGISTER_MEM *storeReg
storeRegMem->setWorkloadPartitionIdOffsetEnable(workloadPartition); storeRegMem->setWorkloadPartitionIdOffsetEnable(workloadPartition);
} }
template <typename Family>
void EncodeDispatchKernel<Family>::adjustWalkOrder(WALKER_TYPE &walkerCmd, uint32_t requiredWorkGroupOrder) {}
} // namespace NEO } // namespace NEO

View File

@@ -17,9 +17,11 @@ constexpr uint32_t walkOrderPossibilties = 6u;
constexpr uint8_t X = 0; constexpr uint8_t X = 0;
constexpr uint8_t Y = 1; constexpr uint8_t Y = 1;
constexpr uint8_t Z = 2; constexpr uint8_t Z = 2;
constexpr std::array<uint8_t, 3> compatibleDimensionOrders[walkOrderPossibilties] = {{X, Y, Z}, // 0 1 2 constexpr std::array<uint8_t, 3> linearWalk = {X, Y, Z};
constexpr std::array<uint8_t, 3> yOrderWalk = {Y, X, Z};
constexpr std::array<uint8_t, 3> compatibleDimensionOrders[walkOrderPossibilties] = {linearWalk, // 0 1 2
{X, Z, Y}, // 0 2 1 {X, Z, Y}, // 0 2 1
{Y, X, Z}, // 1 0 2 yOrderWalk, // 1 0 2
{Z, X, Y}, // 1 2 0 {Z, X, Y}, // 1 2 0
{Y, Z, X}, // 2 0 1 {Y, Z, X}, // 2 0 1
{Z, Y, X}}; // 2 1 0 {Z, Y, X}}; // 2 1 0