<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 業(yè)界動(dòng)態(tài) > GPU如何工作:PowerVR/高通Adreno/ARM Mali的渲染模式分析

GPU如何工作:PowerVR/高通Adreno/ARM Mali的渲染模式分析

作者: 時(shí)間:2016-06-20 來(lái)源:愛(ài)活網(wǎng) 收藏
編者按:對大多數讀者來(lái)說(shuō),GPU架構甚至GPU是啥,的確完全可以不需要了解,只要看上去外觀(guān)比較合眼緣就可以讓他們毫不猶豫地掏腰包購買(mǎi)。

  在渲染片元的時(shí)候,GPU先比較最粗糙版本的Z-buffer。如果要畫(huà)的片元Z值還比較遠,那這個(gè)片元就一定不用畫(huà)出來(lái)了。如果它比較近,就再拿比較細的Z-buffer來(lái)比較,一直比較到最細的版本。在理想的情形下,通常大部分的片元都不需要比較到最細的版本,所以可以節省不少時(shí)間(要記得,一個(gè)“粗糙”版的Z值比較,其實(shí)就等于和四個(gè)“精細”版的 Z 值比較)。

本文引用地址:http://dyxdggzs.com/article/201606/292810.htm


IMR與TBR/TBDR兩大GPU流派的愛(ài)恨情仇


  相較之下,的TBDR會(huì )在幾何階段的三角形裁剪后將當前 scene(場(chǎng)景或者說(shuō)畫(huà)面)的三角形經(jīng)過(guò)篩選排序存放在scene buffer 內,然后由 HSR(隱面消除)算法將攝像機視點(diǎn)不可見(jiàn)的片元剔去掉,這部分實(shí)現細節已經(jīng)在一節中有闡述,這里就不再復述了。

  按照高通的說(shuō)法,從3xx系列采用了名為FlexRender的渲染架構,可以自動(dòng)在立即渲染和TBDR之間切換,而且這個(gè)TBDR的執行過(guò)程和 TBDR是基本一樣的(同樣有對三角形進(jìn)行binning和剔除無(wú)效片元的處理):


IMR與TBR/TBDR兩大GPU流派的愛(ài)恨情仇


  所以從微架構方面而言,高通透露的信息并不多,只能看到個(gè)大概,以驍龍820搭配的 530為例,采用了統一著(zhù)色架構和FlexRender,配有256個(gè)ALU,支持DirectX 12.1、Vulkan、OpenCL 2.0。


IMR與TBR/TBDR兩大GPU流派的愛(ài)恨情仇


  采用驍龍820(搭載 530)的小米 5(價(jià)格1999元版本))在運行OpenCL-Z的FP32 性能測試結果是287 GFLOPS,相較之下,價(jià)格799元的紅米Note 2(Power VR 6200)只有44 GFLOPS,前者是后者性能的6.52倍,當然,這個(gè)測試只是屬于底層測試,實(shí)際的游戲體驗因人、因應用而異。

  安謀Mali——弱核化設計

  安謀(ARM)最為人熟知的是旗下的各款 ARM CPU內核,目前的主要手機幾乎都是采用ARM 陣營(yíng)的CPU。

  ARM的GPU Mali是ARM在2006年收購的挪威公司Falanx獲得的,源起于是90年代由ARM在挪威科技大學(xué)支持的的項目,到了2001年由Borgar Ljosland與四位在該項目中的GPU團隊學(xué)生于2001年創(chuàng )辦了這家Falanx Microsystems。

  Falanx最初是希望打進(jìn)臺式機市場(chǎng),不過(guò)隨著(zhù)3dfx、Matrox等公司的萎靡、敗退,臺式機GPU市場(chǎng)的格局發(fā)生了很大的變化,不再有空間給新丁了,Falanx轉向了從事手機、PDA、機頂盒、游戲掌機、信息機等領(lǐng)域,不過(guò)他們當時(shí)在這個(gè)領(lǐng)域其實(shí)做得并不算很出色,ARM的收購對他們來(lái)說(shuō)是一個(gè)重要的轉折點(diǎn)。


