CUDA之大規模GPU並行系列教程(一)—— 先決條件


 

Introduction (簡介):

     CUDA是一個並行計算的平台,是由NVIDIA發明的編程模型,CUDA通過使用圖形處理單元(GPU)能夠極大的增加計算能力。

  CUDA被研發主要出於以下幾個設計目標:

  1.   為標准程序語言(例如: C)提供一個擴展的小集合,能夠允許直接實現並行算法,如果使用CUDA C/C++, 程序員就可以把注意力集中在算法的並行化上,而不是花大量的時間在它們的實現上。
  2.   支持異構(不均勻)計算,從而應用程序能同時使用CPU和GPU,程序的串行部分在CPU上運行,而並行部分則分配給GPU。同樣的,CUDA能夠應用在現存的應用程序上。 CPU和GPU被當作獨立的設備,分別由各自的存儲空間。這樣的配置也允許同時在CPU和GPU上計算而不存在相互內存資源競爭關系。

  CUDA-capable GPUs 擁有數百個核,能夠運行數千個計算線程。這些核擁有的共享資源包括一個寄存器文件和共享內存。片上的共享內存(the on-chip shared memory)允許並行的任務運行在這些核上來共享數據,而沒有通過系統內存總線來發送。

  這個向導將會向你展示怎樣安裝以及檢測CUDA開發工具的正確操作。

  這個教程描述了怎樣在C/C++之中,運用cuda來進行編程。cuda是一門語言用來對大規模的並行GPU進行編碼,它需要讀者有C/C++編程經驗。

 

System Requirements(系統需求):

  為了在你的電腦使用CUDA,你需要滿足以下條件:

  • CUDA -capable GPU
  • Microsoft Windows XP, Vista, 7, or 8 or Windows Server 2003 or 2008
  • NVIDIA CUDA Toolkit(available at no cost from http://www.nvidia.com/content/cuda/cuda-downloads.html)
  • Microsoft Visual Studio 2008 or 2010, or a corresponding version of Microsoft Visual C++ Express  

 

  讓我們首先確保滿足CUDA編程的先決條件。

 INSTALLING CUDA DEVELOPMENT TOOLS(安裝CUDA開發工具):

  安裝CUDA開發工具運行在合適的Windows版本上主要由簡單的幾步組成:

  • 驗證系統是否有CUDA-capable GPU
  • 下載 the NNIDIA CUDA 工具包
  • 安裝 NVIDIA CUDA 工具包
  • 測試安裝的軟件運行正確,以及與硬件的通信

Verify You Have a CUDA-Capable GPU(驗證是否為CUDA-Capable GPU)


  為了驗證你的GPU是CUDA-capable, 打開控制面板,雙擊系統選項,在打開的系統屬性窗口上,點擊硬件tab,然后設備管理器,展開顯示適配器入口。在這里你將會找到供應商的名稱和圖形卡的模型。如果是一個NVIDIA卡,並且在 http://www.nvidia.com/object/cuda_gpus.html ,上被列出來了,那么你的GPU就是CUDA-capable.

 

Download the NVIDIA CUDA Toolkit(下載NVIDIA CUDA工具包):

  准備開始cuda編程,需要下載並安裝cuda toolkit and developer driver(https://developer.nvidia.com/cuda-downloads). 這個工具包包含nvcc,the NVIDIA CUDA Compiler,還有一些軟件(開發cuda應用所必要的)。此外,下載的驅動確保了GPU程序能夠正確的運行在CUDA-capable hardware之上,這也是不可缺少的。

 

 Install the CUDA Software(安裝CUDA軟件):

  安裝工具包之前, 你應該閱讀 Release Notes, 它提供詳細的安裝說明和軟件功能。

  點擊CUDA工具包進行安裝,接着在屏幕上出現如下提示:

  大概意思就是: 為了CUDA的運作,驅動和工具包必須安裝。如果你沒有安裝一個單獨的驅動,就從NVIDIA CUDA 工具包中來安裝驅動。

  你可以從下面的包中來選擇安裝:

  

  1.   CUDA 驅動

  CUDA驅動的安裝可以通過silent或者GUI,

  •       Silent: 僅有顯示驅動將被安裝
  •       GUI: 在CUDA 工具包安裝之后,將會出現一個窗口,如果你在最后一個對話框允許它the full driver installation UI. 你可以選擇你希望安裝的某些特性。

  2.  CUDA 工具包

  CUDA ToolKit 默認的安裝路徑是 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v#.#, #.#是版本號(例如3.2或者更高)。它的目錄包含以下內容:

  Bin\

      編譯器的可執行文件和運行時庫

  Include\

    編譯CUDA程序需要的頭文件

  Lib\

    鏈接CUDA程序需要的庫文件

  Doc\

    CUDA C程序向導, CUDA C Best Practices Guide, CUDA 函數庫文檔,還有一些CUDA 工具包有關的文檔。

  3.  CUDA 樣本

  CUDA 樣本包含許多例題和模版的源代碼

  對於XP,樣本放在: 

  C:\Documents and Settings\All Users\Application Data\NVIDIA Corporation\CUDA Samples\v5.0

  對於Vista,7,Server 2008,樣本放在:

  C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0

  Verify the Installation(驗證安裝):

  在繼續進行之前,驗證CUDA程序能發現並且與CUDA-capable 硬件正確通信。為了驗證它, 你需要編譯並允許一些包含的樣本程序。

  在你的機器上通過運行命令行 nvcc  --version 能夠確認CUDA ToolKit 的安裝是否正確。例如,在一台Mac OSX上,將會輸出編譯器信息。

 

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2009 NVIDIA Corporation
Built on Thu_Mar_11_12:08:00_PST_2010
Cuda compilation tools, release 3.0, V0.2.1221

 

  如果之前的命令不成功,CUDA ToolKit 可能沒有安裝成功或者nvcc的路徑

 

C:\CUDA\bin on Windows machines, /usr/local/cuda/bin on POSIX OSes

 

  不是PATH 環境變量的一部分。

 

 

 

  此外,你也需要一個 host compiler它與nvcc協作來編譯和構建cuda程序。 在Windows之中,它是c1.exe(微軟編譯器),過渡成了Microsoft Visual Studio。 對於在POSIX OSes,它是GCC 或者 G++。  

官方的CUDA 開始向導(http://developer.download.nvidia.com/compute/cuda/5_0/rel/docs/CUDA_Getting_Started_Guide_For_Microsoft_Windows.pdf會告訴你什么編輯器版本在你的特殊平台上被支持。

 

 Compiling CUDA Programs(編譯CUDA程序):

 在CUDA樣本中的工程文件已經設計成了例子,編譯成32或64位Windows projects(release or debug mode),對於VS2008 or 2010或者2013使用后綴名*.sln 解決方案。

 

 

 

  為了保證一切正確, 讓我們編譯和運行一個簡單的CUDA程序來確保所有的工具能夠一起正常工作。

 

 1 #include <stdio.h>
 2 
 3 __global__ void foo()
 4 {
 5 }
 6 
 7 int main()
 8 {
 9   foo<<<1,1>>>();
10   printf("CUDA error: %s\n", cudaGetErrorString(cudaGetLastError()));  
11   return 0;
12 }

 

  為了編譯這個程序, 復制源代碼到新建文件 test.cu ,然后通過命令行來編譯它。例如,在一台Mac OSX系統上,正確將會出現以下提示:

 

$ nvcc test.cu -o test
$ ./test 
CUDA error: no error

 

  如果程序通過編譯無錯,嘿嘿,那我們就可以 Start Coding 了!!!

 

 

 

 

 


免責聲明!

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



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