当我们使用xptxas检查寄存器使用情况时,我们会看到如下内容:
ptxas info : Used 63 registers, 244 bytes cmem[0], 51220 bytes cmem[2], 24 bytes cmem[14], 20 bytes cmem[16]
Run Code Online (Sandbox Code Playgroud)
我想知道目前是否有任何文件清楚地解释了cmem [x].将常数存储器分成多个存储体,总共有多少存储体,除了0,2,14,16之外的其他存储体用于什么?
作为旁注,@ njuffa(特别感谢你)之前在nvidia的论坛上解释过什么是0,2,14,16银行:
使用的常量存储器在常量程序"变量"(存储区1)中分区,加上编译器生成的常量(存储区14).
cmem [0]:内核参数
cmem [2]:用户定义的常量对象
cmem [16]:编译器生成的常量(其中一些可能对应源代码中的文字常量)