2011-05-19 47 views
0

我的内核广泛使用寄存器。CUDA每个线程的最大寄存器数:sm_12 vs sm_20

编译1.2设备--ptxas-options=-v报告83个寄存器。当我试图为2.0编译时,只有63个寄存器在使用,其余的本地数据被放入本地内存。使用'--maxrregcount'的实验给出1.2个设备的每个线程124个寄存器的限制,以及2.0个设备的最少63个寄存器。

是否有可能将所有数据放入2.0架构的寄存器?

回答

2

不幸的是,计算能力2.x卡的每线程寄存器限制为每个线程63个寄存器。如果你有一个非常复杂的内核会占用大量的寄存器,那么就没有办法阻止本地内存溢出。