您的位置:極速下載站 → 電腦軟件 → 系統(tǒng)軟件 → 系統(tǒng)其他 → CUDA調(diào)試工具
CUDA調(diào)試工具(SDK編譯器)可以對(duì)所有NVIDIA的GPU進(jìn)行控制并實(shí)時(shí)獲得GPU狀態(tài)和運(yùn)行情況。
CUDA編程筆記
1、下載CUDA工具包、驅(qū)動(dòng)和SDK,依次安裝,編譯SDK里的工程文件,具體配置方法可谷歌百度,基本步驟就是先編譯sdk里面的幾個(gè)庫,然后設(shè)置代碼相應(yīng)庫函數(shù)關(guān)鍵字高亮。
2、 下載CUDA調(diào)試工具Nsight,可以實(shí)現(xiàn)單卡雙機(jī)調(diào)試或雙卡單機(jī)調(diào)試,雖然聽說2.2可以單卡單機(jī),但還沒找到方法。具體調(diào)試可參考Nsight的help文檔和cudabbs.it168.com上的別人筆記(CUDA雙機(jī)Nsight調(diào)試總結(jié))。
3、 Nsight2.2中包含cuda4.0,cuda4.1, cuda4.2 rules。
4、如果在運(yùn)行cuda程序時(shí)出現(xiàn)黑屏花屏顯卡驅(qū)動(dòng)奔潰幾秒然后重新啟動(dòng),個(gè)人認(rèn)為應(yīng)該是顯存不足造成的,后來發(fā)現(xiàn)不是這個(gè)原因,這時(shí)候打開Nsight 的Monitor,將Options/General下的WDDM TDR enabled 設(shè)置為 False,重啟電腦,這時(shí)再運(yùn)行程序,顯示器不會(huì)更新畫面,GPU會(huì)提供完全的顯存專注于運(yùn)行我們的程序。直到運(yùn)行結(jié)束,顯示器畫面恢復(fù)更新。這種方法當(dāng)然只有用在實(shí)驗(yàn)上,不能用在實(shí)際中。
5、 普通C++控制臺(tái)和MFC程序中如何新建調(diào)用CUDA程序(VS2010):
1) 首先新建一個(gè)C++工程,然后右擊工程,打開“生成自定義“,選擇最新的cudarules。
2) 然后新建兩個(gè).cu文件,分別命名為kernel.cu和func.cu,前者存放核函數(shù),后者存放調(diào)用核函數(shù)的基本cuda函數(shù)。然后打開兩個(gè)文件的屬性,將項(xiàng)類型設(shè)置為CUDA C/C++,然后在CUDAC/C++下的Device里的Code Generation參數(shù)修改為運(yùn)行電腦GPU的計(jì)算等級(jí),例如1.1的就寫成compute_11,sm_11。還有,前者kernel.cu屬性中“從生成中排除“要選”是“。
3) 在func.cu文件中將kernel.cu當(dāng)做頭文件包含,里面的函數(shù)進(jìn)行基本的cuda程序操作:分配顯卡內(nèi)存、拷貝內(nèi)存到顯存、調(diào)用kernel函數(shù)、拷貝顯存到內(nèi)存。
4) 在func.cu文件中定義函數(shù)時(shí),將func函數(shù)定義為C擴(kuò)展函數(shù):extern “C”void func();
5) 新建一個(gè)cpp文件,作為主程序,先在程序上面添加C擴(kuò)展函數(shù)func()的說明,此時(shí)不需要include “func.cu”。然后再下面的代碼中調(diào)用func函數(shù)即可。
6) 打開整個(gè)工程的屬性,在CUDA C/C++下的Device里的Code Generation參數(shù)依然修改為運(yùn)行電腦GPU的計(jì)算等級(jí)。
7) 在工程屬性的“鏈接器/附加依賴項(xiàng)”中添加cudart.lib;
6、 CUDA Tookit中的NVIDIAVisual Profiler是個(gè)不錯(cuò)的cuda程序性能分析軟件,能生成程序中GPU處理部分的各個(gè)步驟的時(shí)間條,以及各個(gè)階段的具體參數(shù)。
7、 CUDA提供了CUBLA(具有基本的向量和矩陣運(yùn)算)庫,SDK中已經(jīng)自帶了,不用另外下載。它的運(yùn)算函數(shù)分為三個(gè)級(jí)別:1)向量與向量的運(yùn)行2)矩陣與向量的運(yùn)算3)矩陣與矩陣的運(yùn)算。工程屬性的鏈接器中的附加依賴項(xiàng)需添加:cublas.lib。
8、 在CUBLAS中矩陣是按列優(yōu)先存儲(chǔ)的,這與C中按行存儲(chǔ)矩陣的思想正好相反。
基本的調(diào)用步驟舉例:
1) 包含cublas的頭文件:
2) 創(chuàng)建一個(gè)cublas上下文句柄:
3) 調(diào)用cublas函數(shù)處理向量或矩陣運(yùn)算:
4) 銷毀cublas句柄:
關(guān)於CUDA在VS2008下的調(diào)試問題
在前提只有一臺(tái)主機(jī)一張NV顯卡的情況下
不知道大家都怎麼調(diào)試自己的程序...
在VS總是找不到一個(gè)有效率的程序去調(diào)試他...
用VS就是為了好調(diào)試
不過...NV自己出的那套Nsight貌似要兩張顯卡或者兩臺(tái)主機(jī)才能調(diào)試
相關(guān)搜索:CUDA調(diào)試工具 CUDA