版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
關(guān)于用于通用計(jì)算圖形處理器調(diào)研匯報一.引言1.1GPU介紹GPU,即圖形處理器(GraphicProcessingUnit),是一個相對于CPU概念,它專門用來在個人電腦、工作站或游戲機(jī)上處理圖形,影像等運(yùn)算微處理器。它是顯卡心臟,和顯卡板載內(nèi)存成為一個子系統(tǒng),共同決定計(jì)算機(jī)系統(tǒng)圖形處理性能。越來越多圖形應(yīng)用使得GPU在當(dāng)代計(jì)算機(jī)中作用越來越主要,在CPU主宰計(jì)算機(jī)性能幾十年后,GPU近十年中快速崛起,甚至幾乎達(dá)成了和CPU平起平坐地位。GPU是NVIDIA企業(yè)在1999年公布GeForce256繪圖處理芯片時首先提出概念,在此之前,電腦中處理影像輸出顯示芯片,通常極少被視為是一個獨(dú)立運(yùn)算單元。而ATI亦提出VPU(VideoProcessingUnit)概念。GPU使顯卡降低了對CPU依賴,并分擔(dān)了部分原本是由CPU所擔(dān)當(dāng)工作,尤其是在進(jìn)行3D圖形處理時,功效愈加顯著。GPU所采取關(guān)鍵技術(shù)有硬件座標(biāo)轉(zhuǎn)換與光源、立方環(huán)境材質(zhì)貼圖和頂點(diǎn)混合、紋理壓縮和凹凸映射貼圖、雙重紋理四像素256位渲染引擎,硬體T&L(TransformandLighting,多邊形轉(zhuǎn)換與光源處理)技術(shù)等,其中,硬體T&L能夠說是GPU標(biāo)志。1.2基于GPU通用計(jì)算傳統(tǒng)上,GPU應(yīng)用被局限于處理圖形渲染計(jì)算任務(wù),對于擁有先天強(qiáng)大并行計(jì)算能力GPU來說,這無疑是對計(jì)算資源極大浪費(fèi)。伴隨GPU可編程性不停提升,利用GPU完成通用計(jì)算研究漸漸活躍起來。將GPU用于圖形渲染以外領(lǐng)域計(jì)算稱為GPGPU(General-PurposeComputingonGraphicsProcessingUnits,基于GPU通用計(jì)算)。GPGPU通常采取CPU+GPU異構(gòu)模式,由CPU負(fù)責(zé)執(zhí)行復(fù)雜邏輯處理和事務(wù)管理等不適合數(shù)據(jù)并行計(jì)算,由GPU負(fù)責(zé)處理密集型大規(guī)模數(shù)據(jù)并行計(jì)算。這種利用GPU強(qiáng)大處理能力和高存放帶寬填補(bǔ)CPU性能不足計(jì)算方式,在發(fā)掘計(jì)算機(jī)潛在計(jì)算性能,及控制成本和性價比等方面有顯著優(yōu)勢。不過,傳統(tǒng)GPGPU受硬件可編程性和開發(fā)方式制約,應(yīng)用領(lǐng)域受到了限制,開發(fā)難度也很大。從系統(tǒng)架構(gòu)上看,GPU是針對向量計(jì)算進(jìn)行了優(yōu)化高度并行數(shù)據(jù)流處理器,其中包含兩種流處理單元:頂點(diǎn)處理流水線(VertexShader)是多指令多數(shù)據(jù)流(MIMD)處理單元,而像素處理流水線(PixelShader)則是單指令多數(shù)據(jù)流(SIMD)處理單元。這種以數(shù)據(jù)流作為處理單元處理器,在對數(shù)據(jù)流處理上能夠獲取較高效率,所以最近幾年,很多研究人員開創(chuàng)了一個新研究領(lǐng)域,即GPGPU,其主要研究內(nèi)容就是除了在圖形處理這個方面以外,怎樣利用GPU來進(jìn)行更為廣泛應(yīng)用計(jì)算。最早GPGPU開發(fā)直接使用了圖形學(xué)API編程。這種開發(fā)方式要求編程人員將數(shù)據(jù)打包成紋理,將計(jì)算任務(wù)映射為對紋理渲染過程,用匯編或者高級著色器語言(如GLSL、Cg、HLSL)編寫shader程序,然后經(jīng)過圖形學(xué)API(Direct3D、OpenGL)執(zhí)行。這種“曲線救國”方式要求編程人員不但要熟悉自己需要實(shí)現(xiàn)計(jì)算和并行算法,還要對圖形學(xué)硬件和編程接口有深入了解。因?yàn)殚_發(fā)難度大,傳統(tǒng)GPGPU并沒有被廣泛應(yīng)用。,斯坦福大學(xué)IanBuck等人對ANSIC進(jìn)行擴(kuò)展,開發(fā)了基于NVIDIACgBrook源到源編譯器。Brook能夠?qū)㈩愃艭brookC語言經(jīng)過brcc編譯器編譯為Cg代碼,隱藏了利用圖形學(xué)API實(shí)現(xiàn)細(xì)節(jié),大大簡化了開發(fā)過程。但早期Brook編譯效率很低,而且只能使用像素著色器進(jìn)行運(yùn)算。受GPU架構(gòu)限制,Brook也缺乏有效數(shù)據(jù)通信機(jī)制。二.基于GPU通用計(jì)算發(fā)展現(xiàn)實(shí)狀況最先是ATI(現(xiàn)AMD)提出了通用計(jì)算概念,并搶先公布了自家通用計(jì)算平臺Stream,但因?yàn)榉N種原因后續(xù)開發(fā)工作不是非常理想;而后NVIDIA企業(yè)開發(fā)了名為CUDA通用GPU計(jì)算開發(fā)包給業(yè)界,并小有結(jié)果,暫時處于領(lǐng)先位置,其定位于通用計(jì)算TESLA系列產(chǎn)品和CUDA架構(gòu)已經(jīng)開始得到大量應(yīng)用。而英特爾方面也在緊鑼密鼓地開發(fā)自己新一代顯示芯片——Larrabee,一個集成了10個x86處理器圖形顯示單元,能夠輕易將其轉(zhuǎn)換為通用計(jì)算單元。另外,伴隨AMD收購ATI,AMD也日益重視用于通用計(jì)算領(lǐng)域GPU產(chǎn)品這塊蛋糕,在不停宣傳自己通用計(jì)算產(chǎn)品和STREAM架構(gòu)同時,還力推OPENCL發(fā)展。而OPENCL則是建立在不一樣處理器架構(gòu)上,比喻說x86CPU、CUDA架構(gòu)GPU和STREAM架構(gòu)GPU、Cell處理器乃至于ARM構(gòu)架DSP處理芯片等等一個標(biāo)準(zhǔn)開放計(jì)算語言,得到了業(yè)界除了微軟以外絕大部分廠商支持,因?yàn)槲④浻凶约篋irectCompute,一樣支持基于不一樣架構(gòu)GPU通用計(jì)算。2.1NVIDIACUDA6月,NVIDIA推出了CUDA(ComputeUnifiedDeviceArchitecture,統(tǒng)一計(jì)算設(shè)備架構(gòu))。CUDA是一個將GPU作為數(shù)據(jù)并行計(jì)算設(shè)備軟硬件體系。到現(xiàn)在為止,CUDA版本已經(jīng)進(jìn)行了三次版本提升,功效不停完善,能夠很好地支持新硬件特征。CUDA不需要借助于圖形學(xué)API,并采取了比較輕易掌握類C語言進(jìn)行開發(fā)。開發(fā)人員能夠從熟悉C語言比較平穩(wěn)地從CPU過渡到GPU,而無須重新學(xué)習(xí)語法。當(dāng)然,要開發(fā)高性能GPU通用計(jì)算程序,開發(fā)人員依然需要掌握并行算法和GPU架構(gòu)方面知識。與以往GPU相比,支持CUDAGPU在架構(gòu)上有了顯著改進(jìn),這兩項(xiàng)改進(jìn)使CUDA架構(gòu)愈加適適用于GPU通用計(jì)算。一是采取了統(tǒng)一處理架構(gòu),能夠愈加有效地利用過去分布在頂點(diǎn)渲染器和像素渲染器計(jì)算資源;二是引入了片內(nèi)共享存放器,支持隨機(jī)寫入(scatter)和線程間通信。2.1.1GT200硬件架構(gòu)圖2.1GPU處理關(guān)鍵架構(gòu)經(jīng)過NVIDIA旗艦產(chǎn)品GT200系列關(guān)鍵架構(gòu)圖能夠看到,總共擁有十個流處理器陣列,每個陣列內(nèi)部擁有8×3=24個SM(多核流處理器),其中每8個為一組組成SIMT(單指令多線程架構(gòu)),并共享16K指令緩存,三組SIMT共享一級緩存。這么標(biāo)量流處理器設(shè)計(jì)適合執(zhí)行高度并行化指令,不論對于傳統(tǒng)圖形渲染,還是物理加速運(yùn)算、大規(guī)模數(shù)據(jù)處理都游刃有余。所以,第二代統(tǒng)一渲染架構(gòu)主要含義,就是將圖形處理架構(gòu)和并行計(jì)算架構(gòu)完美結(jié)合起來,成為一顆真正意義上通用處理器,超越圖形處理器概念在每個SM內(nèi)部,除了包含8個SP(流處理器)之外,還有包含1個SFU(SpecialFunctionUnit,特殊功效單元),這個處理單元能夠用來輔助SP處理特殊函數(shù)運(yùn)算、插值屬性頂點(diǎn)+像素著色、執(zhí)行浮點(diǎn)乘法運(yùn)算指令(MUL)。GT200關(guān)鍵每個流處理器都能夠單獨(dú)執(zhí)行一條乘加指令(Multiplu-Add,也就是同時執(zhí)行一條乘法和一條加法指令),與此同時SFU還能夠在相同時鐘周期執(zhí)行另外一條乘法指令,相當(dāng)于每個流處理器都能同時執(zhí)行3條指令。GT200浮點(diǎn)運(yùn)算能力計(jì)算公式為:流處理器數(shù)×指令數(shù)×頻率=240×3×1296=933GFLOPS。NVIDIA將GT200關(guān)鍵設(shè)計(jì)成為圖形渲染架構(gòu)和并行計(jì)算架構(gòu)統(tǒng)一體,對于Dual-Issue效率深入優(yōu)化,達(dá)成了93%之高,這么雙指令執(zhí)行效率能夠讓GT200實(shí)際性能無限靠近于理論值。GT200關(guān)鍵每一個SM都包含了一個雙精度64Bit浮點(diǎn)運(yùn)算單元,這么GT200就相當(dāng)于一個30關(guān)鍵雙精度64Bit處理器,但GPU頻率要比CPU低很多,所以GT200理論64Bit浮點(diǎn)運(yùn)算能力大約與Intel頂級八關(guān)鍵至強(qiáng)處理器相當(dāng)。雙精度運(yùn)算量是單精度八倍,所以理論浮點(diǎn)運(yùn)算能力只有原來1/8,GT280雙精度64Bit浮點(diǎn)運(yùn)算能力大約在90GFLOPS左右。2.1.2CUDA軟件架構(gòu)CUDA主要提供了CUDAC和對應(yīng)COMPILER,CUDA庫,CUDARUNTIMEAPI和CUDADRIVERAPI。CUDAC其實(shí)就是C擴(kuò)展;CUDA庫包含了很多有用數(shù)學(xué)應(yīng)用,如CUFFT等;CUDARUNTIME其實(shí)就是個JIT編譯器,動態(tài)地將PTX中間代碼編譯成符合實(shí)際平臺硬件代碼,并作特定優(yōu)化;CUDADRIVER則是直接對應(yīng)API與GPU打交道接口;Nvcc編譯器能夠?qū)UDAC編譯成純C或者PTX或者GPUBIN。圖2.2CUDA軟件架構(gòu)下面以GT200系列為例,分析一下CUDA運(yùn)行情況,
在CUDA中程序執(zhí)行區(qū)域分為兩部分,CPU和GPU——HOST和DEVICE,任務(wù)組織和發(fā)送是在CPU里完成,但并行計(jì)算是在GPU里完成,每當(dāng)CPU碰到需要并行計(jì)算任務(wù),則將要做運(yùn)算組織成kernel,然后分配給GPU去執(zhí)行。CUDA在把任務(wù)正式提交給GPU前,會對kernel做些處理,讓kernel符合GPU體系架構(gòu),能夠把GPU想想成擁有上百個核CPU,把kernel當(dāng)成一個要創(chuàng)建為線程函數(shù),所以CUDA要將kernel創(chuàng)建上百個thread送到GPU中各個核上去運(yùn)行,但為了愈加好利用GPU資源,提升并行度,CUDA還要將這些thread加以優(yōu)化組織,將能利用共有資源線程組織到一個threadblock中,同一threadblock中thread能夠經(jīng)過shareDmemory共享數(shù)據(jù),每個threadblock最高可擁有512個線程。擁有一樣維度一樣kernelthreadblock被組織成一個grid,而CUDA處理任務(wù)最大單元便是grid了。這是CUDA中能夠使用內(nèi)存種類:
registers(Read-writeper-thread)
localmemory(Read-writeper-thread)
sharedmemory(Read-writeper-block)
globalmemory(Read-writeper-grid)
constantmemory(Read-onlyper-grid)
texturememory(Read-onlyper-grid)
GridGridGlobalMemoryBlock(0,0)SharedMemoryThread(0,0)RegistersThread(1,0)RegistersBlock(1,0)SharedMemoryThread(0,0)RegistersThread(1,0)RegistersHost圖2.3CUDA線程層次grid是怎樣在GPU上執(zhí)行呢?首先,每個SM最多能分配8個threadblock或者1024個thread,以待執(zhí)行,然后將這些thread組織成warp,每個warp包含32個thread,因?yàn)镾P執(zhí)行延遲通常是4個周期,類似執(zhí)行管線長度有4級,所以每個SP同時能夠執(zhí)行4條相同指令來充分消除這些延遲而一個SM中有8個SP,所以能夠同時執(zhí)行32個指令??梢奊T200SM一次可執(zhí)行不一樣數(shù)據(jù)32條相同指令,而且能夠同時亂序執(zhí)行32個warp,因?yàn)楹芏嘀噶顖?zhí)行都是有延遲,比如等候輸入等,所以這時候就能夠切換到另外一個不用等候warp指令執(zhí)行了。很顯然SM沒有分支預(yù)測部分,也沒有錯誤恢復(fù)機(jī)制,SM假設(shè)沒有隨機(jī)執(zhí)行指令,所以在碰到分支時候,SM必須等候分支跳轉(zhuǎn)地址計(jì)算完成才取下面指令,而后才開始繼續(xù)工作。2.2ATISTREAMAMD/ATI企業(yè)在其GPGPU通用計(jì)算產(chǎn)品Stream中采取了Brook改進(jìn)版本Brook+作為高級開發(fā)語言。Brook+編譯器工作方式與Brook不一樣,提升了效率。在推出Brook+1.3,在語法和編程模型上有顯著改進(jìn),并具備有效線程間數(shù)據(jù)通信伎倆,遺憾是,因?yàn)橥茝V不力,AMD將不再繼續(xù)升級BROOK+,轉(zhuǎn)而推進(jìn)并支持OPENCL。
ATI流計(jì)算模型包含了一套軟件系統(tǒng)以及ATI流處理器。下列圖展示了ATI流處理模塊之間關(guān)系:
圖2.4ATISTREAM架構(gòu)ATI流計(jì)算軟件為客戶端用戶提供了一個靈活完整接口,從而使開發(fā)人員充分利用ATI硬件特征進(jìn)行流計(jì)算。
軟件主要分為下面幾個模塊:編譯器:把Brook+內(nèi)核代碼編譯成為獨(dú)立C++文件以及IL代碼。流處理器設(shè)備驅(qū)動:ATI流計(jì)算抽象模型(CAL)。性能分析工具:StreamKernelAnalyzer,能夠及時編譯Brook+,IL代碼,而且分析程序性能。性能庫:AMD關(guān)鍵數(shù)學(xué)庫(ACML),這部分是專用于特定領(lǐng)域。在最新一代ATI流處理器中,編程模型應(yīng)用一個通用Shader語言??删幊塘魈幚砥髂軌驁?zhí)行用戶指定各種程序,這些程序被稱為內(nèi)核函數(shù)(Kernel)。這些流處理器能夠以一個單指令多數(shù)據(jù)(SIMD)形式執(zhí)行一些與圖形完全無關(guān)任務(wù)。這種編程模型被稱為流計(jì)算,內(nèi)存中存放大量相同類型數(shù)據(jù)能夠被分配到不一樣SIMD引擎中進(jìn)行處理,從而生成輸出數(shù)據(jù)。每一個在SIMD引擎中被處理實(shí)例被稱作為線程(Thread)。在每個Pass里,能夠有大量線程被映射到一個矩形區(qū)域中,這個矩形區(qū)域被稱為執(zhí)行區(qū)域(DomainofExecution)。流計(jì)算處理器為每組線程都分配到一組線程處理器(ThreadProcessor)中,直到全部線程都被處理。只有之前線程完成計(jì)算之后,后面線程才能夠得四處理。下列圖為一個簡化ATI流計(jì)算模型:
圖2.5STREAM架構(gòu)流計(jì)算模型
圖2.6流處理器簡易模型上圖為ATI流處理器簡易模型。不一樣型號GPU會有不一樣性能參數(shù)(比如SIMD引擎數(shù)量),不過基本都是一樣模型。一個流處理器里面包含很多SIMD引擎。每個SIMD引擎又包含了很多Thread處理器,每個線程處理器能夠?qū)τ讵?dú)立數(shù)據(jù)進(jìn)行內(nèi)核所要求操作。線程處理器還不算是最小處理單元,一個線程處理器里面還包含了一定數(shù)量流計(jì)算關(guān)鍵,這些關(guān)鍵才是最基本進(jìn)行處理單元,他們能夠進(jìn)行整數(shù),單精度浮點(diǎn)數(shù),雙精度浮點(diǎn)數(shù)等操作。在同一時間內(nèi),一個SIMD引擎中全部線程處理器都執(zhí)行相同指令集,不一樣SIMD引擎是能夠執(zhí)行不一樣指令。
圖2.7ATISTREAM硬件架構(gòu)一個線程處理器中能夠同時最多處理五條指令。我們看到上圖中,一個線程處理器中有五個Streamcore。其中一個是能夠計(jì)算超越函數(shù),剩下四個能夠同時計(jì)算當(dāng)精度浮點(diǎn)數(shù)。雙精度浮點(diǎn)數(shù)處理是經(jīng)過把四個streamcore合起來才能夠處理,所以相對來說要慢一些。除了streamcore,每個線程處理器實(shí)際還包含一個流控制器,他能夠處理一些條件分支情況。不一樣型號GPU細(xì)節(jié)參數(shù)都是不一樣。比如,在ATIRadeon3870GPU(RV670)這款GPU里面一共包含了4個SIMD引擎,每個SIMD引擎里面有16個線程處理器,而且每個處理器里面有5個streamcore。一共是320個物理處理關(guān)鍵單元。但同一個cycle中,每個SIMD引擎中全部線程處理器都必須執(zhí)行同一指令。為了隱藏內(nèi)存訪問所帶來延遲,線程在發(fā)送了內(nèi)存訪問命令之后會被立刻切換。GPU流處理器里面Cache并沒有CPU多,對于內(nèi)存訪問優(yōu)化是經(jīng)過線程之間切換來進(jìn)行。在一個線程處理器中,每4個cycle中,實(shí)際能夠?qū)τ诰€程處理器指定四條指令。比如,還是剛才那個3870例子中,16個線程處理器執(zhí)行一樣指令,每個線程處理器中能夠一次執(zhí)行四條指令(因?yàn)槊總€線程處理器中有4個streamcore)。實(shí)際上,從外部看,3870SIMD引擎能夠同時處理64條指令。被同時執(zhí)行全部線程集合被稱為wavefront。這里面我們能夠了解為3870wavefront大小是64。wavefront大小是依照GPU型號不一樣而可變。比如,HD2600和HD2400wavefront大小分別是32和16,而AMDFireStream9170wavefront大小就是64了。在ATI流計(jì)算模型中,有三種內(nèi)存模型:host端內(nèi)存:這部分內(nèi)存就是host程序數(shù)據(jù)內(nèi)存等。他能夠被host端訪問,不過不能被GPUkernel訪問。PCIe內(nèi)存:這部分內(nèi)存能夠被host端或者GPU端訪問,不過要做好同時工作。在CAL里面要用calCtxIsEventDone函數(shù),Brook+和OpenCL都已經(jīng)把這些內(nèi)容透明了,用戶能夠無視。Local內(nèi)存:這里局部是相對于GPU來說,那么很顯然,這種內(nèi)存是能夠被GPU訪問,不過不能被host端訪問。有三種方式能夠拷貝內(nèi)存到流處理器內(nèi)存(局部內(nèi)存)中:經(jīng)過calResMap經(jīng)過calCtxMemCopy經(jīng)過一些自定義內(nèi)核函數(shù)從PCIe內(nèi)存中拷貝。高效流處理器分配機(jī)制能夠很好隱藏內(nèi)存訪問所帶來延遲。訪問全局內(nèi)存cycle數(shù)量級在200左右,而訪問sharedmemory或者register就會在幾個cycle內(nèi)搞定。這個差距是非常大。所認(rèn)為了能夠有效隱藏全局訪問延遲,我們需要讓計(jì)算更密集。就是說在盡可能少訪問內(nèi)存情況下,多進(jìn)行計(jì)算操作。另外還要有足夠線程數(shù)量,上面例子是個最簡單例子,訪問全局延遲遠(yuǎn)遠(yuǎn)要大于四個指令讀取命令。一定要盡可能確保線程數(shù)量足夠,這么才能最好利用GPU硬件特征。當(dāng)然,這里絕對不是說為了愈加好利用硬件,要增加一些無關(guān)計(jì)算,以及一些無用線程。線程當(dāng)然是越少越快,不過假如少到一定程度,甚至比streamcore數(shù)量還要少,GPU利用率是非常低。2.3INTELLarrabeeLarrabee將是Intel第一款獨(dú)立圖形處理器。它將是一款能夠執(zhí)行和多核CPU一樣任務(wù)、不過經(jīng)過提供更多處理數(shù)據(jù)通道來交付更多并行性多核處理器。Larrabee與AMD、NVIDIA通用計(jì)算圖形處理器技術(shù)不一樣,后二者使用StreamProcessing(流處理)來滿足對GPU計(jì)算需求。而Larrabee基于傳統(tǒng)x86架構(gòu),是一個可編程多關(guān)鍵架構(gòu),不一樣版本會有不一樣數(shù)量關(guān)鍵,并使用經(jīng)過調(diào)整x86指令集,性能上將會達(dá)成萬億次浮點(diǎn)運(yùn)算級別。值得注意是,Larrabee中處理關(guān)鍵為次序執(zhí)行關(guān)鍵,與CPU中亂序執(zhí)行關(guān)鍵不一樣。在Larrabee內(nèi)部,每一個處理關(guān)鍵都能夠發(fā)出2條指令,這種架構(gòu)是繼承了最初飛躍處理器設(shè)計(jì)。首先Larrabee架構(gòu)具備衍生自雙指令執(zhí)行Pentium處理器純量管線,并采取具備完整連貫性高速緩存架構(gòu)短執(zhí)行管線。Larrabee架構(gòu)提供顯著最新改良技術(shù),如寬幅向量處理單元、多線程、64位延伸指令,以及精密指令預(yù)取功效。這將促使可用之運(yùn)算能力大幅提升,并能發(fā)揮程序設(shè)計(jì)師對英特爾架構(gòu)熟悉度及輕易入門程序開發(fā)優(yōu)勢。同時Larrabee執(zhí)行流水線階層非常短,最初Pentium處理器執(zhí)行流水線僅有5個階層,這意味著擁有不錯運(yùn)算效率。Larrabee將包含數(shù)個支持繪圖及其余應(yīng)用程序固定功效邏輯區(qū)塊,這些運(yùn)算單元被慎重選取以平衡及強(qiáng)化每瓦效能,并對架構(gòu)彈性與可編程化能力有所貢獻(xiàn)。Larrabee原生程序設(shè)計(jì)模式支持高度平行運(yùn)算應(yīng)用程序,亦包含采取非規(guī)則性數(shù)據(jù)結(jié)構(gòu)運(yùn)算。這項(xiàng)特征將促使繪圖API開發(fā)、新繪圖算法更加快速創(chuàng)新,以及在繪圖處理器上執(zhí)行以現(xiàn)有個人計(jì)算機(jī)軟件開發(fā)工具軟件所實(shí)作之真正通常目標(biāo)運(yùn)算。圖2.7三種架構(gòu)對比在算矢量處理單元部分。Pentium因?yàn)樵O(shè)計(jì)年代久遠(yuǎn),未曾出現(xiàn)過SIMD單指令多數(shù)據(jù)單元,而Larrabee在這方面有了巨大飛躍,支持16路矢量ALU算數(shù)邏輯單元。其運(yùn)算效能非常強(qiáng)大,這16路能夠同時執(zhí)行32bit浮點(diǎn)操作,這比INTEL所生產(chǎn)過任何處理器都要強(qiáng)大許多。介于Larrabee本身架構(gòu)優(yōu)勢,這些矢量單元會愈加好發(fā)揮其作用。INTEL在指令預(yù)取方面會為Larrabee做更多海量并行數(shù)據(jù)處理方面優(yōu)化。Larrabee全部超強(qiáng)性能,都是基于這16路矢量ALU邏輯運(yùn)算單元。這僅僅是Larrabee一個關(guān)鍵,當(dāng)它用于處理3D圖像時候,其內(nèi)部還有很多關(guān)鍵在并行工作。另外,INTEL還對Larrabee架構(gòu)指令集擴(kuò)展進(jìn)行了優(yōu)化改進(jìn)。比如16-Widevector指令,streamprocessing最好化緩存控制指令等。另外64-bit指令也得到了支持。簡單得說就是以x86基本指令集為基礎(chǔ)加上適當(dāng)streamprocessing指令。另外聽說當(dāng)前GPU原生指令集與CPU指令集非常相同。INTEL關(guān)于Larrabee指令擴(kuò)展并沒有進(jìn)行詳細(xì)介紹。GPU也有L2緩存因?yàn)榛赑entium處理器架構(gòu),所以Larrabee一樣沿用了完整L1/L2緩存設(shè)計(jì)。在顯存控制器方面,AMD和NVIDIAGPU使用是64bit顯存控制器,而且在芯片內(nèi)只有一組控制器。鑒于INTELLarrabee采取多關(guān)鍵設(shè)計(jì),內(nèi)部需要更多顯存帶寬,Larrabee將采取1024-bit雙向環(huán)形總線,單向傳輸位寬為512-bit。在加上GDDR5顯存助力,Larrabee將會有不錯性能表現(xiàn)。Larrabee支持超高速相關(guān)性緩存,而且能夠跨越關(guān)鍵通信。L2高速緩存能夠被分割為2個部分,同時能夠用環(huán)形總線保持他們數(shù)據(jù)一致性。這么能夠促進(jìn)信息愈加好被傳遞,也讓繁重?cái)?shù)據(jù)處理變得愈加輕松。假如Larrabee全部處理關(guān)鍵都經(jīng)過一個雙向環(huán)形總線連接,每個方向提供512bit位寬。這條總線工作頻率,可能與Larrabee主頻相同。我們假設(shè)一下Larrabee運(yùn)行頻率為2GHz以上,那么這條總線將會提供非常高帶寬吞吐量,而且它工作頻率要遠(yuǎn)遠(yuǎn)高于AMDGPU。除此之外,Larrabee還同時能夠支持4路硬件線程。而Larrabee也能夠在CPU內(nèi)關(guān)鍵進(jìn)行4組套轉(zhuǎn)換。INTELCPU比如Nehalem都支持2-way多線程,Larrabee則為4-waymulti-threadCPU。而GPU產(chǎn)品中支持多線程則極少。GPU產(chǎn)品通常配置有數(shù)十以上線程硬件轉(zhuǎn)換功效。比如GeForceGT200在32存放器/線程時轉(zhuǎn)換為16warp。依照Larrabee資料,硬件多線程設(shè)計(jì)是為了在進(jìn)行編譯時候降低二級緩存等候時間為目標(biāo)。這與GPU硬件多threading不一樣。另外Larrabee硬件多線程比GPU少原因是架構(gòu)上不一樣。值得注意是,INTEL指出Larrabee“全方面支持IEEE標(biāo)準(zhǔn)單、雙精度浮點(diǎn)運(yùn)算”。相較于GPGPU來說,它最大優(yōu)勢就在于采取了大家熟悉x86架構(gòu)?,F(xiàn)在多數(shù)軟件工程師仍不熟悉怎樣將GPU應(yīng)用在多任務(wù)處理及平行運(yùn)算上,這點(diǎn)就占了不少優(yōu)勢。但遺憾是,Intel近日表示將推遲Larrabee圖形處理器商業(yè)公布,原本Intel計(jì)劃在明年推出這款芯片,現(xiàn)在也沒有公布新公布日期。Intel最初計(jì)劃在開始銷售這款多核芯片,不過現(xiàn)在日程卻落后下來,Intel表示這款芯片還處于開發(fā)階段,并仍將致力于交付這款圖形芯片,并將在明年深入討論這一計(jì)劃。Intel將在明年公布面向開發(fā)者Larrabee樣本,以及一系列寫入和測試針對這款芯片工具。2.4OpenCL
雙核處理器計(jì)算機(jī)主導(dǎo)市場已經(jīng)快有5個年頭了,但為數(shù)眾多應(yīng)用軟件到現(xiàn)在為止仍不能很好支持雙核CPU,就算能夠支持雙核,在未來面對四核、八核或更多關(guān)鍵處理器時又要重新開發(fā)。這個問題都是因?yàn)槠脚_差異造成,也正因?yàn)檫@種差異存在,嚴(yán)重降低了軟件在各個平臺之間移植和運(yùn)行效率,為了處理這個問題,6月中旬,負(fù)責(zé)推廣OpenGL等開放式行業(yè)標(biāo)準(zhǔn)KhronosGroup宣告,它將正式組建一個工作組,起草針對CPU和GPU這么異架構(gòu)系統(tǒng)進(jìn)行并行計(jì)算編程無償開放式API標(biāo)準(zhǔn)OpenCL(OpenComputingLanguage,即開放計(jì)算語言)。
OpenCL是第一個面向異構(gòu)系統(tǒng)通用目標(biāo)并行編程開放式、無償標(biāo)準(zhǔn),也是一個統(tǒng)一編程環(huán)境,便于軟件開發(fā)人員為高性能計(jì)算服務(wù)器、桌面計(jì)算系統(tǒng)、手持設(shè)備編寫高效輕便代碼,而且廣泛適適用于多關(guān)鍵處理器(CPU)、圖形處理器(GPU)、Cell類型架構(gòu)以及數(shù)字信號處理器(DSP)等其余并行處理器,在游戲、娛樂、科研、醫(yī)療等各種領(lǐng)域都有寬廣發(fā)展前景。
圖2.8OpenCL想成為各種處理器應(yīng)用一個交集正因?yàn)锳pple等很多大企業(yè)支持,OpenCL從項(xiàng)目立項(xiàng)到去年12月份公布1.0標(biāo)準(zhǔn),之間僅用了6個月時間;而且現(xiàn)在宣稱支持OpenCL,并參加其中組員幾乎涵蓋了全球主要處理器、計(jì)算芯片供給商。
圖2.9已經(jīng)宣告支持OpenCLIT企業(yè)為了確保通用計(jì)算,OpenCL從五個方面進(jìn)行了要求,這其中現(xiàn)有硬件平臺,也一樣包含有軟件平臺。1.系統(tǒng)調(diào)用全部硬件資源首先,OpenCL能夠調(diào)用系統(tǒng)內(nèi)全部計(jì)算資源,也就是說不論是CPU、GPU,還是今后額外加入?yún)f(xié)處理器,全部都能夠在公共計(jì)算平臺上得到調(diào)用。今后用戶在使用基于OpenCL標(biāo)準(zhǔn)編寫程序時,再也不會出現(xiàn)CPU占用率100%,而GPU占用率僅有1%這么不平衡現(xiàn)象了。在此基礎(chǔ)上,OpenCL還要加緊運(yùn)算速度并提升運(yùn)算效率,這個特點(diǎn)有點(diǎn)類似與現(xiàn)在分布式計(jì)算(也稱為“云計(jì)算”)——不一樣地方在于,云計(jì)算將龐大運(yùn)算任務(wù)分拆為很多小份,然后分配給互聯(lián)網(wǎng)上各臺計(jì)算機(jī);而OpenCL要做事情是將電腦中一個或者多個運(yùn)行程序按運(yùn)算量,平衡分配給系統(tǒng)中各個運(yùn)算部分。圖2.10OPENCL架構(gòu)OpenCL將系統(tǒng)中存放器抽象成一個全局內(nèi)存模型,比如我們使用計(jì)算機(jī)有4GB內(nèi)存、1GB顯存,但在OpenCL看來就是一個5GB存放器整體。不光是PC系統(tǒng),對于嵌入式設(shè)備中常見ARM、DSP、MIPS等處理關(guān)鍵,OpenCL也能夠提供良好支持。假如嵌入式處理器中集成有支持OpenCL規(guī)范3D、視頻加速模塊,這些模塊將飾演與ARM協(xié)處理器類似角色,深入加強(qiáng)系統(tǒng)性能。為了達(dá)成各種處理器平臺集中調(diào)用,OpenCL會將系統(tǒng)中各個處理器或者處理關(guān)鍵看作一個個處理單元。每個處理單元既能夠自行處理數(shù)據(jù),又能夠經(jīng)過OpenCL內(nèi)核進(jìn)行相互交流、提升工作效率。換句話講,程序員在寫程序時候面向是OpenCL內(nèi)核,他不用去管這個程序需要調(diào)用CPU,又或者調(diào)用GPU,將這些事情甩給OpenCL內(nèi)核去完成就能夠了。2.也是C擴(kuò)展對計(jì)算機(jī)編程有所了解人都知道,現(xiàn)在計(jì)算機(jī)語言種類繁多,最基礎(chǔ)機(jī)器語言生澀難懂,所以程序員們多使用高級語言。在高級語言中,又以C語言用途最廣、歷史也非常悠久,不論是微軟C++語言,又或者NVIDIACUDAAPI都基于C語言架構(gòu)體系。所以O(shè)penCL也將C語言作為并行程序模型基礎(chǔ),這么能夠讓廣大程序員輕松上手,并加緊OpenCL程序研發(fā)速度以及確??梢浦残?。3.與現(xiàn)有軟件體系通用OpenCL能否打開市場關(guān)鍵原因就是能否實(shí)現(xiàn)與現(xiàn)有軟件資源對接,并快速推出新軟件。舉個最顯著例子,能從OpenCL中獲益最大當(dāng)屬GPU通用計(jì)算程序,一直以來GPU硬件發(fā)展和OpenGL(及其它3DAPI,如DirectX)都是相輔相成;所以,OpenGL即使只是面向3D處理領(lǐng)域程序接口,但其調(diào)用GPU資源能力和效率是毋庸置疑。在此基礎(chǔ)之上,OpenCL在制訂詳細(xì)規(guī)范時,就能夠充分利用OpenGL現(xiàn)有一些特點(diǎn),“依葫蘆畫瓢”,從而能夠以更加快速度和更高效率來完成GPU通用計(jì)算程序。4.實(shí)現(xiàn)硬件平臺上通用正如文章開始時所說那樣,現(xiàn)在軟件開發(fā)商往往要針對多個平臺開發(fā)同一款軟件。這么一來,參加開發(fā)程序員就要吃透每一個硬件平臺結(jié)構(gòu)和開發(fā)特征,這么才能做出發(fā)揮該平臺特點(diǎn)軟件產(chǎn)品。毫無疑問地說,這是一個痛苦過程,不但要極大提升軟件開發(fā)成本,也會因?yàn)殚_發(fā)周期過長而失去市場先機(jī)。OpenCL就很好地考慮到這點(diǎn),在未來融入OpenCL設(shè)計(jì)軟件將大大提升其跨平臺時兼容性,不但要在PC、游戲主機(jī)、服務(wù)器這么大塊頭上實(shí)現(xiàn)通用,還要向下囊括掌上設(shè)備以及嵌入式平臺,即各種便攜游戲機(jī)、智能手機(jī)等等。我們能夠構(gòu)想一下,未來程序開發(fā)人員只需要編寫一套程序安裝包,然后用用戶自行對照自己硬件條件,經(jīng)過調(diào)整相關(guān)設(shè)置來實(shí)現(xiàn)不一樣體系平臺、不一樣性能平臺之間程序通用性。這么一來,OpenCL在實(shí)現(xiàn)通用計(jì)算同時,也完成了在各個硬件平臺上跨平臺運(yùn)行。5.承前啟后,向上兼容在PC(x86)平臺上,各類軟件能夠說95%以上實(shí)現(xiàn)向上兼容,為了確保程序延續(xù)性,OpenCL標(biāo)準(zhǔn)在制訂之初就考慮了向上兼容問題,這點(diǎn)相信也是從x86架構(gòu)上得到啟發(fā)。OpenCL開發(fā)人員表示,經(jīng)過可擴(kuò)展API以及通用庫文件來確保未來新硬件平臺也能夠運(yùn)行今天軟件。這么就讓OpenCL有了愈加好平臺延續(xù)性,為未來發(fā)展扎實(shí)了基礎(chǔ)。OpenCL并不是第一個基于通用計(jì)算標(biāo)準(zhǔn),不過三家競爭激烈半導(dǎo)體巨頭,在支持OpenCL問題上卻出奇一致。即使現(xiàn)有通用計(jì)算平臺已經(jīng)在分布式運(yùn)算、視頻加速方面取得了一定進(jìn)展,不過利用GPU或者是其它處理器進(jìn)行通用計(jì)算依然是一個新興市場。假如沒有一個強(qiáng)有力通用開放協(xié)議來支持,任何企業(yè)都難以憑借一己之力快速和有效推廣通用計(jì)算理念。有了OpenCL支持,通用計(jì)算市場這塊蛋糕將會快速膨脹,這對于任何一家參加其中企業(yè)來說,都遠(yuǎn)遠(yuǎn)優(yōu)于獨(dú)自推廣自己專屬平臺。即使OpenCL現(xiàn)在只是一個襁褓中嬰兒,處于主流操作系統(tǒng)(微軟)不支持、軟硬件開發(fā)未上正軌階段,不過不論怎樣,OpenCL向整個IT業(yè)走向通用計(jì)算大路上邁出了主要一步。按照其描繪藍(lán)圖,未來軟硬件都將從全平臺加速中取得極大性能提升。以IT產(chǎn)業(yè)發(fā)展速度,相信在很快未來,OpenCL和通用計(jì)算必將貫通整個IT產(chǎn)業(yè),帶來系統(tǒng)設(shè)計(jì)和搭配新理念,并大幅提升硬件系統(tǒng)性能功耗比。
2.5directcomputer在OpenCL組員當(dāng)中,缺乏了一個有分量名字——Microsoft,其實(shí)微軟自有打算。微軟DirectCompute是一個全新GPU計(jì)算應(yīng)用程序接口(API),運(yùn)行于GPU架構(gòu)之上,它與OpenCL一樣,為開發(fā)人員提供了并行計(jì)算API。當(dāng)前DX10GPU以及未來DX11GPU都能夠支持DirectCompute。它讓開發(fā)人員能夠利用GPU大規(guī)模并行計(jì)算能力,創(chuàng)造出引人入勝消費(fèi)級和專業(yè)級計(jì)算應(yīng)用程序。在3月于美國加州舊金山舉行游戲開發(fā)者大會(GDC)上,NVIDIA率先展示了預(yù)定年底推出DirectX11中主要功效即關(guān)于并行計(jì)算功效DirectCompute,NVIDIA展現(xiàn)三款Demo運(yùn)行于NVIDIA現(xiàn)有CUDA架構(gòu)上,WindowsVista和Windows7皆適用?,F(xiàn)有DX10類GPU和未來DX11CUDA架構(gòu)皆將支持DirectCompute,這讓開發(fā)人員能夠充分利用NVIDIAGPU強(qiáng)大平行運(yùn)算能力。DirectCompute在現(xiàn)在兩億顆DirectX10GPU和未來DirectX11GPU上運(yùn)行良好。我們知道,下一代主流操作系統(tǒng)Windows7關(guān)鍵組成部分首次包含了GPU(圖形處理器)計(jì)算,這也意味著GPU不再僅用于圖形。在Windows7中,CPU與GPU組成了協(xié)同處理環(huán)境。它們分工是,CPU運(yùn)算非常復(fù)雜序列代碼,而GPU則運(yùn)行大規(guī)模并行應(yīng)用程序。所以,CPU與GPU功效平衡,能夠提供更加快、更可視化用戶體驗(yàn)。而Windows7中增添最主要一個組成部分,就是針對GPU支持運(yùn)算應(yīng)用程序DirectComputeAPI。這種API使用戶能夠享受非凡視覺體驗(yàn)和互動體驗(yàn),比如高質(zhì)量視頻、照片等娛樂方式、方便快速與設(shè)備互動、反應(yīng)更加快更靈敏電腦、逼真游戲效果等。雙核處理器早已經(jīng)成為PC系統(tǒng)標(biāo)準(zhǔn)配置,三核、四核更是進(jìn)入主流市場,然而,現(xiàn)在只有為數(shù)不多游戲產(chǎn)品能夠?qū)Χ嗪似脚_提供良好支持,原因在于為多核平臺編程十分困難,只有高水準(zhǔn)開發(fā)者才能夠勝任,但顯然并不是全部游戲企業(yè)都有這么一流好手。所以,直到今天為主,仍有很多數(shù)游戲都還只能在單線程下工作,即只能支持CPU單核運(yùn)作,其它關(guān)鍵計(jì)算力無法得到充分發(fā)掘。只要開發(fā)者采取DirectX11作為開發(fā)平臺,那么代碼本身就能直接支持多核平臺,DirectX11在底層接管了多核平臺資源分配問題。DirectX11預(yù)示著多線程游戲真正步入現(xiàn)實(shí),我們才能夠說多關(guān)鍵處理器被真正派上了用場。對于一套四核游戲平臺,當(dāng)某個渲染場景中有些人像和它三個鏡像,DirectX11就會開啟四個線程進(jìn)行并行處理,效率顯然要比現(xiàn)在單線程處理方式快上數(shù)倍。而更令人興奮是:多線程技術(shù)不但適適用于DirectX11平臺,它同時也能夠讓現(xiàn)有DirectX10硬件受益。比如說基于DirectX11開發(fā)新款游戲,能夠很好支持多線程,而當(dāng)它在DirectX10硬件平臺上運(yùn)行時,多核優(yōu)化機(jī)能依然有效,前提是AMD和NVIDIA必須為各自DX10硬件開發(fā)出對應(yīng)驅(qū)動軟件才行——就現(xiàn)在看來,這項(xiàng)工作進(jìn)展非常順利。在DirectX11中,HLSL(MS'sHighLevelShaderLanguage,微軟高級程序語言)也被升級到5.0版本。HLSL與C語言比較類似,新版本改進(jìn)就是新增了類(Class)和接口(interface)支持,實(shí)現(xiàn)了面向?qū)ο笾С?。這么升級顯然順應(yīng)了時尚,不過我們相信依然會有很多程序員表示不滿,因?yàn)镠LSL5.0依然還不支持指針功效。
DirectX11技術(shù)改進(jìn)是漸進(jìn)式,并緊緊圍繞著開發(fā)者需求,多線程、Tessellation鑲嵌化技術(shù)、ComputeShader通用計(jì)算著色器、面向?qū)ο驢LSL5.0,這些特征都極具實(shí)用價值,開發(fā)者沒有拒絕理由。在微軟定義中,GPGPU和數(shù)據(jù)并行處理屬于一樣概念,它們能夠經(jīng)過GPU新并行處理模式ComputeShader來實(shí)現(xiàn),ComputeShader整合在Direct3D之中,能夠支持更多通用架構(gòu),通用數(shù)據(jù)結(jié)構(gòu)和通用算法。ComputeShader主要特征包含以下幾個方面:一是可預(yù)測線程調(diào)用。二是在線程之間共享存放器,從而減輕存放器壓力,降低無須要計(jì)算和I/O。三是離散寫入,增加了靈活性,能夠讀/寫任意數(shù)據(jù)結(jié)構(gòu),允許加入新算法以及整合Direct3D資源。它目標(biāo)應(yīng)用包含圖像/后處理、物理效果、光線追蹤、A-Buffer/OIT以及人工智能等等。ComputerShader并不像頂點(diǎn)著色器(VertexShader)和像素著色器(PixelShader)那樣作為管線一部分,而是與管線整合在一起。從管線輸出場景圖像經(jīng)過ComputeShader加工(比如加上光線追蹤效果或者物理加速效果),最終輸出成為最終圖像。我們已經(jīng)看到,一些新近上市應(yīng)用程序能夠利用GPU(圖形處理器)計(jì)算能力。它們展現(xiàn)了大幅性能提升。DirectCompute將讓開發(fā)人員能夠更輕易地編寫應(yīng)用程序以及為數(shù)以百萬計(jì)更多用戶帶來這些優(yōu)勢、提升數(shù)字媒體應(yīng)用程序性能。DirectCompute經(jīng)過讓數(shù)以百萬計(jì)Windows7操作系統(tǒng)用戶都能夠觸及這項(xiàng)技術(shù),將使GPU計(jì)算從小眾市場邁入主流?!斑@當(dāng)然意味著,在軟件行業(yè)中,編寫可利用GPU(以及愈加好地利用多個CPU關(guān)鍵)特定種類應(yīng)用程序?qū)⒆兊糜悠毡?。不論是OpenCL、DirectCompute還是GPU特有開發(fā)套件,GPU計(jì)算都將成為計(jì)算行業(yè)向前發(fā)展一支主要力量?!?.6小結(jié)讓GPU進(jìn)行通用計(jì)算已經(jīng)顯示出廣泛應(yīng)用前景,NVIDIA和AMD都推出了相關(guān)處理方案。伴隨OpenCL公布,計(jì)算將邁上一個新臺階,它將掀起GPU和CPU革命高潮,這就是異構(gòu)化計(jì)算API時代。現(xiàn)在,AMD和NVIDIA兩家企業(yè)都已經(jīng)推出了用于通用計(jì)算硬件平臺,還發(fā)展出Stream和CUDA架構(gòu)。不過,在開發(fā)者和硬件之間還有一條巨大鴻溝——怎樣讓一樣程序運(yùn)行于不一樣廠商平臺上,而OpenCL這個API出現(xiàn),將填平這道鴻溝。就如同3D游戲,用戶不論用哪家廠商顯示芯片都無所謂,只要芯片能夠支持游戲使用API就足夠了。另首先,在英特爾努力下,Larrabee腳步已經(jīng)離我們越來越近,這種劃時代CPU架構(gòu)看起來像是CPU和GPU混合體。在OpenCL問世之前,NVIDIA已經(jīng)推出了CUDA架構(gòu),而且出售了使用GPU芯片進(jìn)行并行計(jì)算Tesla系列計(jì)算產(chǎn)品。CUDA屬于架構(gòu)范圍,如同處理器X86架構(gòu)一樣,它包含指令集ISA和硬件計(jì)算引擎,還包含一款C語言編譯器,并支持C/C++/FORTRAN/OpenCL/DirectX11等通用語言和API。12月10日,在OpenCL公布之后兩天,NVIDIA宣告CUDA支持OpenCL。
盡管如此,NVIDIA依然希望在OpenCL或者DirectX11之外保留自己一些東西,尤其是CUDAC語言,它是C語言擴(kuò)展,能夠用于CUDA平臺計(jì)算工具開發(fā)。CUDAC語言更適合使用高級C語言用戶,通常程序員不需要熟悉圖形語言就能夠使用CUDA,而OpenCL則可訪問較低層次硬件。經(jīng)過生成PTX代碼,最終這些代碼被GPU執(zhí)行。現(xiàn)在在異構(gòu)化計(jì)算進(jìn)度上,AMD比NVIDIA稍顯落后。AMD也更緊迫地宣告了Stream將支持OpenCL,而且將努力推進(jìn)API開放進(jìn)程,同為KhronosOpenCL工作組關(guān)鍵組員,AMD顯然更不愿意看到競爭對手CUDA坐大。所以極力支持OPENCL標(biāo)準(zhǔn),現(xiàn)在AMD方面一樣支持OpenCL最新版本。從定位來講,OpenCL重視是給出一個開發(fā)平臺,只要是支持OpenCL硬件,不論是GPU,還是CPU,甚至DSP芯片等,都能夠運(yùn)行在這個平臺上開發(fā)軟件,不需依賴于特定硬件。而現(xiàn)在DirectCompute則更關(guān)注與Direct3D中圖形運(yùn)算部分緊密配合,給用戶帶來愈加逼真效果,GPU平臺上應(yīng)用才是它強(qiáng)項(xiàng)。在Windows平臺上,DirectX占據(jù)顯著優(yōu)勢,尤其是游戲領(lǐng)域,繼續(xù)使用DirectX11才是最好方法。對于應(yīng)用軟件而言,到底是采取ComputerShader,還是OpenCL,或者是CUDAC語言以及Brook+,要看開發(fā)商詳細(xì)情況。比如對高清編輯、圖形圖像方面應(yīng)用,能夠通用于多家GPU平臺ComputerShader和OpenCL可能會受到歡迎。在非Windows平臺上,OpenCL將起到更主要作用,它或許會囊括移動和嵌入式平臺娛樂應(yīng)用以及科學(xué)計(jì)算等領(lǐng)域。Larrabee采取可編程方式實(shí)現(xiàn)圖形運(yùn)算,即使它是如假包換CPU,但在某種意義上,它也是一個“軟件GPU”。從圖形管線歷史發(fā)展示意圖中能夠看到,可編程化趨勢是自DirectX7以來時尚,而Larrabee能夠用軟件虛擬出除了材質(zhì)部分以外DirectX10圖形處理管線,對于DirectX11、OpenGL以及OpenCL等API,Larrabee也能經(jīng)過不一樣程序?qū)崿F(xiàn)它們,這種方式可能代表了未來時尚。三.GPGPU發(fā)展趨勢3.1并行處理大趨勢對于CPU未來發(fā)展,因?yàn)槟柖杉磳⒌诌_(dá)極限,不論從制程角度還是發(fā)燒量問題,都使得經(jīng)過提升主頻來加速計(jì)算變得不那么實(shí)惠。Intel和AMD也很早就意識到了這個問題,所以將目光投降了多核CPU。并行處理器,這個原本只有服務(wù)器和大型機(jī)才有技術(shù),如今也飛入了尋常百姓家。這種變革影響,對整個信息產(chǎn)業(yè),從底層硬件到上層軟件,都是非常深遠(yuǎn)。多核(MultiCore)發(fā)展是處理器并行歸宿,也是真正意義上可連續(xù)發(fā)展CPU并行處理方向。因?yàn)椴徽撌橇魉€還是超線程,都是對單關(guān)鍵運(yùn)算潛力挖掘,性能提升總會榨干或者極難繼續(xù)榨一天。另一個很大不一樣是,流水線和超線程只需要CPU內(nèi)部優(yōu)化,上層程序不需要任何改動即可坐享受性能提升;而多核應(yīng)用中,編譯器和軟件中并行算法會占有更主要地位。可是一旦變革完成,實(shí)現(xiàn)完整可擴(kuò)充多核架構(gòu),就能夠不停添加內(nèi)核和改良軟件算法迎來按級數(shù)增加性能大提升時代。全球著名電子技術(shù)類期刊《EE
Times》評選出十大新興技術(shù)中,并行處理技術(shù)名列其中,并認(rèn)為“并行處理技術(shù)已經(jīng)以雙核和四核個人電腦處理器以及用于嵌入應(yīng)用多核異質(zhì)處理器形式存在。不過,業(yè)界迄今仍對多核處理器怎樣編程,以及怎樣充分發(fā)揮其運(yùn)算能力與功率效率知之甚少。自多核處理器問世以來,這便是信息技術(shù)關(guān)鍵問題之一,困擾著整個業(yè)界,至今仍未得到完全處理?,F(xiàn)在,OpenCL、Cuba等倡議向我們描繪了美好前景,提出了將圖形處理器用作通用處理器以及現(xiàn)場可編程門陣列(FPGA)和軟件可編程處理器陣列前景?!痹陔p核伊始時候,曾有一期《程序員》專題討論雙核處理器和并行\(zhòng)o"軟件資訊"軟件設(shè)計(jì)方法,感覺未來軟件工程師一定要知道怎樣為多核處理器寫程序才能夠。但4年過去了,對于大部分軟件工程師好像一切都沒有什么改變。但大多數(shù)人還沒覺察,我們正在經(jīng)歷著整個計(jì)算架構(gòu)變革,美國試驗(yàn)室小伙子們,早就開始研究怎樣高效利用1000個內(nèi)核處理器海洋(Seaofprocessors),微軟正在向.netframwork添加更完善并行類庫和支持,云計(jì)算、虛擬化市場也正野心勃勃準(zhǔn)備迎接真正多核時代暴發(fā)性發(fā)展。當(dāng)CPU進(jìn)入雙核多核,軟件架構(gòu)進(jìn)入分布式計(jì)算云計(jì)算時代后,他們共同點(diǎn)并行計(jì)算逐步成為一個新熱點(diǎn)。在這個大背景下,GPU并行處理能力無疑會引發(fā)業(yè)界極大重視,NVIDIA總裁甚至鼓吹GPU將主導(dǎo)并行計(jì)算,即使有些言過其實(shí),不過GPU必定會在通用計(jì)算領(lǐng)域占據(jù)一席之地。3.2分久必合,GPU與CPU趨于融合\o"CPU"CPU設(shè)計(jì)宗旨就是要從指令流中得到最高處理效能,即要用最短時間完成一項(xiàng)任務(wù),這就是串行計(jì)算,但串行計(jì)算架構(gòu)\o"CPU"CPU天生就不適合高性能計(jì)算領(lǐng)域所強(qiáng)調(diào)并行計(jì)算工作,這是為何\o"CPU"CPU現(xiàn)在成為了高性能計(jì)算性能提升瓶頸。相形之下,始于圖形處理\o"GPU"GPU一開始就是被設(shè)計(jì)來處理大規(guī)模并行計(jì)算,數(shù)千萬多邊形和像素并行處理使得\o"GPU"GPU在發(fā)展同時不停地加入更多處理關(guān)鍵并完善并行處理能力。INTEL中央架構(gòu)與規(guī)劃部門總經(jīng)理龐思立(StephenS.Pawlowski)談到,CPU引入多線程、多核、眾核等技術(shù),并行性能也是越來越強(qiáng),在向高吞吐量計(jì)算演進(jìn),而GPU也不再受限于以往固定功效,在向通用計(jì)算演進(jìn),但這兩種架構(gòu)都需要有好可編程性,而實(shí)際上,程序員們已經(jīng)習(xí)慣了X86架構(gòu),所以,最終這兩種架構(gòu)會走向融合,也就是說,不論用什么樣硬件,軟件開發(fā)人員都能夠使用IA指令集來編程,讓軟件能夠同時跑在CPU和GPU上面,而不是象現(xiàn)在這么需要分別針對這兩種架構(gòu)去編程。正是基于此,英特爾計(jì)劃推出其GPU產(chǎn)品Larrabee和同時支持CPU與GPUCt編程語言。IntelClarkdale/Arrandale將會實(shí)現(xiàn)將顯示關(guān)鍵與處理器關(guān)鍵封裝在一起,在時,SandyBridge將會晤世。對此,AMD行動并未落后,AMD自從收購ATI之后,已經(jīng)成為全球唯一一家能夠提供CPU、GPU和芯片組廠商,AMD企業(yè)早在就公布了“Fusion”計(jì)劃,而后又把宣傳口號變?yōu)椤癟heFutureisFusion”,同時打造Fusion品牌。AMD將會于推出首款代號為LlanoFusion處理器,該處理器將會基于32nm工藝,由Globalfoundries負(fù)責(zé)生產(chǎn)。Llano將會集成四個處理器關(guān)鍵以及一個圖形處理關(guān)鍵,不過AMD將其稱為APU(AcceleratedProcessingUnit)。它目標(biāo)是將經(jīng)過圖形處理器實(shí)現(xiàn)具備照片真實(shí)感圖像和中央處理器強(qiáng)大處理功效融合為一體。AMD認(rèn)為:“融聚戰(zhàn)略也印證了這一點(diǎn),用戶和市場需要不再是單純處理器性能,而是在卓越平臺、出眾GPU以及AMD將率先推出Fusion芯片所能夠幫助客戶提升競爭力能力?!贬槍Υ朔桨福珹MDCTOHester表示:“X86指令集通用性當(dāng)然愈加好一些,但它執(zhí)行效率并不好,并不適合高性能并行計(jì)算處理?!彼裕珹MD采取分離設(shè)計(jì),將GPU指令集整合于CPU之內(nèi),作為CPU指令集補(bǔ)充。NVIDIA首席科學(xué)家Kirk博士似乎也表示了一樣看法,他認(rèn)為X86交換性會給流處理器設(shè)計(jì)帶來難度,而NVIDIA則是針對GPU開發(fā)適合流計(jì)算架構(gòu)。很顯著,NVIDIA和AMD都不可能輕易向英特爾指令集妥協(xié),彼此在未來高并行性計(jì)算領(lǐng)域競爭是能夠預(yù)見。3.3GPU性能成長空間依舊巨大圖形處理器(GPU)用于通用計(jì)算(GPGPU)及其相關(guān)方面問題現(xiàn)在已成為一個熱門話題。實(shí)際上,整個IT產(chǎn)業(yè)都已經(jīng)敏銳地意識到了GPU通用計(jì)算將給PC帶來革命性改變,進(jìn)而影響到CPU發(fā)展。所以,不論NVIDIA、AMD,還是英特爾,都紛紛投身這一領(lǐng)域,從而拉開新一輪技術(shù)競賽序幕。近日,AMD旗艦產(chǎn)品RV870已經(jīng)超越NVIDIAGT200系列,RV870單精度浮點(diǎn)運(yùn)算能力為2720GFLOPS,雙精度浮點(diǎn)運(yùn)算能力為單精度1/5,也高達(dá)544GFLOPS。GT285單精度浮點(diǎn)運(yùn)算能力為1063GFLOPS,但雙精度下降為1/8,僅133GFLOPS。而NVIDIA則表示將在推出新一代旗艦產(chǎn)品FERMIGT300系列,將大幅度提升處理能力,尤其是通用計(jì)算方面,下面簡單介紹一下。圖3.1Fermi基本計(jì)算單元FERMI全部流處理器現(xiàn)在都符合IEEE754-浮點(diǎn)算法(Cypress也是如此)和完整32位整數(shù)算法。同時全方面引入還有積和熔加運(yùn)算(FusedMultiply-Add/FMA),每循環(huán)操作數(shù)單精度512個、單精度256個(G200僅支持單精度FMA)。全部一切都符合業(yè)界標(biāo)準(zhǔn),計(jì)算結(jié)果不會產(chǎn)生意外偏差。雙精度浮點(diǎn)(FP64)性能大大提升,峰值執(zhí)行率能夠達(dá)成單精度浮點(diǎn)(FP32)1/2,而過去只有1/8,雙精度預(yù)計(jì)可達(dá)624GFlops。G80/GT200都是8個流處理器組成一組SM(StreamingMultiprocessor),F(xiàn)ermi增加到了32個,最多16組,少于GT20030組,但流處理器總量從240個增至512個。除了流處理器,每組SM還有4個特殊功效單元(SpecialFunctionUnitSFU),用于執(zhí)行抽象數(shù)學(xué)和插值計(jì)算,GT200每組SM都有16KB共享內(nèi)存,由其中8個SP使用。它們不是緩存(cache),而是軟件管理內(nèi)存(memory),能夠?qū)懭?、讀取數(shù)據(jù)。為了滿足應(yīng)用程序和通用計(jì)算需要,F(xiàn)ermi引入了真正緩存,每組SM擁有64KB可配置內(nèi)存(共計(jì)1MB),可分成16KB共享內(nèi)存加48KB一級緩存,或者48KB共享內(nèi)存加16KB一級緩存,可靈活滿足不一樣類型程序需要。整個芯片擁有一個容量768KB共享二級緩存,執(zhí)行原子內(nèi)存操作(AMO)時候比GT200快5-20倍。Fermi全局分配邏輯則能夠向整個系統(tǒng)發(fā)送多個并行內(nèi)核,應(yīng)用程序在GPU和CUDA模式之間切換時間也快得多了,NVIDIA宣稱是GT20010倍。外部連接亦有改進(jìn),F(xiàn)ermi現(xiàn)在支持和CPU之間并行傳輸,而之前都是串行。NVIDIAFermi存放器文件、一級緩存、二級緩存、DRAM全部完整支持ECC錯誤校驗(yàn),這一樣是為Tesla準(zhǔn)備,之前我們也提到過。Fermi統(tǒng)一了尋址空間,簡化為一個指令,內(nèi)存地址取決于存放位置:最低位是當(dāng)?shù)?,然后是共享,剩下是全局。這種統(tǒng)一尋址空間是支持C++必需前提。GT80/GT200尋址空間都是32-bit,最多搭配4GBGDDR3顯存,而Fermi一舉支持64-bit尋址,即使實(shí)際尋址只有40-bit,支持顯存容量最多也可達(dá)驚人1TB,現(xiàn)在實(shí)際配置最多6GBGDDR5。NVIDIAFERMI主要技術(shù)特點(diǎn)總結(jié):-支持下一代IEEE754-雙精度浮點(diǎn)標(biāo)準(zhǔn)-支持ECC(錯誤校驗(yàn)碼)以提升可靠性和精準(zhǔn)度-一級、二級多層緩存體系-支持C++編程語言-支持最多1TB系統(tǒng)內(nèi)存-并行內(nèi)核執(zhí)行、快速上下文切換、10倍速度原子指令、64位虛擬尋址空間、系統(tǒng)調(diào)用與遞歸函數(shù)NVIDIA首席科學(xué)家、高級副總裁WilliamJ.Dally在近日設(shè)計(jì)自動化會議(DAC)上發(fā)演出講指出,GPU浮點(diǎn)計(jì)算性能今后會每兩年翻一番,從而在達(dá)成20TFlops,是當(dāng)前最高水平大約15倍。GPU圖形關(guān)鍵現(xiàn)在擁有幾百個處理關(guān)鍵,多年后就會提升一個數(shù)量級,確切地說有望在六年后增加到大約5000個之多,擁有20TFlops浮點(diǎn)性能。單就NVIDIA而言,從55nm工藝、240個流處理器(GT200b)進(jìn)步到11nm和5000個,中間必定會經(jīng)歷架構(gòu)上革命性改變。經(jīng)過長達(dá)、每年52%改進(jìn),單線程處理器(CPU)性能提升在就已終止,不過GPU這種并行處理器仍能每年帶來超出70%性能提升。過去間,\o"GPU"GPU計(jì)算能力飛速發(fā)展,基本上平均6個月就性能翻倍,預(yù)計(jì)\o"GPU"GPU浮點(diǎn)性能將每兩年翻一番3.4GPU通用計(jì)算成為教育科研熱點(diǎn)截止到現(xiàn)在全球已經(jīng)有超出250所大學(xué)開設(shè)了CUDA編程和GPU計(jì)算課程,僅在上個季度CUDA開發(fā)工具包就被下載了超出90,000次。據(jù)統(tǒng)計(jì),全球超級計(jì)算研究中,有12%論文是基于NvidiaGPU。在全球掀起GPU計(jì)算浪潮同時,中國科研院所、高等學(xué)府和企業(yè)在包含油氣勘探、離散模擬、三維掃描等領(lǐng)域利用GPU計(jì)算方面走到了世界前沿。如今,中科院、清華大學(xué)、中國同濟(jì)大學(xué)、上海交大、西安交大等7所高校已經(jīng)將基于CUDA架構(gòu)并行計(jì)算課程融入其教學(xué)之中,其中中科院和清華大學(xué)已經(jīng)走到全球CUDA應(yīng)用前列。中國科學(xué)院過程工程研究所和清華大學(xué)不但開設(shè)了CUDA編程課程普及GPU計(jì)算,而且還成功將GPU計(jì)算應(yīng)用到大量科學(xué)以及工程設(shè)計(jì)研究項(xiàng)目中并取得CUDA卓越中心稱號,在此之前,CUDA卓越中心已經(jīng)在哈佛大學(xué)、劍橋大學(xué)等五所學(xué)府設(shè)置。清華大學(xué)計(jì)算機(jī)系高性能所(HPC)陳文光教授表示:“清華大學(xué)已經(jīng)展開對CUDA編程多項(xiàng)研究和應(yīng)用,并開展了深入增強(qiáng)GPU可編程性研究工作。相對于傳統(tǒng)CPU計(jì)算來說,GPU為大規(guī)模并行計(jì)算提供了一個新選擇,具備很大發(fā)展?jié)摿?。”無獨(dú)有偶,INTEL新型GPU,Larrabee項(xiàng)目其實(shí)是隸屬于Tera-Scale計(jì)劃(“萬億級別計(jì)算研究項(xiàng)目”。這個計(jì)劃主要工作內(nèi)容,就是分析未來內(nèi)人們對電腦及服務(wù)器應(yīng)用需求。這一計(jì)劃包括研究領(lǐng)域非常廣泛,共有超出400間大學(xué)、美國國防部高等研究計(jì)劃局(DARPA),以及像是微軟與惠普等相關(guān)企業(yè),共同為Larrabee應(yīng)用進(jìn)行研究。美國橡樹嶺國家試驗(yàn)室宣告一項(xiàng)新超級計(jì)算機(jī)計(jì)劃,將采取nVidia下一代GPU架構(gòu)Fermi。依照雙方共同公布申明,橡樹嶺國家試驗(yàn)室超級電腦,將用來研究能源與氣候變遷,速度可望比現(xiàn)在最快超級電腦更加快十倍。這個新架構(gòu)將同時采取nVidia繪圖處理器,和英特爾、AMD或其余廠商生產(chǎn)CPU。橡樹嶺電腦與運(yùn)算科學(xué)副試驗(yàn)室主任JeffNichols在申明中表示,F(xiàn)ermiGPU可促成以往不可能實(shí)現(xiàn)“重大科學(xué)突破”。他說:“借由nVidia技術(shù)幫助,橡樹嶺得以提出在未來內(nèi),創(chuàng)造一個能提供億億次(exascale,1018次方)運(yùn)算運(yùn)算平臺?!毕饦鋷X也宣告將創(chuàng)設(shè)一個混合多關(guān)鍵集團(tuán)(HybridMulticoreConsortium),專注在不一樣類型之處理器架構(gòu)運(yùn)算。這個集團(tuán)目標(biāo)是與開發(fā)者合作,研究在混用CPU與GPU下一代超級電腦上,執(zhí)行應(yīng)用軟件。11月16日,TOP500.org公布了第34屆全球超級計(jì)算機(jī)500強(qiáng)排行榜,我國首臺千萬億次超級計(jì)算機(jī)系統(tǒng)“天河一號”由國防科大研制成功“天河一號”中擁有6144顆處理器,能夠提供200萬億次計(jì)算性能,但作為千萬億次超級計(jì)算機(jī),這么成績顯然有些名不副實(shí)。其實(shí)“天河一號”最關(guān)鍵部分是采取了2560顆AMDHD4870x2GPU,GPU計(jì)算即使在廣泛性上不如CPU,但只要環(huán)境適宜,GPU將展現(xiàn)出遠(yuǎn)超CPU計(jì)算能力,這在“天河一號”中已經(jīng)得到了印證。2560顆AMDHD4870x2GPU幫助,“天河一號”超級計(jì)算機(jī)峰值性能達(dá)成了1.206PFlops,Linpack測試性能超出0.5603PFlops,能夠說AMDGPU為“天河一號”貢獻(xiàn)了超出80%計(jì)算性能。四.GPGPU特點(diǎn)和經(jīng)典應(yīng)用4.1GPGPU特點(diǎn)GPU硬件架構(gòu)因?yàn)榕cCPUX86架構(gòu)差異非常大,而且基于GPU通用計(jì)算也處于發(fā)展早期,所以針對軟件開發(fā)和算法選擇方面具備鮮明特點(diǎn)。下面簡單分析下GPGPU優(yōu)勢與劣勢:(1)高效并行性這一功效主要是經(jīng)過GPU多條繪制流水線并行計(jì)算來表現(xiàn)。在現(xiàn)在主流GPU中,配置多達(dá)16個片段處理流水線,6個頂點(diǎn)處理流水線。多條流水線能夠在單一控制部件集中控制下運(yùn)行,也能夠獨(dú)立運(yùn)行。GPU頂點(diǎn)處理流水線使用MIMD方式控制,片段處理流水線使用SIMD結(jié)構(gòu)。相對于并行機(jī)而言,GPU提供并行性在理想性價比基礎(chǔ)上,為很多適合于在GPU上進(jìn)行處理應(yīng)用提供了一個很好并行方案。(2)數(shù)據(jù)密集型細(xì)顆粒運(yùn)算詳細(xì)來說,GPU專用于處理數(shù)據(jù)并行計(jì)算(同一程序在許多數(shù)據(jù)元素上并行執(zhí)行)、具備高運(yùn)算密度(算術(shù)運(yùn)算與內(nèi)存操作百分比)特點(diǎn)。因?yàn)橥怀绦驗(yàn)槊總€數(shù)據(jù)元素執(zhí)行,所以對高級流控制具備較低要求;又因?yàn)樵谠S多數(shù)據(jù)元素上執(zhí)行并具備高運(yùn)算密度,所以內(nèi)存訪問延遲能夠使用計(jì)算而非大數(shù)據(jù)高速緩存來隱藏。(3)超長圖形流水線GPU超長圖形流水線設(shè)計(jì)以吞吐量最大化為目標(biāo)(如NVIDIAGeForce3流水線有800個階段),所以GPU作為數(shù)據(jù)流并行處理機(jī),在對大規(guī)模數(shù)據(jù)流并行處理方面具備顯著優(yōu)勢。當(dāng)然也具備無法回避劣勢,它定位是取代部分CPU計(jì)算任務(wù),所以對于一些CPU擅長領(lǐng)域,GPU是無能為力。(4)精度不夠現(xiàn)在GT200芯片對于double運(yùn)算性能非常差(64bit運(yùn)算單元在每個SM中只有一個,所以運(yùn)算速度只有32bit數(shù)據(jù)八分之一到十二分之一左右。),不過NVIDIA已經(jīng)在GT300中大幅加強(qiáng)了雙精度計(jì)算性能,可達(dá)成單精度二分之一。(5)控制流簡單NVIDIASM沒有預(yù)測執(zhí)行機(jī)制,也沒有錯誤回滾機(jī)制,對于復(fù)雜指令處理,計(jì)算性能下降顯著。(6)線程間存在通信壁壘CUDA中每個線程存放器都是私有,它們只能經(jīng)過長度較小sharedmemory或者訪問延遲較長globalmemory來進(jìn)行通信。(7)與CPU之間帶寬較低因?yàn)镚PU是以PCI-E接口方式與CPU進(jìn)行通信,PCI-E(16GB/s)帶寬不可防止限制了host和device數(shù)據(jù)交流。(8)軟件開發(fā)難度大GPU通用計(jì)算對開發(fā)者要求較高,必須深入了解硬件,熟悉運(yùn)行機(jī)制,這么才能得到愈加好優(yōu)化程序,進(jìn)而才能發(fā)揮GPU峰值性能。4.2GPGPU經(jīng)典應(yīng)用盡管GPU通用計(jì)算技術(shù)還在發(fā)展之中,不過因?yàn)樗薮笮阅軆?yōu)勢和優(yōu)良性價比,近幾年,GPU通用計(jì)算應(yīng)用(主要是基于CUDA架構(gòu)GPU)還是取得令人矚目標(biāo)結(jié)果。圖4.1CUDA現(xiàn)在所取得一些成就下面簡明介紹一些經(jīng)典應(yīng)用(CUDA):(1)在寶鋼,使用異構(gòu)計(jì)算技術(shù)使得冶金過程模擬時間從一天縮短到兩分鐘,效率提升了50倍以上。(2)在清華大學(xué),采取\o"GPU"GPU使得過去要用一個小時三維圖像重構(gòu)降低到幾十秒甚至幾秒鐘,將實(shí)時重構(gòu)不可能變?yōu)榭赡堋#?)在中國科學(xué)院北京基因組研究所,采取\o"GPU"GPU+\o"CPU"CPU混共計(jì)算平臺做基因比對比傳統(tǒng)\o"CPU"CPU集群快30倍,而功耗降低5倍,成本降低10倍。(4)癌癥研究:用于癌癥研究Autodock軟件提速,據(jù)美國國家癌癥研究所匯報,模擬速度提升高達(dá)12倍,將等候結(jié)果時間從2個小時縮短至10分鐘。AutoDock作者、美國斯克利普斯研究所GarrettMorris博士表示:“從久遠(yuǎn)角度來講,我們只希望能夠經(jīng)過SiliconInformATIcs企業(yè)產(chǎn)品來加速找到各種疾病治療新藥。其中包含從癌癥到阿耳茨海默氏癥、從艾滋病到瘧疾等各種疾病。”
(5)氣象分析:美國國家大氣研究中心氣象研究和預(yù)報(WRF)模型計(jì)算,WRF1%已經(jīng)過CUDA實(shí)現(xiàn),整體速度提升了20%,節(jié)約了一個星期分析時間。(6)醫(yī)學(xué)成像:數(shù)字層析X射線攝影組合是一個早期胸部腫瘤X射線透視法,能夠使癌癥對乳房組織損害被更早檢測、發(fā)覺。在這種應(yīng)用中,美國馬薩諸塞州綜合醫(yī)院就使用了NVIDIAGPU產(chǎn)品,經(jīng)過對X射線透視所獲取數(shù)據(jù)進(jìn)行高強(qiáng)度計(jì)算來重建圖像。馬薩諸塞州綜合醫(yī)院在圖像重建過程中取得了100倍速度提升,使用一臺PC只用5分鐘就能夠完成計(jì)算,使醫(yī)生很快就能夠得到成像圖片并給出診療結(jié)果。(7)生物醫(yī)學(xué)核磁共振成像植入設(shè)備模擬:著名美國波士頓科學(xué)國際有限企業(yè)就是一個設(shè)計(jì)和制造起搏器和其余一些生物醫(yī)學(xué)植入設(shè)備企業(yè),他們使用了NVIDIAGPU運(yùn)算技術(shù)加速整個計(jì)算過程。經(jīng)過NVIDIA并行GPU架構(gòu),模擬過程執(zhí)行速度提升了25倍。不但速度方面提升很多,在成本方面也比過去使用CPU集群時大大降低。(8)石油與天然氣勘探:現(xiàn)在,石油與天然氣勘探正變得越來越困難。大型油氣儲備帶經(jīng)常處于地表下很深地方以至于難于勘測。比如最近在墨西哥灣發(fā)覺油田就處于海床下0英尺深地方。為了解釋地質(zhì)數(shù)據(jù),就必須對取得與處理大量地震數(shù)據(jù)。休斯敦Headwave(一個專門從事地質(zhì)數(shù)據(jù)分析企業(yè))處理方案也經(jīng)過NVIDIAGPU技術(shù),并使用CUDASDK來運(yùn)行。地球物理學(xué)者能夠更加快速篩選他們數(shù)據(jù),即便這些數(shù)據(jù)多達(dá)幾TB容量。過去處理這些多達(dá)幾TB數(shù)據(jù)需要數(shù)月計(jì)算時間,而使用NVIDIAGPU計(jì)算技術(shù)后,計(jì)算速度比過去提升了20倍。所以說,沒有NVIDIAGPU計(jì)算技術(shù),即時演算這些數(shù)據(jù)是不可能,石油與天然氣企業(yè)將成為這項(xiàng)新技術(shù)直接收益者。(9)分子動力學(xué)模擬:在分子動力學(xué)模擬領(lǐng)域內(nèi),模擬復(fù)雜分子系統(tǒng)需要要花費(fèi)大量時間,并使用復(fù)雜計(jì)算機(jī)集群。位于Urbana-Champaign美國伊利諾伊大學(xué)研究人員就使用了NVIDIAGPU產(chǎn)品用于計(jì)算生物分子、離子相互作用,結(jié)果是運(yùn)算速度比過去采取CPU集群提升了100倍。
使用GPU工作站后,實(shí)際運(yùn)算速度達(dá)成了705gigaflops。這么非凡成績也使得生物科學(xué)研不再被
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版對講門品牌授權(quán)與市場推廣合同2篇
- 教培機(jī)構(gòu)2025年度27份合同協(xié)議(教育版權(quán)保護(hù))2篇
- 二零二五版住宅小區(qū)配套設(shè)施使用權(quán)轉(zhuǎn)讓合同3篇
- 二零二五年度采砂廠承包生態(tài)補(bǔ)償金支付合同范本3篇
- 2024蔬菜種植項(xiàng)目承包合同協(xié)議2篇
- 二零二五版工程招投標(biāo)與合同管理專家指導(dǎo)與案例分析3篇
- 工業(yè)廠房結(jié)構(gòu)檢測與2025年度注漿加固合同3篇
- 展會安全保障合同(2篇)
- 二零二五年度餐飲業(yè)食品安全標(biāo)準(zhǔn)制定合同3篇
- 二零二五版鋼結(jié)構(gòu)工程專用材料采購合同范本5篇
- 小學(xué)四年級數(shù)學(xué)知識點(diǎn)總結(jié)(必備8篇)
- GB/T 893-2017孔用彈性擋圈
- GB/T 11072-1989銻化銦多晶、單晶及切割片
- GB 15831-2006鋼管腳手架扣件
- 醫(yī)學(xué)會自律規(guī)范
- 商務(wù)溝通第二版第4章書面溝通
- 950項(xiàng)機(jī)電安裝施工工藝標(biāo)準(zhǔn)合集(含管線套管、支吊架、風(fēng)口安裝)
- 微生物學(xué)與免疫學(xué)-11免疫分子課件
- 《動物遺傳育種學(xué)》動物醫(yī)學(xué)全套教學(xué)課件
- 弱電工程自檢報告
- 民法案例分析教程(第五版)完整版課件全套ppt教學(xué)教程最全電子教案
評論
0/150
提交評論