mirror of
https://github.com/NVIDIA/cuda-samples.git
synced 2024-11-29 00:39:19 +08:00
738 lines
23 KiB
Plaintext
738 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_00000c2c_00000000-11_matrixMul_kernel.cpp3.i (C:/Users/EYOUNG~1.COM/AppData/Local/Temp/ccBI#.a04524)
|
||
|
//-----------------------------------------------------------
|
||
|
|
||
|
//-----------------------------------------------------------
|
||
|
// Options:
|
||
|
//-----------------------------------------------------------
|
||
|
// Target:ptx, ISA:sm_20, Endian:little, Pointer Size:64
|
||
|
// -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 .u64 __cudaparm_matrixMul_bs16_32bit_C,
|
||
|
.param .u64 __cudaparm_matrixMul_bs16_32bit_A,
|
||
|
.param .u64 __cudaparm_matrixMul_bs16_32bit_B,
|
||
|
.param .s32 __cudaparm_matrixMul_bs16_32bit_wA,
|
||
|
.param .s32 __cudaparm_matrixMul_bs16_32bit_wB)
|
||
|
{
|
||
|
.reg .u32 %r<34>;
|
||
|
.reg .u64 %rd<29>;
|
||
|
.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.u64 %rd1, __cuda_local_var_87386_38_non_const_Bs__7;
|
||
|
mov.u64 %rd2, __cuda_local_var_87382_38_non_const_As__6;
|
||
|
ld.param.s32 %r4, [__cudaparm_matrixMul_bs16_32bit_wA];
|
||
|
add.s32 %r12, %r4, 15;
|
||
|
shr.s32 %r13, %r12, 31;
|
||
|
mov.s32 %r14, 15;
|
||
|
and.b32 %r15, %r13, %r14;
|
||
|
add.s32 %r16, %r15, %r12;
|
||
|
shr.s32 %r17, %r16, 4;
|
||
|
ld.param.s32 %r11, [__cudaparm_matrixMul_bs16_32bit_wB];
|
||
|
mul.lo.s32 %r18, %r10, %r11;
|
||
|
mul.lo.s32 %r19, %r10, %r4;
|
||
|
cvt.s64.s32 %rd3, %r9;
|
||
|
cvt.s64.s32 %rd4, %r10;
|
||
|
add.s32 %r20, %r19, %r6;
|
||
|
add.s32 %r21, %r9, %r20;
|
||
|
mul.wide.s32 %rd5, %r9, 4;
|
||
|
add.u64 %rd6, %rd1, %rd5;
|
||
|
mul.wide.s32 %rd7, %r10, 64;
|
||
|
add.u64 %rd8, %rd2, %rd7;
|
||
|
mul.wide.s32 %rd9, %r10, 16;
|
||
|
add.u64 %rd10, %rd3, %rd9;
|
||
|
mul.lo.u64 %rd11, %rd10, 4;
|
||
|
add.s32 %r22, %r19, %r8;
|
||
|
mul.lo.s32 %r23, %r11, 16;
|
||
|
cvt.s64.s32 %rd12, %r23;
|
||
|
mul.wide.s32 %rd13, %r23, 4;
|
||
|
add.u64 %rd14, %rd11, %rd2;
|
||
|
add.u64 %rd15, %rd11, %rd1;
|
||
|
add.s32 %r24, %r22, %r9;
|
||
|
ld.param.u64 %rd16, [__cudaparm_matrixMul_bs16_32bit_B];
|
||
|
add.s32 %r25, %r18, %r2;
|
||
|
add.s32 %r26, %r9, %r25;
|
||
|
cvt.s64.s32 %rd17, %r26;
|
||
|
mul.wide.s32 %rd18, %r26, 4;
|
||
|
add.u64 %rd19, %rd16, %rd18;
|
||
|
ld.param.u64 %rd20, [__cudaparm_matrixMul_bs16_32bit_A];
|
||
|
cvt.s64.s32 %rd21, %r21;
|
||
|
mul.wide.s32 %rd22, %r21, 4;
|
||
|
add.u64 %rd23, %rd20, %rd22;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
mov.s32 %r27, %r17;
|
||
|
$Lt_0_2818:
|
||
|
//<loop> Loop body line 66, nesting depth: 1, estimated iterations: unknown
|
||
|
.loc 16 81 0
|
||
|
ld.global.f32 %f2, [%rd23+0];
|
||
|
st.shared.f32 [%rd14+0], %f2;
|
||
|
.loc 16 82 0
|
||
|
ld.global.f32 %f3, [%rd19+0];
|
||
|
st.shared.f32 [%rd15+0], %f3;
|
||
|
.loc 16 85 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 92 0
|
||
|
ld.shared.f32 %f4, [%rd8+0];
|
||
|
ld.shared.f32 %f5, [%rd6+0];
|
||
|
mad.f32 %f6, %f4, %f5, %f1;
|
||
|
ld.shared.f32 %f7, [%rd8+4];
|
||
|
ld.shared.f32 %f8, [%rd6+64];
|
||
|
mad.f32 %f9, %f7, %f8, %f6;
|
||
|
ld.shared.f32 %f10, [%rd8+8];
|
||
|
ld.shared.f32 %f11, [%rd6+128];
|
||
|
mad.f32 %f12, %f10, %f11, %f9;
|
||
|
ld.shared.f32 %f13, [%rd8+12];
|
||
|
ld.shared.f32 %f14, [%rd6+192];
|
||
|
mad.f32 %f15, %f13, %f14, %f12;
|
||
|
ld.shared.f32 %f16, [%rd8+16];
|
||
|
ld.shared.f32 %f17, [%rd6+256];
|
||
|
mad.f32 %f18, %f16, %f17, %f15;
|
||
|
ld.shared.f32 %f19, [%rd8+20];
|
||
|
ld.shared.f32 %f20, [%rd6+320];
|
||
|
mad.f32 %f21, %f19, %f20, %f18;
|
||
|
ld.shared.f32 %f22, [%rd8+24];
|
||
|
ld.shared.f32 %f23, [%rd6+384];
|
||
|
mad.f32 %f24, %f22, %f23, %f21;
|
||
|
ld.shared.f32 %f25, [%rd8+28];
|
||
|
ld.shared.f32 %f26, [%rd6+448];
|
||
|
mad.f32 %f27, %f25, %f26, %f24;
|
||
|
ld.shared.f32 %f28, [%rd8+32];
|
||
|
ld.shared.f32 %f29, [%rd6+512];
|
||
|
mad.f32 %f30, %f28, %f29, %f27;
|
||
|
ld.shared.f32 %f31, [%rd8+36];
|
||
|
ld.shared.f32 %f32, [%rd6+576];
|
||
|
mad.f32 %f33, %f31, %f32, %f30;
|
||
|
ld.shared.f32 %f34, [%rd8+40];
|
||
|
ld.shared.f32 %f35, [%rd6+640];
|
||
|
mad.f32 %f36, %f34, %f35, %f33;
|
||
|
ld.shared.f32 %f37, [%rd8+44];
|
||
|
ld.shared.f32 %f38, [%rd6+704];
|
||
|
mad.f32 %f39, %f37, %f38, %f36;
|
||
|
ld.shared.f32 %f40, [%rd8+48];
|
||
|
ld.shared.f32 %f41, [%rd6+768];
|
||
|
mad.f32 %f42, %f40, %f41, %f39;
|
||
|
ld.shared.f32 %f43, [%rd8+52];
|
||
|
ld.shared.f32 %f44, [%rd6+832];
|
||
|
mad.f32 %f45, %f43, %f44, %f42;
|
||
|
ld.shared.f32 %f46, [%rd8+56];
|
||
|
ld.shared.f32 %f47, [%rd6+896];
|
||
|
mad.f32 %f48, %f46, %f47, %f45;
|
||
|
ld.shared.f32 %f49, [%rd8+60];
|
||
|
ld.shared.f32 %f50, [%rd6+960];
|
||
|
mad.f32 %f1, %f49, %f50, %f48;
|
||
|
.loc 16 97 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 66 0
|
||
|
add.u64 %rd19, %rd13, %rd19;
|
||
|
add.s32 %r21, %r21, 16;
|
||
|
add.u64 %rd23, %rd23, 64;
|
||
|
setp.le.s32 %p2, %r21, %r24;
|
||
|
@%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 %r18, %r10, %r11;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
$Lt_0_2306:
|
||
|
.loc 16 103 0
|
||
|
ld.param.u64 %rd24, [__cudaparm_matrixMul_bs16_32bit_C];
|
||
|
mul.lo.s32 %r28, %r11, %r3;
|
||
|
add.s32 %r29, %r1, %r28;
|
||
|
mul.lo.s32 %r30, %r29, 16;
|
||
|
add.s32 %r31, %r18, %r30;
|
||
|
add.s32 %r32, %r9, %r31;
|
||
|
cvt.s64.s32 %rd25, %r32;
|
||
|
mul.wide.s32 %rd26, %r32, 4;
|
||
|
add.u64 %rd27, %rd24, %rd26;
|
||
|
st.global.f32 [%rd27+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 .u64 __cudaparm_matrixMul_bs16_64bit_C,
|
||
|
.param .u64 __cudaparm_matrixMul_bs16_64bit_A,
|
||
|
.param .u64 __cudaparm_matrixMul_bs16_64bit_B,
|
||
|
.param .u64 __cudaparm_matrixMul_bs16_64bit_wA,
|
||
|
.param .u64 __cudaparm_matrixMul_bs16_64bit_wB)
|
||
|
{
|
||
|
.reg .u64 %rd<53>;
|
||
|
.reg .f32 %f<52>;
|
||
|
.reg .pred %p<4>;
|
||
|
.loc 16 111 0
|
||
|
$LDWbegin_matrixMul_bs16_64bit:
|
||
|
.loc 16 66 0
|
||
|
cvt.u64.u16 %rd1, %ctaid.x;
|
||
|
mul.lo.u64 %rd2, %rd1, 16;
|
||
|
cvt.u64.u16 %rd3, %ctaid.y;
|
||
|
ld.param.u64 %rd4, [__cudaparm_matrixMul_bs16_64bit_wA];
|
||
|
mul.lo.u64 %rd5, %rd3, %rd4;
|
||
|
mul.lo.u64 %rd6, %rd5, 16;
|
||
|
mov.s64 %rd7, %rd6;
|
||
|
add.u64 %rd8, %rd6, %rd4;
|
||
|
sub.u64 %rd9, %rd8, 1;
|
||
|
cvt.u64.u16 %rd10, %tid.x;
|
||
|
cvt.u64.u16 %rd11, %tid.y;
|
||
|
ld.param.u64 %rd12, [__cudaparm_matrixMul_bs16_64bit_wB];
|
||
|
setp.lt.u64 %p1, %rd9, %rd6;
|
||
|
@%p1 bra $Lt_1_3330;
|
||
|
mov.u64 %rd13, __cuda_local_var_87386_38_non_const_Bs__5;
|
||
|
mov.u64 %rd14, __cuda_local_var_87382_38_non_const_As__4;
|
||
|
ld.param.u64 %rd4, [__cudaparm_matrixMul_bs16_64bit_wA];
|
||
|
add.u64 %rd15, %rd4, 15;
|
||
|
shr.s64 %rd16, %rd15, 63;
|
||
|
mov.s64 %rd17, 15;
|
||
|
and.b64 %rd18, %rd16, %rd17;
|
||
|
add.s64 %rd19, %rd18, %rd15;
|
||
|
shr.s64 %rd20, %rd19, 4;
|
||
|
ld.param.u64 %rd12, [__cudaparm_matrixMul_bs16_64bit_wB];
|
||
|
mul.lo.u64 %rd21, %rd11, %rd12;
|
||
|
mul.lo.u64 %rd22, %rd11, 64;
|
||
|
add.u64 %rd23, %rd14, %rd22;
|
||
|
mul.lo.u64 %rd24, %rd10, 4;
|
||
|
add.u64 %rd25, %rd13, %rd24;
|
||
|
mul.lo.u64 %rd26, %rd11, 16;
|
||
|
add.u64 %rd27, %rd10, %rd26;
|
||
|
mul.lo.u64 %rd28, %rd27, 4;
|
||
|
mul.lo.u64 %rd29, %rd12, 64;
|
||
|
add.u64 %rd30, %rd28, %rd14;
|
||
|
add.u64 %rd31, %rd28, %rd13;
|
||
|
ld.param.u64 %rd32, [__cudaparm_matrixMul_bs16_64bit_B];
|
||
|
add.u64 %rd33, %rd21, %rd2;
|
||
|
add.u64 %rd34, %rd10, %rd33;
|
||
|
mul.lo.u64 %rd35, %rd34, 4;
|
||
|
add.u64 %rd36, %rd32, %rd35;
|
||
|
ld.param.u64 %rd37, [__cudaparm_matrixMul_bs16_64bit_A];
|
||
|
mul.lo.u64 %rd38, %rd11, %rd4;
|
||
|
add.u64 %rd39, %rd6, %rd38;
|
||
|
add.u64 %rd40, %rd10, %rd39;
|
||
|
mul.lo.u64 %rd41, %rd40, 4;
|
||
|
add.u64 %rd42, %rd37, %rd41;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
mov.s64 %rd43, %rd20;
|
||
|
$Lt_1_2818:
|
||
|
//<loop> Loop body line 66, nesting depth: 1, estimated iterations: unknown
|
||
|
.loc 16 81 0
|
||
|
ld.global.f32 %f2, [%rd42+0];
|
||
|
st.shared.f32 [%rd30+0], %f2;
|
||
|
.loc 16 82 0
|
||
|
ld.global.f32 %f3, [%rd36+0];
|
||
|
st.shared.f32 [%rd31+0], %f3;
|
||
|
.loc 16 85 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 92 0
|
||
|
ld.shared.f32 %f4, [%rd23+0];
|
||
|
ld.shared.f32 %f5, [%rd25+0];
|
||
|
mad.f32 %f6, %f4, %f5, %f1;
|
||
|
ld.shared.f32 %f7, [%rd23+4];
|
||
|
ld.shared.f32 %f8, [%rd25+64];
|
||
|
mad.f32 %f9, %f7, %f8, %f6;
|
||
|
ld.shared.f32 %f10, [%rd23+8];
|
||
|
ld.shared.f32 %f11, [%rd25+128];
|
||
|
mad.f32 %f12, %f10, %f11, %f9;
|
||
|
ld.shared.f32 %f13, [%rd23+12];
|
||
|
ld.shared.f32 %f14, [%rd25+192];
|
||
|
mad.f32 %f15, %f13, %f14, %f12;
|
||
|
ld.shared.f32 %f16, [%rd23+16];
|
||
|
ld.shared.f32 %f17, [%rd25+256];
|
||
|
mad.f32 %f18, %f16, %f17, %f15;
|
||
|
ld.shared.f32 %f19, [%rd23+20];
|
||
|
ld.shared.f32 %f20, [%rd25+320];
|
||
|
mad.f32 %f21, %f19, %f20, %f18;
|
||
|
ld.shared.f32 %f22, [%rd23+24];
|
||
|
ld.shared.f32 %f23, [%rd25+384];
|
||
|
mad.f32 %f24, %f22, %f23, %f21;
|
||
|
ld.shared.f32 %f25, [%rd23+28];
|
||
|
ld.shared.f32 %f26, [%rd25+448];
|
||
|
mad.f32 %f27, %f25, %f26, %f24;
|
||
|
ld.shared.f32 %f28, [%rd23+32];
|
||
|
ld.shared.f32 %f29, [%rd25+512];
|
||
|
mad.f32 %f30, %f28, %f29, %f27;
|
||
|
ld.shared.f32 %f31, [%rd23+36];
|
||
|
ld.shared.f32 %f32, [%rd25+576];
|
||
|
mad.f32 %f33, %f31, %f32, %f30;
|
||
|
ld.shared.f32 %f34, [%rd23+40];
|
||
|
ld.shared.f32 %f35, [%rd25+640];
|
||
|
mad.f32 %f36, %f34, %f35, %f33;
|
||
|
ld.shared.f32 %f37, [%rd23+44];
|
||
|
ld.shared.f32 %f38, [%rd25+704];
|
||
|
mad.f32 %f39, %f37, %f38, %f36;
|
||
|
ld.shared.f32 %f40, [%rd23+48];
|
||
|
ld.shared.f32 %f41, [%rd25+768];
|
||
|
mad.f32 %f42, %f40, %f41, %f39;
|
||
|
ld.shared.f32 %f43, [%rd23+52];
|
||
|
ld.shared.f32 %f44, [%rd25+832];
|
||
|
mad.f32 %f45, %f43, %f44, %f42;
|
||
|
ld.shared.f32 %f46, [%rd23+56];
|
||
|
ld.shared.f32 %f47, [%rd25+896];
|
||
|
mad.f32 %f48, %f46, %f47, %f45;
|
||
|
ld.shared.f32 %f49, [%rd23+60];
|
||
|
ld.shared.f32 %f50, [%rd25+960];
|
||
|
mad.f32 %f1, %f49, %f50, %f48;
|
||
|
.loc 16 97 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 66 0
|
||
|
add.u64 %rd36, %rd29, %rd36;
|
||
|
add.u64 %rd7, %rd7, 16;
|
||
|
add.u64 %rd42, %rd42, 64;
|
||
|
setp.ge.u64 %p2, %rd9, %rd7;
|
||
|
@%p2 bra $Lt_1_2818;
|
||
|
bra.uni $Lt_1_2306;
|
||
|
$Lt_1_3330:
|
||
|
ld.param.u64 %rd12, [__cudaparm_matrixMul_bs16_64bit_wB];
|
||
|
mul.lo.u64 %rd21, %rd11, %rd12;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
$Lt_1_2306:
|
||
|
.loc 16 103 0
|
||
|
ld.param.u64 %rd44, [__cudaparm_matrixMul_bs16_64bit_C];
|
||
|
mul.lo.u64 %rd45, %rd12, %rd3;
|
||
|
add.u64 %rd46, %rd1, %rd45;
|
||
|
mul.lo.u64 %rd47, %rd46, 16;
|
||
|
add.u64 %rd48, %rd21, %rd47;
|
||
|
add.u64 %rd49, %rd10, %rd48;
|
||
|
mul.lo.u64 %rd50, %rd49, 4;
|
||
|
add.u64 %rd51, %rd44, %rd50;
|
||
|
st.global.f32 [%rd51+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 .u64 __cudaparm_matrixMul_bs32_32bit_C,
|
||
|
.param .u64 __cudaparm_matrixMul_bs32_32bit_A,
|
||
|
.param .u64 __cudaparm_matrixMul_bs32_32bit_B,
|
||
|
.param .s32 __cudaparm_matrixMul_bs32_32bit_wA,
|
||
|
.param .s32 __cudaparm_matrixMul_bs32_32bit_wB)
|
||
|
{
|
||
|
.reg .u32 %r<34>;
|
||
|
.reg .u64 %rd<29>;
|
||
|
.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.u64 %rd1, __cuda_local_var_87386_38_non_const_Bs__3;
|
||
|
mov.u64 %rd2, __cuda_local_var_87382_38_non_const_As__2;
|
||
|
ld.param.s32 %r4, [__cudaparm_matrixMul_bs32_32bit_wA];
|
||
|
add.s32 %r12, %r4, 31;
|
||
|
shr.s32 %r13, %r12, 31;
|
||
|
mov.s32 %r14, 31;
|
||
|
and.b32 %r15, %r13, %r14;
|
||
|
add.s32 %r16, %r15, %r12;
|
||
|
shr.s32 %r17, %r16, 5;
|
||
|
ld.param.s32 %r11, [__cudaparm_matrixMul_bs32_32bit_wB];
|
||
|
mul.lo.s32 %r18, %r10, %r11;
|
||
|
mul.lo.s32 %r19, %r10, %r4;
|
||
|
cvt.s64.s32 %rd3, %r9;
|
||
|
cvt.s64.s32 %rd4, %r10;
|
||
|
add.s32 %r20, %r19, %r6;
|
||
|
add.s32 %r21, %r9, %r20;
|
||
|
mul.wide.s32 %rd5, %r9, 4;
|
||
|
add.u64 %rd6, %rd1, %rd5;
|
||
|
mul.wide.s32 %rd7, %r10, 128;
|
||
|
add.u64 %rd8, %rd2, %rd7;
|
||
|
mul.wide.s32 %rd9, %r10, 32;
|
||
|
add.u64 %rd10, %rd3, %rd9;
|
||
|
mul.lo.u64 %rd11, %rd10, 4;
|
||
|
add.s32 %r22, %r19, %r8;
|
||
|
mul.lo.s32 %r23, %r11, 32;
|
||
|
cvt.s64.s32 %rd12, %r23;
|
||
|
mul.wide.s32 %rd13, %r23, 4;
|
||
|
add.u64 %rd14, %rd11, %rd2;
|
||
|
add.u64 %rd15, %rd11, %rd1;
|
||
|
add.s32 %r24, %r22, %r9;
|
||
|
ld.param.u64 %rd16, [__cudaparm_matrixMul_bs32_32bit_B];
|
||
|
add.s32 %r25, %r18, %r2;
|
||
|
add.s32 %r26, %r9, %r25;
|
||
|
cvt.s64.s32 %rd17, %r26;
|
||
|
mul.wide.s32 %rd18, %r26, 4;
|
||
|
add.u64 %rd19, %rd16, %rd18;
|
||
|
ld.param.u64 %rd20, [__cudaparm_matrixMul_bs32_32bit_A];
|
||
|
cvt.s64.s32 %rd21, %r21;
|
||
|
mul.wide.s32 %rd22, %r21, 4;
|
||
|
add.u64 %rd23, %rd20, %rd22;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
mov.s32 %r27, %r17;
|
||
|
$Lt_2_2818:
|
||
|
//<loop> Loop body line 66, nesting depth: 1, estimated iterations: unknown
|
||
|
.loc 16 81 0
|
||
|
ld.global.f32 %f2, [%rd23+0];
|
||
|
st.shared.f32 [%rd14+0], %f2;
|
||
|
.loc 16 82 0
|
||
|
ld.global.f32 %f3, [%rd19+0];
|
||
|
st.shared.f32 [%rd15+0], %f3;
|
||
|
.loc 16 85 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 92 0
|
||
|
ld.shared.f32 %f4, [%rd8+0];
|
||
|
ld.shared.f32 %f5, [%rd6+0];
|
||
|
mad.f32 %f6, %f4, %f5, %f1;
|
||
|
ld.shared.f32 %f7, [%rd8+4];
|
||
|
ld.shared.f32 %f8, [%rd6+128];
|
||
|
mad.f32 %f9, %f7, %f8, %f6;
|
||
|
ld.shared.f32 %f10, [%rd8+8];
|
||
|
ld.shared.f32 %f11, [%rd6+256];
|
||
|
mad.f32 %f12, %f10, %f11, %f9;
|
||
|
ld.shared.f32 %f13, [%rd8+12];
|
||
|
ld.shared.f32 %f14, [%rd6+384];
|
||
|
mad.f32 %f15, %f13, %f14, %f12;
|
||
|
ld.shared.f32 %f16, [%rd8+16];
|
||
|
ld.shared.f32 %f17, [%rd6+512];
|
||
|
mad.f32 %f18, %f16, %f17, %f15;
|
||
|
ld.shared.f32 %f19, [%rd8+20];
|
||
|
ld.shared.f32 %f20, [%rd6+640];
|
||
|
mad.f32 %f21, %f19, %f20, %f18;
|
||
|
ld.shared.f32 %f22, [%rd8+24];
|
||
|
ld.shared.f32 %f23, [%rd6+768];
|
||
|
mad.f32 %f24, %f22, %f23, %f21;
|
||
|
ld.shared.f32 %f25, [%rd8+28];
|
||
|
ld.shared.f32 %f26, [%rd6+896];
|
||
|
mad.f32 %f27, %f25, %f26, %f24;
|
||
|
ld.shared.f32 %f28, [%rd8+32];
|
||
|
ld.shared.f32 %f29, [%rd6+1024];
|
||
|
mad.f32 %f30, %f28, %f29, %f27;
|
||
|
ld.shared.f32 %f31, [%rd8+36];
|
||
|
ld.shared.f32 %f32, [%rd6+1152];
|
||
|
mad.f32 %f33, %f31, %f32, %f30;
|
||
|
ld.shared.f32 %f34, [%rd8+40];
|
||
|
ld.shared.f32 %f35, [%rd6+1280];
|
||
|
mad.f32 %f36, %f34, %f35, %f33;
|
||
|
ld.shared.f32 %f37, [%rd8+44];
|
||
|
ld.shared.f32 %f38, [%rd6+1408];
|
||
|
mad.f32 %f39, %f37, %f38, %f36;
|
||
|
ld.shared.f32 %f40, [%rd8+48];
|
||
|
ld.shared.f32 %f41, [%rd6+1536];
|
||
|
mad.f32 %f42, %f40, %f41, %f39;
|
||
|
ld.shared.f32 %f43, [%rd8+52];
|
||
|
ld.shared.f32 %f44, [%rd6+1664];
|
||
|
mad.f32 %f45, %f43, %f44, %f42;
|
||
|
ld.shared.f32 %f46, [%rd8+56];
|
||
|
ld.shared.f32 %f47, [%rd6+1792];
|
||
|
mad.f32 %f48, %f46, %f47, %f45;
|
||
|
ld.shared.f32 %f49, [%rd8+60];
|
||
|
ld.shared.f32 %f50, [%rd6+1920];
|
||
|
mad.f32 %f51, %f49, %f50, %f48;
|
||
|
ld.shared.f32 %f52, [%rd8+64];
|
||
|
ld.shared.f32 %f53, [%rd6+2048];
|
||
|
mad.f32 %f54, %f52, %f53, %f51;
|
||
|
ld.shared.f32 %f55, [%rd8+68];
|
||
|
ld.shared.f32 %f56, [%rd6+2176];
|
||
|
mad.f32 %f57, %f55, %f56, %f54;
|
||
|
ld.shared.f32 %f58, [%rd8+72];
|
||
|
ld.shared.f32 %f59, [%rd6+2304];
|
||
|
mad.f32 %f60, %f58, %f59, %f57;
|
||
|
ld.shared.f32 %f61, [%rd8+76];
|
||
|
ld.shared.f32 %f62, [%rd6+2432];
|
||
|
mad.f32 %f63, %f61, %f62, %f60;
|
||
|
ld.shared.f32 %f64, [%rd8+80];
|
||
|
ld.shared.f32 %f65, [%rd6+2560];
|
||
|
mad.f32 %f66, %f64, %f65, %f63;
|
||
|
ld.shared.f32 %f67, [%rd8+84];
|
||
|
ld.shared.f32 %f68, [%rd6+2688];
|
||
|
mad.f32 %f69, %f67, %f68, %f66;
|
||
|
ld.shared.f32 %f70, [%rd8+88];
|
||
|
ld.shared.f32 %f71, [%rd6+2816];
|
||
|
mad.f32 %f72, %f70, %f71, %f69;
|
||
|
ld.shared.f32 %f73, [%rd8+92];
|
||
|
ld.shared.f32 %f74, [%rd6+2944];
|
||
|
mad.f32 %f75, %f73, %f74, %f72;
|
||
|
ld.shared.f32 %f76, [%rd8+96];
|
||
|
ld.shared.f32 %f77, [%rd6+3072];
|
||
|
mad.f32 %f78, %f76, %f77, %f75;
|
||
|
ld.shared.f32 %f79, [%rd8+100];
|
||
|
ld.shared.f32 %f80, [%rd6+3200];
|
||
|
mad.f32 %f81, %f79, %f80, %f78;
|
||
|
ld.shared.f32 %f82, [%rd8+104];
|
||
|
ld.shared.f32 %f83, [%rd6+3328];
|
||
|
mad.f32 %f84, %f82, %f83, %f81;
|
||
|
ld.shared.f32 %f85, [%rd8+108];
|
||
|
ld.shared.f32 %f86, [%rd6+3456];
|
||
|
mad.f32 %f87, %f85, %f86, %f84;
|
||
|
ld.shared.f32 %f88, [%rd8+112];
|
||
|
ld.shared.f32 %f89, [%rd6+3584];
|
||
|
mad.f32 %f90, %f88, %f89, %f87;
|
||
|
ld.shared.f32 %f91, [%rd8+116];
|
||
|
ld.shared.f32 %f92, [%rd6+3712];
|
||
|
mad.f32 %f93, %f91, %f92, %f90;
|
||
|
ld.shared.f32 %f94, [%rd8+120];
|
||
|
ld.shared.f32 %f95, [%rd6+3840];
|
||
|
mad.f32 %f96, %f94, %f95, %f93;
|
||
|
ld.shared.f32 %f97, [%rd8+124];
|
||
|
ld.shared.f32 %f98, [%rd6+3968];
|
||
|
mad.f32 %f1, %f97, %f98, %f96;
|
||
|
.loc 16 97 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 66 0
|
||
|
add.u64 %rd19, %rd13, %rd19;
|
||
|
add.s32 %r21, %r21, 32;
|
||
|
add.u64 %rd23, %rd23, 128;
|
||
|
setp.le.s32 %p2, %r21, %r24;
|
||
|
@%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 %r18, %r10, %r11;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
$Lt_2_2306:
|
||
|
.loc 16 103 0
|
||
|
ld.param.u64 %rd24, [__cudaparm_matrixMul_bs32_32bit_C];
|
||
|
mul.lo.s32 %r28, %r11, %r3;
|
||
|
add.s32 %r29, %r1, %r28;
|
||
|
mul.lo.s32 %r30, %r29, 32;
|
||
|
add.s32 %r31, %r18, %r30;
|
||
|
add.s32 %r32, %r9, %r31;
|
||
|
cvt.s64.s32 %rd25, %r32;
|
||
|
mul.wide.s32 %rd26, %r32, 4;
|
||
|
add.u64 %rd27, %rd24, %rd26;
|
||
|
st.global.f32 [%rd27+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 .u64 __cudaparm_matrixMul_bs32_64bit_C,
|
||
|
.param .u64 __cudaparm_matrixMul_bs32_64bit_A,
|
||
|
.param .u64 __cudaparm_matrixMul_bs32_64bit_B,
|
||
|
.param .u64 __cudaparm_matrixMul_bs32_64bit_wA,
|
||
|
.param .u64 __cudaparm_matrixMul_bs32_64bit_wB)
|
||
|
{
|
||
|
.reg .u64 %rd<53>;
|
||
|
.reg .f32 %f<100>;
|
||
|
.reg .pred %p<4>;
|
||
|
.loc 16 119 0
|
||
|
$LDWbegin_matrixMul_bs32_64bit:
|
||
|
.loc 16 66 0
|
||
|
cvt.u64.u16 %rd1, %ctaid.x;
|
||
|
mul.lo.u64 %rd2, %rd1, 32;
|
||
|
cvt.u64.u16 %rd3, %ctaid.y;
|
||
|
ld.param.u64 %rd4, [__cudaparm_matrixMul_bs32_64bit_wA];
|
||
|
mul.lo.u64 %rd5, %rd3, %rd4;
|
||
|
mul.lo.u64 %rd6, %rd5, 32;
|
||
|
mov.s64 %rd7, %rd6;
|
||
|
add.u64 %rd8, %rd6, %rd4;
|
||
|
sub.u64 %rd9, %rd8, 1;
|
||
|
cvt.u64.u16 %rd10, %tid.x;
|
||
|
cvt.u64.u16 %rd11, %tid.y;
|
||
|
ld.param.u64 %rd12, [__cudaparm_matrixMul_bs32_64bit_wB];
|
||
|
setp.lt.u64 %p1, %rd9, %rd6;
|
||
|
@%p1 bra $Lt_3_3330;
|
||
|
mov.u64 %rd13, __cuda_local_var_87386_38_non_const_Bs__1;
|
||
|
mov.u64 %rd14, __cuda_local_var_87382_38_non_const_As__0;
|
||
|
ld.param.u64 %rd4, [__cudaparm_matrixMul_bs32_64bit_wA];
|
||
|
add.u64 %rd15, %rd4, 31;
|
||
|
shr.s64 %rd16, %rd15, 63;
|
||
|
mov.s64 %rd17, 31;
|
||
|
and.b64 %rd18, %rd16, %rd17;
|
||
|
add.s64 %rd19, %rd18, %rd15;
|
||
|
shr.s64 %rd20, %rd19, 5;
|
||
|
ld.param.u64 %rd12, [__cudaparm_matrixMul_bs32_64bit_wB];
|
||
|
mul.lo.u64 %rd21, %rd11, %rd12;
|
||
|
mul.lo.u64 %rd22, %rd11, 128;
|
||
|
add.u64 %rd23, %rd14, %rd22;
|
||
|
mul.lo.u64 %rd24, %rd10, 4;
|
||
|
add.u64 %rd25, %rd13, %rd24;
|
||
|
mul.lo.u64 %rd26, %rd11, 32;
|
||
|
add.u64 %rd27, %rd10, %rd26;
|
||
|
mul.lo.u64 %rd28, %rd27, 4;
|
||
|
mul.lo.u64 %rd29, %rd12, 128;
|
||
|
add.u64 %rd30, %rd28, %rd14;
|
||
|
add.u64 %rd31, %rd28, %rd13;
|
||
|
ld.param.u64 %rd32, [__cudaparm_matrixMul_bs32_64bit_B];
|
||
|
add.u64 %rd33, %rd21, %rd2;
|
||
|
add.u64 %rd34, %rd10, %rd33;
|
||
|
mul.lo.u64 %rd35, %rd34, 4;
|
||
|
add.u64 %rd36, %rd32, %rd35;
|
||
|
ld.param.u64 %rd37, [__cudaparm_matrixMul_bs32_64bit_A];
|
||
|
mul.lo.u64 %rd38, %rd11, %rd4;
|
||
|
add.u64 %rd39, %rd6, %rd38;
|
||
|
add.u64 %rd40, %rd10, %rd39;
|
||
|
mul.lo.u64 %rd41, %rd40, 4;
|
||
|
add.u64 %rd42, %rd37, %rd41;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
mov.s64 %rd43, %rd20;
|
||
|
$Lt_3_2818:
|
||
|
//<loop> Loop body line 66, nesting depth: 1, estimated iterations: unknown
|
||
|
.loc 16 81 0
|
||
|
ld.global.f32 %f2, [%rd42+0];
|
||
|
st.shared.f32 [%rd30+0], %f2;
|
||
|
.loc 16 82 0
|
||
|
ld.global.f32 %f3, [%rd36+0];
|
||
|
st.shared.f32 [%rd31+0], %f3;
|
||
|
.loc 16 85 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 92 0
|
||
|
ld.shared.f32 %f4, [%rd23+0];
|
||
|
ld.shared.f32 %f5, [%rd25+0];
|
||
|
mad.f32 %f6, %f4, %f5, %f1;
|
||
|
ld.shared.f32 %f7, [%rd23+4];
|
||
|
ld.shared.f32 %f8, [%rd25+128];
|
||
|
mad.f32 %f9, %f7, %f8, %f6;
|
||
|
ld.shared.f32 %f10, [%rd23+8];
|
||
|
ld.shared.f32 %f11, [%rd25+256];
|
||
|
mad.f32 %f12, %f10, %f11, %f9;
|
||
|
ld.shared.f32 %f13, [%rd23+12];
|
||
|
ld.shared.f32 %f14, [%rd25+384];
|
||
|
mad.f32 %f15, %f13, %f14, %f12;
|
||
|
ld.shared.f32 %f16, [%rd23+16];
|
||
|
ld.shared.f32 %f17, [%rd25+512];
|
||
|
mad.f32 %f18, %f16, %f17, %f15;
|
||
|
ld.shared.f32 %f19, [%rd23+20];
|
||
|
ld.shared.f32 %f20, [%rd25+640];
|
||
|
mad.f32 %f21, %f19, %f20, %f18;
|
||
|
ld.shared.f32 %f22, [%rd23+24];
|
||
|
ld.shared.f32 %f23, [%rd25+768];
|
||
|
mad.f32 %f24, %f22, %f23, %f21;
|
||
|
ld.shared.f32 %f25, [%rd23+28];
|
||
|
ld.shared.f32 %f26, [%rd25+896];
|
||
|
mad.f32 %f27, %f25, %f26, %f24;
|
||
|
ld.shared.f32 %f28, [%rd23+32];
|
||
|
ld.shared.f32 %f29, [%rd25+1024];
|
||
|
mad.f32 %f30, %f28, %f29, %f27;
|
||
|
ld.shared.f32 %f31, [%rd23+36];
|
||
|
ld.shared.f32 %f32, [%rd25+1152];
|
||
|
mad.f32 %f33, %f31, %f32, %f30;
|
||
|
ld.shared.f32 %f34, [%rd23+40];
|
||
|
ld.shared.f32 %f35, [%rd25+1280];
|
||
|
mad.f32 %f36, %f34, %f35, %f33;
|
||
|
ld.shared.f32 %f37, [%rd23+44];
|
||
|
ld.shared.f32 %f38, [%rd25+1408];
|
||
|
mad.f32 %f39, %f37, %f38, %f36;
|
||
|
ld.shared.f32 %f40, [%rd23+48];
|
||
|
ld.shared.f32 %f41, [%rd25+1536];
|
||
|
mad.f32 %f42, %f40, %f41, %f39;
|
||
|
ld.shared.f32 %f43, [%rd23+52];
|
||
|
ld.shared.f32 %f44, [%rd25+1664];
|
||
|
mad.f32 %f45, %f43, %f44, %f42;
|
||
|
ld.shared.f32 %f46, [%rd23+56];
|
||
|
ld.shared.f32 %f47, [%rd25+1792];
|
||
|
mad.f32 %f48, %f46, %f47, %f45;
|
||
|
ld.shared.f32 %f49, [%rd23+60];
|
||
|
ld.shared.f32 %f50, [%rd25+1920];
|
||
|
mad.f32 %f51, %f49, %f50, %f48;
|
||
|
ld.shared.f32 %f52, [%rd23+64];
|
||
|
ld.shared.f32 %f53, [%rd25+2048];
|
||
|
mad.f32 %f54, %f52, %f53, %f51;
|
||
|
ld.shared.f32 %f55, [%rd23+68];
|
||
|
ld.shared.f32 %f56, [%rd25+2176];
|
||
|
mad.f32 %f57, %f55, %f56, %f54;
|
||
|
ld.shared.f32 %f58, [%rd23+72];
|
||
|
ld.shared.f32 %f59, [%rd25+2304];
|
||
|
mad.f32 %f60, %f58, %f59, %f57;
|
||
|
ld.shared.f32 %f61, [%rd23+76];
|
||
|
ld.shared.f32 %f62, [%rd25+2432];
|
||
|
mad.f32 %f63, %f61, %f62, %f60;
|
||
|
ld.shared.f32 %f64, [%rd23+80];
|
||
|
ld.shared.f32 %f65, [%rd25+2560];
|
||
|
mad.f32 %f66, %f64, %f65, %f63;
|
||
|
ld.shared.f32 %f67, [%rd23+84];
|
||
|
ld.shared.f32 %f68, [%rd25+2688];
|
||
|
mad.f32 %f69, %f67, %f68, %f66;
|
||
|
ld.shared.f32 %f70, [%rd23+88];
|
||
|
ld.shared.f32 %f71, [%rd25+2816];
|
||
|
mad.f32 %f72, %f70, %f71, %f69;
|
||
|
ld.shared.f32 %f73, [%rd23+92];
|
||
|
ld.shared.f32 %f74, [%rd25+2944];
|
||
|
mad.f32 %f75, %f73, %f74, %f72;
|
||
|
ld.shared.f32 %f76, [%rd23+96];
|
||
|
ld.shared.f32 %f77, [%rd25+3072];
|
||
|
mad.f32 %f78, %f76, %f77, %f75;
|
||
|
ld.shared.f32 %f79, [%rd23+100];
|
||
|
ld.shared.f32 %f80, [%rd25+3200];
|
||
|
mad.f32 %f81, %f79, %f80, %f78;
|
||
|
ld.shared.f32 %f82, [%rd23+104];
|
||
|
ld.shared.f32 %f83, [%rd25+3328];
|
||
|
mad.f32 %f84, %f82, %f83, %f81;
|
||
|
ld.shared.f32 %f85, [%rd23+108];
|
||
|
ld.shared.f32 %f86, [%rd25+3456];
|
||
|
mad.f32 %f87, %f85, %f86, %f84;
|
||
|
ld.shared.f32 %f88, [%rd23+112];
|
||
|
ld.shared.f32 %f89, [%rd25+3584];
|
||
|
mad.f32 %f90, %f88, %f89, %f87;
|
||
|
ld.shared.f32 %f91, [%rd23+116];
|
||
|
ld.shared.f32 %f92, [%rd25+3712];
|
||
|
mad.f32 %f93, %f91, %f92, %f90;
|
||
|
ld.shared.f32 %f94, [%rd23+120];
|
||
|
ld.shared.f32 %f95, [%rd25+3840];
|
||
|
mad.f32 %f96, %f94, %f95, %f93;
|
||
|
ld.shared.f32 %f97, [%rd23+124];
|
||
|
ld.shared.f32 %f98, [%rd25+3968];
|
||
|
mad.f32 %f1, %f97, %f98, %f96;
|
||
|
.loc 16 97 0
|
||
|
bar.sync 0;
|
||
|
.loc 16 66 0
|
||
|
add.u64 %rd36, %rd29, %rd36;
|
||
|
add.u64 %rd7, %rd7, 32;
|
||
|
add.u64 %rd42, %rd42, 128;
|
||
|
setp.ge.u64 %p2, %rd9, %rd7;
|
||
|
@%p2 bra $Lt_3_2818;
|
||
|
bra.uni $Lt_3_2306;
|
||
|
$Lt_3_3330:
|
||
|
ld.param.u64 %rd12, [__cudaparm_matrixMul_bs32_64bit_wB];
|
||
|
mul.lo.u64 %rd21, %rd11, %rd12;
|
||
|
mov.f32 %f1, 0f00000000; // 0
|
||
|
$Lt_3_2306:
|
||
|
.loc 16 103 0
|
||
|
ld.param.u64 %rd44, [__cudaparm_matrixMul_bs32_64bit_C];
|
||
|
mul.lo.u64 %rd45, %rd12, %rd3;
|
||
|
add.u64 %rd46, %rd1, %rd45;
|
||
|
mul.lo.u64 %rd47, %rd46, 32;
|
||
|
add.u64 %rd48, %rd21, %rd47;
|
||
|
add.u64 %rd49, %rd10, %rd48;
|
||
|
mul.lo.u64 %rd50, %rd49, 4;
|
||
|
add.u64 %rd51, %rd44, %rd50;
|
||
|
st.global.f32 [%rd51+0], %f1;
|
||
|
.loc 16 122 0
|
||
|
exit;
|
||
|
$LDWend_matrixMul_bs32_64bit:
|
||
|
} // matrixMul_bs32_64bit
|
||
|
|