mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-21 09:14:47 +08:00
Create method adjustWalkOrder
Signed-off-by: Katarzyna Cencelewska <katarzyna.cencelewska@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
b3814e41b4
commit
b2021498e2
@@ -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>
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user