1

我写了一个 CUDA 库,是否有专门在某些库内核上设置寄存器上限,而不是在库中的所有内核上设置寄存器上限?

4

1 回答 1

2

在 C 代码级别没有。您可以使用__launch_bounds__关键字指定每个块的线程的预期上限,这可能会导致编译周期期间每个线程的寄存器上限。或者,如果您编译为 PTX,则可以将 引入.maxnreg内核序言。

CUDA 5 现在支持单独编译并具有设备代码链接器,因此还应该可以使用不同的编译器参数将内核编译为不同的设备对象文件,然后将它们链接到您的库对象中。

于 2013-08-06T07:58:32.950 回答