CUDA與Linux系統


 

CUDA與Linux系統

 

目錄

CUDALinux平台    1

目錄    2

1 CUDA安裝    3

1.1 安裝toolkit    3

1.2 安裝顯卡驅動    3

2 調式工具:CUDA GDB    3

3 分析工具:CUDA Profile    5

3.1 Visual Profiler:圖形化    5

3.2 nvprof Profiler:命令行    6

4 集成工具:nsight Eclipse    8

4.1 CUDA編輯器    8

4.2 CUDA調試器    10

4.3 CUDA性能分析器    11

 

 

1. CUDA安裝

在Linux系統上安裝CUDA toolkit需要下載兩個包:驅動和toolkit

  • cuda_7.0.28_linux.run
  • NVIDIA-Linux-x86_64-352.41.run

 

1.1 安裝toolkit

 

toolkit包中提供多項功能,有顯卡驅動、toolkit和samples;安裝過程為:

  1. 退出X server在控制終端執行命令:init 3
  2. 啟動安裝包:執行命令:sh cuda_7.0.28_linux.run;
  3. 跳出安裝須知:執行命令:strl + C,並輸入accept
  4. 不進行顯卡驅動安裝:在第一個選項中輸入命令:N
  5. 其它選項:其它選項都選擇Y或者直接回車。
  6. 添加環境變量:~/.bashrc文件中添加如下兩行

PATH=/usr/local/cuda-7.0/bin:$PATH

LD_LIBRARY_PATH=/usr/local/cuda-7.0/lib64:$LD_LIBRARY_PATH

 

參考文獻:CUDA_Getting_Started_Linux.pdf

 

1.2 安裝顯卡驅動

 

本來CUDA toolkit中自帶顯卡驅動,但是由於自動安裝顯卡驅動后,導致Linux系統圖形界面無法啟動,所以需要手動下載和安裝顯卡驅動,其安裝過程為:

  1. 退出圖形界面:運行命令為:init 3
  2. 啟動:啟動驅動文件,命令為:sh NVIDIA-Linux-x86_64-352.41.run -a;
  3. 配置:安裝完成后,會提示是否運行nvidia顯卡工具來自動更新xorg.conf文件,選擇"Yes";
  4. 返回圖形界面:在顯卡安裝完成后,返回圖形界面,命令為:startx

 

參考文獻:Linux下,手動安裝NVIDIA顯卡官方驅動;

 

2. 調式工具:CUDA GDB

 

對於CUDA的調式工具GDB,需要使用GPU的設備。但是當在圖形界面時,GPU設備已經被占用着,所以若需要使用CUDA GDB需要退出X server,進入init 3。其使用過程為:

  1. 退出X server:在終端執行命令:init 3
  2. 編譯:若源程序為:pmandel.cu,編譯命令可以為:nvcc -g -G pmandel.cu -o pamandel;若是有makefile文件,則也可執行命令:make。如圖 5所示。

1

  1. 啟動GDB:執行命令:cuda-gdb pmandel;如圖 6所示。

2

  1. 設置斷點:可以在任何函數或行設置斷點,如執行命令:break main;或break 21
  2. 開始調式:執行命令為:run
  3. 繼續執行:可以執行命令:continue,或是:C;如圖 7所示。

3

  1. 單步執行:命令為:next,或是:n
  2. 顯示信息:可以執行命令:info cuda Commands,其中的Commands可以是threadsblockswarpscontexts等命令,其它信息可參考《cuda-gdb.pdf》。如圖 8所示。

4

參考文獻:cuda-gdb.pdf

 

3. 分析工具:CUDA Profile

 

3.1 Visual Profiler:圖形化

 

Visual Profiler是NVIDIA提供的圖形化分析工具,其在成功安裝CUDA toolkit后,就能夠使用。通過Profiler能夠對CUDA 應用的CPU和GPU的時間節點進行分析,並能夠調優CUDA應用的性能。Visual Profiler的簡單使用方法如下所示:

    1. 啟動:在控制終端輸入命令:nvvp;如圖 5所示的啟動后界面。

