mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-30 01:35:20 +08:00
feature: add skiping kernel internal allocations to cmdlist residency
Related-To: NEO-11719 Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
1fa7e14d0b
commit
ff993feb74
@@ -441,12 +441,14 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::appendLaunchKernelWithParams(K
|
||||
}
|
||||
// Attach kernel residency to our CommandList residency
|
||||
{
|
||||
commandContainer.addToResidencyContainer(kernelImmutableData->getIsaGraphicsAllocation());
|
||||
auto &internalResidencyContainer = kernel->getInternalResidencyContainer();
|
||||
for (auto resource : internalResidencyContainer) {
|
||||
commandContainer.addToResidencyContainer(resource);
|
||||
if (!launchParams.omitAddingKernelInternalResidency) {
|
||||
commandContainer.addToResidencyContainer(kernelImmutableData->getIsaGraphicsAllocation());
|
||||
auto &internalResidencyContainer = kernel->getInternalResidencyContainer();
|
||||
for (auto resource : internalResidencyContainer) {
|
||||
commandContainer.addToResidencyContainer(resource);
|
||||
}
|
||||
}
|
||||
if (!launchParams.omitAddingKernelResidency) {
|
||||
if (!launchParams.omitAddingKernelArgumentResidency) {
|
||||
auto &argumentsResidencyContainer = kernel->getArgumentsResidencyContainer();
|
||||
for (auto resource : argumentsResidencyContainer) {
|
||||
commandContainer.addToResidencyContainer(resource);
|
||||
|
||||
@@ -66,7 +66,8 @@ struct CmdListKernelLaunchParams {
|
||||
bool isExpLaunchKernel = false;
|
||||
bool skipInOrderNonWalkerSignaling = false;
|
||||
bool pipeControlSignalling = false;
|
||||
bool omitAddingKernelResidency = false;
|
||||
bool omitAddingKernelArgumentResidency = false;
|
||||
bool omitAddingKernelInternalResidency = false;
|
||||
bool omitAddingEventResidency = false;
|
||||
bool omitAddingWaitEventsResidency = false;
|
||||
};
|
||||
|
||||
@@ -1528,7 +1528,7 @@ HWTEST2_F(CommandListAppendLaunchKernel, whenUpdateStreamPropertiesIsCalledThenC
|
||||
}
|
||||
|
||||
HWTEST2_F(CommandListAppendLaunchKernelMockModule,
|
||||
givenFlagOmitKernelResourcePassToCmdlistResidencyWhenAppendingKernelThenExpectNoKernelArgumentsInCmdlistResidency,
|
||||
givenFlagOmitKernelArgumentResourcePassToCmdlistResidencyWhenAppendingKernelThenExpectNoKernelArgumentsInCmdlistResidency,
|
||||
IsAtLeastXeHpCore) {
|
||||
NEO::MockGraphicsAllocation mockAllocation;
|
||||
NEO::GraphicsAllocation *allocation = &mockAllocation;
|
||||
@@ -1537,7 +1537,7 @@ HWTEST2_F(CommandListAppendLaunchKernelMockModule,
|
||||
ze_group_count_t groupCount{1, 1, 1};
|
||||
ze_result_t returnValue;
|
||||
CmdListKernelLaunchParams launchParams = {};
|
||||
launchParams.omitAddingKernelResidency = true;
|
||||
launchParams.omitAddingKernelArgumentResidency = true;
|
||||
returnValue = commandList->appendLaunchKernel(kernel->toHandle(), groupCount, nullptr, 0, nullptr, launchParams, false);
|
||||
ASSERT_EQ(ZE_RESULT_SUCCESS, returnValue);
|
||||
|
||||
@@ -1546,7 +1546,7 @@ HWTEST2_F(CommandListAppendLaunchKernelMockModule,
|
||||
auto kernelAllocationIt = std::find(cmdlistResidency.begin(), cmdlistResidency.end(), allocation);
|
||||
EXPECT_EQ(kernelAllocationIt, cmdlistResidency.end());
|
||||
|
||||
launchParams.omitAddingKernelResidency = false;
|
||||
launchParams.omitAddingKernelArgumentResidency = false;
|
||||
returnValue = commandList->appendLaunchKernel(kernel->toHandle(), groupCount, nullptr, 0, nullptr, launchParams, false);
|
||||
ASSERT_EQ(ZE_RESULT_SUCCESS, returnValue);
|
||||
|
||||
@@ -1554,6 +1554,39 @@ HWTEST2_F(CommandListAppendLaunchKernelMockModule,
|
||||
EXPECT_NE(kernelAllocationIt, cmdlistResidency.end());
|
||||
}
|
||||
|
||||
HWTEST2_F(CommandListAppendLaunchKernelMockModule,
|
||||
givenFlagOmitKernelInternalResourcePassToCmdlistResidencyWhenAppendingKernelThenExpectNoKernelInternalsInCmdlistResidency,
|
||||
IsAtLeastXeHpCore) {
|
||||
NEO::MockGraphicsAllocation mockAllocation;
|
||||
NEO::GraphicsAllocation *allocation = &mockAllocation;
|
||||
kernel->internalResidencyContainer.push_back(allocation);
|
||||
|
||||
auto kernelIsaAllocation = kernel->getImmutableData()->getIsaGraphicsAllocation();
|
||||
|
||||
ze_group_count_t groupCount{1, 1, 1};
|
||||
ze_result_t returnValue;
|
||||
CmdListKernelLaunchParams launchParams = {};
|
||||
launchParams.omitAddingKernelInternalResidency = true;
|
||||
returnValue = commandList->appendLaunchKernel(kernel->toHandle(), groupCount, nullptr, 0, nullptr, launchParams, false);
|
||||
ASSERT_EQ(ZE_RESULT_SUCCESS, returnValue);
|
||||
|
||||
auto &cmdlistResidency = commandList->getCmdContainer().getResidencyContainer();
|
||||
|
||||
auto kernelAllocationIt = std::find(cmdlistResidency.begin(), cmdlistResidency.end(), allocation);
|
||||
EXPECT_EQ(kernelAllocationIt, cmdlistResidency.end());
|
||||
kernelAllocationIt = std::find(cmdlistResidency.begin(), cmdlistResidency.end(), kernelIsaAllocation);
|
||||
EXPECT_EQ(kernelAllocationIt, cmdlistResidency.end());
|
||||
|
||||
launchParams.omitAddingKernelInternalResidency = false;
|
||||
returnValue = commandList->appendLaunchKernel(kernel->toHandle(), groupCount, nullptr, 0, nullptr, launchParams, false);
|
||||
ASSERT_EQ(ZE_RESULT_SUCCESS, returnValue);
|
||||
|
||||
kernelAllocationIt = std::find(cmdlistResidency.begin(), cmdlistResidency.end(), allocation);
|
||||
EXPECT_NE(kernelAllocationIt, cmdlistResidency.end());
|
||||
kernelAllocationIt = std::find(cmdlistResidency.begin(), cmdlistResidency.end(), kernelIsaAllocation);
|
||||
EXPECT_NE(kernelAllocationIt, cmdlistResidency.end());
|
||||
}
|
||||
|
||||
HWTEST2_F(CommandListAppendLaunchKernelMockModule,
|
||||
givenOutWalkerPtrDispatchParamWhenAppendingKernelThenSetPtrToWalkerCmd,
|
||||
IsAtLeastXeHpCore) {
|
||||
|
||||
Reference in New Issue
Block a user