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 <kacper.nowak@intel.com>
This commit is contained in:
Kacper Nowak
2022-07-20 09:29:50 +00:00
committed by Compute-Runtime-Automation
parent 5c0115488d
commit 0a4ab48e0b
4 changed files with 15 additions and 24 deletions

View File

@@ -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;

View File

@@ -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);

View File

@@ -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);

View File

@@ -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