歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux 下 CUDA 開發環境安裝

Linux 下 CUDA 開發環境安裝

日期:2017/2/28 16:32:51   编辑:Linux教程

GPU 是圖形處理單元(Graphic Processing Unit) 的簡稱,最初主要用於圖形渲染。自九十年代開始,GPU 的發展產生了較大的變化,NVIDIA 、AMD(ATI) 等GPU 生產商敏銳的觀察到GPU 天生的並行性,經過他們對硬件和軟件的改進,GPU 的可編程能力不斷提高,GPU 通用計算應運而生。由於GPU 具有比CPU 強大的計算能力( 見圖1- 1 ),為科學計算的應用提供了新的選擇。


由於GPU 擁有比CPU 更強的計算能力,很早就有人想到將GPU 應用到通用計算上,這就是GPGPU ,所謂GPGPU 是指 直接使用了圖形學的API ,將任務映射成紋理的渲染過程,使用匯編或者高級著色器語言Cg ,HLSL 等編寫程序,然後通過圖形學API 執行(Direct3D 和OpenGL ),這樣的開發不僅難度較大,而且難以優化,對開發人員的要求非常高,因此,傳統的GP GP U 計算並沒有廣泛應用。

2007 年6 月,NVIDIA 公司推出了CUDA(Compute Unified Device Architecture) ,CUDA 不需要借助圖形學API ,而是采用了類C 語言進行開發。同時,CUDA 采用了統一處理架構,降低了編程的難度,使得NVIDIA 相比AMD/ATI 後來居上。相比AMD 的GPU ,NVIDIA GPU 引入了片內共享存儲器,提高了效率。 這兩項改進使CUDA 架構更加適合進行GPU 通用計算。由於這些特性,CUDA 推出後迅速發展,被應用於石油勘測、天文計算、流體力學模擬、分子動力學仿真、生物計算、圖像處理、音視頻編解碼等領域。

CUDA 直接采用C/C++ 編譯器作為前端(如Linux 下的gcc,windows 下的vs ),以C/C++ 語法為基礎設計,因此對熟悉C 系列語言的程序員來說,CUDA 的語法比較容易掌握。但是這並不意味著CUDA 容易,整體來說CUDA 是相當難的,難在優化,難在開發出健壯、可擴展性的程序;難在沒有成熟的庫和算法以借用。從語言的角度說,CUDA 只對ANSI C 進行了最小的必要擴展,以實現其關鍵特性-- 線程按照兩個層次進行組織、共享存儲器和柵欄同步。這些關鍵特性使得CUDA 擁有了兩個層次的並行:線程級並行實現的細粒度數據並行,和任務級並行實現的粗粒度並行。

Copyright © Linux教程網 All Rights Reserved