4

CUDA 新手,但有一些时间花在计算上,我在家里有 geforces,在办公室有 tesla(同一代)。

在家里,我在同一台计算机上安装了两个 gpus,一个是 GK110(计算能力 3.5),另一个是 GF110(计算能力 2.0),我更喜欢将 GK110 仅用于计算任务,将 GF110 用于显示,除非我告诉它这样做计算,有没有办法通过驱动程序设置来做到这一点,或者我仍然需要重写我的一些代码?

另外,如果我理解正确,如果GK110的显示端口没有连接,那么烦人的windows超时检测即使计算时间很长也不会尝试重置它?

顺便说一句,我的 CUDA 代码是使用 compute_35 和 compute20 编译的,因此代码可以在两个 GPU 上运行,但是我计划使用 GK110 独有的功能,因此将来的代码可能根本无法在 GF110 上运行,操作系统是windows 7。

4

1 回答 1

1

在 Windows 上使用 GeForce GTX Titan(或任何 GeForce 产品),我认为没有办法阻止 GPU 在 WDDM 模式下出现在系统中,这意味着 Windows 将在其上构建显示驱动程序堆栈,甚至如果该卡没有附加物理显示器。所以你可能会被windows TDR机制卡住。您可以尝试对其进行试验以确认这一点。(Windows TDR 行为可以通过注册表黑客来修改)。

关于将 CUDA 任务转向 GTX Titan,显示驱动程序控制面板应该有一个可选设置。它可能位于“管理 3D 设置”区域或其他区域,具体取决于您拥有的驱动程序。当您找到适当的设置区域时,将出现一个名为 CUDA - GPU 之类的选项,可能会设置为“全部”。如果您将“全局预设”选项更改为“基本配置文件”,您应该能够更改此 CUDA-GPU 设置。单击它应该为您选择“全部”或检测到的每个 GPU 的一组复选框。如果取消选中 GF110 设备并选中 GK110 设备,则应根据此复选框选择将未通过 cudaSetDevice() 选择特定 GPU 的 CUDA 程序引导到 GK110 设备。

除此之外,正如评论中提到的,使用编程方法,您始终可以查询设备属性,然后选择将自身报告为 cc3.5 设备的设备。

于 2013-03-02T23:48:27.427 回答