IMR與TBR/TBDR兩大GPU流派的愛(ài)恨情仇


  ARM收購Falanx推出的第一款GPU就是2007年的Mali-200,是Mali第一款OpenGL ES 2.0 GPU,它和它的換代型號Mali-300、Mali-400、Mali-450都是基于名為Utgard(北歐神話(huà)中Utgard-Loki統治下約頓巨人位于仙宮與塵世之外的宮殿)的微架構。Utgar采用的是非統一架構,頂點(diǎn)指令和像素指令有各自專(zhuān)門(mén)的單元來(lái)執行,到了Mali-400時(shí)候實(shí)現了多核能力。

  Mali最新的微架構代號是Midgard,和Utgard不同的是,Midgard開(kāi)始采用統一著(zhù)色架構,幾何和片元操作指令都在同一個(gè)著(zhù)色器單元上執行。

  Mali同樣采用了分塊式渲染(塊元大小是16x16),但是根據下面這個(gè)幻燈片,可以看到其scene buffer或者說(shuō)primitive buffer保存的圖元順序必須和程序遞交的順序保持一致(畫(huà)紅線(xiàn)部分),不存在PowerVR那樣的篩選(sorting)動(dòng)作。

  因此如果按照ImgTec的說(shuō)法 Mali并不能算是真正的TBDR,當然,它還是具備 Early-Z這樣的隱面消除能力,只是粒度上肯定不如PowerVR那么細(PowerVR自稱(chēng)其HSR能力為pixel perfect)。


IMR與TBR/TBDR兩大GPU流派的愛(ài)恨情仇


  在渲染流程方面,Mali或者說(shuō)Midgard和目前你看到的大多數GPU做法有些不一樣,那就是作為統一渲染架構,它可以在同一時(shí)間里同時(shí)對幾何和片元進(jìn)行渲染操作,而其他的GPU在同一時(shí)間里要嘛就是幾何計算要嘛就是片元計算:


IMR與TBR/TBDR兩大GPU流派的愛(ài)恨情仇


  如上圖所示,你可以看到Mali可以在同一時(shí)間片上同時(shí)進(jìn)行幾何和片元操作,這表明Mali內部的任務(wù)調度設計非常靈活,原因請看下面的介紹。


IMR與TBR/TBDR兩大GPU流派的愛(ài)恨情仇


  上圖是Mali的著(zhù)色器內核(Shader Core)功能模塊圖,可以看到,如果圖示的確是正確的話(huà),那么這個(gè)著(zhù)色器內核里面可謂是五臟俱全,本質(zhì)上就是一個(gè)小 GPU,圖形渲染所涉及到的操作都能在一個(gè) Shader Core 上完成,因此配有多個(gè)Shader Core的Mali可以做到在同一時(shí)間內跑幾何和片元處理,多個(gè)Shader Core的Mali GPU其實(shí)就是一個(gè)片上多GPU并行渲染系統。

  其實(shí)其他廠(chǎng)商尤其是采用TBR的GPU可以像Mali這樣片上多核運行多個(gè)Tile,但是Mali GPU的特別之處是它的內核內部是沒(méi)考慮擴展的,至少目前是這樣。像ImgTecPower VR XT7等其他廠(chǎng)牌的GPU內部的CU數都是具備延伸能力的,而Mali GPU則對不起,不管什么型號的Mali GPU,上面的Tri-Pipe 都是固定的一個(gè),這就是所謂的“完整的弱內核”設計。

  從OpenCL的角度而言,每個(gè)Mali內核都是一個(gè)CU,只能以多個(gè)Partition(分區)的方式實(shí)現規模擴張。而像PowerVR則是既可以多個(gè)CU 也可以多個(gè)Partition的方式實(shí)現規模上的性能延伸。


IMR與TBR/TBDR兩大GPU流派的愛(ài)恨情仇


  值得一提的是,Mali-T880的Tri-Pipe,這其實(shí)就是Mali的可編程渲染/計算單元,其中包含了紋理(T-Pipe)、內存指令(LS-Pipe)和算術(shù)邏輯(A-Pipe)單元三部分,在Mali-T880之前,Tri-Pipe的算術(shù)邏輯單元大都只有兩個(gè),而在Mali-T880上,Tri-Pipe 的算術(shù)邏輯單元增加到了3個(gè),使其計算能力提升了50%。

  Mali相對于目前大多數其他廠(chǎng)商GPU的另一個(gè)區別要點(diǎn)是它的A-Pipe采用了SIMD向量處理設計,寄存器能夠像目前CPU的SIMD單元那樣靈活地拆分成2xFP64、4xFP32、8xFP16、2xInt64、4xInt32、8xInt16、16xInt8等數據類(lèi)型訪(fǎng)問(wèn)。

  按照ARM的說(shuō)法,Mali的算術(shù)ISA 用了SIMD + VLIW的設計:

  三個(gè)向量單元(128-bit數據路徑)

  4路FP32或者8路FP16

  16路Int8

  兩個(gè)標量單元(32-bit數據路徑)


