CUDA C編程——NO.1


CUDA C編程

啥玩意是CUDA?

CUDA® is a parallel computing platform and programming model invented by NVIDIA. It enables dramatic increases in computing performance by harnessing the power of the graphics processing unit (GPU).
CUDA是一個由NVIDIA公司發明的並行計算平台和編程模型,提供high leve的接口。它利用圖形處理單元(GPU)的強大功能,使計算性能大幅提高。關於CUDA的安裝可以參閱Cuda9.0安裝,這里就不在啰嗦了。

GPU和CPU的區別?

GPU是為了計算密集型(compute-intensive )、高度並行計算任務(如:圖形繪制之類)專門設計的,根據下圖可以明顯的看出,GPU比CPU擁有更多的處理數據的傳感器(arithmetic and logic unit,算數邏輯單元),而不是高速數據緩存(cache)和流處理(flow control)。
CPU和GPU的架構區別

CUDA模型以及用CUDA編寫的應用程序

數據並行處理將數據元素映射到並行處理線程。通過並行處理模型,可以使處理大量數據的應用程序加快處理的速度。所以,通過CUDA庫可以調用GPU進行運算,獲得比CPU更高效的處理數據能力。隨着多核CPU和多核GPU的出現,意味着現在的處理器芯片就是並行系統。而且,他的並行性也符合摩爾定律。但是這也給編程人員帶來了極大挑戰,因為透明地擴展其並行性以利用越來越多的處理器內核並不是那么的容易。所以NVIDIA公司就開發了CUDA,提供C語言的超級,用來輕松的編寫並發程序。

CUDA模型提供細粒度的數據和線程並行模型,嵌套在粗粒度的並行模型。通過CUDA,程序員可以將一個程序分割為若干個可以並行處理的獨立子任務。

利用CUDA編寫的應用程序

如上圖所示,一個多線程的程序可以分割為具有多個thread的block。因此,程序可以自動發現並執行在多個GPU上,從而縮短程序的運行時間。

接下來,將會再介紹CUDA模型。


免責聲明!

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



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