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 regionGroupDimension("region_group_dimension");
|
||||
inline constexpr ConstStringRef regionGroupWgCount("region_group_wg_count");
|
||||
inline constexpr ConstStringRef regionGroupBarrierBuffer("region_group_barrier_buffer");
|
||||
|
||||
namespace Image {
|
||||
inline constexpr ConstStringRef width("image_width");
|
||||
|
@ -506,6 +507,7 @@ enum ArgType : uint8_t {
|
|||
argTypeRegionGroupSize,
|
||||
argTypeRegionGroupDimension,
|
||||
argTypeRegionGroupWgCount,
|
||||
argTypeRegionGroupBarrierBuffer,
|
||||
argTypeMax
|
||||
};
|
||||
|
||||
|
|
|
@ -1394,6 +1394,9 @@ DecodeError populateKernelPayloadArgument(NEO::KernelDescriptor &dst, const Kern
|
|||
|
||||
case Types::Kernel::argTypeRegionGroupWgCount:
|
||||
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();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (C) 2022-2023 Intel Corporation
|
||||
* Copyright (C) 2022-2024 Intel Corporation
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
|
@ -22,7 +22,7 @@ using namespace Tags::Kernel::PayloadArgument::ArgType::Sampler::Vme;
|
|||
using ArgType = Types::Kernel::ArgType;
|
||||
|
||||
inline constexpr ConstStringRef name = "argument type";
|
||||
inline constexpr LookupArray<ConstStringRef, ArgType, 44> lookup({{
|
||||
inline constexpr LookupArray<ConstStringRef, ArgType, 45> lookup({{
|
||||
{packedLocalIds, ArgType::argTypePackedLocalIds},
|
||||
{localId, ArgType::argTypeLocalId},
|
||||
{localSize, ArgType::argTypeLocalSize},
|
||||
|
@ -67,6 +67,7 @@ inline constexpr LookupArray<ConstStringRef, ArgType, 44> lookup({{
|
|||
{regionGroupSize, ArgType::argTypeRegionGroupSize},
|
||||
{regionGroupDimension, ArgType::argTypeRegionGroupDimension},
|
||||
{regionGroupWgCount, ArgType::argTypeRegionGroupWgCount},
|
||||
{regionGroupBarrierBuffer, ArgType::argTypeRegionGroupBarrierBuffer},
|
||||
}});
|
||||
static_assert(lookup.size() == ArgType::argTypeMax - 1, "Every enum field must be present");
|
||||
} // namespace ArgType
|
||||
|
|
|
@ -158,6 +158,7 @@ struct KernelDescriptor {
|
|||
CrossThreadDataOffset regionGroupSize[3] = {undefined<CrossThreadDataOffset>, undefined<CrossThreadDataOffset>, undefined<CrossThreadDataOffset>};
|
||||
CrossThreadDataOffset regionGroupDimension = undefined<CrossThreadDataOffset>;
|
||||
CrossThreadDataOffset regionGroupWgCount = undefined<CrossThreadDataOffset>;
|
||||
CrossThreadDataOffset regionGroupBarrierBuffer = undefined<CrossThreadDataOffset>;
|
||||
} dispatchTraits;
|
||||
|
||||
struct {
|
||||
|
|
|
@ -5104,6 +5104,23 @@ TEST_F(decodeZeInfoKernelEntryTest, givenRegionArgTypesWhenArgSizeIsCorrectThenR
|
|||
EXPECT_TRUE(warnings.empty()) << warnings;
|
||||
|
||||
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) {
|
||||
|
|
Loading…
Reference in New Issue