【问题标题】:convert shared memory into register with Cuda使用 Cuda 将共享内存转换为寄存器 【发布时间】:2015-03-06 22:10:12 【问题描述】: 有没有办法将我不使用的共享内存转换为寄存器内存?使用 nvcc 编译时应该使用什么命令? 【问题讨论】: 标签: cuda nvcc 【解决方案1】: 不,提供共享内存的硬件资源不同于提供寄存器空间的硬件资源,共享内存硬件不能替代寄存器。 【讨论】: 所以如果我需要更多的寄存器空间,我不能只使用共享内存中的一些额外内存吗?没有办法做这样的事情吗? 不,没有。如果您根本不使用共享内存,或者很少使用共享内存,您可以告诉 GPU,它将允许将一些共享内存用作 L1。这涵盖了in the programming guide。但这不会影响寄存器的使用,较新的 CUDA 运行时包应该自动检测到这种情况,并将共享内存拆分转移到首选 L1。无法将共享内存重新用作寄存器空间。