| 5 | 1/1 | 返回列表 |
| 查看: 1843 | 回復: 10 | |||
| 當前主題已經(jīng)存檔。 | |||
| 當前只顯示滿足指定條件的回帖,點擊這里查看本話題的所有回帖 | |||
yalefield金蟲 (文壇精英)
老漢一枚
|
[交流]
【分享】GPU為什么跑得快 [轉載]
|
||
|
去年底、今年初,老漢有兩篇關于GPU的帖子。 GPU文獻1篇:http://www.gaoyang168.com/bbs/viewthread.php?tid=702923 談談GPU吧:http://www.gaoyang168.com/bbs/viewthread.php?tid=672463 這里再轉載一篇: 作者:佚名 計算機能以每秒數(shù)十幀的速率,根據(jù)當前的三維景物實時生成三維動畫。你所看到的圖像會隨著你視點的變化而即時改變,使人產(chǎn)生“身臨其境”的感覺。高的幀率可以得到更流暢的畫面。一般來說30fps就是可以接受的,但是將幀速增加至60fps則可以明顯提升交互感。這與計算機影視制作不同,電影特效可以通過很多臺工作站,花幾十個小時繪制出長度僅為幾秒的高質(zhì)量畫面,并不強調(diào)實時性。 渲染一個復雜的三維場景,需要在一秒內(nèi)處理幾千萬個三角形頂點和光柵化幾十億的像素。早期的3D游戲,顯卡只是為屏幕上顯示像素提供一個緩存,所有的圖形處理都是由CPU單獨完成。 圖形渲染適合并行處理,擅長于執(zhí)行串行工作的CPU實際上難以勝任這項任務。所以,那時在PC上實時生成的三維圖像都很粗糙。不過在某種意義上,當時的圖形繪制倒是完全可編程的,只是由CPU來擔綱此項重任,速度上實在是達不到要求。 直到1995年,PC機領域第一款GPU (Graphical Processing Unit) 3dfx Voodoo出來以后,游戲的速度、畫質(zhì)才取得了一個飛躍。 3dfx Voodoo有兩個主要的特征:深度緩沖區(qū)(z-buffer)和紋理映射(texture mapping)。z-buffer執(zhí)行“隱藏面消除”這一工作,這樣可以避免渲染“不可視”的無效像素。利用紋理映射功能則可以十分逼真地表達物體表面細節(jié)。 1999年,第二代GPU (Nvidia GeForce256,GeForce 2和ATI Radeon 7500)包括了圖形的幾何變換與光照計算功能(T&L)。而在此之前T&L都是由CPU完成的,這對CPU來說是很復雜的計算。 第二代GPU解決了系統(tǒng)的一個瓶頸,減輕了CPU的負荷,速度明顯提高了。但是由于是固定的渲染流水線,缺乏靈活性,束縛了開發(fā)人員的創(chuàng)造性。 2001年,NIVIDA公司的GeForce 3首先引入了可編程的頂點著色器(Vertex Shader)單元。 2002年,可編程的像素著色器(Pixel Shader)單元也加入了GPU (見圖1)。 在繪制時,GPU首先接收CPU以三角形頂點形式的發(fā)送的幾何數(shù)據(jù)。然后由可編程的頂點著色器單元進行處理,完成幾何變換與頂點屬性計算等功能。接著,這些三維空間的三角形由一個固定功能的光柵生成器轉換為二維屏幕上的像素。每個像素的最終顏色值都通過運行在像素著色器上的小程序運算而得。目前三維游戲借助于GPU,已經(jīng)能夠實時生成十分細膩、逼真的畫面。 [ Last edited by xuefei06 on 2008-12-30 at 00:03 ] |
金蟲 (文壇精英)
老漢一枚
|
孫永杰 如果說4月初上海的IDF,英特爾關于GPU(圖形顯示芯片)的一席話引發(fā)業(yè)內(nèi)關于GPU和CPU誰將替代誰的爭論的話,那么隨著NVIDIA(簡稱NV)首席執(zhí)行官黃仁勛(Jen-HsunHuang)炮轟英特爾的整合圖形芯片組完全是“一個笑話”,聲稱GPU比CPU更重要,人們應該多花錢在GPU上面之后,NVIDIA的副總裁Roy Taylor(綽號Big Pipe)索性宣告英特爾的CPU已經(jīng)死亡。 筆者認為,Roy Taylor的這番話確實太過極端了。先不要說NV的GPU要取代英特爾的CPU,其實目前在NV最擅長的GPU領域,NV也未占到絕對的優(yōu)勢。 眾所周知的事實是,目前的GPU市場是三足鼎立。 英特爾牢牢掌握著GPU市場的頭把交椅。在去年的第四季度,英特爾占據(jù)了GPU市場的41.1%,NV為31.8%,AMD為22.8%。具體到細分的臺式PC和筆記本市場,在臺式PC英特爾的發(fā)貨份額為37.7%,以0.6%的略微優(yōu)勢超過NV排名第一,NV的份額為37.1%屈居第二,AMD的份額為19%排第三名。 在筆記本圖形處理器市場,英特爾的份額從三季度的45%上升到46.8%,以壓倒優(yōu)勢高居榜首,AMD位居第二,它的份額從第三季度的21%上升到29%,NV從三季度的32%下降為22.8%排第三名。 從這個統(tǒng)計可以看出,目前NV即使是在獨立顯卡普及的臺式PC中也還沒有排在老大的位置上。而在筆記本市場,NV與英特爾的差距更大。而隨著超低價便攜筆記本市場的興起,鑒于功耗、體積和功能的原因,獨立顯卡在這塊市場中難有用武之地。換句話說,英特爾整合圖形芯片在未來相當?shù)囊欢螘r間里還將將牢牢占據(jù)著這塊市場。 說到超低價便攜筆記本,除了英特爾日前發(fā)布的Atom(凌動)系列處理器外,NV也加入到了此陣營。據(jù)稱,NV與英特爾和AMD之外的唯一x86處理器供應商—威盛電子欲建立一種PC平臺,被稱為“全球最經(jīng)濟的Vista高檔PC”,這個單價不到45美元的處理平臺,將結合威盛的Isaiah處理器與一個整合的NV繪圖芯片組。從這里也可以看出,即使是揚言CPU已死的NV,還是未能脫離CPU而成為PC的核心?磥鞱V虛張聲勢的成分很大。倒是英特爾未來的Larrabee(一種可編程的多核心架構)讓NV感覺到了莫大的威脅。 Larrabee與AMD、NVIDIA的GPGPU(通用計算圖形處理器)技術不同,后兩者分別使用Stream Processing(流處理)和CUDA(統(tǒng)一計算設備架構)來滿足對GPGPU計算的需求。而Larrabee基于傳統(tǒng)的x86架構,它既可用在顯卡上,也可用作一個特殊的x86處理器,滿足一些高性能計算的需求。由此筆者認為,英特爾的Larrabee進可直接威脅到NV獨立顯卡市場的地位,退可以繼續(xù)鞏固自己在整合圖形芯片市場的優(yōu)勢,同時又不會讓自己的通用處理器CPU在未來失去現(xiàn)有的統(tǒng)治地位。為此,《連線》雜志在2007年初曾經(jīng)專門提及英特爾在這方面的表現(xiàn):即一旦這個龐然大物利用市場優(yōu)勢推出融合了通用處理和圖形處理的處理器,對整個產(chǎn)業(yè)鏈的打擊是相當強烈的,甚至會是致命的。從NV近期近乎瘋狂的言論看,這種打擊的潛在效應已經(jīng)開始顯現(xiàn)。 其實近期業(yè)內(nèi)所稱的未來GPU將會替代CPU,大多也是人云亦云,其論點無非是理論上GPU的浮點運算性能要遠遠高于CPU,而且未來的應用趨勢將以圖形和視頻為主,所以GPU會有更加廣闊的市場。但筆者認為,依此就斷定GPU一定取代CPU的確有失偏頗。目前用同樣多的晶體管CPU浮點運算性能之所以不如GPU,其根本原因并不在于CPU的設計落后,而是CPU內(nèi)有大量的緩存。在部分特別運算要求下,GPU的性能可以發(fā)揮得淋漓盡致,但對于通用計算來說,保持數(shù)據(jù)執(zhí)行過程中數(shù)據(jù)流的最大平行性與最小關聯(lián)度這就不是GPU架構可以達到的了。此外,由于自身架構的限制,GPU無法直接處理物理計算指令,這是其走向通用性最大的障礙。 說到這,筆者不得不引出技術之外的話題,那就是戰(zhàn)略。 業(yè)內(nèi)人士清晰記得,在2005年,英特爾低調(diào)收購了愛爾蘭的Havok公司,這是一家在圖形處理方面擁有強大技術實力的公司。業(yè)內(nèi)人士本以為此舉是英特爾彌補其在GPU技術上軟肋的舉措,但從近日IDF上英特爾公布的Larrabee仍然基于傳統(tǒng)的X86架構的事實看,英特爾收購Havok公司完全是為了阻止NV和AMD-Ati利用Havok公司開發(fā)的Havok FX引擎,因為這一引擎,將會使得GPU的物理計算成為可能,即Havok將幫助AMD和NV的GPU進入物理計算以及流計算領域,而一旦Havok FX引擎得到游戲的廣泛支持成為既定標準,那么英特爾憑借Larrabee平臺來推行自己的流計算指令集的計劃將遭到嚴峻的挑戰(zhàn)。從這里可以看出,英特爾在戰(zhàn)略上的技高一籌。 眾多的事實證明,一個產(chǎn)業(yè)的興起,光有技術上的優(yōu)勢是遠遠不夠的,一個公司的發(fā)展戰(zhàn)略、產(chǎn)業(yè)鏈的影響和培養(yǎng)、市場和用戶的習慣和接受度等的任何一個因素都不亞于技術對于這個產(chǎn)業(yè)的影響。所以筆者認為,從未來看,僅僅憑著理論上的技術優(yōu)勢就斷言某個產(chǎn)業(yè)的衰亡和興起實屬草率,而從現(xiàn)在看,CPU不可或缺,仍在PC系統(tǒng)中起著核心的作用。理由很簡單,現(xiàn)在哪個PC能夠離開CPU而只裝有GPU?即使NV稱CPU已經(jīng)消亡,并且有了只裝有GPU的PC,那么你敢買嗎?看來從現(xiàn)在到未來相當?shù)臅r間里,CPU和GPU還是各司其職的好。 至于說到未來,憑借英特爾的實力,NV要想以GPU取而代之談何容易。 此外,從日前曝光的英特爾主板不支持微軟的Windows Vista的Vista Capable標簽訴訟案中,英特爾在很大程度上為NV背了黑鍋。據(jù)微軟在此次訴訟中公布的一份長達158頁的微軟內(nèi)部郵件集中披露,在微軟初期收到的166萬份Vista系統(tǒng)崩潰報告中,由NV驅動引起的崩潰達到47.9萬次,占28.8%。微軟開發(fā)的驅動程序占17.9%居次席,此后分別是未知原因17%,ATi驅動9.3%,英特爾驅動8.83%。 從這個統(tǒng)計可以看出,當時業(yè)內(nèi)以此評價英特爾創(chuàng)新乏力實在是有失公允。這多少讓NV的首席執(zhí)行官黃仁勛以此事炮轟英特爾的GMA3100圖形芯片顯得有些無力和尷尬。這也從一個側面反映出,NV在GPU領域依舊存有不少的問題。既然在自己的領域都未做到最好,就進入人家擅長的領域,并談什么替代CPU,難免給人一種“芯”太軟和做秀的感覺。 |
金蟲 (文壇精英)
老漢一枚
|
GPU的功能更新很迅速,平均每一年多便有新一代的GPU誕生,運算速度也越來越快。 2004年推出的GPU Nvidia GeForce 6800 Ultra可達到峰值40 Gigaflops( 1 GigaFLOPS=1秒鐘進行10億次的浮點運算) 2005年發(fā)布的 Nvidia GeForce 7800 GTX更是將峰值提高至令人驚訝的169 Gigaflops。而Intel 3GHz Pentium 4采用SSE指令集也只能達到6 Gigaflops(見圖2)。 GPU的運算速度如此之快,主要得益于GPU是對圖形實時渲染量身定制的,具有兩點主要特征:超長流水線與并行計算。 GPU、CPU浮點運算速度對比圖: |
金蟲 (文壇精英)
老漢一枚
|
流水線技術與工廠里的裝配線在原理上類似。 如果裝配一臺汽車需要10個時間單元,將它分成10個流水線階段,每個階段分配一個時間單元,那么一條裝配線每一個時間單元就可以生產(chǎn)一輛汽車。顯然流水線模式的生產(chǎn)在理想狀況下要比串行方式快了十倍。 從這個例子中,可以看出為了提高流水線的速度,可以將任務劃分成更小的單元,這樣流水線的級數(shù)就增加了。CPU的設計中就使用了流水線原理,奔騰IV就有20級的流水線。但是流水線級數(shù)越多,一條指令從開始進入流水線到最后被執(zhí)行完畢這之間的延遲間隔會相當大。換句話說,當流水線級數(shù)過多時,控制臺發(fā)出一條指令,會經(jīng)過很長時間才會真正生效,這不適用于快速反應要求很高的場合。 打個比方,當用消防水龍頭救火時,正常情況下打開閥門開關幾秒后水便噴射出來,立刻可用來撲滅火災。但是如果延遲了十幾分鐘,才有水流出,即使這時水流速度(吞吐量)還是很快,不過這時火災就會造成更大的損失了。 CPU的設計目標是不僅要有很高的吞吐量,還要求很小的延遲,這是CPU并不采用過多流水線級數(shù)的原因之一。另外流水線只有在滿載時,才能發(fā)揮出最佳效率來。由于CPU執(zhí)行的代碼中有很多分支語句,因此長流水線需要用有效的技術來預測分支,盡量保持流水線在滿負荷狀態(tài)。但是一旦預測分支失敗,就會清除流水線中滯留的大量無用指令,同時將新指令流重新注入流水線。但是如果流水線階段過多的話,充滿整個流水線就需要很長的時間,這樣使流水線保持滿載的機會不多,速度反而下降了。所以權衡利弊,CPU不會使用深度流水線。 但是GPU卻采用了幾百級的流水線,比如GeForce 3的流水線有800個階段。 是什么原因,GPU的應用為何可以忍受這么大的延遲呢?假設以每秒50幀的速率顯示畫面,那么只要求每幀在20ms以內(nèi)生成就行。而GeForce 3的時鐘頻率是200MHz(每個時鐘周期是5ns),5ns * 800 = 4μs < 20ms。所以對GPU來說這一些延遲根本不成問題,而且GPU中執(zhí)行的Shader程序中,分支語句用的很少(在早期的GPU中,甚至不提供動態(tài)的分支語句)。因此,GPU的流水線深度變大后,利大于弊,大大提升了整體性能。 GPU的執(zhí)行速度很快,但是當運行從內(nèi)存中獲取紋理數(shù)據(jù)這樣的指令時(由于內(nèi)存訪問是瓶頸,此操作比較緩慢),整個流水線便出現(xiàn)長時間停頓。在CPU內(nèi)部,使用多級Cache來提高訪問內(nèi)存的速度。GPU中也使用Cache,不過Cache命中率不高,只用Cache解決不了這個問題。所以,為了保持流水線保持忙碌,GPU的設計者使用了多線程機制(multi-threading),見圖3。 當像素著色器針對某個像素的線程A遇到存取紋理的指令時,GPU會馬上切換到另外一個線程B,對另一個像素進行處理。等到紋理從內(nèi)存中取回時,可再切換到線程A。但是使用這種方法有一個前提,線程A與線程B沒有數(shù)據(jù)依賴性,也就是說兩線程之間無需通訊。如果線程B需要線程A提供某些數(shù)據(jù),那么即使切換到線程B,線程B仍是無法運行,流水線還是處于空閑狀態(tài)。不過幸運的是,圖形渲染本質(zhì)上是一個并行任務。 無論是CPU送給GPU的頂點數(shù)據(jù),還是GPU光柵生成器產(chǎn)生的像素數(shù)據(jù)都是互不相關的,可以并行地獨立處理。而且頂點數(shù)據(jù)(xyzw),像素數(shù)據(jù)(RGBA)一般都用四元數(shù)表示,適合于并行計算。在GPU中專門設置了SIMD指令來處理向量,一次可同時處理四路數(shù)據(jù)。SIMD指令使用起來非常簡潔,可以看一個頂點矩陣變換的例子(見下代碼)。此外,紋理片要么只能讀取,要么只能寫入,不允許可讀可寫,從而解決了存貯器訪問的讀寫沖突。GPU這種對內(nèi)存使用的約束也進一步保證了并行處理的順利完成。 GPU中的多線程機制: |
金蟲 (文壇精英)
老漢一枚
|
為了進一步提高并行度,可以增加流水線的條數(shù)。 在GeForce 6800 Ultra中,有多達16組像素著色器流水線, 6組頂點著色器流水線。多條流水線可以在單一控制部件的集中控制下運行,也可以獨立運行。在單指令多數(shù)據(jù)流(SIMD)的結構中,單一控制部件向每條流水線分派指令,同樣的指令被所有處理部件同時執(zhí)行。 另外一種控制結構是多指令多數(shù)據(jù)流(MIMD),每條流水線都能夠獨立于其他流水線執(zhí)行不同的程序。GeForce 6800 Ultra的頂點著色器流水線使用MIMD方式控制,像素著色器流水線使用SIMD結構。MIMD能比較有效率地執(zhí)行分支程序,而SIMD體系結構運行條件語句時會造成很低的資源利用率。不過SIMD需要硬件少,這是一個優(yōu)勢。 CPU中大部分晶體管主要用于構建控制電路(象分支預測等)和Cache,只有少部分的晶體管來完成實際的運算工作。而GPU的控制相對簡單,而且對Cache的需求小,所以大部分晶體管可以組成各類專用電路、多條流水線,使得GPU的計算速度有了突破性的飛躍,擁有了驚人的處理浮點運算的能力。 現(xiàn)在CPU的技術進步正在慢于摩爾定律,而GPU(視頻卡上的圖形處理器)的運行速度已超過摩爾定律,每6個月其性能加倍。 雖然GPU最初專門是為圖形渲染設計的,但是GPU還可以有效地執(zhí)行多種通用計算,從線性代數(shù)和信號處理到數(shù)值仿真等等。有的專家甚至認為GPU將進入計算的主流。過去,學生們在課堂學習計算機體系結構時,聽老師講解各類并行計算機時,仿佛覺得這些東西都是科學家才使用的尖端產(chǎn)品?捎趾卧氲,現(xiàn)在并行計算機(GPU) 就在我們的普通PC電腦內(nèi),觸手可及。 主要參考文獻: [ Last edited by yalefield on 2008-4-26 at 02:37 ] |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 一志愿華東師范大學有機化學專業(yè),初試351分,復試被刷求調(diào)劑! +5 | 真名有冰 2026-03-29 | 6/300 |
|
|---|---|---|---|---|
|
[考研] 070305高分子化學與物理 304分求調(diào)劑 +12 | c297914 2026-03-28 | 12/600 |
|
|
[考研] 一志愿雙一流機械285分求調(diào)劑 +4 | 幸運的三木 2026-03-29 | 5/250 |
|
|
[考研] 352分-085602-一志愿985 +5 | 海納百川Ly 2026-03-29 | 5/250 |
|
|
[考研] 調(diào)劑考研 +3 | 王杰一 2026-03-29 | 3/150 |
|
|
[考研] 321求調(diào)劑 +7 | 璞玉~~ 2026-03-25 | 8/400 |
|
|
[考研] 311(085601)求調(diào)劑 +4 | liziyeyeye 2026-03-28 | 4/200 |
|
|
[考研] 266求調(diào)劑 +11 | 陽陽哇塞 2026-03-27 | 12/600 |
|
|
[考研] 305求調(diào)劑 +5 | 哇盧卡庫 2026-03-26 | 5/250 |
|
|
[考研] 調(diào)劑 +3 | 李嘉圖·S·路 2026-03-27 | 3/150 |
|
|
[考研] 336材料求調(diào)劑 +7 | 陳瀅瑩 2026-03-26 | 9/450 |
|
|
[考研] 一志愿天津大學339材料與化工求調(diào)劑 +3 | 江往賣魚 2026-03-26 | 3/150 |
|
|
[考研] 一志愿哈工大,085400,320,求調(diào)劑 +4 | gdlf9999 2026-03-24 | 4/200 |
|
|
[考研] 材料與化工304求B區(qū)調(diào)劑 +3 | 邱gl 2026-03-25 | 3/150 |
|
|
[考研] 0854AI CV方向招收調(diào)劑 +4 | 章小魚567 2026-03-23 | 4/200 |
|
|
[考研] 296求調(diào)劑 +4 | 汪。! 2026-03-25 | 7/350 |
|
|
[考研] 285求調(diào)劑 +3 | AZMK 2026-03-24 | 3/150 |
|
|
[考研] 300分,材料,求調(diào)劑,英一數(shù)二 +5 | 超贊的 2026-03-24 | 5/250 |
|
|
[考研] 求調(diào)劑 +6 | 研研,接電話 2026-03-24 | 7/350 |
|
|
[考研]
|
13659058978 2026-03-24 | 4/200 |
|