Skip to content

Commit abfc20e

Browse files
committed
Add SPV_INTEL_vector_compute extension preview
1 parent 1d13f84 commit abfc20e

File tree

1 file changed

+154
-0
lines changed

1 file changed

+154
-0
lines changed
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
SPV_INTEL_vector_compute
2+
========================
3+
4+
Name Strings
5+
------------
6+
7+
SPV_INTEL_vector_compute
8+
9+
Contact
10+
-------
11+
12+
To report problems or to provide input on this extension, please open a new issue at:
13+
https://github.com/intel/llvm/issues
14+
15+
Contributors
16+
------------
17+
18+
- Gang Chen, Intel
19+
- Mariusz Merecki, Intel
20+
- Aleksandr Bezzubikov, Intel
21+
22+
23+
Notice
24+
------
25+
26+
Copyright (c) 2020 Intel Corporation. All rights reserved.
27+
28+
Status
29+
------
30+
31+
Working Draft
32+
33+
This is a preview extension specification, intended to provide early access to a feature for review and community feedback. When the feature matures, this specification may be released as a formal extension.
34+
35+
Because the interfaces defined by this specification are not final and are subject to change they are not intended to be used by shipping software products. If you are interested in using this feature in your software product, please let us know!
36+
37+
38+
Version
39+
-------
40+
41+
[width="40%",cols="25,25"]
42+
|========================================
43+
| Last Modified Date | 2020-04-24
44+
| Revision | 2
45+
|========================================
46+
47+
Dependencies
48+
------------
49+
50+
This extension is written against the SPIR-V Specification,
51+
Version 1.5, Revision 2, Unified
52+
53+
This extension requires SPIR-V 1.0.
54+
55+
Overview
56+
--------
57+
58+
This extension adds new execution model, capability, execution modes and decorations
59+
to support INTEL vector compute specific features in SPIR-V.
60+
61+
62+
Extension Name
63+
--------------
64+
65+
To use this extension within a SPIR-V module, the following
66+
*OpExtension* must be present in the module:
67+
68+
----
69+
OpExtension "SPV_INTEL_vector_compute"
70+
----
71+
72+
Modifications to the SPIR-V Specification, Version 1.5, Revision 2, Unified
73+
---------------------------------------------------------------------------
74+
75+
Modify Section 3.3, Execution Model, add the following row to the Execution Model table:
76+
77+
[cols="1,20,10",options="header",width = "60%"]
78+
|====
79+
2+^| Execution Model | Enabling Capabilities
80+
| 5626 | *VectorComputeKernelINTEL* | *VectorComputeINTEL*
81+
|====
82+
83+
Modify Section 3.6, Execution Mode, add the following rows to the Execution Mode table:
84+
85+
--
86+
[cols="1,20,10,10",options="header",width = "80%"]
87+
|====
88+
2+^| Execution Mode | Enabling Capabilities | Extra Operands
89+
| 5618 | *SharedLocalMemorySizeINTEL* +
90+
Specifies the size of shared memory required by kernel, in bytes.
91+
92+
'Size' is an unsigned 32-bit integer.
93+
94+
See the client API specification for more detail.
95+
| *VectorComputeINTEL* | <<Literal, 'Literal'>> _Size_
96+
|====
97+
--
98+
99+
Modify Section 3.20, Decoration, add the following rows to the Decoration table:
100+
101+
--
102+
[cols="1,20,10,10",options="header",width = "80%"]
103+
|====
104+
2+^| Decoration | Enabling Capabilities | Extra Operands
105+
| 5624 | *KernelArgumentTypeINTEL* +
106+
Apply to a function parameter to provide information about high level language argument type.
107+
108+
_Argument Type_ is an unsigned 32-bit integer.
109+
110+
See the client API specification for more detail.
111+
| *VectorComputeINTEL* | <<Literal, 'Literal'>> _Argument Type_
112+
| 5625 | *KernelArgumentDescINTEL* +
113+
Apply to a function parameter to provide a string description of the argument.
114+
115+
'Description' is a literal string.
116+
117+
See the client API specification for more detail.
118+
| *VectorComputeINTEL* | <<Literal, 'Literal'>> _Description_
119+
| 5627 | *StackCallINTEL* +
120+
Apply to a function definition to specify that this function is a stack call function.
121+
122+
See the client API specification for more detail.
123+
| *VectorComputeINTEL* |
124+
|====
125+
--
126+
127+
Modify Section 3.31, Capability, add the following row the 'Capability' table:
128+
--
129+
[cols="1,20,10,10",options="header",width = "80%"]
130+
|====
131+
2+^| Capability | Implicitly Declares | Enabled by Extension
132+
| 5617 | *VectorComputeINTEL* +
133+
Enables the use of *VectorComputeKernelINTEL* execution model, *SharedLocalMemorySizeINTEL* execution mode and *KernelArgumentTypeINTEL*, *KernelArgumentDescINTEL* and *StackCallINTEL* decorations.
134+
135+
See the client API specification for more detail.
136+
|| *SPV_INTEL_vector_compute*
137+
|====
138+
--
139+
140+
Issues
141+
------
142+
143+
144+
Revision History
145+
----------------
146+
147+
[cols="5,15,15,70"]
148+
[grid="rows"]
149+
[options="header"]
150+
|========================================
151+
|Rev|Date|Author|Changes
152+
|1|2020-04-17|Mariusz Merecki|Initial revision
153+
|2|2020-04-24|Mariusz Merecki|Assigned token number to *VectorComputeKernelINTEL*
154+
|========================================

0 commit comments

Comments
 (0)