SPV_INTEL_kernel_attributes
SPV_INTEL_kernel_attributes
Table of Contents
Name Strings
Contact
Contributors
Notice
Status
Version
Dependencies
Overview
Extension Name
New Capabilities
New Execution Modes
Token Number Assignments
Modifications to the SPIR-V Specification, Version 1.6
Issues
Revision History
Name Strings
SPV_INTEL_kernel_attributes
Contact
To report problems with this extension, please open a new issue at:
Contributors
Jessica Davies, Intel
Joseph Garvey, Intel
Ajaykumar Kannan, Intel
Michael Kinsner, Intel
Ryan Murray, Intel
Abhishek Tiwari, Intel
Notice
Copyright (c) 2019-2022 Intel Corporation. All rights reserved.
Status
Final Draft
Version
Last Modified Date
2022-12-05
Revision
Dependencies
This extension is written against the SPIR-V Specification,
Version 1.6 Revision 2.
This extension requires SPIR-V 1.0.
Overview
This extension adds a variety of new execution modes, both general and target-specific. The target-specific execution modes are guarded by separate capabilities.
Extension Name
To use this extension within a SPIR-V module, the following
OpExtension
must be present in the module:
OpExtension "SPV_INTEL_kernel_attributes"
New Capabilities
This extension introduces new capabilities:
KernelAttributesINTEL
FPGAKernelAttributesINTEL
FPGAKernelAttributesv2INTEL
New Execution Modes
MaxWorkgroupSizeINTEL
MaxWorkDimINTEL
NoGlobalOffsetINTEL
NumSIMDWorkitemsINTEL
SchedulerTargetFmaxMhzINTEL
StreamingInterfaceINTEL
RegisterMapInterfaceINTEL
Token Number Assignments
KernelAttributesINTEL
5892
MaxWorkgroupSizeINTEL
5893
MaxWorkDimINTEL
5894
NoGlobalOffsetINTEL
5895
NumSIMDWorkitemsINTEL
5896
FPGAKernelAttributesINTEL
5897
FPGAKernelAttributesv2INTEL
6161
SchedulerTargetFmaxMhzINTEL
5903
StreamingInterfaceINTEL
6154
RegisterMapInterfaceINTEL
6160
Modifications to the SPIR-V Specification, Version 1.6
Execution Mode
Modify Section 3.6, Execution Mode, adding these rows to the Execution Mode table:
Execution Mode
Extra Operands
Enabling Capabilities
5893
MaxWorkgroupSizeINTEL
Indicates the maximum possible work-group size in the x, y, and z dimensions.
If a
LocalSize
execution mode is applied to the same entry point, it is invalid for
max_i_size
size
for dimension
Only valid with the
Kernel
Execution Model.
Literal Number
max_x_size
Literal Number
max_y_size
Literal Number
max_z_size
KernelAttributesINTEL
5894
MaxWorkDimINTEL
Indicates the maximum number of work dimensions. Legal values range from 0 to 3.
A maximum dimensionality of 0 indicates that the kernel can only be launched with a single work-item.
If a
LocalSize
execution mode is applied to the same entry point, the size of each dimension beyond
max_dimensions
must be 1.
Only valid with the
Kernel
Execution Model.
Literal Number
max_dimensions
KernelAttributesINTEL
5895
NoGlobalOffsetINTEL
Indicates that the global offset is always (0, 0, 0). Only valid with the
Kernel
Execution Model.
KernelAttributesINTEL
5896
NumSIMDWorkitemsINTEL
Indicates that the kernel should be vectorized with the provided vector width. Only valid with the
Kernel
Execution Model.
Literal Number
vector_width
FPGAKernelAttributesINTEL
5903
SchedulerTargetFmaxMhzINTEL
Indicates the target clock frequency (Fmax) for the kernel, in MHz. Only valid with the
Kernel
Execution Model.
Literal Number
target_fmax
FPGAKernelAttributesINTEL
6154
StreamingInterfaceINTEL
Indicates that the kernel has a streaming interface, in which invocation of and return from the kernel is synchronized by a flow control handshaking protocol.
StallFreeReturn
is a 32-bit unsigned integer type scalar.
If
StallFreeReturn
is equal to zero, it indicates that the return interface of the kernel can input a stall control flow signal from downstream logic, while a non-zero value indicates that it will not accept a stall control flow signal from downstream logic.
Literal
StallFreeReturn
FPGAKernelAttributesINTEL
6160
RegisterMapInterfaceINTEL
Indicates that the kernel has a single register based interface that is shared across all kernel control signals and kernel arguments.
WaitForDoneWrite
is a boolean type scalar.
If
WaitForDoneWrite
is
true
, it indicates that the kernel interface will contain a stall register that can be used to back-pressure the kernel, while if it is
false
, it indicates that it will not.
Literal
WaitForDoneWrite
FPGAKernelAttributesv2INTEL
Capability
Modify Section 3.31, Capability, adding the following rows to the Capability table:
Capability
Implicitly Declares
5892
KernelAttributesINTEL
5897
FPGAKernelAttributesINTEL
6161
FPGAKernelAttributesv2INTEL
FPGAKernelAttributesINTEL
Validation Rules
It is illegal to specify both
StreamingInterfaceINTEL
and
RegisterMapInterfaceINTEL
modes on the same entry point.
Issues
None.
Revision History
Rev
Date
Author
Changes
2019-12-18
Joe Garvey
Initial public release
2020-04-22
Jessica Davies
Added one new execution mode, SchedulerTargetFmaxMhzINTEL.
2021-09-14
Ajaykumar Kannan
Added one new execution mode, StreamingInterfaceINTEL.
2022-12-05
Abhishek Tiwari
Added one new execution mode, RegisterMapInterfaceINTEL, under a new compatibility.