test: add getCommandWalkerCount method

Related-To: NEO-10641
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
This commit is contained in:
Kamil Kopryk
2024-07-30 14:20:29 +00:00
committed by Compute-Runtime-Automation
parent 9e9d5cde70
commit 2735b06206
4 changed files with 45 additions and 38 deletions

View File

@@ -570,7 +570,7 @@ HWTEST_F(AUBSimpleKernelStatelessTest, givenSimpleKernelWhenStatelessPathIsUsedT
using AUBSimpleArgNonUniformTest = Test<AUBSimpleArgNonUniformFixture>;
HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork1DimNonUniformGroupThenExpectTwoWalkers) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
cl_uint workDim = 1;
size_t globalWorkOffset[3] = {0, 0, 0};
size_t globalWorkSize[3] = {39, 1, 1};
@@ -593,7 +593,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork1DimNo
ASSERT_EQ(CL_SUCCESS, retVal);
hwParser.parseCommands<FamilyType>(*pCmdQ);
uint32_t walkerCount = hwParser.getCommandCount<DefaultWalkerType>();
uint32_t walkerCount = hwParser.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(2u, walkerCount);
pCmdQ->flush();
@@ -602,7 +602,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork1DimNo
}
HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork2DimNonUniformGroupInXDimensionThenExpectTwoWalkers) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
cl_uint workDim = 2;
size_t globalWorkOffset[3] = {0, 0, 0};
size_t globalWorkSize[3] = {39, 32, 1};
@@ -625,7 +625,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork2DimNo
ASSERT_EQ(CL_SUCCESS, retVal);
hwParser.parseCommands<FamilyType>(*pCmdQ);
uint32_t walkerCount = hwParser.getCommandCount<DefaultWalkerType>();
uint32_t walkerCount = hwParser.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(2u, walkerCount);
pCmdQ->flush();
@@ -634,7 +634,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork2DimNo
}
HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork2DimNonUniformGroupInYDimensionThenExpectTwoWalkers) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
cl_uint workDim = 2;
size_t globalWorkOffset[3] = {0, 0, 0};
size_t globalWorkSize[3] = {32, 39, 1};
@@ -657,7 +657,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork2DimNo
ASSERT_EQ(CL_SUCCESS, retVal);
hwParser.parseCommands<FamilyType>(*pCmdQ);
uint32_t walkerCount = hwParser.getCommandCount<DefaultWalkerType>();
uint32_t walkerCount = hwParser.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(2u, walkerCount);
pCmdQ->flush();
@@ -666,7 +666,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork2DimNo
}
HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork2DimNonUniformGroupInXandYDimensionThenExpectFourWalkers) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
cl_uint workDim = 2;
size_t globalWorkOffset[3] = {0, 0, 0};
size_t globalWorkSize[3] = {39, 39, 1};
@@ -689,7 +689,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork2DimNo
ASSERT_EQ(CL_SUCCESS, retVal);
hwParser.parseCommands<FamilyType>(*pCmdQ);
uint32_t walkerCount = hwParser.getCommandCount<DefaultWalkerType>();
uint32_t walkerCount = hwParser.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(4u, walkerCount);
pCmdQ->flush();
@@ -698,7 +698,6 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork2DimNo
}
HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNonUniformGroupInXDimensionThenExpectTwoWalkers) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
cl_uint workDim = 3;
size_t globalWorkOffset[3] = {0, 0, 0};
size_t globalWorkSize[3] = {39, 32, 32};
@@ -721,7 +720,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNo
ASSERT_EQ(CL_SUCCESS, retVal);
hwParser.parseCommands<FamilyType>(*pCmdQ);
uint32_t walkerCount = hwParser.getCommandCount<DefaultWalkerType>();
uint32_t walkerCount = hwParser.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(2u, walkerCount);
pCmdQ->flush();
@@ -730,7 +729,6 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNo
}
HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNonUniformGroupInYDimensionThenExpectTwoWalkers) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
cl_uint workDim = 3;
size_t globalWorkOffset[3] = {0, 0, 0};
size_t globalWorkSize[3] = {32, 39, 32};
@@ -753,7 +751,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNo
ASSERT_EQ(CL_SUCCESS, retVal);
hwParser.parseCommands<FamilyType>(*pCmdQ);
uint32_t walkerCount = hwParser.getCommandCount<DefaultWalkerType>();
uint32_t walkerCount = hwParser.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(2u, walkerCount);
pCmdQ->flush();
@@ -762,7 +760,6 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNo
}
HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNonUniformGroupInZDimensionThenExpectTwoWalkers) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
cl_uint workDim = 3;
size_t globalWorkOffset[3] = {0, 0, 0};
size_t globalWorkSize[3] = {32, 32, 39};
@@ -785,7 +782,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNo
ASSERT_EQ(CL_SUCCESS, retVal);
hwParser.parseCommands<FamilyType>(*pCmdQ);
uint32_t walkerCount = hwParser.getCommandCount<DefaultWalkerType>();
uint32_t walkerCount = hwParser.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(2u, walkerCount);
pCmdQ->flush();
@@ -794,7 +791,6 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNo
}
HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNonUniformGroupInXandYDimensionThenExpectFourWalkers) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
cl_uint workDim = 3;
size_t globalWorkOffset[3] = {0, 0, 0};
size_t globalWorkSize[3] = {39, 39, 32};
@@ -817,7 +813,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNo
ASSERT_EQ(CL_SUCCESS, retVal);
hwParser.parseCommands<FamilyType>(*pCmdQ);
uint32_t walkerCount = hwParser.getCommandCount<DefaultWalkerType>();
uint32_t walkerCount = hwParser.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(4u, walkerCount);
pCmdQ->flush();
@@ -826,7 +822,6 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNo
}
HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNonUniformGroupInXandZDimensionThenExpectFourWalkers) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
cl_uint workDim = 3;
size_t globalWorkOffset[3] = {0, 0, 0};
size_t globalWorkSize[3] = {39, 32, 39};
@@ -849,7 +844,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNo
ASSERT_EQ(CL_SUCCESS, retVal);
hwParser.parseCommands<FamilyType>(*pCmdQ);
uint32_t walkerCount = hwParser.getCommandCount<DefaultWalkerType>();
uint32_t walkerCount = hwParser.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(4u, walkerCount);
pCmdQ->flush();
@@ -858,7 +853,6 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNo
}
HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNonUniformGroupInYandZDimensionThenExpectFourWalkers) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
cl_uint workDim = 3;
size_t globalWorkOffset[3] = {0, 0, 0};
size_t globalWorkSize[3] = {32, 39, 39};
@@ -881,7 +875,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNo
ASSERT_EQ(CL_SUCCESS, retVal);
hwParser.parseCommands<FamilyType>(*pCmdQ);
uint32_t walkerCount = hwParser.getCommandCount<DefaultWalkerType>();
uint32_t walkerCount = hwParser.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(4u, walkerCount);
pCmdQ->flush();
@@ -890,7 +884,6 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNo
}
HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNonUniformGroupInXandYandZDimensionThenExpectEightWalkers) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
cl_uint workDim = 3;
size_t globalWorkOffset[3] = {0, 0, 0};
size_t globalWorkSize[3] = {39, 39, 39};
@@ -913,7 +906,7 @@ HWTEST_F(AUBSimpleArgNonUniformTest, givenOpenCL20SupportWhenProvidingWork3DimNo
ASSERT_EQ(CL_SUCCESS, retVal);
hwParser.parseCommands<FamilyType>(*pCmdQ);
uint32_t walkerCount = hwParser.getCommandCount<DefaultWalkerType>();
uint32_t walkerCount = hwParser.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(8u, walkerCount);
pCmdQ->flush();

View File

@@ -97,7 +97,7 @@ struct AubWalkerPartitionFixture : public KernelAUBFixture<SimpleKernelFixture>
hwParser.parseCommands<FamilyType>(pCmdQ->getCS(0), 0);
uint32_t walkersCount = hwParser.getCommandCount<DefaultWalkerType>();
uint32_t walkersCount = hwParser.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(walkersCount, 1u);
GenCmdList walkerList = hwParser.getCommandsList<DefaultWalkerType>();
DefaultWalkerType *walkerCmd = static_cast<DefaultWalkerType *>(*walkerList.begin());
@@ -286,7 +286,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, AubWalkerPartitionZeroTest, whenPartitionCountSetTo
uint32_t cmdPartitionCount = static_cast<uint32_t>(partitionCount);
hwParser.parseCommands<FamilyType>(pCmdQ->getCS(0), 0);
uint32_t walkersCount = hwParser.getCommandCount<DefaultWalkerType>();
uint32_t walkersCount = hwParser.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(cmdPartitionCount + 1, walkersCount);
GenCmdList walkerList = hwParser.getCommandsList<DefaultWalkerType>();

View File

@@ -1246,7 +1246,6 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenSvmAllocWithoutFlagsWhenMappingSvmThenM
}
HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenEnqueueMapValidSvmPtrThenExpectSingleWalker) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
MockCommandQueueHw<FamilyType> queue(context.get(), pClDevice, nullptr);
LinearStream &stream = queue.getCS(0x1000);
@@ -1275,7 +1274,7 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenEnqueueMapValidSv
queue.flush();
hwParse.parseCommands<FamilyType>(stream);
auto walkerCount = hwParse.getCommandCount<DefaultWalkerType>();
auto walkerCount = hwParse.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(1u, walkerCount);
constexpr cl_command_type expectedCmd = CL_COMMAND_SVM_MAP;
@@ -1286,7 +1285,6 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenEnqueueMapValidSv
}
HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenEnqueueMapSvmPtrTwiceThenExpectSingleWalker) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
MockCommandQueueHw<FamilyType> queue(context.get(), pClDevice, nullptr);
LinearStream &stream = queue.getCS(0x1000);
@@ -1328,7 +1326,7 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenEnqueueMapSvmPtrT
queue.flush();
hwParse.parseCommands<FamilyType>(stream);
auto walkerCount = hwParse.getCommandCount<DefaultWalkerType>();
auto walkerCount = hwParse.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(1u, walkerCount);
constexpr cl_command_type expectedCmd = CL_COMMAND_SVM_MAP;
@@ -1374,7 +1372,6 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryAndBlockingCallAndGpu
}
HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenNoMappedSvmPtrThenExpectNoUnmapCopyKernel) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
MockCommandQueueHw<FamilyType> queue(context.get(), pClDevice, nullptr);
LinearStream &stream = queue.getCS(0x1000);
@@ -1389,7 +1386,7 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenNoMappedSvmPtrThe
queue.flush();
hwParse.parseCommands<FamilyType>(stream);
auto walkerCount = hwParse.getCommandCount<DefaultWalkerType>();
auto walkerCount = hwParse.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(0u, walkerCount);
constexpr cl_command_type expectedCmd = CL_COMMAND_SVM_UNMAP;
@@ -1421,7 +1418,7 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryAndGpuHangAndBlocking
}
HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenMappedSvmRegionIsReadOnlyThenExpectNoUnmapCopyKernel) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
MockCommandQueueHw<FamilyType> queue(context.get(), pClDevice, nullptr);
LinearStream &stream = queue.getCS(0x1000);
@@ -1442,7 +1439,7 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenMappedSvmRegionIs
queue.flush();
size_t offset = stream.getUsed();
hwParse.parseCommands<FamilyType>(stream);
auto walkerCount = hwParse.getCommandCount<DefaultWalkerType>();
auto walkerCount = hwParse.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(1u, walkerCount);
hwParse.tearDown();
@@ -1458,7 +1455,7 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenMappedSvmRegionIs
queue.flush();
hwParse.parseCommands<FamilyType>(stream, offset);
walkerCount = hwParse.getCommandCount<DefaultWalkerType>();
walkerCount = hwParse.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(0u, walkerCount);
constexpr cl_command_type expectedCmd = CL_COMMAND_SVM_UNMAP;
@@ -1552,7 +1549,6 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenReadOnlyMapWhenUnmappingThenDontResetAu
}
HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenMappedSvmRegionIsWritableThenExpectMapAndUnmapCopyKernel) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
MockCommandQueueHw<FamilyType> queue(context.get(), pClDevice, nullptr);
LinearStream &stream = queue.getCS(0x1000);
@@ -1583,7 +1579,7 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenMappedSvmRegionIs
queue.flush();
hwParse.parseCommands<FamilyType>(stream);
auto walkerCount = hwParse.getCommandCount<DefaultWalkerType>();
auto walkerCount = hwParse.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(2u, walkerCount);
constexpr cl_command_type expectedMapCmd = CL_COMMAND_SVM_MAP;
@@ -1628,7 +1624,6 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenGpuHangAndBlockingCallAndEnabledLocalMe
}
HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenMappedSvmRegionAndNoEventIsUsedIsWritableThenExpectMapAndUnmapCopyKernelAnNo) {
using DefaultWalkerType = typename FamilyType::DefaultWalkerType;
MockCommandQueueHw<FamilyType> queue(context.get(), pClDevice, nullptr);
LinearStream &stream = queue.getCS(0x1000);
@@ -1657,7 +1652,7 @@ HWTEST_F(EnqueueSvmTestLocalMemory, givenEnabledLocalMemoryWhenMappedSvmRegionAn
queue.flush();
hwParse.parseCommands<FamilyType>(stream);
auto walkerCount = hwParse.getCommandCount<DefaultWalkerType>();
auto walkerCount = hwParse.getCommandWalkerCount<FamilyType>();
EXPECT_EQ(2u, walkerCount);
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2018-2023 Intel Corporation
* Copyright (C) 2018-2024 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
@@ -13,6 +13,7 @@
#include "shared/source/indirect_heap/indirect_heap.h"
#include "shared/source/os_interface/product_helper.h"
#include "shared/test/common/cmd_parse/gen_cmd_parse.h"
#include "shared/test/common/helpers/unit_test_helper.h"
#include "shared/test/common/mocks/mock_execution_environment.h"
#include "gtest/gtest.h"
@@ -191,6 +192,24 @@ struct HardwareParse {
return cmdCount;
}
template <typename FamilyType>
uint32_t getCommandWalkerCount() {
using WalkerType = typename FamilyType::DefaultWalkerType;
GenCmdList::iterator cmdItor = cmdList.begin();
uint32_t cmdCount = 0;
do {
cmdItor = NEO::UnitTestHelper<FamilyType>::findWalkerTypeCmd(cmdItor, cmdList.end());
if (cmdItor != cmdList.end()) {
++cmdCount;
++cmdItor;
}
} while (cmdItor != cmdList.end());
return cmdCount;
}
template <typename FamilyType>
static const char *getCommandName(void *cmd) {
return FamilyType::Parse::getCommandName(cmd);