日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CPU/GPU/GPGPU简介

發布時間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CPU/GPU/GPGPU简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

CPU:中央處理器,一種通用處理器,它無所不能,但是在某些特定場合,它的能力又是相對有限的。

GPU: Graphic Processing Unit,是顯卡,即“圖形處理器”。

GPGPU:General Purpose Graphic Processing Unit , 只是一種概念,即利用顯卡(在G80出來之后配合上CUDA仍稱之為顯卡有些牽強)進行一些非諸如渲染等圖形計算, 是一種編程模式,它采用的是圖形編程語言,如openGL等來將計算映射成渲染,說白了就是模擬

CUDA: 是一種并行計算架構,是一個利用NV GPU計算能力的平臺,說是平臺也不太準確(除非是抽象出來的意思),是一個沒有硬實體的“軟體”(類似一種標準規范),很多硬件都可以提供支持,只要intel或AMD愿意也可以讓他們的CPU支持CUDA(通過編譯器和API將底層的并發模型隱藏,所以在編程時具有相同的外觀,但底層的實現確不同),當然效率肯定和NVIDIA自己的硬件有所差異。


GPU(圖形處理器)是用來做什么的?

加速圖形繪制、科學計算、數據庫分析、視頻編解碼。

在2006年底的超級計算機大會上,AMD發布了業界首款“流處理器”(Stream Processor),宣告GPGPU(通用)從設想變成現實。浮點運算能力超強的GPGPU,有一天真的會取代CPU嗎?

  如果你希望流暢地播放高清視頻,一定會選擇一款支持NVIDIA PureVideo或AMD Avivo的顯卡(這里指以前的ATI,由于ATI已經被AMD收購,本文中統稱為AMD)。視頻解碼原本是CPU的工作,可即便是雙核處理器,在播放1080p高清電影時仍然比較吃力。利用顯卡的PureVideo/Avivo視頻解碼加速功能,可以大大降低CPU的占用率,讓高清視頻能夠流暢地播放。從廣義來看,用顯卡來加速視頻解碼,這就是GPGPU的一種初級形態。

  GPGPU,也有人形象地稱為GP2U(GP的兩次方U)。這兩個GP代表了不同的含義,后一個GP表示圖形處理(Graphic Process),和U加在一起正是我們熟知的GPU(圖形處理器);前一個GP則表示通用目的(General Purpose),所以GPGPU一般也被稱為通用圖形處理器或通用GPU。

  在3D領域,GPU的用途很簡單,就是為了更好地渲染3D場景,減輕CPU在圖形運算方面的負擔。而時下剛剛出臺的GPGPU,則是將應用范圍擴展到了圖形之外,無論是科研教育、財務計算,還是在工業領域,GPGPU都得到了廣泛的使用,關于它的科研成果和新應用模式也層出不窮。

