Dependencies
This extension is written against the SPIR-V Specification, Version 1.5 Revision 3.
This extension requires SPIR-V 1.0.
Overview
Some FPGA devices and toolchains can support customizable levels or implementation of pipeline parallelism when mapping a SPIR-V module to hardware. Through pipeline parallelism, multiple invocations of a kernel or function can execute concurrently.
This extension adds decorations to request that a kernel or function support invocations at a specified initiation interval, that multiple invocations are forbidden from executing concurrently, or that the kernel or function is limited to a maximum number of concurrent invocations.
Extension Name
To use this extension within a SPIR-V module, the following OpExtension must be present in the module:
OpExtension "SPV_ALTERA_fpga_invocation_pipelining_attributes"
New capabilities
This extension introduces a new capability:
FPGAInvocationPipeliningAttributesALTERA
New Decorations
This extension adds the following decorations under the FPGAInvocationPipeliningAttributesALTERA capability:
InitiationIntervalALTERA MaxConcurrencyALTERA PipelineEnableALTERA
Token Number Assignments
FPGAInvocationPipeliningAttributesALTERA |
5916 |
InitiationIntervalALTERA |
5917 |
MaxConcurrencyALTERA |
5918 |
PipelineEnableALTERA |
5919 |
Modifications to the SPIR-V Specification, Version 1.5
Decoration
Modify Section 3.20, Decoration, adding these rows to the Decoration table:
| Decoration | Extra Operands | Enabling Capabilities | ||
|---|---|---|---|---|
5917 |
InitiationIntervalALTERA |
Literal |
FPGAInvocationPipeliningAttributesALTERA |
|
5918 |
MaxConcurrencyALTERA |
Literal |
FPGAInvocationPipeliningAttributesALTERA |
|
5919 |
PipelineEnableALTERA |
Literal |
FPGAInvocationPipeliningAttributesALTERA |
|