加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

CUDA:英偉達最深的護城河,加速計算行業(yè)發(fā)展的時代引擎!

05/20 15:03
6969
閱讀需 15 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

CUDA為GPU賦予了新的使命,推進計算行業(yè)快速發(fā)展,讓計算從“CPU處理”時代向CPU與GPU“協(xié)同處理”時代邁進。今天讓我一起來聊一聊加速計算行業(yè)發(fā)展的時代引擎--CUDA!

一、CUDA提出背景:發(fā)揮GPU強大的并行計算能力,拓展GPU應(yīng)用場景

2006年,英偉達推出殺手級產(chǎn)品-GeForce 7300GT,精準定位中低端GPU市場,其憑借超高性價比成功擊敗老對手的ATi Radeon X1600。

憑借GeForce 7300GT的成功,英偉達在圖形處理市場份額持續(xù)攀升,截至2006年底,其市場份額超過70%,占據(jù)絕對領(lǐng)先地位。

但英偉達并不滿足于圖形處理市場的成功,想為GPU開拓更多的應(yīng)用場景,讓其充分發(fā)揮并行計算能力強大的優(yōu)勢,使其不再局限于“圖形處理”領(lǐng)域。

想要實現(xiàn)這個想法并不容易,因為當時的GPU和CPU之間存在著很大的差異:首先,GPU和CPU之間使用PCIe接口來通信,這個接口的帶寬低和延遲高,導致數(shù)據(jù)傳輸效率很差。其次,GPU和CPU之間使用不同的內(nèi)存空間和管理方式,導致內(nèi)存訪問和同步復雜。最重要的是,GPU和CPU之間使用不同的指令集和編程模型,導致程序開發(fā)和移植困難。同時,由于GPU和CPU之間使用不同的調(diào)度和執(zhí)行機制,導致任務(wù)分配和協(xié)調(diào)困難。

為了解決這些問題,NVIDIA需要找到一個合作伙伴,一個能夠提供強大的CPU,并且愿意支持NVIDIA的想法的合作伙伴。當時的英特爾已經(jīng)是CPU市場的霸主,它擁有強大的技術(shù)實力和市場影響力。但同時也面臨著諸多挑戰(zhàn),例如:摩爾定律的瓶頸,功耗墻的限制,多核心擴展的困難,新興領(lǐng)域的競爭,即科學計算、機器學習、密碼學等領(lǐng)域?qū)PU提出了更高的要求。英特爾也在尋找一種新的技術(shù)方案,一種可以提高CPU性能、降低CPU功耗、增強CPU并行性、拓展CPU應(yīng)用領(lǐng)域的技術(shù)方案。2006年,由英偉達首席科學家David Kirk親自帶隊,開發(fā)了一個基于英偉達 GPU 平臺上面定制的特殊計算體系/算法?- CUDA(Compute Unified Device Architecture,統(tǒng)一計算架構(gòu))!它讓GPU和CPU通過一種全新的方式實現(xiàn)高效地交換數(shù)據(jù),它使GPU不僅能處理圖形任務(wù),還能處理通用計算任務(wù),擴展GPU在科學計算、機器學習、密碼學等領(lǐng)域應(yīng)用。2006年,英偉達和英特爾達成了一項歷史性的合作協(xié)議,他們共同開發(fā)了一種基于CUDA的新型GPU,即G80 GPU(GeForce 8800 GTX)。

二、CUDA魔法加持:GPU計算效率實現(xiàn)最大化

CUDA本身是一種并行計算平臺和編程模型,其編程語言是一種“類C語言”,兼容C語言,CUDA編程語言和C語言差異并不大,非常適合普通開發(fā)者使用。CUDA改進了DRAM的讀寫靈活性,使得GPU與CPU的機制相吻合,同時,CUDA也提供了片上(on-chip)共享內(nèi)存,使得線程之間可以共享數(shù)據(jù)。應(yīng)用程序可以利用共享內(nèi)存來減少DRAM的數(shù)據(jù)傳送,減少對DRAM內(nèi)存帶寬的依賴。在CUDA的加持下GPU計算效率實現(xiàn)最大化,從而幫助GPU擴展到所有適合并行計算的領(lǐng)域,GPU也逐漸成為了GPGPU。下面我們通過一個具體例子來說明CPU、GPU 與CUDA優(yōu)化的GPU運算能力的差異。

當我們要算100次從1到100的加法:如果使用一個4線程的CPU,CPU需要進行100/4*100=2500次計算。如果使用一個1000線程的GPU,GPU需要進行100/1000*100=10次計算。如果使用CUDA優(yōu)化的英偉達的GPU,它能提供優(yōu)化算法的“1+100,2+99的這種利用首尾相加再除以2”的方法來簡化計算,那么使用CUDA優(yōu)化的GPU只需要100/1000*100/5=2 次計算。相比CPU,采用CUDA優(yōu)化的GPU計算效率提升了近百倍。相比普通GPU,CUDA優(yōu)化的GPU計算效率也提升了5倍,所以,即便競爭對手的GPU在硬件參數(shù)上比肩英偉達GPU,但缺少CUDA的優(yōu)化,其計算效率還是無法比肩英偉達GPU。

三、CUDA架構(gòu)組成:開發(fā)庫、運行期環(huán)境和驅(qū)動

從體系結(jié)構(gòu)的組成來說,CUDA包含了三個部分:開發(fā)庫、運行期環(huán)境和驅(qū)動。

1.開發(fā)庫

它是基于CUDA所提供的應(yīng)用開發(fā)庫。以CUDA 1.1為例,它提供了兩個標準數(shù)學運算庫——CUFFT(離散快速傅立葉變換)和CUBLAS(離散基本線性計算)的實現(xiàn)。這兩個數(shù)學運算庫所解決的是典型的大規(guī)模的并行計算問題,也是在密集數(shù)據(jù)計算中非常常見的計算類型。開發(fā)人員可以在開發(fā)庫基礎(chǔ)上快速、方便的建立起自己的計算應(yīng)用。此外,開發(fā)人員也可以在CUDA的技術(shù)基礎(chǔ)上實現(xiàn)出更多的開發(fā)庫。

2.運行期環(huán)境

它提供了應(yīng)用開發(fā)接口和運行期組件,包括基本數(shù)據(jù)類型的定義和各類計算、類型轉(zhuǎn)換、內(nèi)存管理、設(shè)備訪問和執(zhí)行調(diào)度等函數(shù)?;贑UDA開發(fā)的程序代碼在實際執(zhí)行中分為兩種,一種是運行在CPU上的宿主代碼(Host Code),一種是運行在GPU上的設(shè)備代碼(Device Code)。由于不同類型的代碼運行的物理位置不同,以及訪問到的資源不同,因此對應(yīng)的運行期組件也分為公共組件、宿主組件和設(shè)備組件三個部分,基本上囊括了所有在GPGPU開發(fā)中所需要的功能和能夠使用到的資源接口,開發(fā)人員可以通過運行期環(huán)境的編程接口實現(xiàn)各種類型的計算。

3.驅(qū)動

基于CUDA開發(fā)的應(yīng)用必須有NVIDIA CUDA-enable的硬件支持,而不同版本GPU之間存在差異,因此驅(qū)動部分基本上可以理解為是CUDA-enable的GPU的設(shè)備抽象層,提供硬件設(shè)備的抽象訪問接口。CUDA提供運行期環(huán)境也是通過這一層來實現(xiàn)各種功能。

四、CUDA推廣策略:完全免費使用,不求短期回報,快速占領(lǐng)市場

英偉達CEO黃仁極具遠見,將拓展GPU應(yīng)用領(lǐng)域作為公司首要任務(wù)。因此,CUDA推出后完全免費,不求短期回報,完全推廣的策略,使CUDA平臺開發(fā)者快速增長,同時也幫助英偉達在AI市場搶占先機。英偉達大力支持CUDA系統(tǒng)在AI及相關(guān)領(lǐng)域的開發(fā)與推廣,早在2006年,英偉達每年投入高達5億美元的研發(fā)經(jīng)費(全年營收 30 億美元),對CUDA進行持續(xù)更新與優(yōu)化?,并讓當時美國大學與科研機構(gòu)免費使用,這讓CUDA迅速在AI以及通用計算領(lǐng)域開花結(jié)果。

、CUDA發(fā)展歷程:持續(xù)演進與優(yōu)化,革命從未停止

為了讓廣大開發(fā)者更方便的使用GPU的計算能力,英偉達不斷優(yōu)化CUDA開發(fā)庫與驅(qū)動系統(tǒng)。從2006年發(fā)布至今,共發(fā)布了12個大版本,52個小版本,經(jīng)過英偉達持續(xù)地更與新迭代,CUDA功能與性能進一步優(yōu)化、兼容性不斷調(diào)整、支持更多計算架構(gòu)、錯誤得到修復、穩(wěn)定性逐步改善。

1.功能增強

CUDA的每個新版本都會帶來一些新功能或API。例如,CUDA 10引入了一個全新的任務(wù)圖功能,它允許用戶將一系列的任務(wù)(例如內(nèi)核、數(shù)據(jù)傳輸?shù)龋┙M織成一個圖形,從而提高執(zhí)行效率。而CUDA 11則引入了新的編程模型和庫功能。

2.性能提升

隨著版本升級,CUDA性能持續(xù)不斷地優(yōu)化,以提高運行速度和效率。例如,CUDA 9引入了Cooperative Groups(一個新的編程模型),可以幫助開發(fā)者更容易地編寫并行和并發(fā)代碼。

3.兼容性調(diào)整

每個新版本對舊版編譯的代碼的兼容性有所不同。有些新版本可能不再支持一些舊版本的特性,或者對某些API的行為進行了修改。

4.錯誤修復和穩(wěn)定性改進

每一個新版本的CUDA都會修復一些已知的錯誤,并且提高CUDA的穩(wěn)定性和可靠性。這些改進使得新版本的CUDA在實際使用中更加穩(wěn)定,可以處理更多的任務(wù)。

5.支持更多計算架構(gòu)

每個CUDA版本都支持一系列的計算架構(gòu),隨著版本的升級,支持的計算架構(gòu)列表也會更新。有些新的計算價格可能只在新版本的CUDA中得到支持。例如:CUDA8.0,9.x,10.x。

CUDA8.0:● 費米 (Fermi,GTX580)●?開普勒(Kepler,GTX680,GTX780Ti,GTX Titan,Titan Z,Tesla K80)●?麥克斯韋(Maxwell,GTX980Ti,Titan X,Tesla M40)●?帕斯卡(Pascal,GTX1080Ti,Titan Xp,Tesla P100)

CUDA9.x:●?開普勒(Kepler,GTX680,GTX780Ti,GTX Titan,Titan Z,Tesla K80)●?麥克斯韋(Maxwell,GTX980Ti,Titan X,Tesla M40)●?帕斯卡(Pascal,GTX1080Ti,Titan Xp,Tesla P100)●?伏特(Volta,Titan V,Tesla V100)

CUDA10.x:●?開普勒(Kepler,GTX680,GTX780Ti,GTX Titan,Titan Z,Tesla K80)●?麥克斯韋(Maxwell,GTX980Ti,Titan X,Tesla M40)●?帕斯卡(Pascal,GTX1080Ti,Titan Xp,Tesla P100)●?伏特(Volta,Titan V,Tesla V100)●?圖靈(Turing,RTX2080Ti,Titan RTX,Tesla T4)經(jīng)過多年優(yōu)化與迭代,CUDA已經(jīng)形成獨特軟硬件配合的生態(tài)系統(tǒng),為英偉達GPU產(chǎn)品構(gòu)建了極深的護城河。

六、CUDA應(yīng)用場景:從圖形處理到科學計算,持續(xù)探索創(chuàng)新應(yīng)用領(lǐng)域

時至今日,支持CUDA的GPU銷量已經(jīng)超過1億,成千上萬的軟件開發(fā)人員使用免費的CUDA軟件開發(fā)工具來解決各種應(yīng)用程序中的問題,而這些應(yīng)用程序從視頻與音頻處理和物理效果模擬到石油天然氣勘探、產(chǎn)品設(shè)計、醫(yī)學成像以及科學研究,涵蓋了各個領(lǐng)域。

1.圖形渲染與視覺效果作為GPU技術(shù)的基石,CUDA不僅加速了3D圖形渲染,還促進了電影特效、建筑設(shè)計可視化、游戲開發(fā)等領(lǐng)域的實時渲染和物理模擬。

2.深度學習人工智能CUDA是推動深度學習革命的關(guān)鍵技術(shù)之一。它支持諸如TensorFlow、PyTouch等主流深度學習框架,加速神經(jīng)網(wǎng)絡(luò)的訓練和推理過程,廣泛應(yīng)用于圖像識別、自然語言處理等AI應(yīng)用。

3.科學計算與工程模擬在物理與化學模擬、氣候研究、天文學、生物信息學等領(lǐng)域,CUDA被用來加速復雜的數(shù)值計算和模擬過程,例如分子動力學模擬軟件AMBER就利用CUDA來加速新藥的研發(fā)(AMBER 是一款分子動力學模擬程序,全世界在學術(shù)界與制藥企業(yè)中有超過60,000名研究人員使用該程序來加速新藥的探索工作)。

4.高性能計算與大數(shù)據(jù)處理在超級計算中心,CUDA被用于構(gòu)建高性能計算集群,例如德國、波蘭、日本的量子計算中心采用CUDA-Q平臺推進量子計算研究。另一方面,CUDA加速了大數(shù)據(jù)的清洗、轉(zhuǎn)換、分析流程,極大地提升了數(shù)據(jù)科學家和分析師的工作效率。CUDA賦予GPU新的生命!它讓GPU不再只是一個圖像加速處理器,而是成為一個通用計算器。它讓開發(fā)者不再只是一個游戲開發(fā)者,而是一個工程師、科學家、藝術(shù)家。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
ATMEGA128A-MU 1 Atmel Corporation RISC Microcontroller, 8-Bit, FLASH, AVR RISC CPU, 16MHz, CMOS, 9 X 9 MM, 1 MM HEIGHT, 0.50 MM PITCH, GREEN, MO-220VMMD, QFN-64

ECAD模型

下載ECAD模型
$5.69 查看
AT32UC3A0512-ALUR 1 Atmel Corporation RISC Microcontroller, 32-Bit, FLASH, AVR RISC CPU, 66MHz, CMOS, PQFP144, MS-026, LQFP-144
$14.01 查看
STM32H757XIH6TR 1 STMicroelectronics RISC Microcontroller
暫無數(shù)據(jù) 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