mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 06:49:52 +08:00
is_simt_thread token support
Change-Id: I8cee6ff26229f0f492ba0d1e5e61d6e46e0c2486 Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
a06369230c
commit
1926ef8319
@@ -700,6 +700,7 @@ Kernel-scope tokens section size : )==="
|
||||
uint32_t DataParamOffset;// = 0
|
||||
uint32_t DataParamSize;// = 0
|
||||
uint32_t PerThreadPrivateMemorySize;// = 0
|
||||
uint32_t IsSimtThread;// = 0
|
||||
}
|
||||
struct SPatchAllocateStatelessConstantMemorySurfaceWithInitialization :
|
||||
SPatchItemHeader (Token=39(PATCH_TOKEN_ALLOCATE_CONSTANT_MEMORY_SURFACE_WITH_INITIALIZATION), Size=)==="
|
||||
|
||||
@@ -2189,6 +2189,42 @@ kernels:
|
||||
EXPECT_TRUE(warnings.empty()) << warnings;
|
||||
ASSERT_EQ(1U, programInfo.kernelInfos.size());
|
||||
EXPECT_EQ(256U, programInfo.kernelInfos[0]->kernelDescriptor.kernelAttributes.perThreadPrivateMemorySize);
|
||||
EXPECT_FALSE(programInfo.kernelInfos[0]->kernelDescriptor.kernelAttributes.flags.isSimtThread);
|
||||
}
|
||||
|
||||
TEST(PopulateKernelDescriptor, givenSimtThreadSetWhenPopulatingThenUpdateKernelAttributes) {
|
||||
NEO::ConstStringRef zeinfo = R"===(
|
||||
kernels:
|
||||
- name : some_kernel
|
||||
execution_env:
|
||||
simd_size: 8
|
||||
per_thread_memory_buffers:
|
||||
- type: global
|
||||
usage: private_space
|
||||
size: 256
|
||||
is_simt_thread: true
|
||||
)===";
|
||||
NEO::ProgramInfo programInfo;
|
||||
ZebinTestData::ValidEmptyProgram zebin;
|
||||
zebin.appendSection(NEO::Elf::SHT_PROGBITS, NEO::Elf::SectionsNamesZebin::textPrefix.str() + "some_kernel", {});
|
||||
std::string errors, warnings;
|
||||
auto elf = NEO::Elf::decodeElf(zebin.storage, errors, warnings);
|
||||
ASSERT_NE(nullptr, elf.elfFileHeader) << errors << " " << warnings;
|
||||
|
||||
NEO::Yaml::YamlParser parser;
|
||||
bool parseSuccess = parser.parse(zeinfo, errors, warnings);
|
||||
ASSERT_TRUE(parseSuccess) << errors << " " << warnings;
|
||||
|
||||
NEO::ZebinSections zebinSections;
|
||||
auto extractErr = NEO::extractZebinSections(elf, zebinSections, errors, warnings);
|
||||
ASSERT_EQ(NEO::DecodeError::Success, extractErr) << errors << " " << warnings;
|
||||
|
||||
auto &kernelNode = *parser.createChildrenRange(*parser.findNodeWithKeyDfs("kernels")).begin();
|
||||
auto err = NEO::populateKernelDescriptor(programInfo, elf, zebinSections, parser, kernelNode, errors, warnings);
|
||||
EXPECT_EQ(NEO::DecodeError::Success, err);
|
||||
EXPECT_TRUE(errors.empty()) << errors;
|
||||
EXPECT_TRUE(warnings.empty()) << warnings;
|
||||
EXPECT_TRUE(programInfo.kernelInfos[0]->kernelDescriptor.kernelAttributes.flags.isSimtThread);
|
||||
}
|
||||
|
||||
TEST(PopulateKernelDescriptor, GivenPerThreadMemoryBufferWhenTypeIsScratchThenSetsProperFieldsInDescriptor) {
|
||||
|
||||
@@ -267,9 +267,11 @@ TEST(KernelDescriptorFromPatchtokens, GivenImplicitArgsThenSetsProperPartsOfDesc
|
||||
privateSurface.DataParamSize = 3;
|
||||
privateSurface.PerThreadPrivateMemorySize = 5;
|
||||
privateSurface.SurfaceStateHeapOffset = 7;
|
||||
privateSurface.IsSimtThread = true;
|
||||
kernelTokens.tokens.allocateStatelessPrivateSurface = &privateSurface;
|
||||
NEO::populateKernelDescriptor(kernelDescriptor, kernelTokens, 4);
|
||||
EXPECT_TRUE(kernelDescriptor.kernelAttributes.flags.usesPrivateMemory);
|
||||
EXPECT_TRUE(kernelDescriptor.kernelAttributes.flags.isSimtThread);
|
||||
EXPECT_EQ(privateSurface.PerThreadPrivateMemorySize, kernelDescriptor.kernelAttributes.perThreadPrivateMemorySize);
|
||||
EXPECT_EQ(privateSurface.DataParamOffset, kernelDescriptor.payloadMappings.implicitArgs.privateMemoryAddress.stateless);
|
||||
EXPECT_EQ(privateSurface.DataParamSize, kernelDescriptor.payloadMappings.implicitArgs.privateMemoryAddress.pointerSize);
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
TEST(KernelDescriptor, WhenDefaultInitializedThenValuesAreCleared) {
|
||||
NEO::KernelDescriptor desc;
|
||||
EXPECT_EQ(0U, desc.kernelAttributes.flags.packed);
|
||||
EXPECT_FALSE(desc.kernelAttributes.flags.isSimtThread);
|
||||
EXPECT_EQ(0U, desc.kernelAttributes.slmInlineSize);
|
||||
EXPECT_EQ(0U, desc.kernelAttributes.perThreadScratchSize[0]);
|
||||
EXPECT_EQ(0U, desc.kernelAttributes.perThreadScratchSize[1]);
|
||||
|
||||
Reference in New Issue
Block a user