mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-26 15:03:02 +08:00
feature(zebin): add implicit_arg_buffer_used_by_code exec env support
Resolves: NEO-14667 Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
542f47dfe6
commit
c4bfe4e487
@@ -62,6 +62,8 @@ inline constexpr ConstStringRef workGroupWalkOrderDimensions("work_group_walk_or
|
||||
inline constexpr ConstStringRef threadSchedulingMode("thread_scheduling_mode");
|
||||
inline constexpr ConstStringRef hasSample("has_sample");
|
||||
inline constexpr ConstStringRef actualKernelStartOffset("actual_kernel_start_offset");
|
||||
inline constexpr ConstStringRef implicitArgBufferUsedByCode("implicit_arg_buffer_used_by_code");
|
||||
|
||||
namespace ThreadSchedulingMode {
|
||||
inline constexpr ConstStringRef ageBased("age_based");
|
||||
inline constexpr ConstStringRef roundRobin("round_robin");
|
||||
@@ -357,6 +359,7 @@ using SpillSizeT = int32_t;
|
||||
using LocalRegionSizeT = int32_t;
|
||||
using WalkOrderT = int32_t;
|
||||
using PartitionDimT = int32_t;
|
||||
using HasImplicitArgBufferUsedByCodeT = bool;
|
||||
|
||||
namespace Defaults {
|
||||
inline constexpr BarrierCountT barrierCount = 0;
|
||||
@@ -391,6 +394,7 @@ inline constexpr SpillSizeT spillSize = 0;
|
||||
inline constexpr LocalRegionSizeT localRegionSize = -1;
|
||||
inline constexpr WalkOrderT dispatchWalkOrder = -1;
|
||||
inline constexpr PartitionDimT partitionDim = -1;
|
||||
inline constexpr HasImplicitArgBufferUsedByCodeT hasImplicitArgBufferUsedByCode = false;
|
||||
} // namespace Defaults
|
||||
|
||||
inline constexpr ConstStringRef required[] = {
|
||||
@@ -441,6 +445,7 @@ struct ExecutionEnvBaseT final : NEO::NonCopyableAndNonMovableClass {
|
||||
LocalRegionSizeT localRegionSize = Defaults::localRegionSize;
|
||||
WalkOrderT dispatchWalkOrder = Defaults::dispatchWalkOrder;
|
||||
PartitionDimT partitionDim = Defaults::partitionDim;
|
||||
HasImplicitArgBufferUsedByCodeT hasImplicitArgBufferUsedByCode = Defaults::hasImplicitArgBufferUsedByCode;
|
||||
};
|
||||
|
||||
static_assert(NEO::NonCopyableAndNonMovable<ExecutionEnvBaseT>);
|
||||
|
||||
@@ -686,6 +686,8 @@ DecodeError readZeInfoExecutionEnvironment(const Yaml::YamlParser &parser, const
|
||||
validExecEnv &= readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.privateSize, context, outErrReason);
|
||||
} else if (Tags::Kernel::ExecutionEnv::spillSize == key) {
|
||||
validExecEnv &= readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.spillSize, context, outErrReason);
|
||||
} else if (Tags::Kernel::ExecutionEnv::implicitArgBufferUsedByCode == key) {
|
||||
validExecEnv &= readZeInfoValueChecked(parser, execEnvMetadataNd, outExecEnv.hasImplicitArgBufferUsedByCode, context, outErrReason);
|
||||
} else if (Tags::Kernel::ExecutionEnv::actualKernelStartOffset == key) {
|
||||
// ignore intentionally - deprecated and redundant key
|
||||
} else {
|
||||
@@ -718,6 +720,7 @@ void populateKernelExecutionEnvironment(KernelDescriptor &dst, const KernelExecu
|
||||
dst.kernelAttributes.flags.usesSystolicPipelineSelectMode = execEnv.hasDpas;
|
||||
dst.kernelAttributes.flags.usesStatelessWrites = (false == execEnv.hasNoStatelessWrite);
|
||||
dst.kernelAttributes.flags.hasSample = execEnv.hasSample;
|
||||
dst.kernelAttributes.flags.requiresImplicitArgs = execEnv.hasImplicitArgBufferUsedByCode;
|
||||
dst.kernelAttributes.barrierCount = execEnv.barrierCount;
|
||||
dst.kernelAttributes.bufferAddressingMode = (execEnv.has4GBBuffers) ? KernelDescriptor::Stateless : KernelDescriptor::BindfulAndStateless;
|
||||
dst.kernelAttributes.inlineDataPayloadSize = static_cast<uint16_t>(execEnv.inlineDataPayloadSize);
|
||||
|
||||
Reference in New Issue
Block a user