summaryrefslogtreecommitdiff
path: root/cutlass-example/executionFlow
blob: 356afed13600cad46a84548fc213c20cb0557aa8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
mov.b64%rd33, _ZN7cutlass4gemm11gemm_kernelINS0_4GemmINS0_14WmmaGemmTraitsILNS_12MatrixLayout4KindE1ELS5_0ENS_5ShapeILi32ELi16ELi16ELi1EEEfNS0_13LinearScalingIfNS0_19FragmentMultiplyAddIfEEEEfS7_NS6_ILi16ELi16ELi16ELi1EEELi8ELi8EiNS0_20WmmaGemmTraitsHelperILS5_1ELS5_0ES7_ffSB_S7_SC_Li8ELi8EiEEEEEEEEvNT_6ParamsE_param_0;
mov.u64 %rd1, %rd33;
ld.param.u64 %rd34, [_ZN7cutlass4gemm11gemm_kernelINS0_4GemmINS0_14WmmaGemmTraitsILNS_12MatrixLayout4KindE1ELS5_0ENS_5ShapeILi32ELi16ELi16ELi1EEEfNS0_13LinearScalingIfNS0_19FragmentMultiplyAddIfEEEEfS7_NS6_ILi16ELi16ELi16ELi1EEELi8ELi8EiNS0_20WmmaGemmTraitsHelperILS5_1ELS5_0ES7_ffSB_S7_SC_Li8ELi8EiEEEEEEEEvNT_6ParamsE_param_0+48];
cvta.to.global.u64 %rd2, %rd34;
mov.u32 %r301, %ctaid.x;
shl.b32 %r1, %r301, 4;
ld.param.u64 %rd36, [_ZN7cutlass4gemm11gemm_kernelINS0_4GemmINS0_14WmmaGemmTraitsILNS_12MatrixLayout4KindE1ELS5_0ENS_5ShapeILi32ELi16ELi16ELi1EEEfNS0_13LinearScalingIfNS0_19FragmentMultiplyAddIfEEEEfS7_NS6_ILi16ELi16ELi16ELi1EEELi8ELi8EiNS0_20WmmaGemmTraitsHelperILS5_1ELS5_0ES7_ffSB_S7_SC_Li8ELi8EiEEEEEEEEvNT_6ParamsE_param_0+136];
cvta.to.global.u64 %rd4, %rd36;
mov.u32 %r302, %ctaid.y;
shl.b32 %r2, %r302, 4;
mov.u32 %r3, %tid.x;
shr.u32 %r4, %r3, 1;
and.b32 %r303, %r3, 1;
shl.b32 %r5, %r303, 3;
add.s32 %r6, %r5, %r1;
ld.param.u32 %r7, [_ZN7cutlass4gemm11gemm_kernelINS0_4GemmINS0_14WmmaGemmTraitsILNS_12MatrixLayout4KindE1ELS5_0ENS_5ShapeILi32ELi16ELi16ELi1EEEfNS0_13LinearScalingIfNS0_19FragmentMultiplyAddIfEEEEfS7_NS6_ILi16ELi16ELi16ELi1EEELi8ELi8EiNS0_20WmmaGemmTraitsHelperILS5_1ELS5_0ES7_ffSB_S7_SC_Li8ELi8EiEEEEEEEEvNT_6ParamsE_param_0+20];
mad.lo.s32 %r304, %r7, %r4, %r6;
cvt.s64.s32%rd5, %r304;
mul.wide.s32 %rd37, %r304, 2;
add.s64 %rd6, %rd2, %rd37;
ld.param.u32 %r8, [_ZN7cutlass4gemm11gemm_kernelINS0_4GemmINS0_14WmmaGemmTraitsILNS_12MatrixLayout4KindE1ELS5_0ENS_5ShapeILi32ELi16ELi16ELi1EEEfNS0_13LinearScalingIfNS0_19FragmentMultiplyAddIfEEEEfS7_NS6_ILi16ELi16ELi16ELi1EEELi8ELi8EiNS0_20WmmaGemmTraitsHelperILS5_1ELS5_0ES7_ffSB_S7_SC_Li8ELi8EiEEEEEEEEvNT_6ParamsE_param_0];
sub.s32 %r305, %r8, %r6;
ld.param.u32 %r9, [_ZN7cutlass4gemm11gemm_kernelINS0_4GemmINS0_14WmmaGemmTraitsILNS_12MatrixLayout4KindE1ELS5_0ENS_5ShapeILi32ELi16ELi16ELi1EEEfNS0_13LinearScalingIfNS0_19FragmentMultiplyAddIfEEEEfS7_NS6_ILi16ELi16ELi16ELi1EEELi8ELi8EiNS0_20WmmaGemmTraitsHelperILS5_1ELS5_0ES7_ffSB_S7_SC_Li8ELi8EiEEEEEEEEvNT_6ParamsE_param_0+8];
setp.gt.s32%p2, %r9, 0;
setp.gt.s32%p3, %r305, 0;
and.pred %p4, %p3, %p2;
selp.u32%r306, 1, 0, %p4;
setp.gt.s32%p5, %r9, 16;
and.pred %p6, %p3, %p5;
selp.u16%rs1, 1, 0, %p6;
mul.wide.u16 %r10, %rs1, 2;
selp.u32%r307, -1, 0, %p6;
bfi.b32 %r481, %r307, %r306, 1, 1;
bfe.u32 %r308, %r3, 1, 4;
mad.lo.s32 %r12, %r308, 24, %r5;
setp.lt.s32%p7, %r12, 768;
@%p7 bra BB0_2;
ld.param.u32 %r310, [%rd1+4];
ld.param.u32 %r13, [%rd1+108];
add.s32 %r16, %r5, %r2;
mad.lo.s32 %r311, %r13, %r4, %r16;
cvt.s64.s32%rd7, %r311;
mul.wide.s32 %rd45, %r311, 2;
add.s64 %rd8, %rd4, %rd45;
sub.s32 %r312, %r310, %r16;
setp.gt.s32%p9, %r312, 0;
and.pred %p11, %p9, %p2;
selp.u32%r313, 1, 0, %p11;
and.pred %p13, %p9, %p5;
selp.u16%rs2, 1, 0, %p13;
mul.wide.u16 %r17, %rs2, 2;
selp.u32%r314, -1, 0, %p13;
bfi.b32 %r480, %r314, %r313, 1, 1;
@%p7 bra BB0_4;
setp.lt.s32%p14, %r9, 32;
@%p14 bra BB0_7;
setp.lt.s32%p18, %r4, %r9;
selp.b32%r321, %r481, %r10, %p18;
add.s32 %r322, %r4, 16;
setp.lt.s32%p19, %r322, %r9;
and.b32 %r323, %r321, 1;
selp.b32%r481, %r321, %r323, %p19;
selp.b32%r324, %r480, %r17, %p18;
and.b32 %r325, %r324, 1;
selp.b32%r480, %r324, %r325, %p19;
bra.uni BB0_8;
and.b32 %r330, %r481, 1;
setp.eq.b32%p20, %r330, 1;
mov.u32 %r571, 0;
mov.u32 %r559, %r571;
mov.u32 %r560, %r571;
mov.u32 %r561, %r571;
mov.u32 %r562, %r571;
@!%p20 bra BB0_10;
bra.uni BB0_9;
ld.global.v4.u32 {%r561, %r562, %r559, %r560}, [%rd6];
ld.param.u32 %r33, [%rd1+32];
cvt.s64.s32%rd53, %r33;
add.s64 %rd9, %rd5, %rd53;
shl.b64 %rd54, %rd9, 1;
add.s64 %rd10, %rd2, %rd54;
and.b32 %r339, %r481, 2;
setp.eq.s32%p21, %r339, 0;
mov.u32 %r563, %r571;
mov.u32 %r564, %r571;
mov.u32 %r565, %r571;
mov.u32 %r566, %r571;
@%p21 bra BB0_12;
and.b32 %r348, %r480, 1;
setp.eq.b32%p22, %r348, 1;
mov.u32 %r567, %r571;
mov.u32 %r568, %r571;
mov.u32 %r569, %r571;
mov.u32 %r570, %r571;
@!%p22 bra BB0_14;
bra.uni BB0_13;
ld.global.v4.u32 {%r569, %r570, %r567, %r568}, [%rd8];
ld.param.u32 %r50, [%rd1+120];
cvt.s64.s32%rd55, %r50;
add.s64 %rd56, %rd7, %rd55;
shl.b64 %rd57, %rd56, 1;
add.s64 %rd11, %rd4, %rd57;
and.b32 %r357, %r480, 2;
setp.eq.s32%p23, %r357, 0;
mov.u32 %r572, %r571;
mov.u32 %r573, %r571;
mov.u32 %r574, %r571;
@%p23 bra BB0_16;
shl.b32 %r362, %r12, 1;
mov.u32 %r363, _ZN7cutlass4gemm11gemm_kernelINS0_4GemmINS0_14WmmaGemmTraitsILNS_12MatrixLayout4KindE1ELS5_0ENS_5ShapeILi32ELi16ELi16ELi1EEEfNS0_13LinearScalingIfNS0_19FragmentMultiplyAddIfEEEEfS7_NS6_ILi16ELi16ELi16ELi1EEELi8ELi8EiNS0_20WmmaGemmTraitsHelperILS5_1ELS5_0ES7_ffSB_S7_SC_Li8ELi8EiEEEEEEEEvNT_6ParamsE$__cuda_local_var_29658_57_non_const_shared_storage;
add.s32 %r59, %r363, %r362;
st.shared.v4.u32 [%r59], {%r561, %r562, %r559, %r560};
st.shared.v4.u32 [%r59+768], {%r565, %r566, %r563, %r564};
st.shared.v4.u32 [%r59+1536], {%r569, %r570, %r567, %r568};
st.shared.v4.u32 [%r59+2304], {%r573, %r574, %r571, %r572};
bar.sync 0;
shr.u32 %r60, %r3, 5;
shl.b32 %r61, %r60, 4;
setp.lt.u32%p24, %r61, 768;
@%p24 bra BB0_18;
mul.wide.s32 %rd65, %r61, 2;
cvt.u64.u32 %temp, %r363;
cvta.shared.u64 %rd66, %temp;
add.s64 %rd67, %rd66, %rd65;
add.s64 %rd12, %rd67, 1536;
mov.u32 %r374, 24;
wmma.load.a.sync.col.m16n16k16.f16 {%r590, %r589, %r588, %r587, %r586, %r585, %r584, %r583}, [%rd66], %r374;
wmma.load.b.sync.row.m16n16k16.f16 {%r582, %r581, %r580, %r579, %r578, %r577, %r576, %r575}, [%rd12], %r374;
add.s32 %r599, %r9, -32;
mov.u32 %r609, 0;
setp.lt.s32%p25, %r599, 1;
@%p25 bra BB0_19;
mov.u32 %r610, %r609;
mov.u32 %r611, %r609;
mov.u32 %r612, %r609;
mov.u32 %r613, %r609;
mov.u32 %r614, %r609;
mov.u32 %r615, %r609;
mov.u32 %r616, %r609;
setp.lt.s32%p34, %r599, -31;
@%p34 bra BB0_35;
mov.u32 %r477, %tid.x;
shr.u32 %r476, %r477, 5;
shl.b32 %r475, %r476, 4;
add.s32 %r434, %r475, 384;
mul.wide.s32 %rd96, %r434, 2;
add.s64 %rd97, %rd66, %rd96;
add.s64 %rd26, %rd97, 1536;
add.s64 %rd99, %rd66, 768;
wmma.load.a.sync.col.m16n16k16.f16 {%r257, %r256, %r255, %r254, %r250, %r251, %r253, %r252}, [%rd99], %r374;
wmma.load.b.sync.row.m16n16k16.f16 {%r265, %r264, %r263, %r262, %r258, %r259, %r261, %r260}, [%rd26], %r374;
mov.b32 %f63, %r615;
mov.b32 %f64, %r616;
mov.b32 %f65, %r613;
mov.b32 %f66, %r614;
mov.b32 %f67, %r611;
mov.b32 %f68, %r612;
mov.b32 %f69, %r609;
mov.b32 %f70, %r610;
wmma.mma.sync.col.row.m16n16k16.f32.f32 {%f10, %f11, %f12, %f13, %f14, %f15, %f16, %f17}, {%r590, %r589, %r588, %r587, %r586, %r585, %r584, %r583}, {%r582, %r581, %r580, %r579, %r578, %r577, %r576, %r575}, {%f70, %f69, %f68, %f67, %f66, %f65, %f64, %f63};
bar.sync 0;
bar.sync 0;
wmma.mma.sync.col.row.m16n16k16.f32.f32 {%f71, %f72, %f73, %f74, %f75, %f76, %f77, %f78}, {%r257, %r256, %r255, %r254, %r250, %r251, %r253, %r252}, {%r265, %r264, %r263, %r262, %r258, %r259, %r261, %r260}, {%f10, %f11, %f12, %f13, %f14, %f15, %f16, %f17};
mov.b32 %r610, %f71;
mov.b32 %r609, %f72;
mov.b32 %r612, %f73;
mov.b32 %r611, %f74;
mov.b32 %r614, %f75;
mov.b32 %r613, %f76;
mov.b32 %r616, %f77;
mov.b32 %r615, %f78;
add.s32 %r599, %r599, -32;
setp.gt.s32%p35, %r599, -32;
@%p35 bra BB0_34;
mov.b64%rd145, _ZN7cutlass4gemm11gemm_kernelINS0_4GemmINS0_14WmmaGemmTraitsILNS_12MatrixLayout4KindE1ELS5_0ENS_5ShapeILi32ELi16ELi16ELi1EEEfNS0_13LinearScalingIfNS0_19FragmentMultiplyAddIfEEEEfS7_NS6_ILi16ELi16ELi16ELi1EEELi8ELi8EiNS0_20WmmaGemmTraitsHelperILS5_1ELS5_0ES7_ffSB_S7_SC_Li8ELi8EiEEEEEEEEvNT_6ParamsE_param_0;
mov.u64 %rd144, %rd145;
mov.u32 %r472, %tid.x;
ld.param.f32 %f145, [%rd144+428];
ld.param.u32 %r471, [%rd144+324];
shr.u32 %r470, %r472, 5;
ld.param.u32 %r469, [%rd144+332];
mov.u32 %r468, %ctaid.x;
shl.b32 %r467, %r468, 4;
mov.u32 %r466, _ZN7cutlass4gemm11gemm_kernelINS0_4GemmINS0_14WmmaGemmTraitsILNS_12MatrixLayout4KindE1ELS5_0ENS_5ShapeILi32ELi16ELi16ELi1EEEfNS0_13LinearScalingIfNS0_19FragmentMultiplyAddIfEEEEfS7_NS6_ILi16ELi16ELi16ELi1EEELi8ELi8EiNS0_20WmmaGemmTraitsHelperILS5_1ELS5_0ES7_ffSB_S7_SC_Li8ELi8EiEEEEEEEEvNT_6ParamsE$__cuda_local_var_29658_57_non_const_shared_storage;
mov.u32 %r465, %ctaid.y;
shl.b32 %r464, %r465, 4;
ld.param.v2.u32 {%r438, %r439}, [%rd144+288];
ld.param.u32 %r284, [%rd144+300];
ld.param.u32 %r440, [%rd144+320];
ld.param.u32 %r285, [%rd144+336];
ld.param.f32 %f18, [%rd144+424];
ld.param.u32 %r287, [%rd144+304];
ld.param.u64 %rd100, [%rd144+312];
cvta.to.global.u64 %rd101, %rd100;
and.b32 %r441, %r472, 3;
shl.b32 %r288, %r441, 2;
shr.u32 %r289, %r472, 2;
add.s32 %r290, %r289, %r464;
add.s32 %r291, %r288, %r467;
mad.lo.s32 %r442, %r290, %r440, %r291;
cvt.s64.s32%rd102, %r442;
mul.wide.s32 %rd103, %r442, 4;
add.s64 %rd27, %rd101, %rd103;
sub.s32 %r292, %r469, %r290;
shl.b32 %r293, %r470, 8;
shl.b32 %r443, %r289, 4;
add.s32 %r294, %r443, %r288;
shl.b32 %r444, %r294, 2;
add.s32 %r295, %r466, %r444;
cvt.s64.s32%rd104, %r471;
add.s64 %rd105, %rd102, %rd104;
shl.b64 %rd106, %rd105, 2;
add.s64 %rd28, %rd101, %rd106;
setp.eq.f32%p36, %f145, 0f00000000;
@%p36 bra BB0_48;
setp.lt.s32%p51, %r293, 256;
@%p51 bra BB0_50;
setp.lt.s32%p52, %r294, 256;
@%p52 bra BB0_52;
ld.param.u32 %r474, [_ZN7cutlass4gemm11gemm_kernelINS0_4GemmINS0_14WmmaGemmTraitsILNS_12MatrixLayout4KindE1ELS5_0ENS_5ShapeILi32ELi16ELi16ELi1EEEfNS0_13LinearScalingIfNS0_19FragmentMultiplyAddIfEEEEfS7_NS6_ILi16ELi16ELi16ELi1EEELi8ELi8EiNS0_20WmmaGemmTraitsHelperILS5_1ELS5_0ES7_ffSB_S7_SC_Li8ELi8EiEEEEEEEEvNT_6ParamsE_param_0];
mul.wide.s32 %rd142, %r293, 4;
add.s64 %rd32, %rd66, %rd142;
setp.lt.s32%p1, %r291, %r474;
bar.sync 0;
mov.b32 %f121, %r610;
mov.b32 %f122, %r609;
mov.b32 %f123, %r612;
mov.b32 %f124, %r611;
mov.b32 %f125, %r614;
mov.b32 %f126, %r613;
mov.b32 %f127, %r616;
mov.b32 %f128, %r615;
mov.u32 %r458, 16;
wmma.store.d.sync.col.m16n16k16.f32 [%rd32], {%f121, %f122, %f123, %f124, %f125, %f126, %f127, %f128}, %r458;
bar.sync 0;
ld.shared.v4.u32 {%r459, %r460, %r461, %r462}, [%r295+512];
setp.gt.s32%p53, %r292, 0;
and.pred %p54, %p1, %p53;
@!%p54 bra BB0_54;
bra.uni BB0_53;
ld.shared.v4.f32 {%f129, %f130, %f131, %f132}, [%r295];
mul.f32 %f137, %f18, %f132;
mul.f32 %f138, %f18, %f131;
mul.f32 %f139, %f18, %f130;
mul.f32 %f140, %f18, %f129;
st.global.v4.f32 [%rd27], {%f140, %f139, %f138, %f137};
mov.b32 %f141, %r459;
mul.f32 %f43, %f18, %f141;
mov.b32 %f142, %r460;
mul.f32 %f44, %f18, %f142;
mov.b32 %f143, %r461;
mul.f32 %f45, %f18, %f143;
mov.b32 %f144, %r462;
mul.f32 %f46, %f18, %f144;
sub.s32 %r463, %r292, %r285;
setp.gt.s32%p56, %r463, 0;
and.pred %p57, %p1, %p56;
@!%p57 bra BB0_56;
bra.uni BB0_55;
st.global.v4.f32 [%rd28], {%f43, %f44, %f45, %f46};
bra.uni BB0_56;
ret;