CUDA 13.2 samples update (#432)

- Added Python samples for CUDA Python 1.0 release
- Renamed top-level `Samples` directory to `cpp` to accommodate Python samples.
This commit is contained in:
Dheemanth
2026-05-13 15:13:18 -07:00
committed by GitHub
parent a4526d5229
commit aeab82ff30
2072 changed files with 15077 additions and 1970 deletions

View File

@@ -0,0 +1,12 @@
The auto-generated pair of files named matrixMul_ptxdump.c and
matrixMul_ptxdump.h can be acquired by treating matrixMul_kernel.ptx
as binary file and representing its contents as an array of chars.
An example of the script written in Python language that performs
such translation can be found in "extras" directory of the sample.
The matrixMul_kernel.ptx contains the same PTX code as the file in
"data" directory of matrixMulDrv sample after compilation by nvcc.
The command line for generation using Python script is as follows:
> python ptx2c.py matrixMul_kernel.ptx matrixMul

View File

@@ -0,0 +1,727 @@
.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

View File

@@ -0,0 +1,737 @@
.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

View File

@@ -0,0 +1,91 @@
#!/usr/bin/env python
from string import *
import os, getopt, sys, platform
g_Header = '''/* Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of NVIDIA CORPORATION nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
////////////////////////////////////////////////////////////////////////////////
// This file is auto-generated, do not edit
////////////////////////////////////////////////////////////////////////////////
'''
def Usage():
print("Usage: ptx2c.py in out")
print("Description: performs embedding in.cubin or in.ptx file into out.c and out.h files as character array")
sys.exit(0)
def FormatCharHex(d):
s = hex(ord(d))
if len(s) == 3:
s = "0x0" + s[2]
return s
args = sys.argv[1:]
if not(len(sys.argv[1:]) == 2):
Usage()
out_h = args[1] + "_ptxdump.h"
out_c = args[1] + "_ptxdump.c"
h_in = open(args[0], 'r')
source_bytes = h_in.read()
source_bytes_len = len(source_bytes)
h_out_c = open(out_c, 'w')
h_out_c.writelines(g_Header)
h_out_c.writelines("#include \"" + out_h + "\"\n\n")
h_out_c.writelines("unsigned char " + args[1] + "_ptxdump[" + str(source_bytes_len+1) + "] = {\n")
h_out_h = open(out_h, 'w')
macro_h = "__" + args[1] + "_ptxdump_h__"
h_out_h.writelines(g_Header)
h_out_h.writelines("#ifndef " + macro_h + "\n")
h_out_h.writelines("#define " + macro_h + "\n\n")
h_out_h.writelines('#if defined __cplusplus\nextern "C" {\n#endif\n\n')
h_out_h.writelines("extern unsigned char " + args[1] + "_ptxdump[" + str(source_bytes_len+1) + "];\n\n")
h_out_h.writelines("#if defined __cplusplus\n}\n#endif\n\n")
h_out_h.writelines("#endif //" + macro_h + "\n")
newlinecnt = 0
for i in range(0, source_bytes_len):
h_out_c.write(FormatCharHex(source_bytes[i]) + ", ")
newlinecnt += 1
if newlinecnt == 16:
newlinecnt = 0
h_out_c.write("\n")
h_out_c.write("0x00\n};\n")
h_in.close()
h_out_c.close()
h_out_h.close()
print("ptx2c: CUmodule " + args[0] + " packed successfully")