我自己的显卡是geforce Gtx 460
nv的网站说可以两个显卡一个做cuda,另外一个输出,就可以突破n秒kernel运行时长的限制。
可是,我们不会设置。
跟SLI是一回事么?
俺们这里卖显卡的人只知道SLI可以玩游戏……他们都没听说过显卡还可以做通用计算,问他们也是白问。
所以求教程:安装和设置的步骤。
我自己的显卡是geforce Gtx 460
nv的网站说可以两个显卡一个做cuda,另外一个输出,就可以突破n秒kernel运行时长的限制。
可是,我们不会设置。
跟SLI是一回事么?
俺们这里卖显卡的人只知道SLI可以玩游戏……他们都没听说过显卡还可以做通用计算,问他们也是白问。
所以求教程:安装和设置的步骤。
1:如果你有两块支持CUDA的显卡,那么你其实有两个设备,一个是device 0,一个是device 1。可以在编程的时候使用set device来指定哪一块显卡运作。(当然给两个设备都指定任务也是可以的)具体使用细节请参看NV的手册。
2:突破n秒运行时间,在WIN7下只需要修改注册表即可。具体修改的地方,nsight手册里面有(参见nsight user guide——CUDA Debugging——Tutorial:Using the CUDA Debugger——EXERCISE1——关于TDR(Timeout Detection and Recovery)的介绍)。
3:和SLI无关。SLI是游戏中运用两块规格基本一致的NV显卡进行加速的一种技术。(插一句,“SLI”最早是VOODOO显卡的双卡技术,后来VOODOO时代结束以后,NV收购了VOODOO的遗产,并在后来将自家的双卡/多卡技术取名SLI,应该有向VOODOO致敬的意思。)CUDA开发和SLI无关,即使是游戏时组成SLI的显卡,CUDA开发时也是两个device。
4:补充,如果你用一块显卡既显示,又开发CUDA,那么跑CUDA程序的时候,显示会变得卡顿和拖慢。如果你为了避免这一点,也可以使用NV独显计算+任意集显显示的组合。
5:nsight从2.2版本开始支持单机单卡调试,此前,如果单机调试,需要两块显卡,其中一块跑CUDA程序,必须是支持CUDA的显卡;另外一块作显示,可以使任意显卡,集显也可以。
6:补充,安装和设置的步骤建议先参考下NV各软件环境附带的手册和说明文档。
楼主您的帖子有点小瑕疵:
“nv的网站说可以两个显卡一个做cuda,另外一个输出,就可以突破n秒kernel运行时长的限制。”
–NV没这么说。
运行时间的限制和2张显卡无关,是windows操作系统的机制。
现在回答楼主的问题:
问:如何安装2块显卡?
答:关机,打开机箱,插入显卡,安装显卡的电源线,关闭机箱,开机。然后安装显卡驱动。
问:如何取消时间限制?
答:安装nsight visual studio edition。点击开始菜单->运行nsight monitor->在右下角的nsight monitor图标上用鼠标的右键点击->在弹出的菜单上用鼠标的左键点击options->在Microsoft Display Driver的WDDM TDR Enabled处,选择false->用鼠标点击确定->重新启动计算机1次->搞定。
感谢楼主发贴,祝您设置顺利。
如果有其他问题,欢迎继续跟帖。
没有看到ICE大的发贴。请仔细阅读2楼的ICE大发贴。他额外回答了你如何在2个设备里面选择1个专门用来计算(cudaSetDevice, 如2楼所述)。
祝您编码愉快!
对3楼的一点点补充,如果要拆机装两块显卡的话,还需要确保主板能支持。
有个问题,假设我台式机上装了两块独显,显示屏是接任一块显卡都可以吗?我怎样可以知道是device0还是device1接的显示屏?
对于您的第一个问题:
我认为是显示屏接任何一块都可以。
对于您的第二个问题:
我认为简单一点的是您可以简单的如此尝试:
cudaSetDevice(n);
大型kernel<<<…>>>(…); //可以是个简单的死循环的
cudaDeviceSynchronize();
然后您分别用n=0和n=1来运行,哪个能让桌面卡死,你的显示器就接在device id = 哪个的显卡上。(前提是你关闭了TDR。)
不知道其他版主/会员有无更好的办法。
如果两块显卡型号不同,好像可以用devicequery看出来哪个是device0,哪个是device1。
另外,如果setdevice然后跑循环的话,看哪个显卡风扇狂转,温度暴高就是当前显卡。