mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-20 13:11:34 +08:00
refactor: change data fields for encoder of additional walker fields
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:

committed by
Compute-Runtime-Automation

parent
912bd8591a
commit
1e89058232
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2019-2024 Intel Corporation
|
* Copyright (C) 2019-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
@ -84,12 +84,12 @@ inline void HardwareInterface<GfxFamily>::programWalker(
|
|||||||
commandQueue.getDevice());
|
commandQueue.getDevice());
|
||||||
|
|
||||||
EncodeWalkerArgs encodeWalkerArgs{
|
EncodeWalkerArgs encodeWalkerArgs{
|
||||||
kernel.getKernelInfo().kernelDescriptor, // kernelDescriptor
|
kernel.getExecutionType(), // kernelExecutionType
|
||||||
kernel.getExecutionType(), // kernelExecutionType
|
RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder
|
||||||
RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder
|
0, // localRegionSize
|
||||||
0, // localRegionSize
|
0, // maxFrontEndThreads
|
||||||
0, // maxFrontEndThreads
|
false, // requiredSystemFence
|
||||||
false}; // requiredSystemFence
|
false}; // hasSample
|
||||||
EncodeDispatchKernel<GfxFamily>::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, encodeWalkerArgs);
|
EncodeDispatchKernel<GfxFamily>::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, encodeWalkerArgs);
|
||||||
*walkerCmdBuf = walkerCmd;
|
*walkerCmdBuf = walkerCmd;
|
||||||
}
|
}
|
||||||
|
@ -146,12 +146,12 @@ inline void HardwareInterface<GfxFamily>::programWalker(
|
|||||||
auto maxFrontEndThreads = device.getDeviceInfo().maxFrontEndThreads;
|
auto maxFrontEndThreads = device.getDeviceInfo().maxFrontEndThreads;
|
||||||
|
|
||||||
EncodeWalkerArgs encodeWalkerArgs{
|
EncodeWalkerArgs encodeWalkerArgs{
|
||||||
kernelInfo.kernelDescriptor, // kernelDescriptor
|
kernel.getExecutionType(), // kernelExecutionType
|
||||||
kernel.getExecutionType(), // kernelExecutionType
|
kernelAttributes.dispatchWalkOrder, // requiredDispatchWalkOrder
|
||||||
kernelAttributes.dispatchWalkOrder, // requiredDispatchWalkOrder
|
kernelAttributes.localRegionSize, // localRegionSize
|
||||||
kernelAttributes.localRegionSize, // localRegionSize
|
maxFrontEndThreads, // maxFrontEndThreads
|
||||||
maxFrontEndThreads, // maxFrontEndThreads
|
requiredSystemFence, // requiredSystemFence
|
||||||
requiredSystemFence}; // requiredSystemFence
|
kernelInfo.kernelDescriptor.kernelAttributes.flags.hasSample}; // hasSample
|
||||||
|
|
||||||
EncodeDispatchKernel<GfxFamily>::template encodeAdditionalWalkerFields<WalkerType>(rootDeviceEnvironment, walkerCmd, encodeWalkerArgs);
|
EncodeDispatchKernel<GfxFamily>::template encodeAdditionalWalkerFields<WalkerType>(rootDeviceEnvironment, walkerCmd, encodeWalkerArgs);
|
||||||
EncodeDispatchKernel<GfxFamily>::template encodeWalkerPostSyncFields<WalkerType>(walkerCmd, encodeWalkerArgs);
|
EncodeDispatchKernel<GfxFamily>::template encodeWalkerPostSyncFields<WalkerType>(walkerCmd, encodeWalkerArgs);
|
||||||
|
@ -25,14 +25,13 @@ XE2_HPG_CORETEST_F(WalkerDispatchTestsXe2HpGCore, whenEncodeAdditionalWalkerFiel
|
|||||||
MockExecutionEnvironment executionEnvironment;
|
MockExecutionEnvironment executionEnvironment;
|
||||||
auto walkerCmd = FamilyType::cmdInitGpgpuWalker;
|
auto walkerCmd = FamilyType::cmdInitGpgpuWalker;
|
||||||
|
|
||||||
KernelDescriptor kernelDescriptor;
|
|
||||||
EncodeWalkerArgs walkerArgs{
|
EncodeWalkerArgs walkerArgs{
|
||||||
kernelDescriptor, // kernelDescriptor
|
|
||||||
KernelExecutionType::concurrent, // kernelExecutionType
|
KernelExecutionType::concurrent, // kernelExecutionType
|
||||||
NEO::RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder
|
NEO::RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder
|
||||||
0, // localRegionSize
|
0, // localRegionSize
|
||||||
113, // maxFrontEndThreads
|
113, // maxFrontEndThreads
|
||||||
true}; // requiredSystemFence
|
true, // requiresMemoryFence
|
||||||
|
false}; // hasSample
|
||||||
{
|
{
|
||||||
EncodeDispatchKernel<FamilyType>::encodeComputeDispatchAllWalker(walkerCmd, &walkerCmd.getInterfaceDescriptor(), *executionEnvironment.rootDeviceEnvironments[0], walkerArgs);
|
EncodeDispatchKernel<FamilyType>::encodeComputeDispatchAllWalker(walkerCmd, &walkerCmd.getInterfaceDescriptor(), *executionEnvironment.rootDeviceEnvironments[0], walkerArgs);
|
||||||
EXPECT_TRUE(walkerCmd.getComputeDispatchAllWalkerEnable());
|
EXPECT_TRUE(walkerCmd.getComputeDispatchAllWalkerEnable());
|
||||||
|
@ -26,14 +26,13 @@ XE3_CORETEST_F(WalkerDispatchTestsXe3Core, whenEncodeAdditionalWalkerFieldsIsCal
|
|||||||
MockExecutionEnvironment executionEnvironment;
|
MockExecutionEnvironment executionEnvironment;
|
||||||
auto walkerCmd = FamilyType::cmdInitGpgpuWalker;
|
auto walkerCmd = FamilyType::cmdInitGpgpuWalker;
|
||||||
|
|
||||||
KernelDescriptor kernelDescriptor;
|
|
||||||
EncodeWalkerArgs walkerArgs{
|
EncodeWalkerArgs walkerArgs{
|
||||||
kernelDescriptor, // kernelDescriptor
|
|
||||||
KernelExecutionType::concurrent, // kernelExecutionType
|
KernelExecutionType::concurrent, // kernelExecutionType
|
||||||
NEO::RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder
|
NEO::RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder
|
||||||
0, // localRegionSize
|
0, // localRegionSize
|
||||||
113, // maxFrontEndThreads
|
113, // maxFrontEndThreads
|
||||||
true}; // requiredSystemFence
|
true, // requiredSystemFence
|
||||||
|
false}; // hasSample
|
||||||
{
|
{
|
||||||
EncodeDispatchKernel<FamilyType>::encodeComputeDispatchAllWalker(walkerCmd, &walkerCmd.getInterfaceDescriptor(), *executionEnvironment.rootDeviceEnvironments[0], walkerArgs);
|
EncodeDispatchKernel<FamilyType>::encodeComputeDispatchAllWalker(walkerCmd, &walkerCmd.getInterfaceDescriptor(), *executionEnvironment.rootDeviceEnvironments[0], walkerArgs);
|
||||||
EXPECT_TRUE(walkerCmd.getComputeDispatchAllWalkerEnable());
|
EXPECT_TRUE(walkerCmd.getComputeDispatchAllWalkerEnable());
|
||||||
@ -102,24 +101,23 @@ XE3_CORETEST_F(WalkerDispatchTestsXe3Core, givenHasSampleSetWhenEncodingExtraPar
|
|||||||
MockExecutionEnvironment mockExecutionEnvironment{};
|
MockExecutionEnvironment mockExecutionEnvironment{};
|
||||||
auto &rootDeviceEnvironment = *mockExecutionEnvironment.rootDeviceEnvironments[0];
|
auto &rootDeviceEnvironment = *mockExecutionEnvironment.rootDeviceEnvironments[0];
|
||||||
|
|
||||||
KernelDescriptor kernelDescriptor;
|
|
||||||
EncodeWalkerArgs walkerArgs{
|
EncodeWalkerArgs walkerArgs{
|
||||||
kernelDescriptor, // kernelDescriptor
|
|
||||||
KernelExecutionType::defaultType, // kernelExecutionType
|
KernelExecutionType::defaultType, // kernelExecutionType
|
||||||
NEO::RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder
|
NEO::RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder
|
||||||
0, // localRegionSize
|
0, // localRegionSize
|
||||||
0, // maxFrontEndThreads
|
0, // maxFrontEndThreads
|
||||||
false}; // requiredSystemFence
|
false, // requiredSystemFence
|
||||||
|
false}; // hasSample
|
||||||
|
|
||||||
{
|
{
|
||||||
kernelDescriptor.kernelAttributes.flags.hasSample = false;
|
walkerArgs.hasSample = false;
|
||||||
EncodeDispatchKernel<FamilyType>::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, walkerArgs);
|
EncodeDispatchKernel<FamilyType>::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, walkerArgs);
|
||||||
EXPECT_NE(DISPATCH_WALK_ORDER::DISPATCH_WALK_ORDER_MORTON_WALK, walkerCmd.getDispatchWalkOrder());
|
EXPECT_NE(DISPATCH_WALK_ORDER::DISPATCH_WALK_ORDER_MORTON_WALK, walkerCmd.getDispatchWalkOrder());
|
||||||
EXPECT_EQ(THREAD_GROUP_BATCH_SIZE::THREAD_GROUP_BATCH_SIZE_TG_BATCH_1, walkerCmd.getThreadGroupBatchSize());
|
EXPECT_EQ(THREAD_GROUP_BATCH_SIZE::THREAD_GROUP_BATCH_SIZE_TG_BATCH_1, walkerCmd.getThreadGroupBatchSize());
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
kernelDescriptor.kernelAttributes.flags.hasSample = true;
|
walkerArgs.hasSample = true;
|
||||||
EncodeDispatchKernel<FamilyType>::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, walkerArgs);
|
EncodeDispatchKernel<FamilyType>::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, walkerArgs);
|
||||||
EXPECT_EQ(DISPATCH_WALK_ORDER::DISPATCH_WALK_ORDER_MORTON_WALK, walkerCmd.getDispatchWalkOrder());
|
EXPECT_EQ(DISPATCH_WALK_ORDER::DISPATCH_WALK_ORDER_MORTON_WALK, walkerCmd.getDispatchWalkOrder());
|
||||||
EXPECT_EQ(THREAD_GROUP_BATCH_SIZE::THREAD_GROUP_BATCH_SIZE_TG_BATCH_4, walkerCmd.getThreadGroupBatchSize());
|
EXPECT_EQ(THREAD_GROUP_BATCH_SIZE::THREAD_GROUP_BATCH_SIZE_TG_BATCH_4, walkerCmd.getThreadGroupBatchSize());
|
||||||
|
@ -106,21 +106,21 @@ enum class CompareOperation : uint32_t {
|
|||||||
struct EncodeWalkerArgs {
|
struct EncodeWalkerArgs {
|
||||||
EncodeWalkerArgs() = delete;
|
EncodeWalkerArgs() = delete;
|
||||||
|
|
||||||
EncodeWalkerArgs(const KernelDescriptor &kernelDescriptor, KernelExecutionType kernelExecutionType, NEO::RequiredDispatchWalkOrder requiredDispatchWalkOrder,
|
EncodeWalkerArgs(KernelExecutionType kernelExecutionType, NEO::RequiredDispatchWalkOrder requiredDispatchWalkOrder,
|
||||||
uint32_t localRegionSize, uint32_t maxFrontEndThreads, bool requiredSystemFence)
|
uint32_t localRegionSize, uint32_t maxFrontEndThreads, bool requiredSystemFence, bool hasSample)
|
||||||
: kernelDescriptor(kernelDescriptor),
|
: kernelExecutionType(kernelExecutionType),
|
||||||
kernelExecutionType(kernelExecutionType),
|
|
||||||
requiredDispatchWalkOrder(requiredDispatchWalkOrder),
|
requiredDispatchWalkOrder(requiredDispatchWalkOrder),
|
||||||
localRegionSize(localRegionSize),
|
localRegionSize(localRegionSize),
|
||||||
maxFrontEndThreads(maxFrontEndThreads),
|
maxFrontEndThreads(maxFrontEndThreads),
|
||||||
requiredSystemFence(requiredSystemFence) {}
|
requiredSystemFence(requiredSystemFence),
|
||||||
|
hasSample(hasSample) {}
|
||||||
|
|
||||||
const KernelDescriptor &kernelDescriptor;
|
|
||||||
KernelExecutionType kernelExecutionType = KernelExecutionType::defaultType;
|
KernelExecutionType kernelExecutionType = KernelExecutionType::defaultType;
|
||||||
NEO::RequiredDispatchWalkOrder requiredDispatchWalkOrder = NEO::RequiredDispatchWalkOrder::none;
|
NEO::RequiredDispatchWalkOrder requiredDispatchWalkOrder = NEO::RequiredDispatchWalkOrder::none;
|
||||||
uint32_t localRegionSize = NEO::localRegionSizeParamNotSet;
|
uint32_t localRegionSize = NEO::localRegionSizeParamNotSet;
|
||||||
uint32_t maxFrontEndThreads = 0;
|
uint32_t maxFrontEndThreads = 0;
|
||||||
bool requiredSystemFence = false;
|
bool requiredSystemFence = false;
|
||||||
|
bool hasSample = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename GfxFamily>
|
template <typename GfxFamily>
|
||||||
|
@ -279,12 +279,12 @@ void EncodeDispatchKernel<Family>::encode(CommandContainer &container, EncodeDis
|
|||||||
EncodeDispatchKernel<Family>::encodeThreadGroupDispatch(idd, *args.device, hwInfo, threadGroupDims, threadGroupCount, kernelDescriptor.kernelAttributes.numGrfRequired, numThreadsPerThreadGroup, cmd);
|
EncodeDispatchKernel<Family>::encodeThreadGroupDispatch(idd, *args.device, hwInfo, threadGroupDims, threadGroupCount, kernelDescriptor.kernelAttributes.numGrfRequired, numThreadsPerThreadGroup, cmd);
|
||||||
|
|
||||||
EncodeWalkerArgs walkerArgs{
|
EncodeWalkerArgs walkerArgs{
|
||||||
kernelDescriptor, // kernelDescriptor
|
|
||||||
KernelExecutionType::defaultType, // kernelExecutionType
|
KernelExecutionType::defaultType, // kernelExecutionType
|
||||||
args.requiredDispatchWalkOrder, // requiredDispatchWalkOrder
|
args.requiredDispatchWalkOrder, // requiredDispatchWalkOrder
|
||||||
args.localRegionSize, // localRegionSize
|
args.localRegionSize, // localRegionSize
|
||||||
args.device->getDeviceInfo().maxFrontEndThreads, // maxFrontEndThreads
|
args.device->getDeviceInfo().maxFrontEndThreads, // maxFrontEndThreads
|
||||||
args.requiresSystemMemoryFence()}; // requiredSystemFence
|
args.requiresSystemMemoryFence(), // requiresSystemFence
|
||||||
|
false}; // hasSample
|
||||||
EncodeDispatchKernel<Family>::encodeAdditionalWalkerFields(rootDeviceEnvironment, cmd, walkerArgs);
|
EncodeDispatchKernel<Family>::encodeAdditionalWalkerFields(rootDeviceEnvironment, cmd, walkerArgs);
|
||||||
EncodeDispatchKernel<Family>::encodeWalkerPostSyncFields(cmd, walkerArgs);
|
EncodeDispatchKernel<Family>::encodeWalkerPostSyncFields(cmd, walkerArgs);
|
||||||
EncodeDispatchKernel<Family>::template encodeComputeDispatchAllWalker<WalkerType, INTERFACE_DESCRIPTOR_DATA>(cmd, nullptr, rootDeviceEnvironment, walkerArgs);
|
EncodeDispatchKernel<Family>::template encodeComputeDispatchAllWalker<WalkerType, INTERFACE_DESCRIPTOR_DATA>(cmd, nullptr, rootDeviceEnvironment, walkerArgs);
|
||||||
|
@ -403,12 +403,12 @@ void EncodeDispatchKernel<Family>::encode(CommandContainer &container, EncodeDis
|
|||||||
|
|
||||||
auto kernelExecutionType = args.isCooperative ? KernelExecutionType::concurrent : KernelExecutionType::defaultType;
|
auto kernelExecutionType = args.isCooperative ? KernelExecutionType::concurrent : KernelExecutionType::defaultType;
|
||||||
EncodeWalkerArgs walkerArgs{
|
EncodeWalkerArgs walkerArgs{
|
||||||
kernelDescriptor, // kernelDescriptor
|
kernelExecutionType, // kernelExecutionType
|
||||||
kernelExecutionType, // kernelExecutionType
|
args.requiredDispatchWalkOrder, // requiredDispatchWalkOrder
|
||||||
args.requiredDispatchWalkOrder, // requiredDispatchWalkOrder
|
args.localRegionSize, // localRegionSize
|
||||||
args.localRegionSize, // localRegionSize
|
args.device->getDeviceInfo().maxFrontEndThreads, // maxFrontEndThreads
|
||||||
args.device->getDeviceInfo().maxFrontEndThreads, // maxFrontEndThreads
|
args.requiresSystemMemoryFence(), // requiresMemoryFence
|
||||||
args.requiresSystemMemoryFence()}; // requiresMemoryFence
|
kernelDescriptor.kernelAttributes.flags.hasSample}; // hasSample
|
||||||
EncodeDispatchKernel<Family>::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, walkerArgs);
|
EncodeDispatchKernel<Family>::encodeAdditionalWalkerFields(rootDeviceEnvironment, walkerCmd, walkerArgs);
|
||||||
EncodeDispatchKernel<Family>::encodeWalkerPostSyncFields(walkerCmd, walkerArgs);
|
EncodeDispatchKernel<Family>::encodeWalkerPostSyncFields(walkerCmd, walkerArgs);
|
||||||
EncodeDispatchKernel<Family>::encodeComputeDispatchAllWalker(walkerCmd, &idd, rootDeviceEnvironment, walkerArgs);
|
EncodeDispatchKernel<Family>::encodeComputeDispatchAllWalker(walkerCmd, &idd, rootDeviceEnvironment, walkerArgs);
|
||||||
|
@ -125,7 +125,7 @@ void EncodeSurfaceState<Family>::setAuxParamsForMCSCCS(R_SURFACE_STATE *surfaceS
|
|||||||
template <>
|
template <>
|
||||||
template <typename WalkerType>
|
template <typename WalkerType>
|
||||||
void EncodeDispatchKernel<Family>::encodeAdditionalWalkerFields(const RootDeviceEnvironment &rootDeviceEnvironment, WalkerType &walkerCmd, const EncodeWalkerArgs &walkerArgs) {
|
void EncodeDispatchKernel<Family>::encodeAdditionalWalkerFields(const RootDeviceEnvironment &rootDeviceEnvironment, WalkerType &walkerCmd, const EncodeWalkerArgs &walkerArgs) {
|
||||||
if (walkerArgs.kernelDescriptor.kernelAttributes.flags.hasSample) {
|
if (walkerArgs.hasSample) {
|
||||||
walkerCmd.setDispatchWalkOrder(DefaultWalkerType::DISPATCH_WALK_ORDER::DISPATCH_WALK_ORDER_MORTON_WALK);
|
walkerCmd.setDispatchWalkOrder(DefaultWalkerType::DISPATCH_WALK_ORDER::DISPATCH_WALK_ORDER_MORTON_WALK);
|
||||||
walkerCmd.setThreadGroupBatchSize(DefaultWalkerType::THREAD_GROUP_BATCH_SIZE::THREAD_GROUP_BATCH_SIZE_TG_BATCH_4);
|
walkerCmd.setThreadGroupBatchSize(DefaultWalkerType::THREAD_GROUP_BATCH_SIZE::THREAD_GROUP_BATCH_SIZE_TG_BATCH_4);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2022-2024 Intel Corporation
|
* Copyright (C) 2022-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
@ -84,12 +84,12 @@ EncodeDispatchKernelArgs CommandEncodeStatesFixture::createDefaultDispatchKernel
|
|||||||
|
|
||||||
EncodeWalkerArgs CommandEncodeStatesFixture::createDefaultEncodeWalkerArgs(const KernelDescriptor &kernelDescriptor) {
|
EncodeWalkerArgs CommandEncodeStatesFixture::createDefaultEncodeWalkerArgs(const KernelDescriptor &kernelDescriptor) {
|
||||||
EncodeWalkerArgs args{
|
EncodeWalkerArgs args{
|
||||||
kernelDescriptor, // kernelDescriptor
|
NEO::KernelExecutionType::defaultType, // kernelExecutionType
|
||||||
NEO::KernelExecutionType::defaultType, // kernelExecutionType
|
NEO::RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder
|
||||||
NEO::RequiredDispatchWalkOrder::none, // requiredDispatchWalkOrder
|
0, // localRegionSize
|
||||||
0, // localRegionSize
|
0, // maxFrontEndThreads
|
||||||
0, // maxFrontEndThreads
|
false, // requiresMemoryFence
|
||||||
false}; // requiredSystemFence
|
kernelDescriptor.kernelAttributes.flags.hasSample}; // hasSample
|
||||||
|
|
||||||
return args;
|
return args;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user