IMR與TBR/TBDR兩大GPU流派的愛(ài)恨情仇


  按照ARM官方博客的一篇文章,Mali-T760的每條A-Pipe單周期單精度計算性能是17FLOP,從上圖來(lái)看,VMUL和VADD以及SADD、SMUL的FLOPS是應該是10個(gè),余下的7個(gè)就是那個(gè)VLUT。

  LUT的含義并不是很清楚,也許是查表(Look-up Table)的含義,不過(guò)這樣的話(huà),我覺(jué)得似乎不太適合將其歸入到人們常說(shuō)的通用計算性能指標里,即使其使用的是VLIW指令集。

  所以我覺(jué)得每條A-Pipe的單精度性能應該視作每周期10個(gè)比較合適。對于Mali-T880MP16來(lái)說(shuō),在 650MHz 時(shí)候的單精度性能應該是312 GFLOPS,同理,Mali-T760MP8的單精度浮點(diǎn)性能應該是104 GFLOPS,當然這只是我的個(gè)人意見(jiàn)。

  LS-Pipe執行的是和紋理無(wú)關(guān)的內存存取動(dòng)作,例如幾何/片元處理時(shí)候的屬性讀取和變量寫(xiě)入操作。通常而言每條指令就是一次內存訪(fǎng)問(wèn)操作,如果是 A-pipe的向量操作就是單指令Vec4操作。

  雖然ARM Mali并非TBDR,不具備在進(jìn)入塊元渲染之前透過(guò)篩選將無(wú)效的片元剔除掉,但是它的某些型號具備名為Forward Pixel Kill(正向像素剔除,簡(jiǎn)稱(chēng)FPK,見(jiàn)上面Mali-T880 Shader Core架構圖中Early-Z后接的就是FPK單元)技術(shù)。

  具備這個(gè)技術(shù)的GPU所跑的線(xiàn)程不再是不可撤銷(xiāo)的,如果發(fā)現稍后的線(xiàn)程要向相同像素位置寫(xiě)入不透明數據,就會(huì )將已經(jīng)在進(jìn)行的計算終止掉。由于每個(gè)像素需要花費一段時(shí)間才能完成,因此 FPK可以有一個(gè)時(shí)間窗口來(lái)排空流水線(xiàn)中已有的無(wú)效渲染片元。

  按照ARM的說(shuō)法,這個(gè)FPK技術(shù)在最適中的流水時(shí)間窗口下所能達到的消除無(wú)效渲染效果可以和PowerVRTBDR w/HSR媲美,而且無(wú)需對整個(gè)畫(huà)面的三角形進(jìn)行篩選、無(wú)需在程序里添加篩選代碼、能夠對半透明對象實(shí)行正確處理、不會(huì )對幀率產(chǎn)生突變影響。


