Implement support for GL_KHR_cooperative_matrix extension
This commit is contained in:
parent
91a97b4c69
commit
808c7ed17c
40 changed files with 8227 additions and 5733 deletions
402
Test/baseResults/spv.coopmatKHR.comp.out
Normal file
402
Test/baseResults/spv.coopmatKHR.comp.out
Normal file
|
|
@ -0,0 +1,402 @@
|
|||
spv.coopmatKHR.comp
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 8000b
|
||||
// Id's are bound by 250
|
||||
|
||||
Capability Shader
|
||||
Capability Float16
|
||||
Capability Int16
|
||||
Capability Int8
|
||||
Capability StorageUniformBufferBlock16
|
||||
Capability VulkanMemoryModelKHR
|
||||
Capability PhysicalStorageBufferAddressesEXT
|
||||
Capability CooperativeMatrixKHR
|
||||
Extension "SPV_KHR_16bit_storage"
|
||||
Extension "SPV_KHR_cooperative_matrix"
|
||||
Extension "SPV_KHR_physical_storage_buffer"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
Extension "SPV_KHR_vulkan_memory_model"
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel PhysicalStorageBuffer64EXT VulkanKHR
|
||||
EntryPoint GLCompute 4 "main"
|
||||
ExecutionMode 4 LocalSize 64 1 1
|
||||
Source GLSL 450
|
||||
SourceExtension "GL_EXT_buffer_reference"
|
||||
SourceExtension "GL_EXT_shader_explicit_arithmetic_types"
|
||||
SourceExtension "GL_KHR_cooperative_matrix"
|
||||
SourceExtension "GL_KHR_memory_scope_semantics"
|
||||
Name 4 "main"
|
||||
Name 15 "f16(f161;"
|
||||
Name 14 "m"
|
||||
Name 22 "f32(f1;"
|
||||
Name 21 "m"
|
||||
Name 35 "m"
|
||||
Name 53 "m2"
|
||||
Name 57 "x"
|
||||
Name 65 "tempArg"
|
||||
Name 69 "Block"
|
||||
MemberName 69(Block) 0 "y"
|
||||
MemberName 69(Block) 1 "x"
|
||||
Name 71 "block"
|
||||
Name 80 "tempArg"
|
||||
Name 85 "Block16"
|
||||
MemberName 85(Block16) 0 "y"
|
||||
MemberName 85(Block16) 1 "x"
|
||||
MemberName 85(Block16) 2 "b"
|
||||
Name 88 "Block"
|
||||
MemberName 88(Block) 0 "y"
|
||||
MemberName 88(Block) 1 "x"
|
||||
Name 90 "block16"
|
||||
Name 97 "tempArg"
|
||||
Name 110 "D"
|
||||
Name 114 "A"
|
||||
Name 118 "B"
|
||||
Name 120 "C"
|
||||
Name 124 "l"
|
||||
Name 128 "Y"
|
||||
Name 129 "Z"
|
||||
Name 132 "F"
|
||||
Name 137 "a"
|
||||
Name 141 "md1"
|
||||
Name 152 "mC2"
|
||||
Name 157 "tempArg"
|
||||
Name 163 "tempArg"
|
||||
Name 169 "p1"
|
||||
Name 170 "param"
|
||||
Name 173 "p2"
|
||||
Name 174 "param"
|
||||
Name 188 "tempArg"
|
||||
Name 193 "shmatrix"
|
||||
Name 197 "ms"
|
||||
Name 204 "ms8A"
|
||||
Name 208 "ms8B"
|
||||
Name 212 "ms8C"
|
||||
Name 227 "m16"
|
||||
Name 233 "mC"
|
||||
Name 234 "F"
|
||||
Name 239 "S"
|
||||
MemberName 239(S) 0 "a"
|
||||
MemberName 239(S) 1 "b"
|
||||
MemberName 239(S) 2 "c"
|
||||
Name 244 "SC"
|
||||
Name 249 "scm"
|
||||
Decorate 67 ArrayStride 4
|
||||
Decorate 68 ArrayStride 4
|
||||
MemberDecorate 69(Block) 0 Offset 0
|
||||
MemberDecorate 69(Block) 1 Offset 4194304
|
||||
Decorate 69(Block) Block
|
||||
Decorate 71(block) DescriptorSet 0
|
||||
Decorate 71(block) Binding 0
|
||||
Decorate 81 ArrayStride 2
|
||||
Decorate 83 ArrayStride 2
|
||||
MemberDecorate 85(Block16) 0 Offset 0
|
||||
MemberDecorate 85(Block16) 1 Offset 2097152
|
||||
MemberDecorate 85(Block16) 2 Offset 2097160
|
||||
Decorate 85(Block16) Block
|
||||
Decorate 86 ArrayStride 4
|
||||
Decorate 87 ArrayStride 4
|
||||
MemberDecorate 88(Block) 0 Offset 0
|
||||
MemberDecorate 88(Block) 1 Offset 4194304
|
||||
Decorate 88(Block) Block
|
||||
Decorate 90(block16) DescriptorSet 0
|
||||
Decorate 90(block16) Binding 0
|
||||
Decorate 128(Y) SpecId 0
|
||||
Decorate 232 BuiltIn WorkgroupSize
|
||||
Decorate 234(F) SpecId 1
|
||||
Decorate 244(SC) SpecId 2
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 16
|
||||
7: TypeInt 32 0
|
||||
8: 7(int) Constant 3
|
||||
9: 7(int) Constant 8
|
||||
10: 7(int) Constant 2
|
||||
11: TypeCooperativeMatrixKHR 6(float16_t) 8 9 9 10
|
||||
12: TypePointer Function 11
|
||||
13: TypeFunction 11 12(ptr)
|
||||
17: TypeFloat 32
|
||||
18: TypeCooperativeMatrixKHR 17(float) 8 9 9 10
|
||||
19: TypePointer Function 18
|
||||
20: TypeFunction 18 19(ptr)
|
||||
32: 7(int) Constant 16
|
||||
33: TypeCooperativeMatrixKHR 17(float) 8 32 9 10
|
||||
34: TypePointer Function 33
|
||||
36: 17(float) Constant 0
|
||||
37: 33 ConstantComposite 36
|
||||
46: 17(float) Constant 1073741824
|
||||
51: TypeCooperativeMatrixKHR 6(float16_t) 8 32 9 10
|
||||
52: TypePointer Function 51
|
||||
56: TypePointer Function 17(float)
|
||||
58: TypeInt 32 1
|
||||
59: 58(int) Constant 1
|
||||
62: 58(int) Constant 0
|
||||
66: 7(int) Constant 1048576
|
||||
67: TypeArray 17(float) 66
|
||||
68: TypeRuntimeArray 17(float)
|
||||
69(Block): TypeStruct 67 68
|
||||
70: TypePointer StorageBuffer 69(Block)
|
||||
71(block): 70(ptr) Variable StorageBuffer
|
||||
72: 7(int) Constant 5
|
||||
73: TypePointer StorageBuffer 17(float)
|
||||
75: 7(int) Constant 128
|
||||
81: TypeArray 6(float16_t) 66
|
||||
82: 7(int) Constant 1
|
||||
83: TypeArray 6(float16_t) 82
|
||||
TypeForwardPointer 84 PhysicalStorageBufferEXT
|
||||
85(Block16): TypeStruct 81 83 84
|
||||
86: TypeArray 17(float) 66
|
||||
87: TypeRuntimeArray 17(float)
|
||||
88(Block): TypeStruct 86 87
|
||||
84: TypePointer PhysicalStorageBufferEXT 88(Block)
|
||||
89: TypePointer StorageBuffer 85(Block16)
|
||||
90(block16): 89(ptr) Variable StorageBuffer
|
||||
91: TypePointer StorageBuffer 6(float16_t)
|
||||
98: 58(int) Constant 2
|
||||
99: TypePointer StorageBuffer 84(ptr)
|
||||
102: TypePointer PhysicalStorageBufferEXT 17(float)
|
||||
111: 7(int) Constant 0
|
||||
112: TypeCooperativeMatrixKHR 6(float16_t) 8 32 9 111
|
||||
113: TypePointer Function 112
|
||||
116: TypeCooperativeMatrixKHR 6(float16_t) 8 9 9 82
|
||||
117: TypePointer Function 116
|
||||
123: TypePointer Function 58(int)
|
||||
127: 58(int) Constant 8
|
||||
128(Y): 58(int) SpecConstant 2
|
||||
129(Z): 58(int) SpecConstantOp 132 127 128(Y)
|
||||
130: TypeCooperativeMatrixKHR 6(float16_t) 8 129(Z) 129(Z) 10
|
||||
131: TypePointer Function 130
|
||||
133:6(float16_t) Constant 0
|
||||
134: 130 ConstantComposite 133
|
||||
135: TypeArray 33 72
|
||||
136: TypePointer Function 135
|
||||
138: 58(int) Constant 3
|
||||
139: 17(float) Constant 1065353216
|
||||
145: 58(int) Constant 1234
|
||||
149: TypeCooperativeMatrixKHR 6(float16_t) 8 129(Z) 9 10
|
||||
150: TypeArray 149 8
|
||||
151: TypePointer Private 150
|
||||
152(mC2): 151(ptr) Variable Private
|
||||
153: TypePointer Private 149
|
||||
177: 11 ConstantComposite 133
|
||||
178: 18 ConstantComposite 36
|
||||
182:6(float16_t) Constant 16384
|
||||
185: 17(float) Constant 1082130432
|
||||
189: TypeVector 7(int) 4
|
||||
190: 7(int) Constant 32
|
||||
191: TypeArray 189(ivec4) 190
|
||||
192: TypePointer Workgroup 191
|
||||
193(shmatrix): 192(ptr) Variable Workgroup
|
||||
194: TypePointer Workgroup 189(ivec4)
|
||||
201: TypeInt 8 1
|
||||
202: TypeCooperativeMatrixKHR 201(int8_t) 8 9 9 111
|
||||
203: TypePointer Function 202
|
||||
206: TypeCooperativeMatrixKHR 201(int8_t) 8 9 9 82
|
||||
207: TypePointer Function 206
|
||||
210: TypeCooperativeMatrixKHR 201(int8_t) 8 9 9 10
|
||||
211: TypePointer Function 210
|
||||
222: 58(int) Constant 16
|
||||
224: TypeInt 16 1
|
||||
225: TypeCooperativeMatrixKHR 224(int16_t) 8 9 9 111
|
||||
226: TypePointer Function 225
|
||||
230: TypeVector 7(int) 3
|
||||
231: 7(int) Constant 64
|
||||
232: 230(ivec3) ConstantComposite 231 82 82
|
||||
233(mC): 153(ptr) Variable Private
|
||||
234(F): 17(float) SpecConstant 1077936128
|
||||
235: TypeCooperativeMatrixKHR 17(float) 8 129(Z) 9 10
|
||||
236: 235 ConstantComposite 36
|
||||
237:6(float16_t) Constant 15360
|
||||
238: 11 ConstantComposite 237
|
||||
239(S): TypeStruct 58(int) 58(int) 58(int)
|
||||
240: 58(int) Constant 12
|
||||
241: 58(int) Constant 23
|
||||
242: 58(int) Constant 34
|
||||
243: 239(S) ConstantComposite 240 241 242
|
||||
244(SC): 58(int) SpecConstant 1
|
||||
245: TypeCooperativeMatrixKHR 6(float16_t) 8 244(SC) 244(SC) 10
|
||||
246: TypeArray 245 244(SC)
|
||||
247: TypeArray 246 244(SC)
|
||||
248: TypePointer Private 247
|
||||
249(scm): 248(ptr) Variable Private
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
35(m): 34(ptr) Variable Function
|
||||
53(m2): 52(ptr) Variable Function
|
||||
57(x): 56(ptr) Variable Function
|
||||
65(tempArg): 34(ptr) Variable Function
|
||||
80(tempArg): 52(ptr) Variable Function
|
||||
97(tempArg): 34(ptr) Variable Function
|
||||
110(D): 34(ptr) Variable Function
|
||||
114(A): 113(ptr) Variable Function
|
||||
118(B): 117(ptr) Variable Function
|
||||
120(C): 34(ptr) Variable Function
|
||||
124(l): 123(ptr) Variable Function
|
||||
132(F): 131(ptr) Variable Function
|
||||
137(a): 136(ptr) Variable Function
|
||||
141(md1): 56(ptr) Variable Function
|
||||
157(tempArg): 34(ptr) Variable Function
|
||||
163(tempArg): 52(ptr) Variable Function
|
||||
169(p1): 12(ptr) Variable Function
|
||||
170(param): 12(ptr) Variable Function
|
||||
173(p2): 19(ptr) Variable Function
|
||||
174(param): 19(ptr) Variable Function
|
||||
188(tempArg): 52(ptr) Variable Function
|
||||
197(ms): 52(ptr) Variable Function
|
||||
204(ms8A): 203(ptr) Variable Function
|
||||
208(ms8B): 207(ptr) Variable Function
|
||||
212(ms8C): 211(ptr) Variable Function
|
||||
227(m16): 226(ptr) Variable Function
|
||||
Store 35(m) 37
|
||||
38: 33 Load 35(m)
|
||||
39: 33 Load 35(m)
|
||||
40: 33 FAdd 38 39
|
||||
Store 35(m) 40
|
||||
41: 33 Load 35(m)
|
||||
42: 33 Load 35(m)
|
||||
43: 33 FSub 41 42
|
||||
Store 35(m) 43
|
||||
44: 33 Load 35(m)
|
||||
45: 33 FNegate 44
|
||||
Store 35(m) 45
|
||||
47: 33 Load 35(m)
|
||||
48: 33 MatrixTimesScalar 47 46
|
||||
Store 35(m) 48
|
||||
49: 33 Load 35(m)
|
||||
50: 33 MatrixTimesScalar 49 46
|
||||
Store 35(m) 50
|
||||
54: 33 Load 35(m)
|
||||
55: 51 FConvert 54
|
||||
Store 53(m2) 55
|
||||
60: 56(ptr) AccessChain 35(m) 59
|
||||
61: 17(float) Load 60
|
||||
Store 57(x) 61
|
||||
63: 17(float) Load 57(x)
|
||||
64: 56(ptr) AccessChain 35(m) 62
|
||||
Store 64 63
|
||||
74: 73(ptr) AccessChain 71(block) 59 32
|
||||
76: 33 CooperativeMatrixLoadKHR 74 62 75 MakePointerVisibleKHR NonPrivatePointerKHR 72
|
||||
Store 65(tempArg) 76
|
||||
77: 33 Load 65(tempArg)
|
||||
Store 35(m) 77
|
||||
78: 33 Load 35(m)
|
||||
79: 73(ptr) AccessChain 71(block) 59 32
|
||||
CooperativeMatrixStoreKHR 79 78 62 75 MakePointerAvailableKHR NonPrivatePointerKHR 72
|
||||
92: 91(ptr) AccessChain 90(block16) 59 32
|
||||
93: 51 CooperativeMatrixLoadKHR 92 62 75 MakePointerVisibleKHR NonPrivatePointerKHR 72
|
||||
Store 80(tempArg) 93
|
||||
94: 51 Load 80(tempArg)
|
||||
Store 53(m2) 94
|
||||
95: 51 Load 53(m2)
|
||||
96: 91(ptr) AccessChain 90(block16) 59 32
|
||||
CooperativeMatrixStoreKHR 96 95 62 75 MakePointerAvailableKHR NonPrivatePointerKHR 72
|
||||
100: 99(ptr) AccessChain 90(block16) 98
|
||||
101: 84(ptr) Load 100 MakePointerVisibleKHR NonPrivatePointerKHR 72
|
||||
103: 102(ptr) AccessChain 101 59 32
|
||||
104: 33 CooperativeMatrixLoadKHR 103 62 75 Aligned MakePointerVisibleKHR NonPrivatePointerKHR 16 72
|
||||
Store 97(tempArg) 104
|
||||
105: 33 Load 97(tempArg)
|
||||
Store 35(m) 105
|
||||
106: 33 Load 35(m)
|
||||
107: 99(ptr) AccessChain 90(block16) 98
|
||||
108: 84(ptr) Load 107 MakePointerVisibleKHR NonPrivatePointerKHR 72
|
||||
109: 102(ptr) AccessChain 108 59 32
|
||||
CooperativeMatrixStoreKHR 109 106 62 75 Aligned MakePointerAvailableKHR NonPrivatePointerKHR 16 72
|
||||
115: 112 Load 114(A)
|
||||
119: 116 Load 118(B)
|
||||
121: 33 Load 120(C)
|
||||
122: 33 CooperativeMatrixMulAddKHR 115 119 121
|
||||
Store 110(D) 122
|
||||
125: 7(int) CooperativeMatrixLengthKHR 33
|
||||
126: 58(int) Bitcast 125
|
||||
Store 124(l) 126
|
||||
Store 132(F) 134
|
||||
140: 56(ptr) AccessChain 137(a) 138 62
|
||||
Store 140 139
|
||||
Store 141(md1) 36
|
||||
142: 33 Load 35(m)
|
||||
143: 33 Load 35(m)
|
||||
144: 33 FAdd 143 142
|
||||
Store 35(m) 144
|
||||
146: 17(float) CompositeExtract 144 1234
|
||||
147: 17(float) Load 141(md1)
|
||||
148: 17(float) FAdd 147 146
|
||||
Store 141(md1) 148
|
||||
154: 153(ptr) AccessChain 152(mC2) 98
|
||||
155: 149 Load 154
|
||||
156: 153(ptr) AccessChain 152(mC2) 59
|
||||
Store 156 155
|
||||
158: 73(ptr) AccessChain 71(block) 62 32
|
||||
159: 33 CooperativeMatrixLoadKHR 158 62 75 MakePointerVisibleKHR NonPrivatePointerKHR 72
|
||||
Store 157(tempArg) 159
|
||||
160: 33 Load 157(tempArg)
|
||||
Store 35(m) 160
|
||||
161: 33 Load 35(m)
|
||||
162: 73(ptr) AccessChain 71(block) 62 32
|
||||
CooperativeMatrixStoreKHR 162 161 62 75 MakePointerAvailableKHR NonPrivatePointerKHR 72
|
||||
164: 91(ptr) AccessChain 90(block16) 62 32
|
||||
165: 51 CooperativeMatrixLoadKHR 164 62 75 MakePointerVisibleKHR NonPrivatePointerKHR 72
|
||||
Store 163(tempArg) 165
|
||||
166: 51 Load 163(tempArg)
|
||||
Store 53(m2) 166
|
||||
167: 51 Load 53(m2)
|
||||
168: 91(ptr) AccessChain 90(block16) 62 32
|
||||
CooperativeMatrixStoreKHR 168 167 62 75 MakePointerAvailableKHR NonPrivatePointerKHR 72
|
||||
171: 11 Load 169(p1)
|
||||
Store 170(param) 171
|
||||
172: 11 FunctionCall 15(f16(f161;) 170(param)
|
||||
Store 169(p1) 172
|
||||
175: 18 Load 173(p2)
|
||||
Store 174(param) 175
|
||||
176: 18 FunctionCall 22(f32(f1;) 174(param)
|
||||
Store 173(p2) 176
|
||||
Store 169(p1) 177
|
||||
Store 173(p2) 178
|
||||
179: 11 Load 169(p1)
|
||||
180: 11 Load 169(p1)
|
||||
181: 11 FDiv 180 179
|
||||
Store 169(p1) 181
|
||||
183: 11 Load 169(p1)
|
||||
184: 11 MatrixTimesScalar 183 182
|
||||
Store 169(p1) 184
|
||||
186: 18 Load 173(p2)
|
||||
187: 18 MatrixTimesScalar 186 185
|
||||
Store 173(p2) 187
|
||||
195: 194(ptr) AccessChain 193(shmatrix) 82
|
||||
196: 51 CooperativeMatrixLoadKHR 195 62 10 MakePointerVisibleKHR NonPrivatePointerKHR 10
|
||||
Store 188(tempArg) 196
|
||||
198: 51 Load 188(tempArg)
|
||||
Store 197(ms) 198
|
||||
199: 51 Load 197(ms)
|
||||
200: 194(ptr) AccessChain 193(shmatrix) 82
|
||||
CooperativeMatrixStoreKHR 200 199 62 10 MakePointerAvailableKHR NonPrivatePointerKHR 10
|
||||
205: 202 Load 204(ms8A)
|
||||
209: 206 Load 208(ms8B)
|
||||
213: 210 Load 212(ms8C)
|
||||
214: 210 CooperativeMatrixMulAddKHR 205 209 213 ASignedComponents BSignedComponents CSignedComponents ResultSignedComponents
|
||||
215: 202 Load 204(ms8A)
|
||||
216: 206 Load 208(ms8B)
|
||||
217: 210 Load 212(ms8C)
|
||||
218: 210 CooperativeMatrixMulAddKHR 215 216 217 ASignedComponents BSignedComponents CSignedComponents ResultSignedComponents
|
||||
219: 202 Load 204(ms8A)
|
||||
220: 206 Load 208(ms8B)
|
||||
221: 210 Load 212(ms8C)
|
||||
223: 210 CooperativeMatrixMulAddKHR 219 220 221 ASignedComponents BSignedComponents CSignedComponents ResultSignedComponents SaturatingAccumulation
|
||||
228: 225 Load 227(m16)
|
||||
229: 194(ptr) AccessChain 193(shmatrix) 82
|
||||
CooperativeMatrixStoreKHR 229 228 62 10 MakePointerAvailableKHR NonPrivatePointerKHR 10
|
||||
Return
|
||||
FunctionEnd
|
||||
15(f16(f161;): 11 Function None 13
|
||||
14(m): 12(ptr) FunctionParameter
|
||||
16: Label
|
||||
24: 11 Load 14(m)
|
||||
25: 11 FNegate 24
|
||||
ReturnValue 25
|
||||
FunctionEnd
|
||||
22(f32(f1;): 18 Function None 20
|
||||
21(m): 19(ptr) FunctionParameter
|
||||
23: Label
|
||||
28: 18 Load 21(m)
|
||||
29: 18 FNegate 28
|
||||
ReturnValue 29
|
||||
FunctionEnd
|
||||
Loading…
Add table
Add a link
Reference in a new issue