【发布时间】:2019-04-05 20:25:53
【问题描述】:
我有一个使用 -O 构建的 C++ Cuda 工具包 v9.2 应用程序,但如果我使用 -g -G 构建,我会在运行时收到 cuda 错误 7:
启动时请求的资源过多
我理解from here 这意味着:
已超出多处理器上可用的寄存器数量。减少每个块的线程数来解决问题。
我宁愿不减少每个块的线程数,因为它可以优化。我可以做些什么来让调试版本使用更少的寄存器,更符合优化?如何在我的应用程序中追踪额外寄存器使用的来源?
【问题讨论】:
-
调试版本可能需要比发布版本更多的寄存器。除了减小块大小之外没有其他解决方法
-
我有理由确信,调试版本也可能需要比默认可用更多的(线程)本地存储,因此您可能需要考虑增加配置的本地内存量。如果资源是寄存器(可能),@talonmies 的评论适用。
标签: cuda cpu-registers