IMR與TBR/TBDR兩大GPU流派的愛(ài)恨情仇


  上面這個(gè)表格是維基百科上的Mali各型號規格表,其中的單精度指標是包括了那個(gè)VLUT的。

  目前市場(chǎng)上大多數采用Mali的中端SoC都還是基于Mali-4XX系列,按照 ARM的說(shuō)法,目前有75%的數字電視、超過(guò)50%的Android平板電腦、大于35% 的智能手機采用了Mali GPU。

  例如小米電視3就采用了Mali-T760MP4這個(gè)GPU,三星去年的旗艦產(chǎn)品Galaxy S6、Galaxy S6 Edge都有采用Mali-T760,我手頭有一臺支持智能卡的電信T6有線(xiàn)電視機頂盒,搭配的是全志的SoC,其中的GPU也是ARM Mali-400MP,所以這個(gè)看上去有點(diǎn)古怪(完整的弱內核設計)的GPU在市占率方面Mali已經(jīng)取得了相當不錯的成績(jì)。

  三星Galaxy S6采用的Mali-T760MP8名義頻率是772MHz,理論單精度性能是123.5 GFLOPS(按照每個(gè)算術(shù)流水線(xiàn)里包含兩個(gè)4 路FP32 SIMD和兩個(gè) FP32標量來(lái)統計,未將那個(gè)相當于7個(gè)FLOPS 的VLUT或者說(shuō) SFU 單元計算在內),3DMark Ice Storm Unlimited 得分是 20988 ,而采用PowerVRGT7600的iPhone 6s Plus 3Dmark Ice Storm Unlimited 結果是27811,基本上符合123.5 GFLOPS vs 172.8GFLOPS (按照iPhone 6s Plus的GT7600頻率為450MHz時(shí)計算出的單精度性能為172.8 GFLOPS)的差距。

  我們相信,在新的一年里將有機會(huì )看到Mali-T8xx系列初露崢嶸,原因是Mali的完整弱內核比較便于隨意搭配,新內核帶來(lái)的規格、性能提升也可以為新應用帶來(lái)更好的用戶(hù)體驗。

  結語(yǔ)

  在這篇文章里,我們介紹了三個(gè)常見(jiàn)的智能設備或者說(shuō)手機/平板電腦的GPU,涉及到的知識面相對坊間的大多數文章而言要更深入一些,例如ImgTec的PowerVR、高通的Adreno、ARM的Mali雖然都屬于TBR,但是具體的實(shí)現卻有著(zhù)各自的特色。


IMR與TBR/TBDR兩大GPU流派的愛(ài)恨情仇


  ImgTec的PowerVR是三個(gè)TBR架構中歷史最長(cháng)的,也是10年GPU大戰中少數幸存下來(lái)并且活的還比較滋潤的廠(chǎng)商之一,PowerVR在TBDR方面擁有非常豐富的實(shí)作經(jīng)驗,憑借 TBDR 的高能效比特點(diǎn),在移動(dòng)設備中站穩了腳跟,成為包括蘋(píng)果在內眾多手機廠(chǎng)商選擇的GPU方案。

  高通的 Adreno 從3xx系列開(kāi)始引入了名為FlexRender的渲染技術(shù),能動(dòng)態(tài)在IMR和TBDR渲染模式之間切換,前者可以在兼容性、響應時(shí)延方面提供最佳的保證,而后者可以在性能耗電比方面達到更佳的體驗效果。

  Mali的渲染架構相對簡(jiǎn)單,屬于TBIMR,也就是分塊式立即渲染,對遞交的三角形順序不作篩選處理,分塊的主要目的是節省帶寬,不過(guò)它的某些型號具備名為 Forward Pixel Kill的技術(shù),能夠隨時(shí)停掉“預見(jiàn)”到的無(wú)效像素(線(xiàn)程)的渲染,號稱(chēng)可以達到媲美PowerVR TBDR 的效果。同時(shí),Mali采用了“完整弱GPU內核”(相對于其他廠(chǎng)商的“完整可延伸GPU內核”而言)設計,內核中的渲染單元不能擴展,性能的規模延伸是透過(guò)增加內核數來(lái)達到。

  我們在本文中沒(méi)有對NVIDIA的GeForce ULP和Intel的GenX進(jìn)行介紹,不過(guò)它們其實(shí)基本上就是同架構的臺式機版本的規??s減版,當然,由于針對的移動(dòng)設備,其中還有一些省電措施,遺憾的是,這兩家廠(chǎng)商的GPU雖然性能不錯,但是在手機市場(chǎng)上由于各自自身的因素而缺乏整機廠(chǎng)商的支持。

  所以,本文從一開(kāi)始就不打算透過(guò)這篇文章來(lái)影響讀者的購買(mǎi)意向,這只是一篇有科普性質(zhì)的文章,盡可能地較少功利的因素,但求看起來(lái)資料盡可能詳細有趣同時(shí)又能增加一些見(jiàn)識就行。


上一頁(yè) 1 2 3 4 下一頁(yè)

關(guān)鍵詞: PowerVR Adreno

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>