Related-To: NEO-5081
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski 2022-02-25 14:43:46 +00:00 committed by Compute-Runtime-Automation
parent 0c6863766a
commit 82e3b10c5a
10 changed files with 16 additions and 16 deletions

View File

@ -122,7 +122,7 @@ size_t HardwareCommandsHelper<GfxFamily>::sendCrossThreadData(
auto ptrToPatchImplicitArgs = indirectHeap.getSpace(sizeForImplicitArgsProgramming);
ImplicitArgsHelper::patchImplicitArgs(ptrToPatchImplicitArgs, *pImplicitArgs, kernelDescriptor, hwInfo, {});
auto implicitArgsCrossThreadPtr = ptrOffset(reinterpret_cast<uint64_t *>(kernel.getCrossThreadData()), kernelDescriptor.payloadMappings.implicitArgs.implcitArgsBuffer);
auto implicitArgsCrossThreadPtr = ptrOffset(reinterpret_cast<uint64_t *>(kernel.getCrossThreadData()), kernelDescriptor.payloadMappings.implicitArgs.implicitArgsBuffer);
*implicitArgsCrossThreadPtr = implicitArgsGpuVA;
}
auto offsetCrossThreadData = indirectHeap.getUsed();

View File

@ -144,7 +144,7 @@ void EncodeDispatchKernel<Family>::encode(CommandContainer &container,
uint64_t implicitArgsGpuVA = 0u;
if (pImplicitArgs) {
implicitArgsGpuVA = heapIndirect->getGraphicsAllocation()->getGpuAddress() + static_cast<uint64_t>(heapIndirect->getUsed() - iohRequiredSize);
auto implicitArgsCrossThreadPtr = ptrOffset(const_cast<uint64_t *>(reinterpret_cast<const uint64_t *>(args.dispatchInterface->getCrossThreadData())), kernelDescriptor.payloadMappings.implicitArgs.implcitArgsBuffer);
auto implicitArgsCrossThreadPtr = ptrOffset(const_cast<uint64_t *>(reinterpret_cast<const uint64_t *>(args.dispatchInterface->getCrossThreadData())), kernelDescriptor.payloadMappings.implicitArgs.implicitArgsBuffer);
*implicitArgsCrossThreadPtr = implicitArgsGpuVA;
ptr = NEO::ImplicitArgsHelper::patchImplicitArgs(ptr, *pImplicitArgs, kernelDescriptor, hwInfo, {});

View File

@ -907,7 +907,7 @@ NEO::DecodeError populateArgDescriptor(const NEO::Elf::ZebinKernelMetadata::Type
break;
}
case NEO::Elf::ZebinKernelMetadata::Types::Kernel::ArgTypeImplicitArgBuffer: {
dst.payloadMappings.implicitArgs.implcitArgsBuffer = src.offset;
dst.payloadMappings.implicitArgs.implicitArgsBuffer = src.offset;
dst.kernelAttributes.flags.requiresImplicitArgs = true;
break;
}

View File

@ -45,7 +45,7 @@ uint32_t getSizeForImplicitArgsPatching(const ImplicitArgs *pImplicitArgs, const
return 0;
}
auto implicitArgsSize = static_cast<uint32_t>(sizeof(NEO::ImplicitArgs));
auto patchImplicitArgsBufferInCrossThread = NEO::isValidOffset<>(kernelDescriptor.payloadMappings.implicitArgs.implcitArgsBuffer);
auto patchImplicitArgsBufferInCrossThread = NEO::isValidOffset<>(kernelDescriptor.payloadMappings.implicitArgs.implicitArgsBuffer);
if (patchImplicitArgsBufferInCrossThread) {
return alignUp(implicitArgsSize, MemoryConstants::cacheLineSize);
} else {
@ -66,7 +66,7 @@ void *patchImplicitArgs(void *ptrToPatch, const ImplicitArgs &implicitArgs, cons
auto totalSizeToProgram = getSizeForImplicitArgsPatching(&implicitArgs, kernelDescriptor, hardwareInfo);
auto retVal = ptrOffset(ptrToPatch, totalSizeToProgram);
auto patchImplicitArgsBufferInCrossThread = NEO::isValidOffset<>(kernelDescriptor.payloadMappings.implicitArgs.implcitArgsBuffer);
auto patchImplicitArgsBufferInCrossThread = NEO::isValidOffset<>(kernelDescriptor.payloadMappings.implicitArgs.implicitArgsBuffer);
if (!patchImplicitArgsBufferInCrossThread) {
auto simdSize = implicitArgs.simdWidth;
auto grfSize = getGrfSize(simdSize, hardwareInfo.capabilityTable.grfSize);

View File

@ -266,7 +266,7 @@ struct KernelDescriptor {
CrossThreadDataOffset preferredWkgMultiple = undefined<CrossThreadDataOffset>;
CrossThreadDataOffset localMemoryStatelessWindowSize = undefined<CrossThreadDataOffset>;
CrossThreadDataOffset localMemoryStatelessWindowStartAddres = undefined<CrossThreadDataOffset>;
CrossThreadDataOffset implcitArgsBuffer = undefined<CrossThreadDataOffset>;
CrossThreadDataOffset implicitArgsBuffer = undefined<CrossThreadDataOffset>;
} implicitArgs;
std::vector<std::unique_ptr<ArgDescriptorExtended>> explicitArgsExtendedDescriptors;

View File

@ -510,7 +510,7 @@ void populateKernelDescriptor(KernelDescriptor &dst, const PatchTokenBinary::Ker
dst.payloadMappings.implicitArgs.privateMemorySize = getOffset(src.tokens.crossThreadPayloadArgs.privateMemoryStatelessSize);
dst.payloadMappings.implicitArgs.localMemoryStatelessWindowSize = getOffset(src.tokens.crossThreadPayloadArgs.localMemoryStatelessWindowSize);
dst.payloadMappings.implicitArgs.localMemoryStatelessWindowStartAddres = getOffset(src.tokens.crossThreadPayloadArgs.localMemoryStatelessWindowStartAddress);
dst.payloadMappings.implicitArgs.implcitArgsBuffer = getOffset(src.tokens.crossThreadPayloadArgs.implicitArgsBufferOffset);
dst.payloadMappings.implicitArgs.implicitArgsBuffer = getOffset(src.tokens.crossThreadPayloadArgs.implicitArgsBufferOffset);
if (src.tokens.gtpinInfo) {
dst.external.igcInfoForGtpin = (src.tokens.gtpinInfo + 1);

View File

@ -64,6 +64,6 @@ inline void UnitTestHelper<GfxFamily>::setPipeControlHdcPipelineFlush(typename G
template <typename GfxFamily>
inline void UnitTestHelper<GfxFamily>::adjustKernelDescriptorForImplicitArgs(KernelDescriptor &kernelDescriptor) {
kernelDescriptor.kernelAttributes.flags.requiresImplicitArgs = true;
kernelDescriptor.payloadMappings.implicitArgs.implcitArgsBuffer = 0u;
kernelDescriptor.payloadMappings.implicitArgs.implicitArgsBuffer = 0u;
}
} // namespace NEO

View File

@ -4919,7 +4919,7 @@ kernels:
EXPECT_EQ(NEO::DecodeError::Success, err);
EXPECT_TRUE(errors.empty()) << errors;
EXPECT_TRUE(warnings.empty()) << warnings;
EXPECT_EQ(4u, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.implicitArgs.implcitArgsBuffer);
EXPECT_EQ(4u, programInfo.kernelInfos[0]->kernelDescriptor.payloadMappings.implicitArgs.implicitArgsBuffer);
EXPECT_TRUE(programInfo.kernelInfos[0]->kernelDescriptor.kernelAttributes.flags.requiresImplicitArgs);
}

View File

@ -65,7 +65,7 @@ TEST(ImplicitArgsHelperTest, givenImplicitArgsWithoutImplicitArgsBufferOffsetInP
KernelDescriptor kernelDescriptor{};
EXPECT_TRUE(isUndefinedOffset<>(kernelDescriptor.payloadMappings.implicitArgs.implcitArgsBuffer));
EXPECT_TRUE(isUndefinedOffset<>(kernelDescriptor.payloadMappings.implicitArgs.implicitArgsBuffer));
const auto &hwInfo = *defaultHwInfo;
implicitArgs.simdWidth = 32;
@ -83,8 +83,8 @@ TEST(ImplicitArgsHelperTest, givenImplicitArgsWithImplicitArgsBufferOffsetInPayl
ImplicitArgs implicitArgs{sizeof(ImplicitArgs)};
KernelDescriptor kernelDescriptor{};
kernelDescriptor.payloadMappings.implicitArgs.implcitArgsBuffer = 0x10;
EXPECT_TRUE(isValidOffset<>(kernelDescriptor.payloadMappings.implicitArgs.implcitArgsBuffer));
kernelDescriptor.payloadMappings.implicitArgs.implicitArgsBuffer = 0x10;
EXPECT_TRUE(isValidOffset<>(kernelDescriptor.payloadMappings.implicitArgs.implicitArgsBuffer));
const auto &hwInfo = *defaultHwInfo;
implicitArgs.simdWidth = 32;
@ -103,7 +103,7 @@ TEST(ImplicitArgsHelperTest, givenImplicitArgsWithoutImplicitArgsBufferOffsetInP
kernelDescriptor.kernelAttributes.workgroupDimensionsOrder[1] = 1;
kernelDescriptor.kernelAttributes.workgroupDimensionsOrder[2] = 2;
EXPECT_TRUE(isUndefinedOffset<>(kernelDescriptor.payloadMappings.implicitArgs.implcitArgsBuffer));
EXPECT_TRUE(isUndefinedOffset<>(kernelDescriptor.payloadMappings.implicitArgs.implicitArgsBuffer));
const auto &hwInfo = *defaultHwInfo;
implicitArgs.simdWidth = 1;
@ -145,8 +145,8 @@ TEST(ImplicitArgsHelperTest, givenImplicitArgsWithImplicitArgsBufferOffsetInPayl
ImplicitArgs implicitArgs{sizeof(ImplicitArgs)};
KernelDescriptor kernelDescriptor{};
kernelDescriptor.payloadMappings.implicitArgs.implcitArgsBuffer = 0x10;
EXPECT_TRUE(isValidOffset<>(kernelDescriptor.payloadMappings.implicitArgs.implcitArgsBuffer));
kernelDescriptor.payloadMappings.implicitArgs.implicitArgsBuffer = 0x10;
EXPECT_TRUE(isValidOffset<>(kernelDescriptor.payloadMappings.implicitArgs.implicitArgsBuffer));
const auto &hwInfo = *defaultHwInfo;
implicitArgs.simdWidth = 32;

View File

@ -1595,6 +1595,6 @@ TEST(KernelDescriptorFromPatchtokens, givenDataParameterImplArgBufferTokenWhenPo
NEO::populateKernelDescriptor(kernelDescriptor, kernelTokens, 8);
EXPECT_EQ(offset, kernelDescriptor.payloadMappings.implicitArgs.implcitArgsBuffer);
EXPECT_EQ(offset, kernelDescriptor.payloadMappings.implicitArgs.implicitArgsBuffer);
EXPECT_TRUE(kernelDescriptor.kernelAttributes.flags.requiresImplicitArgs);
}