mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-04 23:56:39 +08:00
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:
committed by
Compute-Runtime-Automation
parent
5c0115488d
commit
0a4ab48e0b
@@ -130,7 +130,6 @@ static constexpr ConstStringRef perThreadMemoryBuffers("per_thread_memory_buffer
|
|||||||
static constexpr ConstStringRef experimentalProperties("experimental_properties");
|
static constexpr ConstStringRef experimentalProperties("experimental_properties");
|
||||||
|
|
||||||
namespace ExecutionEnv {
|
namespace ExecutionEnv {
|
||||||
static constexpr ConstStringRef actualKernelStartOffset("actual_kernel_start_offset");
|
|
||||||
static constexpr ConstStringRef barrierCount("barrier_count");
|
static constexpr ConstStringRef barrierCount("barrier_count");
|
||||||
static constexpr ConstStringRef disableMidThreadPreemption("disable_mid_thread_preemption");
|
static constexpr ConstStringRef disableMidThreadPreemption("disable_mid_thread_preemption");
|
||||||
static constexpr ConstStringRef grfCount("grf_count");
|
static constexpr ConstStringRef grfCount("grf_count");
|
||||||
@@ -317,12 +316,10 @@ static constexpr WorkgroupWalkOrderDimensionsT workgroupWalkOrderDimensions = {0
|
|||||||
} // namespace Defaults
|
} // namespace Defaults
|
||||||
|
|
||||||
static constexpr ConstStringRef required[] = {
|
static constexpr ConstStringRef required[] = {
|
||||||
Tags::Kernel::ExecutionEnv::actualKernelStartOffset,
|
|
||||||
Tags::Kernel::ExecutionEnv::grfCount,
|
Tags::Kernel::ExecutionEnv::grfCount,
|
||||||
Tags::Kernel::ExecutionEnv::simdSize};
|
Tags::Kernel::ExecutionEnv::simdSize};
|
||||||
|
|
||||||
struct ExecutionEnvBaseT {
|
struct ExecutionEnvBaseT {
|
||||||
ActualKernelStartOffsetT actualKernelStartOffset = -1;
|
|
||||||
BarrierCountT barrierCount = Defaults::barrierCount;
|
BarrierCountT barrierCount = Defaults::barrierCount;
|
||||||
DisableMidThreadPreemptionT disableMidThreadPreemption = Defaults::disableMidThreadPreemption;
|
DisableMidThreadPreemptionT disableMidThreadPreemption = Defaults::disableMidThreadPreemption;
|
||||||
GrfCountT grfCount = -1;
|
GrfCountT grfCount = -1;
|
||||||
|
|||||||
@@ -254,9 +254,7 @@ DecodeError readZeInfoExecutionEnvironment(const NEO::Yaml::YamlParser &parser,
|
|||||||
bool validExecEnv = true;
|
bool validExecEnv = true;
|
||||||
for (const auto &execEnvMetadataNd : parser.createChildrenRange(node)) {
|
for (const auto &execEnvMetadataNd : parser.createChildrenRange(node)) {
|
||||||
auto key = parser.readKey(execEnvMetadataNd);
|
auto key = parser.readKey(execEnvMetadataNd);
|
||||||
if (NEO::Elf::ZebinKernelMetadata::Tags::Kernel::ExecutionEnv::actualKernelStartOffset == key) {
|
if (NEO::Elf::ZebinKernelMetadata::Tags::Kernel::ExecutionEnv::barrierCount == key) {
|
||||||
validExecEnv = validExecEnv & readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.actualKernelStartOffset, context, outErrReason);
|
|
||||||
} else if (NEO::Elf::ZebinKernelMetadata::Tags::Kernel::ExecutionEnv::barrierCount == key) {
|
|
||||||
validExecEnv = validExecEnv & readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.barrierCount, context, outErrReason);
|
validExecEnv = validExecEnv & readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.barrierCount, context, outErrReason);
|
||||||
} else if (NEO::Elf::ZebinKernelMetadata::Tags::Kernel::ExecutionEnv::disableMidThreadPreemption == key) {
|
} else if (NEO::Elf::ZebinKernelMetadata::Tags::Kernel::ExecutionEnv::disableMidThreadPreemption == key) {
|
||||||
validExecEnv = validExecEnv & readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.disableMidThreadPreemption, context, outErrReason);
|
validExecEnv = validExecEnv & readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.disableMidThreadPreemption, context, outErrReason);
|
||||||
|
|||||||
@@ -2721,7 +2721,6 @@ TEST(YamlParser, GivenSimpleZebinThenParsesItCorrectly) {
|
|||||||
kernels:
|
kernels:
|
||||||
- name: k
|
- name: k
|
||||||
execution_env:
|
execution_env:
|
||||||
actual_kernel_start_offset: 0
|
|
||||||
grf_count: 128
|
grf_count: 128
|
||||||
has_no_stateless_write: true
|
has_no_stateless_write: true
|
||||||
simd_size: 32
|
simd_size: 32
|
||||||
@@ -2786,27 +2785,22 @@ kernels:
|
|||||||
ASSERT_NE(nullptr, ndBtis);
|
ASSERT_NE(nullptr, ndBtis);
|
||||||
EXPECT_STREQ("k", parser.readValue(*ndName).str().c_str());
|
EXPECT_STREQ("k", parser.readValue(*ndName).str().c_str());
|
||||||
{ // exec env
|
{ // exec env
|
||||||
auto ndActualKernelStartOffset = parser.getChild(*ndExecutionEnv, "actual_kernel_start_offset");
|
|
||||||
auto ndGrfCount = parser.getChild(*ndExecutionEnv, "grf_count");
|
auto ndGrfCount = parser.getChild(*ndExecutionEnv, "grf_count");
|
||||||
auto ndHasNoStatelessWrite = parser.getChild(*ndExecutionEnv, "has_no_stateless_write");
|
auto ndHasNoStatelessWrite = parser.getChild(*ndExecutionEnv, "has_no_stateless_write");
|
||||||
auto ndSimdSize = parser.getChild(*ndExecutionEnv, "simd_size");
|
auto ndSimdSize = parser.getChild(*ndExecutionEnv, "simd_size");
|
||||||
auto ndSubgroupIfp = parser.getChild(*ndExecutionEnv, "subgroup_independent_forward_progress");
|
auto ndSubgroupIfp = parser.getChild(*ndExecutionEnv, "subgroup_independent_forward_progress");
|
||||||
ASSERT_NE(nullptr, ndActualKernelStartOffset);
|
|
||||||
ASSERT_NE(nullptr, ndGrfCount);
|
ASSERT_NE(nullptr, ndGrfCount);
|
||||||
ASSERT_NE(nullptr, ndHasNoStatelessWrite);
|
ASSERT_NE(nullptr, ndHasNoStatelessWrite);
|
||||||
ASSERT_NE(nullptr, ndSimdSize);
|
ASSERT_NE(nullptr, ndSimdSize);
|
||||||
ASSERT_NE(nullptr, ndSubgroupIfp);
|
ASSERT_NE(nullptr, ndSubgroupIfp);
|
||||||
uint32_t actualKernelStartOffset;
|
|
||||||
uint32_t grfCount;
|
uint32_t grfCount;
|
||||||
bool hasNoStatelessWrite;
|
bool hasNoStatelessWrite;
|
||||||
uint32_t simdSize;
|
uint32_t simdSize;
|
||||||
bool subgroupIfp;
|
bool subgroupIfp;
|
||||||
EXPECT_TRUE(parser.readValueChecked(*ndActualKernelStartOffset, actualKernelStartOffset));
|
|
||||||
EXPECT_TRUE(parser.readValueChecked(*ndGrfCount, grfCount));
|
EXPECT_TRUE(parser.readValueChecked(*ndGrfCount, grfCount));
|
||||||
EXPECT_TRUE(parser.readValueChecked(*ndHasNoStatelessWrite, hasNoStatelessWrite));
|
EXPECT_TRUE(parser.readValueChecked(*ndHasNoStatelessWrite, hasNoStatelessWrite));
|
||||||
EXPECT_TRUE(parser.readValueChecked(*ndSimdSize, simdSize));
|
EXPECT_TRUE(parser.readValueChecked(*ndSimdSize, simdSize));
|
||||||
EXPECT_TRUE(parser.readValueChecked(*ndSubgroupIfp, subgroupIfp));
|
EXPECT_TRUE(parser.readValueChecked(*ndSubgroupIfp, subgroupIfp));
|
||||||
EXPECT_EQ(0U, actualKernelStartOffset);
|
|
||||||
EXPECT_EQ(128U, grfCount);
|
EXPECT_EQ(128U, grfCount);
|
||||||
EXPECT_TRUE(hasNoStatelessWrite);
|
EXPECT_TRUE(hasNoStatelessWrite);
|
||||||
EXPECT_EQ(32U, simdSize);
|
EXPECT_EQ(32U, simdSize);
|
||||||
|
|||||||
@@ -458,7 +458,8 @@ TEST(ExtractZeInfoKernelSections, GivenKnownSectionsThenCapturesThemProperly) {
|
|||||||
kernels:
|
kernels:
|
||||||
- name: some_kernel
|
- name: some_kernel
|
||||||
execution_env:
|
execution_env:
|
||||||
actual_kernel_start_offset: 0
|
grf_count: 128
|
||||||
|
simd_size: 32
|
||||||
debug_env:
|
debug_env:
|
||||||
sip_surface_bti: 0
|
sip_surface_bti: 0
|
||||||
payload_arguments:
|
payload_arguments:
|
||||||
@@ -514,7 +515,8 @@ TEST(ExtractZeInfoKernelSections, GivenExperimentalPropertyInKnownSectionsThenSe
|
|||||||
kernels:
|
kernels:
|
||||||
- name: some_kernel
|
- name: some_kernel
|
||||||
execution_env:
|
execution_env:
|
||||||
actual_kernel_start_offset: 0
|
grf_count: 128
|
||||||
|
simd_size: 32
|
||||||
payload_arguments:
|
payload_arguments:
|
||||||
- arg_type: global_id_offset
|
- arg_type: global_id_offset
|
||||||
offset: 0
|
offset: 0
|
||||||
@@ -968,7 +970,6 @@ TEST(ReadZeInfoExecutionEnvironment, GivenValidYamlEntriesThenSetProperMembers)
|
|||||||
kernels:
|
kernels:
|
||||||
- name: some_kernel
|
- name: some_kernel
|
||||||
execution_env:
|
execution_env:
|
||||||
actual_kernel_start_offset : 5
|
|
||||||
barrier_count : 7
|
barrier_count : 7
|
||||||
disable_mid_thread_preemption : true
|
disable_mid_thread_preemption : true
|
||||||
grf_count : 13
|
grf_count : 13
|
||||||
@@ -1012,7 +1013,6 @@ kernels:
|
|||||||
EXPECT_EQ(NEO::DecodeError::Success, err);
|
EXPECT_EQ(NEO::DecodeError::Success, err);
|
||||||
EXPECT_TRUE(errors.empty()) << errors;
|
EXPECT_TRUE(errors.empty()) << errors;
|
||||||
EXPECT_TRUE(warnings.empty()) << warnings;
|
EXPECT_TRUE(warnings.empty()) << warnings;
|
||||||
EXPECT_EQ(5, execEnv.actualKernelStartOffset);
|
|
||||||
EXPECT_EQ(7, execEnv.barrierCount);
|
EXPECT_EQ(7, execEnv.barrierCount);
|
||||||
EXPECT_TRUE(execEnv.disableMidThreadPreemption);
|
EXPECT_TRUE(execEnv.disableMidThreadPreemption);
|
||||||
EXPECT_EQ(13, execEnv.grfCount);
|
EXPECT_EQ(13, execEnv.grfCount);
|
||||||
@@ -1044,7 +1044,7 @@ TEST(ReadZeInfoExecutionEnvironment, GivenUnknownEntryThenEmmitsWarning) {
|
|||||||
kernels:
|
kernels:
|
||||||
- name: some_kernel
|
- name: some_kernel
|
||||||
execution_env:
|
execution_env:
|
||||||
actual_kernel_start_offset : 17
|
simd_size : 8
|
||||||
something_new : 36
|
something_new : 36
|
||||||
...
|
...
|
||||||
)===";
|
)===";
|
||||||
@@ -1062,7 +1062,7 @@ kernels:
|
|||||||
EXPECT_EQ(NEO::DecodeError::Success, err);
|
EXPECT_EQ(NEO::DecodeError::Success, err);
|
||||||
EXPECT_TRUE(errors.empty()) << errors;
|
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_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) {
|
TEST(ReadZeInfoExecutionEnvironment, GivenInvalidValueForKnownEntryThenFails) {
|
||||||
@@ -1070,7 +1070,7 @@ TEST(ReadZeInfoExecutionEnvironment, GivenInvalidValueForKnownEntryThenFails) {
|
|||||||
kernels:
|
kernels:
|
||||||
- name: some_kernel
|
- name: some_kernel
|
||||||
execution_env:
|
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);
|
auto err = NEO::readZeInfoExecutionEnvironment(parser, execEnvNode, execEnv, "some_kernel", errors, warnings);
|
||||||
EXPECT_EQ(NEO::DecodeError::InvalidBinary, err);
|
EXPECT_EQ(NEO::DecodeError::InvalidBinary, err);
|
||||||
EXPECT_TRUE(warnings.empty()) << warnings;
|
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) {
|
TEST(ReadZeInfoExecutionEnvironment, GivenInvalidLengthForKnownCollectionEntryThenFails) {
|
||||||
@@ -3020,7 +3020,8 @@ TEST(PopulateKernelDescriptor, GivenInvalidPerThreadPayloadArgYamlEntriesThenFai
|
|||||||
kernels:
|
kernels:
|
||||||
- name : some_kernel
|
- name : some_kernel
|
||||||
execution_env:
|
execution_env:
|
||||||
actual_kernel_start_offset: 0
|
grf_count: 128
|
||||||
|
simd_size: 32
|
||||||
per_thread_payload_arguments:
|
per_thread_payload_arguments:
|
||||||
- arg_type: local_id
|
- arg_type: local_id
|
||||||
offset: aaa
|
offset: aaa
|
||||||
@@ -3048,7 +3049,8 @@ TEST(PopulateKernelDescriptor, GivenInvalidPayloadArgYamlEntriesThenFails) {
|
|||||||
kernels:
|
kernels:
|
||||||
- name : some_kernel
|
- name : some_kernel
|
||||||
execution_env:
|
execution_env:
|
||||||
actual_kernel_start_offset: 0
|
grf_count: 128
|
||||||
|
simd_size: 32
|
||||||
payload_arguments:
|
payload_arguments:
|
||||||
- arg_type: global_id_offset
|
- arg_type: global_id_offset
|
||||||
offset: aaa
|
offset: aaa
|
||||||
@@ -3076,7 +3078,8 @@ TEST(PopulateKernelDescriptor, GivenInvalidPerThreadMemoryBufferYamlEntriesThenF
|
|||||||
kernels:
|
kernels:
|
||||||
- name : some_kernel
|
- name : some_kernel
|
||||||
execution_env:
|
execution_env:
|
||||||
actual_kernel_start_offset: 0
|
grf_count: 128
|
||||||
|
simd_size: 32
|
||||||
per_thread_memory_buffers:
|
per_thread_memory_buffers:
|
||||||
- type: scratch
|
- type: scratch
|
||||||
usage: spill_fill_space
|
usage: spill_fill_space
|
||||||
@@ -3838,7 +3841,6 @@ TEST(PopulateKernelDescriptor, GivenValidExecutionEnvironmentThenPopulateKernelD
|
|||||||
kernels:
|
kernels:
|
||||||
- name : some_kernel
|
- name : some_kernel
|
||||||
execution_env:
|
execution_env:
|
||||||
actual_kernel_start_offset : 5
|
|
||||||
barrier_count : 7
|
barrier_count : 7
|
||||||
disable_mid_thread_preemption : true
|
disable_mid_thread_preemption : true
|
||||||
grf_count : 13
|
grf_count : 13
|
||||||
|
|||||||
Reference in New Issue
Block a user