feature: add support for new ze_bin wg barrier token
Related-To: NEO-11031 Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
parent
2406453440
commit
cc8b5ee972
|
@ -128,6 +128,7 @@ inline constexpr ConstStringRef scratchPointer("scratch_pointer");
|
||||||
inline constexpr ConstStringRef regionGroupSize("region_group_size");
|
inline constexpr ConstStringRef regionGroupSize("region_group_size");
|
||||||
inline constexpr ConstStringRef regionGroupDimension("region_group_dimension");
|
inline constexpr ConstStringRef regionGroupDimension("region_group_dimension");
|
||||||
inline constexpr ConstStringRef regionGroupWgCount("region_group_wg_count");
|
inline constexpr ConstStringRef regionGroupWgCount("region_group_wg_count");
|
||||||
|
inline constexpr ConstStringRef regionGroupBarrierBuffer("region_group_barrier_buffer");
|
||||||
|
|
||||||
namespace Image {
|
namespace Image {
|
||||||
inline constexpr ConstStringRef width("image_width");
|
inline constexpr ConstStringRef width("image_width");
|
||||||
|
@ -506,6 +507,7 @@ enum ArgType : uint8_t {
|
||||||
argTypeRegionGroupSize,
|
argTypeRegionGroupSize,
|
||||||
argTypeRegionGroupDimension,
|
argTypeRegionGroupDimension,
|
||||||
argTypeRegionGroupWgCount,
|
argTypeRegionGroupWgCount,
|
||||||
|
argTypeRegionGroupBarrierBuffer,
|
||||||
argTypeMax
|
argTypeMax
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1394,6 +1394,9 @@ DecodeError populateKernelPayloadArgument(NEO::KernelDescriptor &dst, const Kern
|
||||||
|
|
||||||
case Types::Kernel::argTypeRegionGroupWgCount:
|
case Types::Kernel::argTypeRegionGroupWgCount:
|
||||||
return populateWithOffsetChecked(dst.payloadMappings.dispatchTraits.regionGroupWgCount, sizeof(int32_t), Tags::Kernel::PayloadArgument::ArgType::regionGroupWgCount);
|
return populateWithOffsetChecked(dst.payloadMappings.dispatchTraits.regionGroupWgCount, sizeof(int32_t), Tags::Kernel::PayloadArgument::ArgType::regionGroupWgCount);
|
||||||
|
|
||||||
|
case Types::Kernel::argTypeRegionGroupBarrierBuffer:
|
||||||
|
return populateWithOffsetChecked(dst.payloadMappings.dispatchTraits.regionGroupBarrierBuffer, sizeof(int64_t), Tags::Kernel::PayloadArgument::ArgType::regionGroupBarrierBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNREACHABLE();
|
UNREACHABLE();
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2022-2023 Intel Corporation
|
* Copyright (C) 2022-2024 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -22,7 +22,7 @@ using namespace Tags::Kernel::PayloadArgument::ArgType::Sampler::Vme;
|
||||||
using ArgType = Types::Kernel::ArgType;
|
using ArgType = Types::Kernel::ArgType;
|
||||||
|
|
||||||
inline constexpr ConstStringRef name = "argument type";
|
inline constexpr ConstStringRef name = "argument type";
|
||||||
inline constexpr LookupArray<ConstStringRef, ArgType, 44> lookup({{
|
inline constexpr LookupArray<ConstStringRef, ArgType, 45> lookup({{
|
||||||
{packedLocalIds, ArgType::argTypePackedLocalIds},
|
{packedLocalIds, ArgType::argTypePackedLocalIds},
|
||||||
{localId, ArgType::argTypeLocalId},
|
{localId, ArgType::argTypeLocalId},
|
||||||
{localSize, ArgType::argTypeLocalSize},
|
{localSize, ArgType::argTypeLocalSize},
|
||||||
|
@ -67,6 +67,7 @@ inline constexpr LookupArray<ConstStringRef, ArgType, 44> lookup({{
|
||||||
{regionGroupSize, ArgType::argTypeRegionGroupSize},
|
{regionGroupSize, ArgType::argTypeRegionGroupSize},
|
||||||
{regionGroupDimension, ArgType::argTypeRegionGroupDimension},
|
{regionGroupDimension, ArgType::argTypeRegionGroupDimension},
|
||||||
{regionGroupWgCount, ArgType::argTypeRegionGroupWgCount},
|
{regionGroupWgCount, ArgType::argTypeRegionGroupWgCount},
|
||||||
|
{regionGroupBarrierBuffer, ArgType::argTypeRegionGroupBarrierBuffer},
|
||||||
}});
|
}});
|
||||||
static_assert(lookup.size() == ArgType::argTypeMax - 1, "Every enum field must be present");
|
static_assert(lookup.size() == ArgType::argTypeMax - 1, "Every enum field must be present");
|
||||||
} // namespace ArgType
|
} // namespace ArgType
|
||||||
|
|
|
@ -158,6 +158,7 @@ struct KernelDescriptor {
|
||||||
CrossThreadDataOffset regionGroupSize[3] = {undefined<CrossThreadDataOffset>, undefined<CrossThreadDataOffset>, undefined<CrossThreadDataOffset>};
|
CrossThreadDataOffset regionGroupSize[3] = {undefined<CrossThreadDataOffset>, undefined<CrossThreadDataOffset>, undefined<CrossThreadDataOffset>};
|
||||||
CrossThreadDataOffset regionGroupDimension = undefined<CrossThreadDataOffset>;
|
CrossThreadDataOffset regionGroupDimension = undefined<CrossThreadDataOffset>;
|
||||||
CrossThreadDataOffset regionGroupWgCount = undefined<CrossThreadDataOffset>;
|
CrossThreadDataOffset regionGroupWgCount = undefined<CrossThreadDataOffset>;
|
||||||
|
CrossThreadDataOffset regionGroupBarrierBuffer = undefined<CrossThreadDataOffset>;
|
||||||
} dispatchTraits;
|
} dispatchTraits;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
|
|
@ -5104,6 +5104,23 @@ TEST_F(decodeZeInfoKernelEntryTest, givenRegionArgTypesWhenArgSizeIsCorrectThenR
|
||||||
EXPECT_TRUE(warnings.empty()) << warnings;
|
EXPECT_TRUE(warnings.empty()) << warnings;
|
||||||
|
|
||||||
EXPECT_EQ(16, kernelDescriptor->payloadMappings.dispatchTraits.regionGroupWgCount);
|
EXPECT_EQ(16, kernelDescriptor->payloadMappings.dispatchTraits.regionGroupWgCount);
|
||||||
|
|
||||||
|
ConstStringRef zeInfoRegionGroupBarrier = R"===(
|
||||||
|
kernels:
|
||||||
|
- name : some_kernel
|
||||||
|
execution_env:
|
||||||
|
simd_size: 32
|
||||||
|
payload_arguments:
|
||||||
|
- arg_type : region_group_barrier_buffer
|
||||||
|
offset : 16
|
||||||
|
size : 8
|
||||||
|
)===";
|
||||||
|
err = decodeZeInfoKernelEntry(zeInfoRegionGroupBarrier);
|
||||||
|
EXPECT_EQ(NEO::DecodeError::success, err);
|
||||||
|
EXPECT_TRUE(errors.empty()) << errors;
|
||||||
|
EXPECT_TRUE(warnings.empty()) << warnings;
|
||||||
|
|
||||||
|
EXPECT_EQ(16, kernelDescriptor->payloadMappings.dispatchTraits.regionGroupBarrierBuffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(decodeZeInfoKernelEntryTest, GivenArgTypeGlobalSizeWhenArgSizeValidThenPopulatesKernelDescriptor) {
|
TEST_F(decodeZeInfoKernelEntryTest, GivenArgTypeGlobalSizeWhenArgSizeValidThenPopulatesKernelDescriptor) {
|
||||||
|
|
Loading…
Reference in New Issue