听说nsight要2块GPU才能Debugger,现在有什么只要一块GPU就可以debugger的平台吗?DirectComputer、opencl可以单GPU debugger吗?
如果不Debugger,单GPU还是可以运行的对吧?
看你的平台是windows還是linux
1.單gpu的情況下,不用parallel nsight debug
windows有kernel function的時間限制(win7 2…3秒)
可藉由修改註冊表,讓限制消失…但是畫面會freezing
linux"貌似"沒有kernel function的時間限制
2.內顯加獨顯
我試過用intel內顯配合單nvidia gpu
讓內顯負責畫面輸出,gpu當成運算處理器
可是失敗…driver上完之後,進不了系統
照正常的方法應該是無法內顯加獨顯(除非你的內顯是nvidia的)
3.雙gpu,配合parallel nsight,並且指定"沒有連接任何螢幕"的卡去跑程式
既然用parallel nsight,那應該就是windows平台
windows一樣有kernel function的時間限制(win7 2…3秒)
修改註冊表,可以破除限制(或者修改NVIDIA Parallel Nsight Monitor的選項,其實也是修改註冊表)
但至少畫面不會freezing,因為負責顯示的gpu沒有在跑程式
ps.想單卡debug可以使用printf(請小心kernel function的時間限制)
不過必須使用計算能力2.0以上的gpu,才能在device端調用printf函數
當然如果你把資料copy回主記憶體,並且在host端調用printf,就沒有這個限制
求教,为什么2.0以上可以使用printf?硬件上有何改进使之可以。我硬件2.1,GTS450;可以使用struct、链表对吧?
在开始之前,看到此贴减少了弯路,多谢.
關於2.0以上我也不是很清楚是不是硬件的問題
不過我想一定是有差的
而你的問題struct是可以用的
不過效率高不高是個問題
你要考慮全局記憶體的合併存取還有共享記憶體的訪問衝突
不過這些在Fermi架構上影響比較小
連結串列(鍊表?!!)不建議使用
因為他本身其實算是一個順序的一個結構
而GPU強的是他的並行處理
當然要用連結串列應該可以(我沒試過)
要用printf,在nvcc编译器应该怎么设置?
我遇到这样的报错:
错误 4 error : calling a host function(“printf”) from a device/global function(“deleteElement”) is not allowed D:\MyCuda\CSharpLoadCudaDLL\WebAnalysis\WebAnalysis\kernel.cu 65 1 WebAnalysis
错误 5 error : calling a host function(“printf”) from a device/global function(“deleteElement”) is not allowed D:\MyCuda\CSharpLoadCudaDLL\WebAnalysis\WebAnalysis\kernel.cu 76 1 WebAnalysis
错误 6 error MSB3721: 命令““C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe” -gencode=arch=compute_10,code="sm_21,compute_10" --use-local-env --cl-version 2010 -ccbin “c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin” -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -G0 --keep-dir “Debug” -maxrregcount=0 --machine 32 --compile -D_NEXUS_DEBUG -g -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o “Debug\kernel.cu.obj” “D:\MyCuda\CSharpLoadCudaDLL\WebAnalysis\WebAnalysis\kernel.cu””已退出,返回代码为 2。 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 4.0.targets 357 10 WebAnalysis
CUDA除了为我们提供数学库外,还提供了什么库?有字符串查找的库吗?谢谢!
错误 6 error MSB3721: 命令““C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe” -gencode=arch=compute_10,code="sm_21,compute_10"
看到這裡就知道
參數不太正確
不過我不知道為什麼
因為你既然改成sm_21
理應是
-G0 -gencode=arch=compute_20,code="sm_21,compute_20"
而不是
-G0 -gencode=arch=compute_10,code="sm_21,compute_10"
這你可能要去找找為什麼…
因為我在VS2008中不會有這個問題
我不知道有沒有提供字串的library
幫不上忙~抱歉~:(
哈哈,想起来我还有块7050的板载显卡,现在我可以双显卡调试了。因为我两块显卡的显示输出都是到同一个屏幕,有没有可以赋值屏幕的软件?这样我用nsight调试的时候,就切换到集成显卡,平时桌面就还用独立显卡。
估计还是要搞两个显卡,有条件还是买个,毕竟现在单卡调试技术不成熟。花时间研究这个,不如好好多写程序,提高水平。
这个搞定了,谢谢!我还有块集成显卡Geforce7050,嘿嘿~
哦~,我当它数字来检索吧!另外,if语句对并行计算来说,浪费吗?
NVIDIA控制面板可以關閉某個顯示器
你可以先把線都插好
然後關閉某個gpu的顯示
另外有if在fermi上計算還是挺快的
可以自己試試
寫幾個if去跑跑吧~