1. CUDA安裝
在Linux系統(tǒng)上安裝CUDA toolkit需要下載兩個(gè)包:驅(qū)動(dòng)和toolkit
cuda_7.0.28_linux.run
NVIDIA-Linux-x86_64-352.41.run
1.1 安裝toolkit
toolkit包中提供多項(xiàng)功能拟杉,有顯卡驅(qū)動(dòng)庄涡、toolkit和samples;安裝過程為:
退出X server:在控制終端執(zhí)行命令:init 3搬设;
啟動(dòng)安裝包:執(zhí)行命令:sh cuda_7.0.28_linux.run;
跳出安裝須知:執(zhí)行命令:strl + C穴店,并輸入accept;
不進(jìn)行顯卡驅(qū)動(dòng)安裝:在第一個(gè)選項(xiàng)中輸入命令:N
其它選項(xiàng):其它選項(xiàng)都選擇Y或者直接回車拿穴。
添加環(huán)境變量:在~/.bashrc文件中添加如下兩行
PATH=/usr/local/cuda-7.0/bin:$PATH
LD_LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LD_LIBRARY_PATH
參考文獻(xiàn):CUDA_Getting_Started_Linux.pdf
1.2 安裝顯卡驅(qū)動(dòng)
本來CUDA
toolkit中自帶顯卡驅(qū)動(dòng)泣洞,但是由于自動(dòng)安裝顯卡驅(qū)動(dòng)后,導(dǎo)致Linux系統(tǒng)圖形界面無法啟動(dòng)默色,所以需要手動(dòng)下載和安裝顯卡驅(qū)動(dòng)球凰,其安裝過程為:
退出圖形界面:運(yùn)行命令為:init 3;
啟動(dòng):啟動(dòng)驅(qū)動(dòng)文件腿宰,命令為:sh NVIDIA-Linux-x86_64-352.41.run -a;
配置:安裝完成后弟蚀,會(huì)提示是否運(yùn)行nvidia顯卡工具來自動(dòng)更新xorg.conf文件,選擇“Yes”酗失;
返回圖形界面:在顯卡安裝完成后义钉,返回圖形界面,命令為:startx规肴;
備注:
若出現(xiàn)安裝顯卡驅(qū)動(dòng)后捶闸,圖形界面無法啟動(dòng),則按如下方法解決:
進(jìn)入命令行界面:ctrl+Alt+F2.
刪除配置文件:/etc/X11/xorg.conf
參考文獻(xiàn):Linux下拖刃,手動(dòng)安裝NVIDIA顯卡官方驅(qū)動(dòng)
2. 調(diào)式工具:CUDA GDB
對(duì)于CUDA的調(diào)式工具GDB删壮,需要使用GPU的設(shè)備。但是當(dāng)在圖形界面時(shí)兑牡,GPU設(shè)備已經(jīng)被占用著央碟,所以若需要使用CUDA GDB需要退出X server,進(jìn)入init 3均函。其使用過程為:
退出X server:在終端執(zhí)行命令:init 3
-
編譯:若源程序?yàn)椋簆mandel.cu亿虽,編譯命令可以為:nvcc -g -G pmandel.cu -o
pamandel;若是有makefile文件菱涤,則也可執(zhí)行命令:make。如圖 1所示洛勉。
-
啟動(dòng)GDB:執(zhí)行命令:cuda-gdb pmandel粘秆;如圖 2所示。
設(shè)置斷點(diǎn):可以在任何函數(shù)或行設(shè)置斷點(diǎn)收毫,如執(zhí)行命令:break
main攻走;或break 21;開始調(diào)式:執(zhí)行命令為:run此再;
-
繼續(xù)執(zhí)行:可以執(zhí)行命令:continue昔搂,或是:C;如圖 3所示输拇。
單步執(zhí)行:命令為:next巩趁,或是:n
-
顯示信息:可以執(zhí)行命令:info cuda
Commands,其中的Commands可以是threads淳附、blocks议慰、warps和contexts等命令,其它信息可參考《cuda-gdb.pdf》奴曙。如圖
4所示别凹。
參考文獻(xiàn):cuda-gdb.pdf
3. 分析工具:CUDA Profile
======================
3.1 Visual Profiler:圖形化
Visual Profiler是NVIDIA提供的圖形化分析工具,其在成功安裝CUDA toolkit后洽糟,就能夠使用炉菲。通過Profiler能夠?qū)UDA
應(yīng)用的CPU和GPU的時(shí)間節(jié)點(diǎn)進(jìn)行分析,并能夠調(diào)優(yōu)CUDA應(yīng)用的性能坤溃。Visual Profiler的簡單使用方法如下所示:
-
啟動(dòng):在控制終端輸入命令:nvvp拍霜;如圖 5所示的啟動(dòng)后界面。
-
新建session:其創(chuàng)建入口為:FileNew Session薪介,如圖
6所示是新建Session對(duì)話框祠饺,在該對(duì)話框中的File輸入框中輸入需被分析的可執(zhí)行文件。
-
分析結(jié)果:在新建Session對(duì)話框中輸入相應(yīng)的可執(zhí)行文件后汁政,就能產(chǎn)生分析結(jié)果道偷,如圖7所示。
3.2 nvprof Profiler:命令行
通過nvprof可以以命令行的形式分析和調(diào)優(yōu)CUDA應(yīng)用程序记劈。nvprof的使用形式是:
nvprof [options] [CUDA-application] [application-arguments]
- summary模型
這是nvprof的默認(rèn)模型勺鸦,在這個(gè)模型中只簡單輸出核函數(shù)和CUDA內(nèi)存復(fù)制性能。如對(duì)于需要被測(cè)試的可執(zhí)行文件boxFilterNPP目木,可直接執(zhí)行命令:nvprof boxFilterNPP换途。如圖 8所示的結(jié)果。
- GPU-Trace和API-Trace模型
這個(gè)模型能夠以時(shí)間軸順序提供所有在GPU發(fā)生的活動(dòng)點(diǎn),每個(gè)核函數(shù)的執(zhí)行或是復(fù)制/賦值都能夠詳細(xì)的顯示军拟。如圖9所示剃执。
- Event/metric Summary模型
通過這個(gè)模型能夠在指定的NVIDIA GPU上顯示所有可用的Event/metric,
- Event/metric Trace Mode
通過這個(gè)模型能夠顯示每個(gè)核函數(shù)的event和metric值吻谋。如圖 11所示忠蝗。
參考文獻(xiàn):CUDA_Profiler_Users_Guide.pdf
4. 集成工具:nsight Eclipse
========================
4.1 CUDA編輯器
Linux中也有CUDA的集成開發(fā)工具nsight现横。其中在CUDA
toolkit中自帶nsight漓拾,所以當(dāng)成功安裝toolkit后,就可以啟動(dòng)nsight戒祠。其使用過程為:
-
啟動(dòng):在終端中輸入:nsight骇两;如圖 12所示是啟動(dòng)后的nsight界面。
-
創(chuàng)建項(xiàng)目:在nsight界面中:FileProjectCUDA c/c++
projectExecutable其中一項(xiàng)姜盈,如圖 13所示的Executable選項(xiàng)低千。
編譯:創(chuàng)建可執(zhí)行文件:右擊項(xiàng)目Build Project; 如圖 14所示。
- 執(zhí)行:右擊項(xiàng)目Run AsCocal c/c++ Application;如圖 15所示馏颂。
參考文獻(xiàn):nsight_Eclipse_Edition_getting_started.pdf;
4.2 CUDA調(diào)試器
nsight也集成了gdb示血,通過nsight可用非常方便了對(duì)cuda程序進(jìn)行調(diào)式。其中若需要進(jìn)入Debug模型需要退出X
server救拉,進(jìn)入init 3难审。當(dāng)單擊Debug按鈕時(shí),就會(huì)自動(dòng)進(jìn)入Debug Perpspective, 如圖
16所示亿絮。其中當(dāng)進(jìn)入Debug模式時(shí)告喊,就會(huì)在main函數(shù)中暫停。其中在nsight的工具欄中有四個(gè)相關(guān)的調(diào)式按鈕:
Step Info:進(jìn)入函數(shù)派昧;
Step Over:單步執(zhí)行黔姜;
Step Return:退出函數(shù);
-
Resume:跳到下一斷點(diǎn)蒂萎。
4.3 CUDA性能分析器
nsight同時(shí)集成了Profiler的分析工具秆吵,當(dāng)打開一個(gè)項(xiàng)目后就能夠非常方便了進(jìn)行性能分析。其分析Perpspective與visual Profiler一樣五慈,如圖 17所示帮毁。
5. nvml庫
======
5.1 安裝方式
運(yùn)行安裝完nvml庫后,
lib文件安裝路徑是:/usr/src/gdk/nvml
.h文件的安裝路徑是:/usr/include/nvidia/gdk/nvml.h
5.2 使用方式
- lib文件
將/usr/src/gdk/nvml/lib/目錄下的兩個(gè)文件復(fù)制到/usr/lib64豺撑,并覆蓋以前文件烈疚。若在項(xiàng)目中需要使用該庫,則需添加所以的lib路徑聪轿,如在nsight項(xiàng)目中按如圖 18所示進(jìn)行添加爷肝。
- .h文件
若在項(xiàng)目中需要使用nvml庫,則只需在源程序中包含nvml.h文件,同時(shí)在環(huán)境中需要添加nvml.h文件所在的路徑灯抛,如圖19所示金赦。