【发布时间】:2012-08-08 12:42:26
【问题描述】:
我的系统有 2 个 GPU; GeForce GTX560 和 GeForce 210(CUDA 工具包 4.1 和 nsight 2.1)。当我尝试运行 CUDA 调试时,我得到了这个:
那么,如何更改调试器使用的卡?
【问题讨论】:
-
您是否尝试过使用 cudaSetDevice() 来控制运行代码时使用的 GPU?
我的系统有 2 个 GPU; GeForce GTX560 和 GeForce 210(CUDA 工具包 4.1 和 nsight 2.1)。当我尝试运行 CUDA 调试时,我得到了这个:
那么,如何更改调试器使用的卡?
【问题讨论】:
这里有两个选项:
1) 在程序中添加对指定目标设备的支持。如果您添加命令行选项,您可以通过解决方案资源管理器项目节点上下文菜单在 Nexus 属性对话框中设置值。
2) 使用环境变量 CUDA_SET_VISIBLE_DEVICES=1,0 重新排序您的两个设备。 Nsight 2.1 不支持通过调试器指定环境变量,所以您必须在目标机器(可能不是您的本地机器)上执行以下步骤。
set CUDA_VISIBLE_DEVICES=1,0
Nsight.Monitor.exe
您也可以设置全局环境变量,但您必须确保重新启动 Nsight Monitor 以便它能够接收更改。这将影响所有 CUDA 程序,因此我建议您将更改限制为仅通过 Nsight Monitor 启动的程序。
【讨论】: