Cuda GTX 680、开普勒和每个线程的最大寄存器数

Cuda GTX 680、开普勒和每个线程的最大寄存器数,cuda,Cuda,当我感到困惑时,我提出以下问题 在各种网站和论文中,我发现有说法说开普勒体系结构增加了每个线程的寄存器数量,但在我的GTX680上,这似乎不是真的,因为RegsPerBlock是65536,所以对于1024个线程,它将是64个regs。我错过了什么?。。将来每个线程会有更多的寄存器吗 问候 丹尼尔开普勒体系结构有两种变体,sm_30和sm_35。GTX 680卡基于实现sm_30体系结构的GK104 GPU。该体系结构每个线程有64个寄存器,其中63个可用于用户代码,一个是专用的零寄存器。未来基

当我感到困惑时,我提出以下问题

在各种网站和论文中,我发现有说法说开普勒体系结构增加了每个线程的寄存器数量,但在我的GTX680上,这似乎不是真的,因为RegsPerBlock是65536,所以对于1024个线程,它将是64个regs。我错过了什么?。。将来每个线程会有更多的寄存器吗

问候
丹尼尔

开普勒体系结构有两种变体,sm_30和sm_35。GTX 680卡基于实现sm_30体系结构的GK104 GPU。该体系结构每个线程有64个寄存器,其中63个可用于用户代码,一个是专用的零寄存器。未来基于GK110的部件(如K20)实现了sm_35体系结构,该体系结构为每个线程提供256个寄存器,其中255个可用于用户代码(一个同样是专用零寄存器)

虽然是真的,但还需要注意的是,每个线程的最大寄存器数不一定相等(注册文件大小/每个块的最大线程数)。可能的情况是,对于较小的线程块,您只能使用每个线程的最大可能注册数

…事实上,CC 3.5开普勒卡和Maxwell 5.x和Pascal 6.0卡都是这样:寄存器文件有64个Ki寄存器;每个块的最大线程数是1024;但每个线程的最大寄存器数是255(+零寄存器)。只有每个块最多256个线程的网格,每个线程才有255个寄存器