From 0a4ab48e0bc4e0398ebe3bd40c54ca9f5e292cc3 Mon Sep 17 00:00:00 2001 From: Kacper Nowak Date: Wed, 20 Jul 2022 09:29:50 +0000 Subject: [PATCH] Zebin: Remove actual_kernel_start_offset from execEnv This change is needed to bump zeInfo version beyond 1.6 - Version 1.6: Remove actual_kernel_start_offset from execution environment. Signed-off-by: Kacper Nowak --- .../device_binary_format/elf/zebin_elf.h | 3 --- .../device_binary_format/zebin_decoder.cpp | 4 +-- .../yaml/yaml_parser_tests.cpp | 6 ----- .../zebin_decoder_tests.cpp | 26 ++++++++++--------- 4 files changed, 15 insertions(+), 24 deletions(-) diff --git a/shared/source/device_binary_format/elf/zebin_elf.h b/shared/source/device_binary_format/elf/zebin_elf.h index 3b54ffb352..aa49ad9cee 100644 --- a/shared/source/device_binary_format/elf/zebin_elf.h +++ b/shared/source/device_binary_format/elf/zebin_elf.h @@ -130,7 +130,6 @@ static constexpr ConstStringRef perThreadMemoryBuffers("per_thread_memory_buffer static constexpr ConstStringRef experimentalProperties("experimental_properties"); namespace ExecutionEnv { -static constexpr ConstStringRef actualKernelStartOffset("actual_kernel_start_offset"); static constexpr ConstStringRef barrierCount("barrier_count"); static constexpr ConstStringRef disableMidThreadPreemption("disable_mid_thread_preemption"); static constexpr ConstStringRef grfCount("grf_count"); @@ -317,12 +316,10 @@ static constexpr WorkgroupWalkOrderDimensionsT workgroupWalkOrderDimensions = {0 } // namespace Defaults static constexpr ConstStringRef required[] = { - Tags::Kernel::ExecutionEnv::actualKernelStartOffset, Tags::Kernel::ExecutionEnv::grfCount, Tags::Kernel::ExecutionEnv::simdSize}; struct ExecutionEnvBaseT { - ActualKernelStartOffsetT actualKernelStartOffset = -1; BarrierCountT barrierCount = Defaults::barrierCount; DisableMidThreadPreemptionT disableMidThreadPreemption = Defaults::disableMidThreadPreemption; GrfCountT grfCount = -1; diff --git a/shared/source/device_binary_format/zebin_decoder.cpp b/shared/source/device_binary_format/zebin_decoder.cpp index 1afafb921a..47ad5e5da2 100644 --- a/shared/source/device_binary_format/zebin_decoder.cpp +++ b/shared/source/device_binary_format/zebin_decoder.cpp @@ -254,9 +254,7 @@ DecodeError readZeInfoExecutionEnvironment(const NEO::Yaml::YamlParser &parser, bool validExecEnv = true; for (const auto &execEnvMetadataNd : parser.createChildrenRange(node)) { auto key = parser.readKey(execEnvMetadataNd); - if (NEO::Elf::ZebinKernelMetadata::Tags::Kernel::ExecutionEnv::actualKernelStartOffset == key) { - validExecEnv = validExecEnv & readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.actualKernelStartOffset, context, outErrReason); - } else if (NEO::Elf::ZebinKernelMetadata::Tags::Kernel::ExecutionEnv::barrierCount == key) { + if (NEO::Elf::ZebinKernelMetadata::Tags::Kernel::ExecutionEnv::barrierCount == key) { validExecEnv = validExecEnv & readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.barrierCount, context, outErrReason); } else if (NEO::Elf::ZebinKernelMetadata::Tags::Kernel::ExecutionEnv::disableMidThreadPreemption == key) { validExecEnv = validExecEnv & readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.disableMidThreadPreemption, context, outErrReason); diff --git a/shared/test/unit_test/device_binary_format/yaml/yaml_parser_tests.cpp b/shared/test/unit_test/device_binary_format/yaml/yaml_parser_tests.cpp index 3eafd478b2..c31118b5a0 100644 --- a/shared/test/unit_test/device_binary_format/yaml/yaml_parser_tests.cpp +++ b/shared/test/unit_test/device_binary_format/yaml/yaml_parser_tests.cpp @@ -2721,7 +2721,6 @@ TEST(YamlParser, GivenSimpleZebinThenParsesItCorrectly) { kernels: - name: k execution_env: - actual_kernel_start_offset: 0 grf_count: 128 has_no_stateless_write: true simd_size: 32 @@ -2786,27 +2785,22 @@ kernels: ASSERT_NE(nullptr, ndBtis); EXPECT_STREQ("k", parser.readValue(*ndName).str().c_str()); { // exec env - auto ndActualKernelStartOffset = parser.getChild(*ndExecutionEnv, "actual_kernel_start_offset"); auto ndGrfCount = parser.getChild(*ndExecutionEnv, "grf_count"); auto ndHasNoStatelessWrite = parser.getChild(*ndExecutionEnv, "has_no_stateless_write"); auto ndSimdSize = parser.getChild(*ndExecutionEnv, "simd_size"); auto ndSubgroupIfp = parser.getChild(*ndExecutionEnv, "subgroup_independent_forward_progress"); - ASSERT_NE(nullptr, ndActualKernelStartOffset); ASSERT_NE(nullptr, ndGrfCount); ASSERT_NE(nullptr, ndHasNoStatelessWrite); ASSERT_NE(nullptr, ndSimdSize); ASSERT_NE(nullptr, ndSubgroupIfp); - uint32_t actualKernelStartOffset; uint32_t grfCount; bool hasNoStatelessWrite; uint32_t simdSize; bool subgroupIfp; - EXPECT_TRUE(parser.readValueChecked(*ndActualKernelStartOffset, actualKernelStartOffset)); EXPECT_TRUE(parser.readValueChecked(*ndGrfCount, grfCount)); EXPECT_TRUE(parser.readValueChecked(*ndHasNoStatelessWrite, hasNoStatelessWrite)); EXPECT_TRUE(parser.readValueChecked(*ndSimdSize, simdSize)); EXPECT_TRUE(parser.readValueChecked(*ndSubgroupIfp, subgroupIfp)); - EXPECT_EQ(0U, actualKernelStartOffset); EXPECT_EQ(128U, grfCount); EXPECT_TRUE(hasNoStatelessWrite); EXPECT_EQ(32U, simdSize); diff --git a/shared/test/unit_test/device_binary_format/zebin_decoder_tests.cpp b/shared/test/unit_test/device_binary_format/zebin_decoder_tests.cpp index 913a52c954..2a26ff707b 100644 --- a/shared/test/unit_test/device_binary_format/zebin_decoder_tests.cpp +++ b/shared/test/unit_test/device_binary_format/zebin_decoder_tests.cpp @@ -458,7 +458,8 @@ TEST(ExtractZeInfoKernelSections, GivenKnownSectionsThenCapturesThemProperly) { kernels: - name: some_kernel execution_env: - actual_kernel_start_offset: 0 + grf_count: 128 + simd_size: 32 debug_env: sip_surface_bti: 0 payload_arguments: @@ -514,7 +515,8 @@ TEST(ExtractZeInfoKernelSections, GivenExperimentalPropertyInKnownSectionsThenSe kernels: - name: some_kernel execution_env: - actual_kernel_start_offset: 0 + grf_count: 128 + simd_size: 32 payload_arguments: - arg_type: global_id_offset offset: 0 @@ -968,7 +970,6 @@ TEST(ReadZeInfoExecutionEnvironment, GivenValidYamlEntriesThenSetProperMembers) kernels: - name: some_kernel execution_env: - actual_kernel_start_offset : 5 barrier_count : 7 disable_mid_thread_preemption : true grf_count : 13 @@ -1012,7 +1013,6 @@ kernels: EXPECT_EQ(NEO::DecodeError::Success, err); EXPECT_TRUE(errors.empty()) << errors; EXPECT_TRUE(warnings.empty()) << warnings; - EXPECT_EQ(5, execEnv.actualKernelStartOffset); EXPECT_EQ(7, execEnv.barrierCount); EXPECT_TRUE(execEnv.disableMidThreadPreemption); EXPECT_EQ(13, execEnv.grfCount); @@ -1044,7 +1044,7 @@ TEST(ReadZeInfoExecutionEnvironment, GivenUnknownEntryThenEmmitsWarning) { kernels: - name: some_kernel execution_env: - actual_kernel_start_offset : 17 + simd_size : 8 something_new : 36 ... )==="; @@ -1062,7 +1062,7 @@ kernels: EXPECT_EQ(NEO::DecodeError::Success, err); EXPECT_TRUE(errors.empty()) << errors; EXPECT_STREQ("DeviceBinaryFormat::Zebin::.ze_info : Unknown entry \"something_new\" in context of some_kernel\n", warnings.c_str()); - EXPECT_EQ(17, execEnv.actualKernelStartOffset); + EXPECT_EQ(8, execEnv.simdSize); } TEST(ReadZeInfoExecutionEnvironment, GivenInvalidValueForKnownEntryThenFails) { @@ -1070,7 +1070,7 @@ TEST(ReadZeInfoExecutionEnvironment, GivenInvalidValueForKnownEntryThenFails) { kernels: - name: some_kernel execution_env: - actual_kernel_start_offset : true + simd_size : true ... )==="; @@ -1086,7 +1086,7 @@ kernels: auto err = NEO::readZeInfoExecutionEnvironment(parser, execEnvNode, execEnv, "some_kernel", errors, warnings); EXPECT_EQ(NEO::DecodeError::InvalidBinary, err); EXPECT_TRUE(warnings.empty()) << warnings; - EXPECT_STREQ("DeviceBinaryFormat::Zebin::.ze_info : could not read actual_kernel_start_offset from : [true] in context of : some_kernel\n", errors.c_str()); + EXPECT_STREQ("DeviceBinaryFormat::Zebin::.ze_info : could not read simd_size from : [true] in context of : some_kernel\n", errors.c_str()); } TEST(ReadZeInfoExecutionEnvironment, GivenInvalidLengthForKnownCollectionEntryThenFails) { @@ -3020,7 +3020,8 @@ TEST(PopulateKernelDescriptor, GivenInvalidPerThreadPayloadArgYamlEntriesThenFai kernels: - name : some_kernel execution_env: - actual_kernel_start_offset: 0 + grf_count: 128 + simd_size: 32 per_thread_payload_arguments: - arg_type: local_id offset: aaa @@ -3048,7 +3049,8 @@ TEST(PopulateKernelDescriptor, GivenInvalidPayloadArgYamlEntriesThenFails) { kernels: - name : some_kernel execution_env: - actual_kernel_start_offset: 0 + grf_count: 128 + simd_size: 32 payload_arguments: - arg_type: global_id_offset offset: aaa @@ -3076,7 +3078,8 @@ TEST(PopulateKernelDescriptor, GivenInvalidPerThreadMemoryBufferYamlEntriesThenF kernels: - name : some_kernel execution_env: - actual_kernel_start_offset: 0 + grf_count: 128 + simd_size: 32 per_thread_memory_buffers: - type: scratch usage: spill_fill_space @@ -3838,7 +3841,6 @@ TEST(PopulateKernelDescriptor, GivenValidExecutionEnvironmentThenPopulateKernelD kernels: - name : some_kernel execution_env: - actual_kernel_start_offset : 5 barrier_count : 7 disable_mid_thread_preemption : true grf_count : 13