?

  GPGPU比CPU強在哪里?

  

  1.CPU的浮點運算能力嚴重不足

  和GPU相比,CPU最大的軟肋就是浮點運算能力不足。現在主流的CPU產品,無論是Intel的還是AMD的,其浮點運算能力大多在10Gflops以下(flops表示每秒鐘能夠完成的浮點運算次數,Gflops代表每秒10億次浮點運算)。而GeForce 6系列的浮點運算能力就已經達到了40Gflops左右,GeForce 7950 GX2的浮點運算能力更是達到了384Gflops。可見,CPU和GPU的浮點運算能力差距已不止一兩個數量級。

  2.GPU的輸入/輸出帶寬遠超CPU

  如果輸入/輸出帶寬有限,縱然內部性能再強,也是無法被系統利用起來的。對于GPU而言,這并不是一個大問題,作為提高場景真實度的一個重要方法,紋理映射功能很早就被加入到了GPU中,以解決GPU和顯存之間的輸入/輸出帶寬問題。GPU和顯存之間的帶寬是CPU和內存的10倍以上,GPU是“吃得下”,也“吐得出”,讓巨大的浮點運算能力有了用武之地。

  

  AMD的“流處理器”(Stream Processor)

  3.GPU更適合重復的計算

  GPU因為是專門為圖形運算而設計的,考慮到了圖形運算的特殊性。拿像素著色器(Pixel Shader)來說,當前批次所有的待處理像素,都會執行相同的像素著色程序,也就是說,相同或類似的運算會在海量的數據上重復運行。這恰恰符合SIMD(單指令多數據)的概念,讓GPU非常適合處理SIMD運算,科學計算、數據庫分析等高性能計算正是SIMD類型。因此不少在CPU上傷透腦筋的科研人員不得不將目標轉向GPU,試圖利用GPU的這種優化設計來進行圖形之外的通用計算。

  4.GPU擁有優秀的編程語言

  當GPU的程序員在編寫程序時,會發現高級著色語言也會給他們不少幫助。以前編寫著色程序需要使用匯編語言,難度大、效率低,如今具有類C/C++的高級語言能夠極大地提高程序員的編程效率。微軟的HLSL、OpenGL的GLSL、斯坦福大學的RTSL,以及NVIDIA的Cg等高級著色語言都能夠隱藏掉底層硬件的技術細節,提高GPU的開發效率。在這一點上,盡管CPU的編程語言走在前列,但GPU也已經逐漸趕了上來,開發和利用GPU比以前容易得多了。

  

  

  DirectX 10時代的到來,將讓GPU更加適合通用計算

  看到這里,你應該會疑惑,為什么對比的是GPU和CPU,GPGPU和GPU有什么區別?這是因為,GPGPU就是以GPU為基礎開發的,GPU的優勢也正是GPGPU的優勢。從狹義的GPGPU來講,它在GPU的基礎上進行了優化設計,使之更適合高性能計算,并能使用更高級別的編程語言,在性能和通用性上更加強大。

  DirectX 10讓GPGPU迎來黃金時代

  雖然GPGPU早在DirectX 9時代就已經初現雛形,但只有在DirectX 10時代,新的GPU才能夠真正促進GPGPU的成熟和高速發展。在浮點運算能力上,GeForce 8800 GTX的浮點運算能力達到了520 Gflops,是上一代頂級GPU的3倍以上!在輸入/輸出帶寬方面,上一代GPU只能最多訪問4個頂點紋理和16個像素紋理,而DirectX 10時代的GPU可以最多訪問128個紋理,紋理尺寸達到8192×8192,對于著色程序來說,這就等于“無限”!讓GPU和顯存可以實現充分地互訪。此外,GPU的通用計算主要是使用其像素著色器,上一代GPU的頂點著色器則毫無用武之地,而從NVIDIA的G80和AMD的R600開始,DirectX 10的GPU都會采用統一著色器,所有的著色器都能用于通用計算,不會造成資源的浪費。

  

  AMD的兩種物理解決方案

  

  NVIDIA的SLI物理解決方案

  除了硬件的巨大進步,Shader Model和著色語言的成熟也將有力地助推GPGPU的發展。由于早期的Shader Model 1.0和Shader Model 2.0不支持動態流控制,只能提供有限的靈活性,阻礙了GPU的通用化。在DirectX 9.0c時期,動態流控制和著色程序幾乎無限的資源訪問能力,減少了編程時的限制。而在DirectX 10時代,Shader Model 4.0在動態流控制和資源訪問上讓程序員更加得心應手,幾乎不用再擔心編寫程序時有任何限制,這也將讓GPGPU在新時代的應用有了更多的可能性。關于DirectX 10和Shader Model 4.0的詳細介紹,請參看本刊2006年8月上的《走進DirectX 10》和8月下的《Shader Model 4.0絕密解封》。

  GPGPU就在我們的身邊

  依靠上述優勢,GPGPU在圖形運算之外,能完成一些原本由CPU來處理的工作,以實現更高的處理速度和效率。

  

  GPGPU模擬風在城市環境下(紐約時代廣場)的流動情況

  

  GPGPU模擬煙霧的擴散效果。在紐約大學30顆GPGPU的集群上,它也只能在480×480分辨率下達到每秒80幀的繪制速度,勉強達到實時性的要求,由此可見流體物理所需要的計算能力有多高。

  GPGPU看上去很遙遠,但它實際上就在我們的身邊。視頻的編解碼原本是CPU在負責處理,但由于高清視頻的盛行,龐大的數據運算量讓CPU不堪重負。而在播放高清視頻時,GPU本來是不參與處理的,強大的性能基本處于閑置狀態。因此NVIDIA和AMD分別開發了PureVideo和Avivo技術,利用GeForce 6/7系列和Radeon X1000系列GPU的像素著色器來加速視頻編解碼,包括視頻編碼過程中的4∶2∶2至4∶2∶0轉換、噪聲消除、逆3∶2PD矯正、反交錯,還包括視頻回放過程中的反交錯、格式轉換、塊消除和后期處理等等。隨著DirectX 10時代的到來,會有越來越多的視頻處理可以由GPU來完成。這可以說是目前GPGPU最成熟、最廣泛的一種應用,也是我們最常接觸到的廣義GPGPU。

  既然GPGPU可以應用到視頻處理上,那么GPGPU是否可以應用到音頻處理上呢?答案是肯定的。英國劍橋大學的一個小組曾經宣布它們的音頻視頻交換(Audio Video Exchange)技術可以把音頻數據轉換成圖形數據交由GPU處理,然后再將GPU處理的數據讀出,并解釋成音頻數據播放出來。NVIDIA也表示過這一應用是可行的。但由于種種原因,該項目似乎沒有了下文,進度不明。

  既然GPGPU能夠從CPU那里奪來視頻處理的任務,目前正漸入佳境的物理加速當然也少不了GPGPU。發布首款PhysX物理處理器(PPU)的AGEIA公司認為,GPU和PPU應該各自獨立負責圖形運算和物理加速。不過NVIDIA和AMD顯然不這樣看,PPU和GPU相互獨立,在3D渲染計算量大的時候,PPU就會浪費;碰到物理計算量大的時候,GPU就浪費了。因此完全可以在對GPU做少量改動的情況下,讓GPU來完成PPU的工作,并且可以實時負載動態調整,達到性能的最優化。AMD在去年的臺北Computex上就展示了基于CrossFire系統的物理加速方案,當一個系統中有三塊顯卡時,可以使用其中一塊顯卡專門負責物理計算,而另外兩塊顯卡負責圖形渲染,即“2+1”模式;如果系統中有兩塊顯卡,則一塊負責物理計算,一塊負責圖形渲染,即“1+1”模式。NVIDIA同樣也在SLI平臺上實現了“1+1”模式的物理加速方案,而且兩家公司都聲稱GPU加速物理運算的速度遠超PPU。在DirectX 10時代,統一著色構架的采用,完全可以讓GPU進一步加入物理計算引擎,讓物理處理和頂點處理、像素處理、幾何處理共享統一著色器。事實上,NVIDIA宣稱G80中已經加入了Quantum Effects技術來進行物理加速,究竟效果如何,讓我們拭目以待。

  當然,除了上述這些我們能看得到的應用,科學計算才是GPGPU真正的目標。它強大的浮點運算能力,很適合用來加速通用的矩陣計算,早期發表的GPGPU論文中,也大多是這種類型。其中,最引人注目的就是對流體力學的模擬。眾所周知,流體力學的模擬十分復雜而且計算量大得驚人,用CPU來處理,既費時又費力,要達到實時繪制更是天方夜譚。為了提供足夠的模擬計算能力,紐約一所大學的研究所使用了30顆GPGPU的集群,終于基本實現了流體物理現象的實時模擬和繪制。

  

  

  執行相同的半線性查詢,GPU只需要CPU的十分之一時間就夠了;而執行范圍查詢,GPU也只需要CPU的五分之一時間而已,可見GPGPU應用于數據庫領域的優勢

  除了物理現象的模擬之外,GPGPU同樣在數據庫處理領域取得了很好的進展。數據庫中最重要的一個操作就是對已有記錄進行查詢,它包括關系查詢(Relational Query)、合取查詢(Conjunction Query)和范圍查詢(Range Query)等。在GPGPU中,我們可以把一個個像素當作是數據項,而用紋理來表示數據項的各個屬性,通過像素著色程序就可以對數據項的各種屬性進行訪問和操作。美國北卡羅萊納大學曾經做過數據庫查詢操作的對比實驗,一組是在NVIDIA GeForce 5900上,另一組是在Intel雙路Xeon系統上。結果在幾乎所有的實驗中,都是GeForce 5900的運行性能遠遠優于雙路Xeon系統,可見兩者的數據庫查詢性能與它們的價格成反比。

  

  HMM搜索計算的性能對比

  

  蛋白質折疊計算的性能對比

  AMD、NVIDIA加速研發GPGPU

  由于巨大的商業價值,目前AMD和NVIDIA等巨頭都在加速研發GPGPU。

  在2006年底的超級計算機大會上,AMD發布了業界首款“流處理器”(Stream Processor),專為工作站和服務器等純計算系統而設計,適用于金融分析、地震偏移分析、生命科學等應用領域。這款“流處理器”其實就是基于Radeon X1900顯卡(R580)開發設計的。在實際性能方面,盡管它具有375Gflops的浮點運算能力和64GB/s的存儲帶寬,但運行Folding@Home分布式通用運算時,它的速度只比AMD Opteron 180雙核處理器快50%左右,同時耗電量也更大。可以說這只是一款GPGPU“雛形”,還遠未發揮出GPGPU的真正威力。

  

  在運行Folding@Home分布式通用運算時,Radeon X1900比Opteron 180快50%

  NVIDIA則在G80上使用了CUDA(Compute Unified Device Architecture,統一計算設備架構),并在G80上集成了為通用計算而設計的緩存,讓128個統一著色器能夠協同進行復雜的計算,同時還加入C編譯器,使GPU如虎添翼。此外,NVIDIA也聯合Adobe宣布,Adobe Acrobat 8和Adobe Reader 8軟件可以使用GPU來進行2D加速,能大幅度加快PDF文檔的瀏覽速度,今后在打開和翻頁大容量PDF文件時就不會像現在這么慢了。

  當然,GPGPU的研發也并非一帆風順。除了GPU本身在發展時要解決耗電量過大和提高頻率的瓶頸問題,GPGPU在體系結構的設計上還有什么特殊要求呢?首先在在動態流控制設計和實現方面,通用計算畢竟與圖形運算不同,如果GPU針對圖形運算在動態流控制上做了過多的優化,就會降低通用計算的靈活性,可謂魚與熊掌不可兼得。此外,GPGPU要同時處理多種類型的任務時,就會存在GPU資源的競爭問題,在任務之間如何仲裁非常關鍵,處理不好就會適得其反。例如當GeForce 8800要同時處理3D渲染和物理計算時,如何仲裁和分配資源才能達到最好的性能?這個問題肯定需要軟硬件工程師的共同努力才能找到較好的平衡點。

  GPGPU會取代CPU嗎?

  隨著GPU的日漸強大,GPGPU也開始獲得越來越廣泛的應用。那么,會不會有一天GPGPU的計算能力和靈活性都超越了CPU,屆時CPU何去何從?其實,早在2004年的SIGGRAPH圖形大會上,就有科研人員在GPGPU論壇上預測,六年之內就會出現CPU和GPU整合在一起的產品。這在當時來說無疑太過驚人,不過在AMD收購ATI之后,情況則發生了大逆轉。AMD已經計劃提供完整的計算平臺,并打算在其制程轉向45nm的時候,實現CPU和GPU的整合,兩者不需要再單獨存在。因此最終的情形可能不是誰會取代誰,而將誕生兼有圖形計算和通用計算的統一處理器。也許,它會被稱為無所不能的XPU(X處理器)。

總結

以上是生活随笔為你收集整理的CPU/GPU/GPGPU简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。