如果kernel太大,会将原本可能放在寄存器的变量置换到显存的local memory中。
之前看到一篇paper说通过计算kernel变量和thread,block数计算出是否变量全部分配在寄存器上。有了这些信息就可以对kernel做优化。但可操作性不高。
还有什么通用的方法:
1)能够分析当前kernel中多少变量被置换到local memory?(profiler?PTX?)
如果kernel太大,会将原本可能放在寄存器的变量置换到显存的local memory中。
之前看到一篇paper说通过计算kernel变量和thread,block数计算出是否变量全部分配在寄存器上。有了这些信息就可以对kernel做优化。但可操作性不高。
还有什么通用的方法:
1)能够分析当前kernel中多少变量被置换到local memory?(profiler?PTX?)
编译的时候加–ptxas-options=-v选项即可