mirror of
https://github.com/NVIDIA/cuda-samples.git
synced 2024-12-01 12:59:17 +08:00
728 lines
23 KiB
Plaintext
728 lines
23 KiB
Plaintext
|
.version 1.4
|
||
|
.target sm_20, map_f64_to_f32
|
||
|
// compiled with C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\\bin/../open64/lib//be.exe
|
||
|
// nvopencc 4.0 built on 2011-02-21
|
||
|
|
||
|
//-----------------------------------------------------------
|
||
|
// Compiling C:/Users/EYOUNG~1.COM/AppData/Local/Temp/tmpxft_000014c0_00000000-11_matrixMul_kernel.cpp3.i (C:/Users/EYOUNG~1.COM/AppData/Local/Temp/ccBI#.a04000)
|
||
|
//-----------------------------------------------------------
|
||
|
|
||
|
//-----------------------------------------------------------
|
||
|
// Options:
|
||
|
//-----------------------------------------------------------
|
||
|
// Target:ptx, ISA:sm_20, Endian:little, Pointer Size:32
|
||
|
// -O3 (Optimization level)
|
||
|
// -g0 (Debug level)
|
||
|
// -m2 (Report advisories)
|
||
|
//-----------------------------------------------------------
|
||
|
|
||
|
.shared .align 4 .b8 __cuda_local_var_87382_38_non_const_As__6[1024];
|
||
|
.shared .align 4 .b8 __cuda_local_var_87386_38_non_const_Bs__7[1024];
|
||
|
|
||
|
.entry matrixMul_bs16_32bit (
|
||
|
.param .u32 __cudaparm_matrixMul_bs16_32bit_C,
|
||
|
.param .u32 __cudaparm_matrixMul_bs16_32bit_A,
|
||
|
.param .u32 __cudaparm_matrixMul_bs16_32bit_B,
|
||
|
.param .s32 __cudaparm_matrixMul_bs16_32bit_wA,
|
||
|
.param .s32 __cudaparm_matrixMul_bs16_32bit_wB)
|
||
|
{
|
||
|
.reg .u32 %r<57>;
|
||
|
.reg .f32 %f<52>;
|
||
|
.reg .pred %p<4>;
|
||
|
.loc 16 107 0
|
||
|
$LDWbegin_matrixMul_bs16_32bit:
|
||
|
.loc 16 66 0
|
||
|
cvt.s32.u16 %r1, %ctaid.x;
|
||
|
mul24.lo.s32 %r2, %r1, 16;
|
||
|
cvt.s32.u16 %r3, %ctaid.y;
|
||
|
ld.param.s32 %r4, [__cudaparm_matrixMul_bs16_32bit_wA];
|
||
|
mul.lo.s32 %r5, %r3, %r4;
|
||
|
mul.lo.s32 %r6, %r5, 16;
|
||
|
add.s32 %r7, %r6, %r4;
|
||
|
sub.s32 %r8, %r7, 1;
|
||
|
cvt.s32.u16 %r9, %tid.x;
|
||
|
cvt.s32.u16 %r10, %tid.y;
|
||
|
ld.param.s32 %r11, [__cudaparm_matrixMul_bs16_32bit_wB];
|
||
|
setp.lt.s32 %p1, %r8, %r6;
|
||
|
@%p1 bra $Lt_0_3330;
|
||
|
mov.u32 %r12, __cuda_local_var_87382_38_non_const_As__6;
|
||
|
mov.u32 %r13, __cuda_local_var_87386_38_non_const_Bs__7;
|
||
|
ld.param.s32 %r4, [__cudaparm_matrixMul_bs16_32bit_wA];
|
||
|
add.s32 %r14, %r4, 15;
|
||
|
shr.s32 %r15, %r14, 31;
|
||
|
mov.s32 %r16, 15;
|
||
|
and.b32 %r17, %r15, %r16;
|
||
|
add.s32 %r18, %r17, %r14;
|
||
|
shr.s32 %r19, %r18, 4;
|
||
|
ld.param.s32 %r11, [__cudaparm_matrixMul_bs16_32bit_wB];
|
||
|
mul.lo.s32 %r20, %r10, %r11;
|
||
|
mul.lo.s32 %r21, %r10, %r4;
|
||
|
mul24.lo.u32 %r22, %r10, 16;
|
||
|
mul24.lo.u32 %r23, %r10, 64;
|
||
|
mul24.lo.u32 %r24, %r9, 4;
|
||
|
mul.lo.s32 %r25, %r11, 16;
|
||
|
add.s32 %r26, %r20, %r2;
|
||
|
add.s32 %r27, %r21, %r6;
|
||
|
add.u32 %r28, %r9, %r22;
|
||
|
add.u32 %r29, %r23, %r12;
|
||
|
add.u32 %r30, %r24, %r13;
|
||
|
add.s32 %r31, %r26, %r9;
|
||
|
add.s32 %r32, %r27, %r9;
|
||
|
mul.lo.u32 %r33, %r28, 4;
|
||
|
mul.lo.u32 %r34, %r31, 4;
|
||
|
mul.lo.u32 %r35, %r25, 4;
|
||
|
mul.lo.u32 %r36, %r32, 4;
|
||
|
add.u32 %r37, %r33, %r12;
|
||
|
add.u32 %r38, %r33, %r13;
|
||
|
add.s32 %r39, %r21, %r8;
|
||
|
ld.param.u32 %r40, [__cudaparm_matrixMul_bs16_32bit_B];
|
||
|
add.u32 %r41, %r40, %r34;
|
||
|
ld.param.u32 %r42, [__cudaparm_matrixMul_bs16_32bit_A];
|
||
|
add.u32 %r43, %r36, %r42;
|
||
|
add.s32 %r44, %r39, %r9;
|
||
|
mul.lo.u32 %r45, %r44, 4;
|
||
|
add.u32 %r46, %r45, %r42;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
mov.s32 %r47, %r19;
|
||
|
$Lt_0_2818:
|
||
|
//<loop> Loop body line 66, nesting depth: 1, estimated iterations: unknown
|
||
|
.loc 16 81 0
|
||
|
ld.global.f32 %f2, [%r43+0];
|
||
|
st.shared.f32 [%r37+0], %f2;
|
||
|
.loc 16 82 0
|
||
|
ld.global.f32 %f3, [%r41+0];
|
||
|
st.shared.f32 [%r38+0], %f3;
|
||
|
.loc 16 85 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 92 0
|
||
|
ld.shared.f32 %f4, [%r29+0];
|
||
|
ld.shared.f32 %f5, [%r30+0];
|
||
|
mad.f32 %f6, %f4, %f5, %f1;
|
||
|
ld.shared.f32 %f7, [%r29+4];
|
||
|
ld.shared.f32 %f8, [%r30+64];
|
||
|
mad.f32 %f9, %f7, %f8, %f6;
|
||
|
ld.shared.f32 %f10, [%r29+8];
|
||
|
ld.shared.f32 %f11, [%r30+128];
|
||
|
mad.f32 %f12, %f10, %f11, %f9;
|
||
|
ld.shared.f32 %f13, [%r29+12];
|
||
|
ld.shared.f32 %f14, [%r30+192];
|
||
|
mad.f32 %f15, %f13, %f14, %f12;
|
||
|
ld.shared.f32 %f16, [%r29+16];
|
||
|
ld.shared.f32 %f17, [%r30+256];
|
||
|
mad.f32 %f18, %f16, %f17, %f15;
|
||
|
ld.shared.f32 %f19, [%r29+20];
|
||
|
ld.shared.f32 %f20, [%r30+320];
|
||
|
mad.f32 %f21, %f19, %f20, %f18;
|
||
|
ld.shared.f32 %f22, [%r29+24];
|
||
|
ld.shared.f32 %f23, [%r30+384];
|
||
|
mad.f32 %f24, %f22, %f23, %f21;
|
||
|
ld.shared.f32 %f25, [%r29+28];
|
||
|
ld.shared.f32 %f26, [%r30+448];
|
||
|
mad.f32 %f27, %f25, %f26, %f24;
|
||
|
ld.shared.f32 %f28, [%r29+32];
|
||
|
ld.shared.f32 %f29, [%r30+512];
|
||
|
mad.f32 %f30, %f28, %f29, %f27;
|
||
|
ld.shared.f32 %f31, [%r29+36];
|
||
|
ld.shared.f32 %f32, [%r30+576];
|
||
|
mad.f32 %f33, %f31, %f32, %f30;
|
||
|
ld.shared.f32 %f34, [%r29+40];
|
||
|
ld.shared.f32 %f35, [%r30+640];
|
||
|
mad.f32 %f36, %f34, %f35, %f33;
|
||
|
ld.shared.f32 %f37, [%r29+44];
|
||
|
ld.shared.f32 %f38, [%r30+704];
|
||
|
mad.f32 %f39, %f37, %f38, %f36;
|
||
|
ld.shared.f32 %f40, [%r29+48];
|
||
|
ld.shared.f32 %f41, [%r30+768];
|
||
|
mad.f32 %f42, %f40, %f41, %f39;
|
||
|
ld.shared.f32 %f43, [%r29+52];
|
||
|
ld.shared.f32 %f44, [%r30+832];
|
||
|
mad.f32 %f45, %f43, %f44, %f42;
|
||
|
ld.shared.f32 %f46, [%r29+56];
|
||
|
ld.shared.f32 %f47, [%r30+896];
|
||
|
mad.f32 %f48, %f46, %f47, %f45;
|
||
|
ld.shared.f32 %f49, [%r29+60];
|
||
|
ld.shared.f32 %f50, [%r30+960];
|
||
|
mad.f32 %f1, %f49, %f50, %f48;
|
||
|
.loc 16 97 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 66 0
|
||
|
add.u32 %r41, %r35, %r41;
|
||
|
add.u32 %r43, %r43, 64;
|
||
|
setp.le.u32 %p2, %r43, %r46;
|
||
|
@%p2 bra $Lt_0_2818;
|
||
|
bra.uni $Lt_0_2306;
|
||
|
$Lt_0_3330:
|
||
|
ld.param.s32 %r11, [__cudaparm_matrixMul_bs16_32bit_wB];
|
||
|
mul.lo.s32 %r20, %r10, %r11;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
$Lt_0_2306:
|
||
|
.loc 16 103 0
|
||
|
ld.param.u32 %r48, [__cudaparm_matrixMul_bs16_32bit_C];
|
||
|
mul.lo.s32 %r49, %r11, %r3;
|
||
|
add.s32 %r50, %r1, %r49;
|
||
|
mul.lo.s32 %r51, %r50, 16;
|
||
|
add.s32 %r52, %r20, %r51;
|
||
|
add.s32 %r53, %r9, %r52;
|
||
|
mul.lo.u32 %r54, %r53, 4;
|
||
|
add.u32 %r55, %r48, %r54;
|
||
|
st.global.f32 [%r55+0], %f1;
|
||
|
.loc 16 110 0
|
||
|
exit;
|
||
|
$LDWend_matrixMul_bs16_32bit:
|
||
|
} // matrixMul_bs16_32bit
|
||
|
.shared .align 4 .b8 __cuda_local_var_87382_38_non_const_As__4[1024];
|
||
|
.shared .align 4 .b8 __cuda_local_var_87386_38_non_const_Bs__5[1024];
|
||
|
|
||
|
.entry matrixMul_bs16_64bit (
|
||
|
.param .u32 __cudaparm_matrixMul_bs16_64bit_C,
|
||
|
.param .u32 __cudaparm_matrixMul_bs16_64bit_A,
|
||
|
.param .u32 __cudaparm_matrixMul_bs16_64bit_B,
|
||
|
.param .u32 __cudaparm_matrixMul_bs16_64bit_wA,
|
||
|
.param .u32 __cudaparm_matrixMul_bs16_64bit_wB)
|
||
|
{
|
||
|
.reg .u32 %r<54>;
|
||
|
.reg .f32 %f<52>;
|
||
|
.reg .pred %p<4>;
|
||
|
.loc 16 111 0
|
||
|
$LDWbegin_matrixMul_bs16_64bit:
|
||
|
.loc 16 66 0
|
||
|
cvt.u32.u16 %r1, %ctaid.x;
|
||
|
mul24.lo.u32 %r2, %r1, 16;
|
||
|
cvt.u32.u16 %r3, %ctaid.y;
|
||
|
ld.param.u32 %r4, [__cudaparm_matrixMul_bs16_64bit_wA];
|
||
|
mul.lo.u32 %r5, %r3, %r4;
|
||
|
mul.lo.u32 %r6, %r5, 16;
|
||
|
mov.s32 %r7, %r6;
|
||
|
add.u32 %r8, %r6, %r4;
|
||
|
sub.u32 %r9, %r8, 1;
|
||
|
cvt.u32.u16 %r10, %tid.x;
|
||
|
cvt.u32.u16 %r11, %tid.y;
|
||
|
ld.param.u32 %r12, [__cudaparm_matrixMul_bs16_64bit_wB];
|
||
|
setp.lt.u32 %p1, %r9, %r6;
|
||
|
@%p1 bra $Lt_1_3330;
|
||
|
mov.u32 %r13, __cuda_local_var_87382_38_non_const_As__4;
|
||
|
mov.u32 %r14, __cuda_local_var_87386_38_non_const_Bs__5;
|
||
|
ld.param.u32 %r4, [__cudaparm_matrixMul_bs16_64bit_wA];
|
||
|
add.u32 %r15, %r4, 15;
|
||
|
shr.s32 %r16, %r15, 31;
|
||
|
mov.s32 %r17, 15;
|
||
|
and.b32 %r18, %r16, %r17;
|
||
|
add.s32 %r19, %r18, %r15;
|
||
|
shr.s32 %r20, %r19, 4;
|
||
|
ld.param.u32 %r12, [__cudaparm_matrixMul_bs16_64bit_wB];
|
||
|
mul.lo.u32 %r21, %r11, %r12;
|
||
|
mul.lo.u32 %r22, %r11, %r4;
|
||
|
mul24.lo.u32 %r23, %r11, 16;
|
||
|
mul24.lo.u32 %r24, %r11, 64;
|
||
|
mul24.lo.u32 %r25, %r10, 4;
|
||
|
mul.lo.u32 %r26, %r12, 16;
|
||
|
add.u32 %r27, %r21, %r2;
|
||
|
add.u32 %r28, %r22, %r6;
|
||
|
add.u32 %r29, %r23, %r10;
|
||
|
add.u32 %r30, %r24, %r13;
|
||
|
add.u32 %r31, %r25, %r14;
|
||
|
add.u32 %r32, %r27, %r10;
|
||
|
add.u32 %r33, %r28, %r10;
|
||
|
mul.lo.u32 %r34, %r29, 4;
|
||
|
mul.lo.u32 %r35, %r32, 4;
|
||
|
mul.lo.u32 %r36, %r26, 4;
|
||
|
mul.lo.u32 %r37, %r33, 4;
|
||
|
add.u32 %r38, %r34, %r13;
|
||
|
add.u32 %r39, %r34, %r14;
|
||
|
ld.param.u32 %r40, [__cudaparm_matrixMul_bs16_64bit_B];
|
||
|
add.u32 %r41, %r40, %r35;
|
||
|
ld.param.u32 %r42, [__cudaparm_matrixMul_bs16_64bit_A];
|
||
|
add.u32 %r43, %r42, %r37;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
mov.s32 %r44, %r20;
|
||
|
$Lt_1_2818:
|
||
|
//<loop> Loop body line 66, nesting depth: 1, estimated iterations: unknown
|
||
|
.loc 16 81 0
|
||
|
ld.global.f32 %f2, [%r43+0];
|
||
|
st.shared.f32 [%r38+0], %f2;
|
||
|
.loc 16 82 0
|
||
|
ld.global.f32 %f3, [%r41+0];
|
||
|
st.shared.f32 [%r39+0], %f3;
|
||
|
.loc 16 85 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 92 0
|
||
|
ld.shared.f32 %f4, [%r30+0];
|
||
|
ld.shared.f32 %f5, [%r31+0];
|
||
|
mad.f32 %f6, %f4, %f5, %f1;
|
||
|
ld.shared.f32 %f7, [%r30+4];
|
||
|
ld.shared.f32 %f8, [%r31+64];
|
||
|
mad.f32 %f9, %f7, %f8, %f6;
|
||
|
ld.shared.f32 %f10, [%r30+8];
|
||
|
ld.shared.f32 %f11, [%r31+128];
|
||
|
mad.f32 %f12, %f10, %f11, %f9;
|
||
|
ld.shared.f32 %f13, [%r30+12];
|
||
|
ld.shared.f32 %f14, [%r31+192];
|
||
|
mad.f32 %f15, %f13, %f14, %f12;
|
||
|
ld.shared.f32 %f16, [%r30+16];
|
||
|
ld.shared.f32 %f17, [%r31+256];
|
||
|
mad.f32 %f18, %f16, %f17, %f15;
|
||
|
ld.shared.f32 %f19, [%r30+20];
|
||
|
ld.shared.f32 %f20, [%r31+320];
|
||
|
mad.f32 %f21, %f19, %f20, %f18;
|
||
|
ld.shared.f32 %f22, [%r30+24];
|
||
|
ld.shared.f32 %f23, [%r31+384];
|
||
|
mad.f32 %f24, %f22, %f23, %f21;
|
||
|
ld.shared.f32 %f25, [%r30+28];
|
||
|
ld.shared.f32 %f26, [%r31+448];
|
||
|
mad.f32 %f27, %f25, %f26, %f24;
|
||
|
ld.shared.f32 %f28, [%r30+32];
|
||
|
ld.shared.f32 %f29, [%r31+512];
|
||
|
mad.f32 %f30, %f28, %f29, %f27;
|
||
|
ld.shared.f32 %f31, [%r30+36];
|
||
|
ld.shared.f32 %f32, [%r31+576];
|
||
|
mad.f32 %f33, %f31, %f32, %f30;
|
||
|
ld.shared.f32 %f34, [%r30+40];
|
||
|
ld.shared.f32 %f35, [%r31+640];
|
||
|
mad.f32 %f36, %f34, %f35, %f33;
|
||
|
ld.shared.f32 %f37, [%r30+44];
|
||
|
ld.shared.f32 %f38, [%r31+704];
|
||
|
mad.f32 %f39, %f37, %f38, %f36;
|
||
|
ld.shared.f32 %f40, [%r30+48];
|
||
|
ld.shared.f32 %f41, [%r31+768];
|
||
|
mad.f32 %f42, %f40, %f41, %f39;
|
||
|
ld.shared.f32 %f43, [%r30+52];
|
||
|
ld.shared.f32 %f44, [%r31+832];
|
||
|
mad.f32 %f45, %f43, %f44, %f42;
|
||
|
ld.shared.f32 %f46, [%r30+56];
|
||
|
ld.shared.f32 %f47, [%r31+896];
|
||
|
mad.f32 %f48, %f46, %f47, %f45;
|
||
|
ld.shared.f32 %f49, [%r30+60];
|
||
|
ld.shared.f32 %f50, [%r31+960];
|
||
|
mad.f32 %f1, %f49, %f50, %f48;
|
||
|
.loc 16 97 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 66 0
|
||
|
add.u32 %r41, %r36, %r41;
|
||
|
add.u32 %r7, %r7, 16;
|
||
|
add.u32 %r43, %r43, 64;
|
||
|
setp.ge.u32 %p2, %r9, %r7;
|
||
|
@%p2 bra $Lt_1_2818;
|
||
|
bra.uni $Lt_1_2306;
|
||
|
$Lt_1_3330:
|
||
|
ld.param.u32 %r12, [__cudaparm_matrixMul_bs16_64bit_wB];
|
||
|
mul.lo.u32 %r21, %r11, %r12;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
$Lt_1_2306:
|
||
|
.loc 16 103 0
|
||
|
ld.param.u32 %r45, [__cudaparm_matrixMul_bs16_64bit_C];
|
||
|
mul.lo.u32 %r46, %r12, %r3;
|
||
|
add.u32 %r47, %r1, %r46;
|
||
|
mul.lo.u32 %r48, %r47, 16;
|
||
|
add.u32 %r49, %r21, %r48;
|
||
|
add.u32 %r50, %r10, %r49;
|
||
|
mul.lo.u32 %r51, %r50, 4;
|
||
|
add.u32 %r52, %r45, %r51;
|
||
|
st.global.f32 [%r52+0], %f1;
|
||
|
.loc 16 114 0
|
||
|
exit;
|
||
|
$LDWend_matrixMul_bs16_64bit:
|
||
|
} // matrixMul_bs16_64bit
|
||
|
.shared .align 4 .b8 __cuda_local_var_87382_38_non_const_As__2[4096];
|
||
|
.shared .align 4 .b8 __cuda_local_var_87386_38_non_const_Bs__3[4096];
|
||
|
|
||
|
.entry matrixMul_bs32_32bit (
|
||
|
.param .u32 __cudaparm_matrixMul_bs32_32bit_C,
|
||
|
.param .u32 __cudaparm_matrixMul_bs32_32bit_A,
|
||
|
.param .u32 __cudaparm_matrixMul_bs32_32bit_B,
|
||
|
.param .s32 __cudaparm_matrixMul_bs32_32bit_wA,
|
||
|
.param .s32 __cudaparm_matrixMul_bs32_32bit_wB)
|
||
|
{
|
||
|
.reg .u32 %r<57>;
|
||
|
.reg .f32 %f<100>;
|
||
|
.reg .pred %p<4>;
|
||
|
.loc 16 115 0
|
||
|
$LDWbegin_matrixMul_bs32_32bit:
|
||
|
.loc 16 66 0
|
||
|
cvt.s32.u16 %r1, %ctaid.x;
|
||
|
mul24.lo.s32 %r2, %r1, 32;
|
||
|
cvt.s32.u16 %r3, %ctaid.y;
|
||
|
ld.param.s32 %r4, [__cudaparm_matrixMul_bs32_32bit_wA];
|
||
|
mul.lo.s32 %r5, %r3, %r4;
|
||
|
mul.lo.s32 %r6, %r5, 32;
|
||
|
add.s32 %r7, %r6, %r4;
|
||
|
sub.s32 %r8, %r7, 1;
|
||
|
cvt.s32.u16 %r9, %tid.x;
|
||
|
cvt.s32.u16 %r10, %tid.y;
|
||
|
ld.param.s32 %r11, [__cudaparm_matrixMul_bs32_32bit_wB];
|
||
|
setp.lt.s32 %p1, %r8, %r6;
|
||
|
@%p1 bra $Lt_2_3330;
|
||
|
mov.u32 %r12, __cuda_local_var_87382_38_non_const_As__2;
|
||
|
mov.u32 %r13, __cuda_local_var_87386_38_non_const_Bs__3;
|
||
|
ld.param.s32 %r4, [__cudaparm_matrixMul_bs32_32bit_wA];
|
||
|
add.s32 %r14, %r4, 31;
|
||
|
shr.s32 %r15, %r14, 31;
|
||
|
mov.s32 %r16, 31;
|
||
|
and.b32 %r17, %r15, %r16;
|
||
|
add.s32 %r18, %r17, %r14;
|
||
|
shr.s32 %r19, %r18, 5;
|
||
|
ld.param.s32 %r11, [__cudaparm_matrixMul_bs32_32bit_wB];
|
||
|
mul.lo.s32 %r20, %r10, %r11;
|
||
|
mul.lo.s32 %r21, %r10, %r4;
|
||
|
mul24.lo.u32 %r22, %r10, 32;
|
||
|
mul24.lo.u32 %r23, %r10, 128;
|
||
|
mul24.lo.u32 %r24, %r9, 4;
|
||
|
mul.lo.s32 %r25, %r11, 32;
|
||
|
add.s32 %r26, %r20, %r2;
|
||
|
add.s32 %r27, %r21, %r6;
|
||
|
add.u32 %r28, %r9, %r22;
|
||
|
add.u32 %r29, %r23, %r12;
|
||
|
add.u32 %r30, %r24, %r13;
|
||
|
add.s32 %r31, %r26, %r9;
|
||
|
add.s32 %r32, %r27, %r9;
|
||
|
mul.lo.u32 %r33, %r28, 4;
|
||
|
mul.lo.u32 %r34, %r31, 4;
|
||
|
mul.lo.u32 %r35, %r25, 4;
|
||
|
mul.lo.u32 %r36, %r32, 4;
|
||
|
add.u32 %r37, %r33, %r12;
|
||
|
add.u32 %r38, %r33, %r13;
|
||
|
add.s32 %r39, %r21, %r8;
|
||
|
ld.param.u32 %r40, [__cudaparm_matrixMul_bs32_32bit_B];
|
||
|
add.u32 %r41, %r40, %r34;
|
||
|
ld.param.u32 %r42, [__cudaparm_matrixMul_bs32_32bit_A];
|
||
|
add.u32 %r43, %r36, %r42;
|
||
|
add.s32 %r44, %r39, %r9;
|
||
|
mul.lo.u32 %r45, %r44, 4;
|
||
|
add.u32 %r46, %r45, %r42;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
mov.s32 %r47, %r19;
|
||
|
$Lt_2_2818:
|
||
|
//<loop> Loop body line 66, nesting depth: 1, estimated iterations: unknown
|
||
|
.loc 16 81 0
|
||
|
ld.global.f32 %f2, [%r43+0];
|
||
|
st.shared.f32 [%r37+0], %f2;
|
||
|
.loc 16 82 0
|
||
|
ld.global.f32 %f3, [%r41+0];
|
||
|
st.shared.f32 [%r38+0], %f3;
|
||
|
.loc 16 85 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 92 0
|
||
|
ld.shared.f32 %f4, [%r29+0];
|
||
|
ld.shared.f32 %f5, [%r30+0];
|
||
|
mad.f32 %f6, %f4, %f5, %f1;
|
||
|
ld.shared.f32 %f7, [%r29+4];
|
||
|
ld.shared.f32 %f8, [%r30+128];
|
||
|
mad.f32 %f9, %f7, %f8, %f6;
|
||
|
ld.shared.f32 %f10, [%r29+8];
|
||
|
ld.shared.f32 %f11, [%r30+256];
|
||
|
mad.f32 %f12, %f10, %f11, %f9;
|
||
|
ld.shared.f32 %f13, [%r29+12];
|
||
|
ld.shared.f32 %f14, [%r30+384];
|
||
|
mad.f32 %f15, %f13, %f14, %f12;
|
||
|
ld.shared.f32 %f16, [%r29+16];
|
||
|
ld.shared.f32 %f17, [%r30+512];
|
||
|
mad.f32 %f18, %f16, %f17, %f15;
|
||
|
ld.shared.f32 %f19, [%r29+20];
|
||
|
ld.shared.f32 %f20, [%r30+640];
|
||
|
mad.f32 %f21, %f19, %f20, %f18;
|
||
|
ld.shared.f32 %f22, [%r29+24];
|
||
|
ld.shared.f32 %f23, [%r30+768];
|
||
|
mad.f32 %f24, %f22, %f23, %f21;
|
||
|
ld.shared.f32 %f25, [%r29+28];
|
||
|
ld.shared.f32 %f26, [%r30+896];
|
||
|
mad.f32 %f27, %f25, %f26, %f24;
|
||
|
ld.shared.f32 %f28, [%r29+32];
|
||
|
ld.shared.f32 %f29, [%r30+1024];
|
||
|
mad.f32 %f30, %f28, %f29, %f27;
|
||
|
ld.shared.f32 %f31, [%r29+36];
|
||
|
ld.shared.f32 %f32, [%r30+1152];
|
||
|
mad.f32 %f33, %f31, %f32, %f30;
|
||
|
ld.shared.f32 %f34, [%r29+40];
|
||
|
ld.shared.f32 %f35, [%r30+1280];
|
||
|
mad.f32 %f36, %f34, %f35, %f33;
|
||
|
ld.shared.f32 %f37, [%r29+44];
|
||
|
ld.shared.f32 %f38, [%r30+1408];
|
||
|
mad.f32 %f39, %f37, %f38, %f36;
|
||
|
ld.shared.f32 %f40, [%r29+48];
|
||
|
ld.shared.f32 %f41, [%r30+1536];
|
||
|
mad.f32 %f42, %f40, %f41, %f39;
|
||
|
ld.shared.f32 %f43, [%r29+52];
|
||
|
ld.shared.f32 %f44, [%r30+1664];
|
||
|
mad.f32 %f45, %f43, %f44, %f42;
|
||
|
ld.shared.f32 %f46, [%r29+56];
|
||
|
ld.shared.f32 %f47, [%r30+1792];
|
||
|
mad.f32 %f48, %f46, %f47, %f45;
|
||
|
ld.shared.f32 %f49, [%r29+60];
|
||
|
ld.shared.f32 %f50, [%r30+1920];
|
||
|
mad.f32 %f51, %f49, %f50, %f48;
|
||
|
ld.shared.f32 %f52, [%r29+64];
|
||
|
ld.shared.f32 %f53, [%r30+2048];
|
||
|
mad.f32 %f54, %f52, %f53, %f51;
|
||
|
ld.shared.f32 %f55, [%r29+68];
|
||
|
ld.shared.f32 %f56, [%r30+2176];
|
||
|
mad.f32 %f57, %f55, %f56, %f54;
|
||
|
ld.shared.f32 %f58, [%r29+72];
|
||
|
ld.shared.f32 %f59, [%r30+2304];
|
||
|
mad.f32 %f60, %f58, %f59, %f57;
|
||
|
ld.shared.f32 %f61, [%r29+76];
|
||
|
ld.shared.f32 %f62, [%r30+2432];
|
||
|
mad.f32 %f63, %f61, %f62, %f60;
|
||
|
ld.shared.f32 %f64, [%r29+80];
|
||
|
ld.shared.f32 %f65, [%r30+2560];
|
||
|
mad.f32 %f66, %f64, %f65, %f63;
|
||
|
ld.shared.f32 %f67, [%r29+84];
|
||
|
ld.shared.f32 %f68, [%r30+2688];
|
||
|
mad.f32 %f69, %f67, %f68, %f66;
|
||
|
ld.shared.f32 %f70, [%r29+88];
|
||
|
ld.shared.f32 %f71, [%r30+2816];
|
||
|
mad.f32 %f72, %f70, %f71, %f69;
|
||
|
ld.shared.f32 %f73, [%r29+92];
|
||
|
ld.shared.f32 %f74, [%r30+2944];
|
||
|
mad.f32 %f75, %f73, %f74, %f72;
|
||
|
ld.shared.f32 %f76, [%r29+96];
|
||
|
ld.shared.f32 %f77, [%r30+3072];
|
||
|
mad.f32 %f78, %f76, %f77, %f75;
|
||
|
ld.shared.f32 %f79, [%r29+100];
|
||
|
ld.shared.f32 %f80, [%r30+3200];
|
||
|
mad.f32 %f81, %f79, %f80, %f78;
|
||
|
ld.shared.f32 %f82, [%r29+104];
|
||
|
ld.shared.f32 %f83, [%r30+3328];
|
||
|
mad.f32 %f84, %f82, %f83, %f81;
|
||
|
ld.shared.f32 %f85, [%r29+108];
|
||
|
ld.shared.f32 %f86, [%r30+3456];
|
||
|
mad.f32 %f87, %f85, %f86, %f84;
|
||
|
ld.shared.f32 %f88, [%r29+112];
|
||
|
ld.shared.f32 %f89, [%r30+3584];
|
||
|
mad.f32 %f90, %f88, %f89, %f87;
|
||
|
ld.shared.f32 %f91, [%r29+116];
|
||
|
ld.shared.f32 %f92, [%r30+3712];
|
||
|
mad.f32 %f93, %f91, %f92, %f90;
|
||
|
ld.shared.f32 %f94, [%r29+120];
|
||
|
ld.shared.f32 %f95, [%r30+3840];
|
||
|
mad.f32 %f96, %f94, %f95, %f93;
|
||
|
ld.shared.f32 %f97, [%r29+124];
|
||
|
ld.shared.f32 %f98, [%r30+3968];
|
||
|
mad.f32 %f1, %f97, %f98, %f96;
|
||
|
.loc 16 97 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 66 0
|
||
|
add.u32 %r41, %r35, %r41;
|
||
|
add.u32 %r43, %r43, 128;
|
||
|
setp.le.u32 %p2, %r43, %r46;
|
||
|
@%p2 bra $Lt_2_2818;
|
||
|
bra.uni $Lt_2_2306;
|
||
|
$Lt_2_3330:
|
||
|
ld.param.s32 %r11, [__cudaparm_matrixMul_bs32_32bit_wB];
|
||
|
mul.lo.s32 %r20, %r10, %r11;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
$Lt_2_2306:
|
||
|
.loc 16 103 0
|
||
|
ld.param.u32 %r48, [__cudaparm_matrixMul_bs32_32bit_C];
|
||
|
mul.lo.s32 %r49, %r11, %r3;
|
||
|
add.s32 %r50, %r1, %r49;
|
||
|
mul.lo.s32 %r51, %r50, 32;
|
||
|
add.s32 %r52, %r20, %r51;
|
||
|
add.s32 %r53, %r9, %r52;
|
||
|
mul.lo.u32 %r54, %r53, 4;
|
||
|
add.u32 %r55, %r48, %r54;
|
||
|
st.global.f32 [%r55+0], %f1;
|
||
|
.loc 16 118 0
|
||
|
exit;
|
||
|
$LDWend_matrixMul_bs32_32bit:
|
||
|
} // matrixMul_bs32_32bit
|
||
|
.shared .align 4 .b8 __cuda_local_var_87382_38_non_const_As__0[4096];
|
||
|
.shared .align 4 .b8 __cuda_local_var_87386_38_non_const_Bs__1[4096];
|
||
|
|
||
|
.entry matrixMul_bs32_64bit (
|
||
|
.param .u32 __cudaparm_matrixMul_bs32_64bit_C,
|
||
|
.param .u32 __cudaparm_matrixMul_bs32_64bit_A,
|
||
|
.param .u32 __cudaparm_matrixMul_bs32_64bit_B,
|
||
|
.param .u32 __cudaparm_matrixMul_bs32_64bit_wA,
|
||
|
.param .u32 __cudaparm_matrixMul_bs32_64bit_wB)
|
||
|
{
|
||
|
.reg .u32 %r<54>;
|
||
|
.reg .f32 %f<100>;
|
||
|
.reg .pred %p<4>;
|
||
|
.loc 16 119 0
|
||
|
$LDWbegin_matrixMul_bs32_64bit:
|
||
|
.loc 16 66 0
|
||
|
cvt.u32.u16 %r1, %ctaid.x;
|
||
|
mul24.lo.u32 %r2, %r1, 32;
|
||
|
cvt.u32.u16 %r3, %ctaid.y;
|
||
|
ld.param.u32 %r4, [__cudaparm_matrixMul_bs32_64bit_wA];
|
||
|
mul.lo.u32 %r5, %r3, %r4;
|
||
|
mul.lo.u32 %r6, %r5, 32;
|
||
|
mov.s32 %r7, %r6;
|
||
|
add.u32 %r8, %r6, %r4;
|
||
|
sub.u32 %r9, %r8, 1;
|
||
|
cvt.u32.u16 %r10, %tid.x;
|
||
|
cvt.u32.u16 %r11, %tid.y;
|
||
|
ld.param.u32 %r12, [__cudaparm_matrixMul_bs32_64bit_wB];
|
||
|
setp.lt.u32 %p1, %r9, %r6;
|
||
|
@%p1 bra $Lt_3_3330;
|
||
|
mov.u32 %r13, __cuda_local_var_87382_38_non_const_As__0;
|
||
|
mov.u32 %r14, __cuda_local_var_87386_38_non_const_Bs__1;
|
||
|
ld.param.u32 %r4, [__cudaparm_matrixMul_bs32_64bit_wA];
|
||
|
add.u32 %r15, %r4, 31;
|
||
|
shr.s32 %r16, %r15, 31;
|
||
|
mov.s32 %r17, 31;
|
||
|
and.b32 %r18, %r16, %r17;
|
||
|
add.s32 %r19, %r18, %r15;
|
||
|
shr.s32 %r20, %r19, 5;
|
||
|
ld.param.u32 %r12, [__cudaparm_matrixMul_bs32_64bit_wB];
|
||
|
mul.lo.u32 %r21, %r11, %r12;
|
||
|
mul.lo.u32 %r22, %r11, %r4;
|
||
|
mul24.lo.u32 %r23, %r11, 32;
|
||
|
mul24.lo.u32 %r24, %r11, 128;
|
||
|
mul24.lo.u32 %r25, %r10, 4;
|
||
|
mul.lo.u32 %r26, %r12, 32;
|
||
|
add.u32 %r27, %r21, %r2;
|
||
|
add.u32 %r28, %r22, %r6;
|
||
|
add.u32 %r29, %r23, %r10;
|
||
|
add.u32 %r30, %r24, %r13;
|
||
|
add.u32 %r31, %r25, %r14;
|
||
|
add.u32 %r32, %r27, %r10;
|
||
|
add.u32 %r33, %r28, %r10;
|
||
|
mul.lo.u32 %r34, %r29, 4;
|
||
|
mul.lo.u32 %r35, %r32, 4;
|
||
|
mul.lo.u32 %r36, %r26, 4;
|
||
|
mul.lo.u32 %r37, %r33, 4;
|
||
|
add.u32 %r38, %r34, %r13;
|
||
|
add.u32 %r39, %r34, %r14;
|
||
|
ld.param.u32 %r40, [__cudaparm_matrixMul_bs32_64bit_B];
|
||
|
add.u32 %r41, %r40, %r35;
|
||
|
ld.param.u32 %r42, [__cudaparm_matrixMul_bs32_64bit_A];
|
||
|
add.u32 %r43, %r42, %r37;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
mov.s32 %r44, %r20;
|
||
|
$Lt_3_2818:
|
||
|
//<loop> Loop body line 66, nesting depth: 1, estimated iterations: unknown
|
||
|
.loc 16 81 0
|
||
|
ld.global.f32 %f2, [%r43+0];
|
||
|
st.shared.f32 [%r38+0], %f2;
|
||
|
.loc 16 82 0
|
||
|
ld.global.f32 %f3, [%r41+0];
|
||
|
st.shared.f32 [%r39+0], %f3;
|
||
|
.loc 16 85 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 92 0
|
||
|
ld.shared.f32 %f4, [%r30+0];
|
||
|
ld.shared.f32 %f5, [%r31+0];
|
||
|
mad.f32 %f6, %f4, %f5, %f1;
|
||
|
ld.shared.f32 %f7, [%r30+4];
|
||
|
ld.shared.f32 %f8, [%r31+128];
|
||
|
mad.f32 %f9, %f7, %f8, %f6;
|
||
|
ld.shared.f32 %f10, [%r30+8];
|
||
|
ld.shared.f32 %f11, [%r31+256];
|
||
|
mad.f32 %f12, %f10, %f11, %f9;
|
||
|
ld.shared.f32 %f13, [%r30+12];
|
||
|
ld.shared.f32 %f14, [%r31+384];
|
||
|
mad.f32 %f15, %f13, %f14, %f12;
|
||
|
ld.shared.f32 %f16, [%r30+16];
|
||
|
ld.shared.f32 %f17, [%r31+512];
|
||
|
mad.f32 %f18, %f16, %f17, %f15;
|
||
|
ld.shared.f32 %f19, [%r30+20];
|
||
|
ld.shared.f32 %f20, [%r31+640];
|
||
|
mad.f32 %f21, %f19, %f20, %f18;
|
||
|
ld.shared.f32 %f22, [%r30+24];
|
||
|
ld.shared.f32 %f23, [%r31+768];
|
||
|
mad.f32 %f24, %f22, %f23, %f21;
|
||
|
ld.shared.f32 %f25, [%r30+28];
|
||
|
ld.shared.f32 %f26, [%r31+896];
|
||
|
mad.f32 %f27, %f25, %f26, %f24;
|
||
|
ld.shared.f32 %f28, [%r30+32];
|
||
|
ld.shared.f32 %f29, [%r31+1024];
|
||
|
mad.f32 %f30, %f28, %f29, %f27;
|
||
|
ld.shared.f32 %f31, [%r30+36];
|
||
|
ld.shared.f32 %f32, [%r31+1152];
|
||
|
mad.f32 %f33, %f31, %f32, %f30;
|
||
|
ld.shared.f32 %f34, [%r30+40];
|
||
|
ld.shared.f32 %f35, [%r31+1280];
|
||
|
mad.f32 %f36, %f34, %f35, %f33;
|
||
|
ld.shared.f32 %f37, [%r30+44];
|
||
|
ld.shared.f32 %f38, [%r31+1408];
|
||
|
mad.f32 %f39, %f37, %f38, %f36;
|
||
|
ld.shared.f32 %f40, [%r30+48];
|
||
|
ld.shared.f32 %f41, [%r31+1536];
|
||
|
mad.f32 %f42, %f40, %f41, %f39;
|
||
|
ld.shared.f32 %f43, [%r30+52];
|
||
|
ld.shared.f32 %f44, [%r31+1664];
|
||
|
mad.f32 %f45, %f43, %f44, %f42;
|
||
|
ld.shared.f32 %f46, [%r30+56];
|
||
|
ld.shared.f32 %f47, [%r31+1792];
|
||
|
mad.f32 %f48, %f46, %f47, %f45;
|
||
|
ld.shared.f32 %f49, [%r30+60];
|
||
|
ld.shared.f32 %f50, [%r31+1920];
|
||
|
mad.f32 %f51, %f49, %f50, %f48;
|
||
|
ld.shared.f32 %f52, [%r30+64];
|
||
|
ld.shared.f32 %f53, [%r31+2048];
|
||
|
mad.f32 %f54, %f52, %f53, %f51;
|
||
|
ld.shared.f32 %f55, [%r30+68];
|
||
|
ld.shared.f32 %f56, [%r31+2176];
|
||
|
mad.f32 %f57, %f55, %f56, %f54;
|
||
|
ld.shared.f32 %f58, [%r30+72];
|
||
|
ld.shared.f32 %f59, [%r31+2304];
|
||
|
mad.f32 %f60, %f58, %f59, %f57;
|
||
|
ld.shared.f32 %f61, [%r30+76];
|
||
|
ld.shared.f32 %f62, [%r31+2432];
|
||
|
mad.f32 %f63, %f61, %f62, %f60;
|
||
|
ld.shared.f32 %f64, [%r30+80];
|
||
|
ld.shared.f32 %f65, [%r31+2560];
|
||
|
mad.f32 %f66, %f64, %f65, %f63;
|
||
|
ld.shared.f32 %f67, [%r30+84];
|
||
|
ld.shared.f32 %f68, [%r31+2688];
|
||
|
mad.f32 %f69, %f67, %f68, %f66;
|
||
|
ld.shared.f32 %f70, [%r30+88];
|
||
|
ld.shared.f32 %f71, [%r31+2816];
|
||
|
mad.f32 %f72, %f70, %f71, %f69;
|
||
|
ld.shared.f32 %f73, [%r30+92];
|
||
|
ld.shared.f32 %f74, [%r31+2944];
|
||
|
mad.f32 %f75, %f73, %f74, %f72;
|
||
|
ld.shared.f32 %f76, [%r30+96];
|
||
|
ld.shared.f32 %f77, [%r31+3072];
|
||
|
mad.f32 %f78, %f76, %f77, %f75;
|
||
|
ld.shared.f32 %f79, [%r30+100];
|
||
|
ld.shared.f32 %f80, [%r31+3200];
|
||
|
mad.f32 %f81, %f79, %f80, %f78;
|
||
|
ld.shared.f32 %f82, [%r30+104];
|
||
|
ld.shared.f32 %f83, [%r31+3328];
|
||
|
mad.f32 %f84, %f82, %f83, %f81;
|
||
|
ld.shared.f32 %f85, [%r30+108];
|
||
|
ld.shared.f32 %f86, [%r31+3456];
|
||
|
mad.f32 %f87, %f85, %f86, %f84;
|
||
|
ld.shared.f32 %f88, [%r30+112];
|
||
|
ld.shared.f32 %f89, [%r31+3584];
|
||
|
mad.f32 %f90, %f88, %f89, %f87;
|
||
|
ld.shared.f32 %f91, [%r30+116];
|
||
|
ld.shared.f32 %f92, [%r31+3712];
|
||
|
mad.f32 %f93, %f91, %f92, %f90;
|
||
|
ld.shared.f32 %f94, [%r30+120];
|
||
|
ld.shared.f32 %f95, [%r31+3840];
|
||
|
mad.f32 %f96, %f94, %f95, %f93;
|
||
|
ld.shared.f32 %f97, [%r30+124];
|
||
|
ld.shared.f32 %f98, [%r31+3968];
|
||
|
mad.f32 %f1, %f97, %f98, %f96;
|
||
|
.loc 16 97 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 66 0
|
||
|
add.u32 %r41, %r36, %r41;
|
||
|
add.u32 %r7, %r7, 32;
|
||
|
add.u32 %r43, %r43, 128;
|
||
|
setp.ge.u32 %p2, %r9, %r7;
|
||
|
@%p2 bra $Lt_3_2818;
|
||
|
bra.uni $Lt_3_2306;
|
||
|
$Lt_3_3330:
|
||
|
ld.param.u32 %r12, [__cudaparm_matrixMul_bs32_64bit_wB];
|
||
|
mul.lo.u32 %r21, %r11, %r12;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
$Lt_3_2306:
|
||
|
.loc 16 103 0
|
||
|
ld.param.u32 %r45, [__cudaparm_matrixMul_bs32_64bit_C];
|
||
|
mul.lo.u32 %r46, %r12, %r3;
|
||
|
add.u32 %r47, %r1, %r46;
|
||
|
mul.lo.u32 %r48, %r47, 32;
|
||
|
add.u32 %r49, %r21, %r48;
|
||
|
add.u32 %r50, %r10, %r49;
|
||
|
mul.lo.u32 %r51, %r50, 4;
|
||
|
add.u32 %r52, %r45, %r51;
|
||
|
st.global.f32 [%r52+0], %f1;
|
||
|
.loc 16 122 0
|
||
|
exit;
|
||
|
$LDWend_matrixMul_bs32_64bit:
|
||
|
} // matrixMul_bs32_64bit
|
||
|
|