Implement GL_NV_cooperative_matrix
This commit is contained in:
parent
ec484527b6
commit
4605e2ed2b
37 changed files with 5630 additions and 4211 deletions
375
Test/baseResults/spv.coopmat.comp.out
Normal file
375
Test/baseResults/spv.coopmat.comp.out
Normal file
|
|
@ -0,0 +1,375 @@
|
|||
spv.coopmat.comp
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80007
|
||||
// Id's are bound by 228
|
||||
|
||||
Capability Shader
|
||||
Capability Float16
|
||||
Capability StorageUniformBufferBlock16
|
||||
Capability CapabilityVulkanMemoryModelKHR
|
||||
Capability CapabilityPhysicalStorageBufferAddressesEXT
|
||||
Capability CapabilityCooperativeMatrixNV
|
||||
Extension "SPV_EXT_physical_storage_buffer"
|
||||
Extension "SPV_KHR_16bit_storage"
|
||||
Extension "SPV_KHR_storage_buffer_storage_class"
|
||||
Extension "SPV_KHR_vulkan_memory_model"
|
||||
Extension "SPV_NV_cooperative_matrix"
|
||||
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_float16"
|
||||
SourceExtension "GL_KHR_memory_scope_semantics"
|
||||
SourceExtension "GL_NV_cooperative_matrix"
|
||||
Name 4 "main"
|
||||
Name 14 "f16(f161;"
|
||||
Name 13 "m"
|
||||
Name 21 "f32(f1;"
|
||||
Name 20 "m"
|
||||
Name 34 "m"
|
||||
Name 52 "m2"
|
||||
Name 56 "x"
|
||||
Name 64 "tempArg"
|
||||
Name 68 "Block"
|
||||
MemberName 68(Block) 0 "y"
|
||||
MemberName 68(Block) 1 "x"
|
||||
Name 70 "block"
|
||||
Name 81 "tempArg"
|
||||
Name 86 "Block16"
|
||||
MemberName 86(Block16) 0 "y"
|
||||
MemberName 86(Block16) 1 "x"
|
||||
MemberName 86(Block16) 2 "b"
|
||||
Name 89 "Block"
|
||||
MemberName 89(Block) 0 "y"
|
||||
MemberName 89(Block) 1 "x"
|
||||
Name 91 "block16"
|
||||
Name 98 "tempArg"
|
||||
Name 111 "D"
|
||||
Name 112 "A"
|
||||
Name 114 "B"
|
||||
Name 116 "C"
|
||||
Name 120 "l"
|
||||
Name 124 "Y"
|
||||
Name 125 "Z"
|
||||
Name 128 "F"
|
||||
Name 133 "a"
|
||||
Name 137 "md1"
|
||||
Name 148 "mC2"
|
||||
Name 153 "tempArg"
|
||||
Name 159 "tempArg"
|
||||
Name 165 "p1"
|
||||
Name 166 "param"
|
||||
Name 169 "p2"
|
||||
Name 170 "param"
|
||||
Name 184 "tempArg"
|
||||
Name 189 "shmatrix"
|
||||
Name 194 "ms"
|
||||
Name 201 "mC"
|
||||
Name 206 "arr"
|
||||
Name 211 "arr2"
|
||||
Name 212 "F"
|
||||
Name 217 "S"
|
||||
MemberName 217(S) 0 "a"
|
||||
MemberName 217(S) 1 "b"
|
||||
MemberName 217(S) 2 "c"
|
||||
Name 222 "SC"
|
||||
Name 227 "scm"
|
||||
Decorate 66 ArrayStride 4
|
||||
Decorate 67 ArrayStride 4
|
||||
MemberDecorate 68(Block) 0 Offset 0
|
||||
MemberDecorate 68(Block) 1 Offset 4194304
|
||||
Decorate 68(Block) Block
|
||||
Decorate 70(block) DescriptorSet 0
|
||||
Decorate 70(block) Binding 0
|
||||
Decorate 82 ArrayStride 2
|
||||
Decorate 84 ArrayStride 2
|
||||
MemberDecorate 86(Block16) 0 Offset 0
|
||||
MemberDecorate 86(Block16) 1 Offset 2097152
|
||||
MemberDecorate 86(Block16) 2 Offset 2097160
|
||||
Decorate 86(Block16) Block
|
||||
Decorate 87 ArrayStride 4
|
||||
Decorate 88 ArrayStride 4
|
||||
MemberDecorate 89(Block) 0 Offset 0
|
||||
MemberDecorate 89(Block) 1 Offset 4194304
|
||||
Decorate 89(Block) Block
|
||||
Decorate 91(block16) DescriptorSet 0
|
||||
Decorate 91(block16) Binding 0
|
||||
Decorate 124(Y) SpecId 0
|
||||
Decorate 200 BuiltIn WorkgroupSize
|
||||
Decorate 212(F) SpecId 1
|
||||
Decorate 222(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: TypeCooperativeMatrixNV 6(float16_t) 8 9 9
|
||||
11: TypePointer Function 10
|
||||
12: TypeFunction 10 11(ptr)
|
||||
16: TypeFloat 32
|
||||
17: TypeCooperativeMatrixNV 16(float) 8 9 9
|
||||
18: TypePointer Function 17
|
||||
19: TypeFunction 17 18(ptr)
|
||||
31: 7(int) Constant 16
|
||||
32: TypeCooperativeMatrixNV 16(float) 8 31 9
|
||||
33: TypePointer Function 32
|
||||
35: 16(float) Constant 0
|
||||
36: 32 ConstantComposite 35
|
||||
45: 16(float) Constant 1073741824
|
||||
50: TypeCooperativeMatrixNV 6(float16_t) 8 31 9
|
||||
51: TypePointer Function 50
|
||||
55: TypePointer Function 16(float)
|
||||
57: TypeInt 32 1
|
||||
58: 57(int) Constant 1
|
||||
61: 57(int) Constant 0
|
||||
65: 7(int) Constant 1048576
|
||||
66: TypeArray 16(float) 65
|
||||
67: TypeRuntimeArray 16(float)
|
||||
68(Block): TypeStruct 66 67
|
||||
69: TypePointer StorageBuffer 68(Block)
|
||||
70(block): 69(ptr) Variable StorageBuffer
|
||||
71: 7(int) Constant 5
|
||||
72: TypePointer StorageBuffer 16(float)
|
||||
74: 7(int) Constant 128
|
||||
75: TypeBool
|
||||
76: 75(bool) ConstantFalse
|
||||
82: TypeArray 6(float16_t) 65
|
||||
83: 7(int) Constant 1
|
||||
84: TypeArray 6(float16_t) 83
|
||||
TypeForwardPointer 85 PhysicalStorageBufferEXT
|
||||
86(Block16): TypeStruct 82 84 85
|
||||
87: TypeArray 16(float) 65
|
||||
88: TypeRuntimeArray 16(float)
|
||||
89(Block): TypeStruct 87 88
|
||||
85: TypePointer PhysicalStorageBufferEXT 89(Block)
|
||||
90: TypePointer StorageBuffer 86(Block16)
|
||||
91(block16): 90(ptr) Variable StorageBuffer
|
||||
92: TypePointer StorageBuffer 6(float16_t)
|
||||
99: 57(int) Constant 2
|
||||
100: TypePointer StorageBuffer 85(ptr)
|
||||
103: TypePointer PhysicalStorageBufferEXT 16(float)
|
||||
119: TypePointer Function 57(int)
|
||||
121: 7(int) SpecConstantOp 5362 32
|
||||
122: 57(int) SpecConstantOp 128 121 61
|
||||
123: 57(int) Constant 8
|
||||
124(Y): 57(int) SpecConstant 2
|
||||
125(Z): 57(int) SpecConstantOp 132 123 124(Y)
|
||||
126: TypeCooperativeMatrixNV 6(float16_t) 8 125(Z) 125(Z)
|
||||
127: TypePointer Function 126
|
||||
129:6(float16_t) Constant 0
|
||||
130: 126 ConstantComposite 129
|
||||
131: TypeArray 32 71
|
||||
132: TypePointer Function 131
|
||||
134: 57(int) Constant 3
|
||||
135: 16(float) Constant 1065353216
|
||||
141: 57(int) Constant 1234
|
||||
145: TypeCooperativeMatrixNV 6(float16_t) 8 125(Z) 9
|
||||
146: TypeArray 145 8
|
||||
147: TypePointer Private 146
|
||||
148(mC2): 147(ptr) Variable Private
|
||||
149: TypePointer Private 145
|
||||
173: 10 ConstantComposite 129
|
||||
174: 17 ConstantComposite 35
|
||||
178:6(float16_t) Constant 16384
|
||||
181: 16(float) Constant 1082130432
|
||||
185: TypeVector 7(int) 4
|
||||
186: 7(int) Constant 32
|
||||
187: TypeArray 185(ivec4) 186
|
||||
188: TypePointer Workgroup 187
|
||||
189(shmatrix): 188(ptr) Variable Workgroup
|
||||
190: 7(int) Constant 2
|
||||
191: TypePointer Workgroup 185(ivec4)
|
||||
198: TypeVector 7(int) 3
|
||||
199: 7(int) Constant 64
|
||||
200: 198(ivec3) ConstantComposite 199 83 83
|
||||
201(mC): 149(ptr) Variable Private
|
||||
202: 7(int) SpecConstantOp 5362 145
|
||||
203: 57(int) SpecConstantOp 128 202 61
|
||||
204: TypeArray 57(int) 203
|
||||
205: TypePointer Private 204
|
||||
206(arr): 205(ptr) Variable Private
|
||||
207: 7(int) SpecConstantOp 5362 145
|
||||
208: 57(int) SpecConstantOp 128 207 61
|
||||
209: TypeArray 57(int) 208
|
||||
210: TypePointer Private 209
|
||||
211(arr2): 210(ptr) Variable Private
|
||||
212(F): 16(float) SpecConstant 1077936128
|
||||
213: TypeCooperativeMatrixNV 16(float) 8 125(Z) 9
|
||||
214: 213 ConstantComposite 35
|
||||
215:6(float16_t) Constant 15360
|
||||
216: 10 ConstantComposite 215
|
||||
217(S): TypeStruct 57(int) 57(int) 57(int)
|
||||
218: 57(int) Constant 12
|
||||
219: 57(int) Constant 23
|
||||
220: 57(int) Constant 34
|
||||
221: 217(S) ConstantComposite 218 219 220
|
||||
222(SC): 57(int) SpecConstant 1
|
||||
223: TypeCooperativeMatrixNV 6(float16_t) 8 222(SC) 222(SC)
|
||||
224: TypeArray 223 222(SC)
|
||||
225: TypeArray 224 222(SC)
|
||||
226: TypePointer Private 225
|
||||
227(scm): 226(ptr) Variable Private
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
34(m): 33(ptr) Variable Function
|
||||
52(m2): 51(ptr) Variable Function
|
||||
56(x): 55(ptr) Variable Function
|
||||
64(tempArg): 33(ptr) Variable Function
|
||||
81(tempArg): 51(ptr) Variable Function
|
||||
98(tempArg): 33(ptr) Variable Function
|
||||
111(D): 33(ptr) Variable Function
|
||||
112(A): 51(ptr) Variable Function
|
||||
114(B): 11(ptr) Variable Function
|
||||
116(C): 33(ptr) Variable Function
|
||||
120(l): 119(ptr) Variable Function
|
||||
128(F): 127(ptr) Variable Function
|
||||
133(a): 132(ptr) Variable Function
|
||||
137(md1): 55(ptr) Variable Function
|
||||
153(tempArg): 33(ptr) Variable Function
|
||||
159(tempArg): 51(ptr) Variable Function
|
||||
165(p1): 11(ptr) Variable Function
|
||||
166(param): 11(ptr) Variable Function
|
||||
169(p2): 18(ptr) Variable Function
|
||||
170(param): 18(ptr) Variable Function
|
||||
184(tempArg): 51(ptr) Variable Function
|
||||
194(ms): 51(ptr) Variable Function
|
||||
Store 34(m) 36
|
||||
37: 32 Load 34(m)
|
||||
38: 32 Load 34(m)
|
||||
39: 32 FAdd 37 38
|
||||
Store 34(m) 39
|
||||
40: 32 Load 34(m)
|
||||
41: 32 Load 34(m)
|
||||
42: 32 FSub 40 41
|
||||
Store 34(m) 42
|
||||
43: 32 Load 34(m)
|
||||
44: 32 FNegate 43
|
||||
Store 34(m) 44
|
||||
46: 32 Load 34(m)
|
||||
47: 32 MatrixTimesScalar 46 45
|
||||
Store 34(m) 47
|
||||
48: 32 Load 34(m)
|
||||
49: 32 MatrixTimesScalar 48 45
|
||||
Store 34(m) 49
|
||||
53: 32 Load 34(m)
|
||||
54: 50 FConvert 53
|
||||
Store 52(m2) 54
|
||||
59: 55(ptr) AccessChain 34(m) 58
|
||||
60: 16(float) Load 59
|
||||
Store 56(x) 60
|
||||
62: 16(float) Load 56(x)
|
||||
63: 55(ptr) AccessChain 34(m) 61
|
||||
Store 63 62
|
||||
73: 72(ptr) AccessChain 70(block) 58 31
|
||||
77: 32 CooperativeMatrixLoadNV 73 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71
|
||||
Store 64(tempArg) 77
|
||||
78: 32 Load 64(tempArg)
|
||||
Store 34(m) 78
|
||||
79: 32 Load 34(m)
|
||||
80: 72(ptr) AccessChain 70(block) 58 31
|
||||
CooperativeMatrixStoreNV 80 79 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71
|
||||
93: 92(ptr) AccessChain 91(block16) 58 31
|
||||
94: 50 CooperativeMatrixLoadNV 93 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71
|
||||
Store 81(tempArg) 94
|
||||
95: 50 Load 81(tempArg)
|
||||
Store 52(m2) 95
|
||||
96: 50 Load 52(m2)
|
||||
97: 92(ptr) AccessChain 91(block16) 58 31
|
||||
CooperativeMatrixStoreNV 97 96 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71
|
||||
101: 100(ptr) AccessChain 91(block16) 99
|
||||
102: 85(ptr) Load 101 MakePointerVisibleKHR NonPrivatePointerKHR 71
|
||||
104: 103(ptr) AccessChain 102 58 31
|
||||
105: 32 CooperativeMatrixLoadNV 104 74 76 Aligned 16
|
||||
Store 98(tempArg) 105
|
||||
106: 32 Load 98(tempArg)
|
||||
Store 34(m) 106
|
||||
107: 32 Load 34(m)
|
||||
108: 100(ptr) AccessChain 91(block16) 99
|
||||
109: 85(ptr) Load 108 MakePointerVisibleKHR NonPrivatePointerKHR 71
|
||||
110: 103(ptr) AccessChain 109 58 31
|
||||
CooperativeMatrixStoreNV 110 107 74 76 Aligned 16
|
||||
113: 50 Load 112(A)
|
||||
115: 10 Load 114(B)
|
||||
117: 32 Load 116(C)
|
||||
118: 32 CooperativeMatrixMulAddNV 113 115 117
|
||||
Store 111(D) 118
|
||||
Store 120(l) 122
|
||||
Store 128(F) 130
|
||||
136: 55(ptr) AccessChain 133(a) 134 61
|
||||
Store 136 135
|
||||
Store 137(md1) 35
|
||||
138: 32 Load 34(m)
|
||||
139: 32 Load 34(m)
|
||||
140: 32 FAdd 139 138
|
||||
Store 34(m) 140
|
||||
142: 16(float) CompositeExtract 140 1234
|
||||
143: 16(float) Load 137(md1)
|
||||
144: 16(float) FAdd 143 142
|
||||
Store 137(md1) 144
|
||||
150: 149(ptr) AccessChain 148(mC2) 99
|
||||
151: 145 Load 150
|
||||
152: 149(ptr) AccessChain 148(mC2) 58
|
||||
Store 152 151
|
||||
154: 72(ptr) AccessChain 70(block) 61 31
|
||||
155: 32 CooperativeMatrixLoadNV 154 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71
|
||||
Store 153(tempArg) 155
|
||||
156: 32 Load 153(tempArg)
|
||||
Store 34(m) 156
|
||||
157: 32 Load 34(m)
|
||||
158: 72(ptr) AccessChain 70(block) 61 31
|
||||
CooperativeMatrixStoreNV 158 157 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71
|
||||
160: 92(ptr) AccessChain 91(block16) 61 31
|
||||
161: 50 CooperativeMatrixLoadNV 160 74 76 MakePointerVisibleKHR NonPrivatePointerKHR 71
|
||||
Store 159(tempArg) 161
|
||||
162: 50 Load 159(tempArg)
|
||||
Store 52(m2) 162
|
||||
163: 50 Load 52(m2)
|
||||
164: 92(ptr) AccessChain 91(block16) 61 31
|
||||
CooperativeMatrixStoreNV 164 163 74 76 MakePointerAvailableKHR NonPrivatePointerKHR 71
|
||||
167: 10 Load 165(p1)
|
||||
Store 166(param) 167
|
||||
168: 10 FunctionCall 14(f16(f161;) 166(param)
|
||||
Store 165(p1) 168
|
||||
171: 17 Load 169(p2)
|
||||
Store 170(param) 171
|
||||
172: 17 FunctionCall 21(f32(f1;) 170(param)
|
||||
Store 169(p2) 172
|
||||
Store 165(p1) 173
|
||||
Store 169(p2) 174
|
||||
175: 10 Load 165(p1)
|
||||
176: 10 Load 165(p1)
|
||||
177: 10 FDiv 176 175
|
||||
Store 165(p1) 177
|
||||
179: 10 Load 165(p1)
|
||||
180: 10 MatrixTimesScalar 179 178
|
||||
Store 165(p1) 180
|
||||
182: 17 Load 169(p2)
|
||||
183: 17 MatrixTimesScalar 182 181
|
||||
Store 169(p2) 183
|
||||
192: 191(ptr) AccessChain 189(shmatrix) 83
|
||||
193: 50 CooperativeMatrixLoadNV 192 190 76 MakePointerVisibleKHR NonPrivatePointerKHR 190
|
||||
Store 184(tempArg) 193
|
||||
195: 50 Load 184(tempArg)
|
||||
Store 194(ms) 195
|
||||
196: 50 Load 194(ms)
|
||||
197: 191(ptr) AccessChain 189(shmatrix) 83
|
||||
CooperativeMatrixStoreNV 197 196 190 76 MakePointerAvailableKHR NonPrivatePointerKHR 190
|
||||
Return
|
||||
FunctionEnd
|
||||
14(f16(f161;): 10 Function None 12
|
||||
13(m): 11(ptr) FunctionParameter
|
||||
15: Label
|
||||
23: 10 Load 13(m)
|
||||
24: 10 FNegate 23
|
||||
ReturnValue 24
|
||||
FunctionEnd
|
||||
21(f32(f1;): 17 Function None 19
|
||||
20(m): 18(ptr) FunctionParameter
|
||||
22: Label
|
||||
27: 17 Load 20(m)
|
||||
28: 17 FNegate 27
|
||||
ReturnValue 28
|
||||
FunctionEnd
|
||||
Loading…
Add table
Add a link
Reference in a new issue