You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CUDA SM10架构下TEST_prog内核汇编代码相关技术问询

CUDA内核与PTX代码分析

原始CUDA内核代码

__global__ void TEST_prog(int *data_in1, int *data_in2, int *data_out) // employing IF functions
{
    unsigned int tid = (blockIdx.x * blockDim.x) + threadIdx.x;
    data_out[tid] = data_in1[tid] + data_in2[tid];
}

sm_10架构对应的PTX汇编代码

code for sm_10
    Function : _Z9TEST_progPiS_S_
.headerflags    @"EF_CUDA_SM10 EF_CUDA_PTX_SM(EF_CUDA_SM10)"

    /*0000*/        MOV.U16 R0H, g [0x1].U16;          /* 0x0023c78010004205 */
    /*0008*/        I2I.U32.U16 R1, R0L;               /* 0x04000780a0000005 */
    /*0010*/        IMAD.U16 R0, g [0x6].U16, R0H, R1; /* 0x0020478060014c01 */
    /*0018*/        SHL R2, R0, 0x2;                   /* 0xc410078030020009 */
    /*0020*/        IADD32 R0, g [0x4], R2;            /* 0x2102e800         */
    /*0024*/        IADD32 R3, g [0x6], R2;            /* 0x2102ec0c         */
    /*0028*/        GLD.U32 R1, global14[R0];          /* 0x80c00780d00e0005 */
    /*0030*/        GLD.U32 R0, global14[R3];          /* 0x80c00780d00e0601 */
    /*0038*/        IADD32 R1, R1, R0;                 /* 0x20008204         */
    /*003c*/        IADD32 R0, g [0x8], R2;            /* 0x2102f000         */
    /*0040*/        GST.U32 global14[R0], R1;          /* 0xa0c00781d00e0005 */
    ...................................

问题与解答

  • 问题1:g [0x1]中存储的是什么内容?
    g[0x1]存储的是当前线程所属线程块的索引blockIdx.x(16位数值),后续会用它参与计算线程全局索引tid。

  • 问题2:g[xx]为共享内存,其值何时被设置?
    这些共享内存中的值是在内核启动、线程块开始执行前,由CUDA硬件自动初始化设置的。包括线程/块索引、块维度等执行环境参数,以及内核参数,都会在硬件调度线程块时被加载到共享内存的固定位置。

  • 问题3:R0H是否为寄存器R0的高16位?
    是的。PTX汇编语法中,后缀H代表32位寄存器的高16位,L代表低16位,所以R0H就是寄存器R0的高16位部分。

  • 问题4:第二条指令读取R0L,但此前未对其赋值,这是为何?
    在SM10架构中,线程启动时硬件会自动把当前线程的threadIdx.x值加载到R0寄存器的低16位(R0L),属于硬件层面的默认行为,不需要显式指令赋值,因此可以直接读取使用。

  • 问题5:推测g [0x4]、g [0x6]、g [0x8]为内核参数,为何参数会被存放在共享内存中?
    早期SM10架构没有专门的参数寄存器传递内核参数,CUDA runtime会把内核参数复制到线程块的共享内存中。共享内存访问延迟远低于全局内存,线程块内所有线程都能快速读取这些参数,避免了每个线程单独从全局内存读取参数的性能开销。


内容的提问来源于stack exchange,提问作者user24077790

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 15:07:32