我正在研究 PTX,但我不明白.param和.local状态空间之间的区别。
.local是线程可见的变量并存储在它们的堆栈中(顺便说一下,线程内存)
.param是用于对象分配(如果按值传递)、函数参数和返回值以及输入参数的变量,它们也在堆栈上分配
在 PTX 手册上有:
在 PTX 中,可以使用 mov 指令将函数输入参数的地址移动到寄存器中。请注意,如果需要,参数将被复制到堆栈中,因此地址将在
.local状态空间中,并通过ld.local和st.local指令访问。
我不明白:.param如果.param==.local并且所有内容都已经在堆栈上,为什么要将 a 复制到堆栈中?