5

    2. 新建session:其創建入口為:FileàNew Session,如圖 6所示是新建Session對話框,在該對話框中的File輸入框中輸入需被分析的可執行文件。

6

    3. 分析結果:在新建Session對話框中輸入相應的可執行文件后,就能產生分析結果,如圖 7所示。

7

 

3.2 nvprof Profiler:命令行

 

通過nvprof可以以命令行的形式分析和調優CUDA應用程序。nvprof的使用形式是:

nvprof    [options] [CUDA-application]    [application-arguments]

 

     1) summary模型

這是nvprof的默認模型,在這個模型中只簡單輸出核函數和CUDA內存復制性能。如對於需要被測試的可執行文件boxFilterNPP,可直接執行命令:nvprof boxFilterNPP。如圖 8所示的結果。

8

    2) GPU-TraceAPI-Trace模型

這個模型能夠以時間軸順序提供所有在GPU發生的活動點,每個核函數的執行或是復制/賦值都能夠詳細的顯示。如圖 9所示。

9

    3) Event/metric Summary模型

通過這個模型能夠在指定的NVIDIA GPU上顯示所有可用的Event/metric

10

    4) Event/metric Trace Mode

通過這個模型能夠顯示每個核函數的eventmetric值。如圖 11所示。

11

 

 

參考文獻:CUDA_Profiler_Users_Guide.pdf

4. 集成工具:nsight Eclipse

 

4.1 CUDA編輯器

 

Linux中也有CUDA的集成開發工具nsight。其中在CUDA toolkit中自帶nsight,所以當成功安裝toolkit后,就可以啟動nsight。其使用過程為:

    1) 啟動:在終端中輸入:nsight;如圖 1所示是啟動后的nsight界面。

12

    2) 創建項目:在nsight界面中:FileàProjectàCUDA c/c++ projectàExecutableà其中一項,如圖 2所示的Executable選項。

13

    3) 編譯:創建可執行文件:右擊項目àBuild Project; 如圖 3所示。

14

    4) 執行右擊項目àRun AsàCocal c/c++ Application;如圖 4所示。

15

 

參考文獻:nsight_Eclipse_Edition_getting_started.pdf;

 

4.2 CUDA調試器

 

nsight也集成了gdb,通過nsight可用非常方便了對cuda程序進行調式。其中若需要進入Debug模型需要退出X server,進入init 3。當單擊Debug按鈕時,就會自動進入Debug Perpspective, 如圖 16所示。其中當進入Debug模式時,就會在main函數中暫停。其中在nsight的工具欄中有四個相關的調式按鈕:

  • Step Info:進入函數;
  • Step Over單步執行;
  • Step Return退出函數;
  • Resume跳到下一斷點。

16

 

4.3 CUDA性能分析器

 

nsight同時集成了Profiler的分析工具,當打開一個項目后就能夠非常方便了進行性能分析。其分析Perpspective與visual Profiler一樣,如圖 17所示。

 

17

 

5. nvml庫

 

 

5.1 安裝方式

 

運行安裝完nvml庫后,

  • lib文件安裝路徑是:/usr/src/gdk/nvml
  • .h文件的安裝路徑是:/usr/include/nvidia/gdk/nvml.h

 

5.2 使用方式

 

  • lib文件

    /usr/src/gdk/nvml/lib/目錄下的兩個文件復制到/usr/lib64,並覆蓋以前文件。若在項目中需要使用該庫,則需添加所以的lib路徑,如在nsight項目中按如圖 18所示進行添加。

18

  • .h文件

    若在項目中需要使用nvml庫,則只需在源程序中包含nvml.h文件,同時在環境中需要添加nvml.h文件所在的路徑,如圖 19所示。

19


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM