NVDIA CUDA
---------GPU計(jì)算的革命
NVIDIA CUDA技術(shù)是基礎(chǔ)的新的計(jì)算架構(gòu),這個(gè)架構(gòu)將使用GPU來解決一些消費(fèi)、商業(yè)和技術(shù)工業(yè)領(lǐng)域復(fù)雜的計(jì)算問題。CUDA(計(jì)算標(biāo)準(zhǔn)設(shè)備架構(gòu))技術(shù)將通過革命性的計(jì)算架構(gòu)來使用NV的gpu的強(qiáng)大的處理能力,從而給數(shù)據(jù)密集型的應(yīng)用提供了完全不受限制的全新的計(jì)算能力。該架構(gòu)將通過標(biāo)準(zhǔn)的c語言來提供大量的高性能指令以及簡潔的程序開發(fā)方式,從而允許開發(fā)者創(chuàng)建一個(gè)解決辦法,該辦法將消耗更少的時(shí)間為數(shù)據(jù)密集型的處理提供足夠精確的解答。
什么是CUDA?
使用了CUDA的GPU計(jì)算通過標(biāo)準(zhǔn)的C語言將下一代NV GPU的總多計(jì)算特性結(jié)合到一起。在這之前的GPU是基于“流式著色程序”的,CUDA則使用C語言,通過“線程”來創(chuàng)建應(yīng)用程序,這類似于CPU上的多線程程序。相比較于僅能有很少線程同時(shí)工作的多核CPU的而言,NV GPU的特性可以讓CUDA同時(shí)執(zhí)行數(shù)千個(gè)線程,這將令我們的應(yīng)用能處理更多的信息流。
CUDA所提供的最重要的創(chuàng)新在于,它使得工作在GPU上的線程可以協(xié)作解決問題。在線程間通訊實(shí)現(xiàn)以后,CUDA將允許應(yīng)用程序更加高效的執(zhí)行。由NV GPUs的支持,CUDA有一個(gè)直接在GPU上的并行計(jì)算緩存,它用于保存頻繁使用的信息。在GPU上保存信息可以讓計(jì)算線程即刻得到共享數(shù)據(jù)而不是去漫長的等待off-chip的DRAM上的數(shù)據(jù)。它能讓用戶實(shí)時(shí)的計(jì)算出復(fù)雜問題的答案。
通過CUDA應(yīng)用程序所能獲得的好處
CUDA GPU運(yùn)算廣泛適用于需要處理大量數(shù)據(jù)的應(yīng)用。例如,在游戲中我們可以使用CUDA來讓GPU承擔(dān)整個(gè)物理計(jì)算,而玩家將會獲得另他們感到驚奇的性能和視覺效果。另外,用于產(chǎn)品開發(fā)和巨量數(shù)據(jù)分析的商業(yè)軟件也可以通過它來使用一臺工作站或者服務(wù)器完成以前需要大規(guī)模的計(jì)算系統(tǒng)才能完成的工作。這一技術(shù)突破使得客戶可以任何地方進(jìn)行實(shí)時(shí)分析與決策。同時(shí),一些以前需要很先進(jìn)的計(jì)算技術(shù)來達(dá)到的強(qiáng)大計(jì)算能力的科學(xué)應(yīng)用程序,也不再受限在計(jì)算密度上;使用CUDA的計(jì)算可以在現(xiàn)有的空間里為平臺提供更強(qiáng)大的計(jì)算性能。
為何使用CUDA?
性能:NV GPU為數(shù)據(jù)密集型的應(yīng)用提供了超乎想象的性能。CUDA給了我們一個(gè)標(biāo)準(zhǔn)的、廣泛使用的解決方案來給予新的應(yīng)用前所未有的計(jì)算能力。
兼容性:使用CUDA C-Compiler開發(fā)的程序?qū)⑾蚝蠹嫒軳V的GPU。開發(fā)人員在GPU計(jì)算方面所做的投資將立刻在現(xiàn)有GPU的性能上得到回報(bào),同時(shí)也將一定會在NV以后的高性能技術(shù)中獲得收益。
生產(chǎn)力:開發(fā)者現(xiàn)在可以使用工業(yè)化的標(biāo)準(zhǔn)的C語言來使用他們所希望獲得的GPU的計(jì)算能力。CUDA提供了完整的開發(fā)解決方案,這一方案整合了CPU和GPU,這將令開發(fā)人員非常迅速地為他們的客戶提供最新的特征和更多的價(jià)值。
伸縮性:使用CUDA開發(fā)的應(yīng)用程序在性能和特性上可以應(yīng)用于全線的NV的GPU,從嵌入式GPU到使用多GPU的高性能專業(yè)圖形解決方案。CUDA事實(shí)上已經(jīng)可以在從大型的計(jì)算設(shè)備到個(gè)人消費(fèi)級產(chǎn)品的任何層次的系統(tǒng)中運(yùn)行。
使用CUDA的軟件開發(fā)
CUDA開發(fā)包是一個(gè)完整的使用GPU的軟件開發(fā)方案。在SDK包含了標(biāo)準(zhǔn)的FFT和BLAS庫、使用NV GPU的C編譯器和運(yùn)行時(shí)驅(qū)動(dòng)。CUDA運(yùn)行時(shí)驅(qū)動(dòng)是與常用的同DX和GL協(xié)同工作的驅(qū)動(dòng)獨(dú)立的。同時(shí)CUDA對Linux和XP的支持也是相同的。
技術(shù)特性
CUDA為線程計(jì)算提供了一個(gè)統(tǒng)一的硬件和軟件解決方案來使用支持CUDA的GPU
可支持CUDA的GPU為高性能計(jì)算提供并行數(shù)據(jù)緩沖和線程執(zhí)行管理器的支持
可以在GPU上使用的標(biāo)準(zhǔn)C語言
提供了標(biāo)準(zhǔn)數(shù)值庫FFT和BLAS
為計(jì)算提供了獨(dú)立的CUDA驅(qū)動(dòng)
優(yōu)化了GPU和CPU之間的數(shù)據(jù)通信路徑
CUDA驅(qū)動(dòng)可以在圖形設(shè)備之間互操作
支持 LINUX 與 XP 操作系統(tǒng)
從高性能的專業(yè)圖形解決方案到移動(dòng)和嵌入式GPU均能使用
為高計(jì)算密度程序內(nèi)建多GPU支持
為程序開發(fā)和優(yōu)化提供硬件調(diào)試的性能測試的支持