国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

統(tǒng)一著色架構(gòu)3D引擎關(guān)鍵技術(shù)研究

2018-06-20 07:46韓立敏
計算機技術(shù)與發(fā)展 2018年6期
關(guān)鍵詞:任務調(diào)度著色引擎

鄧 藝,田 澤,韓立敏

(中航工業(yè)西安航空計算技術(shù)研究所,陜西 西安 710065)

1 概 述

統(tǒng)一著色架構(gòu)是現(xiàn)代圖形處理器(graphics processing unit)的主要實現(xiàn)方式,是實現(xiàn)計算機圖形學領(lǐng)域眾多算法和策略的平臺,具備并行處理及快速構(gòu)建2D、3D圖形,場景和渲染的能力[1]。

統(tǒng)一著色架構(gòu)的3D引擎作為GPU的核心部件,是完成3D圖形、圖像加速計算的基礎(chǔ),其架構(gòu)設(shè)計如圖1所示。它通過統(tǒng)一架構(gòu)的圖形流水線,實現(xiàn)圖形繪制和渲染功能,將自圖形流水線中輸入的一系列離散的頂點任務渲染為可在屏幕顯示的連續(xù)像素塊,輸出到顯示存儲單元中。

統(tǒng)一著色架構(gòu)3D引擎基于單一著色器分時處理頂點任務或像素任務的特性,通過任務調(diào)度策略對著色器執(zhí)行任務的分配和著色器資源的統(tǒng)一管理,實現(xiàn)對著色器資源的高效利用,從而提高系統(tǒng)處理性能。同時由于執(zhí)行單元和配套資源的共享化,以及針對不同的渲染任務設(shè)計統(tǒng)一的執(zhí)行單元、相應接口以及操作方式,在一定程度上簡化了軟、硬件開發(fā)流程。統(tǒng)一著色架構(gòu)使GPU更加靈活,可編程性大大提升[2-3]。

統(tǒng)一著色架構(gòu)3D引擎的并行處理通過三級層次結(jié)構(gòu)組織實現(xiàn)[4]。在最底層,由著色器核構(gòu)成流處理器(stream processor,SP),以單指令多數(shù)據(jù)(single instruction multiple data,SIMD)或單指令多線程(single instruction multiple threads,SIMT)方式執(zhí)行操作。在中間層,SIMD(或SIMT)執(zhí)行架構(gòu)的多個SP被組織成流多處理器(stream multiprocessor,SM),其局部存儲可被組內(nèi)SP快速訪問。在頂層,3D引擎由多個SM單元組成,并連接到全局圖形存儲器。

圖1 統(tǒng)一著色架構(gòu)3D引擎架構(gòu)框圖

統(tǒng)一著色架構(gòu)的3D引擎在帶來較高圖形處理性能的同時,也對其設(shè)計提出了挑戰(zhàn)。首先,作為統(tǒng)一著色架構(gòu)3D引擎最基本的計算單元,統(tǒng)一著色器主要完成頂點、像素的統(tǒng)一著色功能,是影響3D引擎計算性能的關(guān)鍵因素。眾多統(tǒng)一著色器的組織方式,通過多級調(diào)度策略采用著色器資源兩級分組管理、動態(tài)分配管理和統(tǒng)一調(diào)度實現(xiàn),避免了資源分配不均,提高了性能/能耗比。此外,3D引擎多層次的存儲結(jié)構(gòu)與任務調(diào)度策略中的調(diào)度資源存在映射關(guān)系,因此存儲系統(tǒng)的數(shù)據(jù)傳輸能力與系統(tǒng)整體性能密切相關(guān)?;谝陨戏治?,多層次存儲結(jié)構(gòu)設(shè)計、多級調(diào)度策略和著色器體系結(jié)構(gòu)設(shè)計作為影響單個著色器處理性能發(fā)揮及整體3D引擎數(shù)據(jù)吞吐率的重要因素,成為統(tǒng)一著色架構(gòu)GPU研究的重點。

2 統(tǒng)一著色架構(gòu)的存儲層次

GPU的多核特性使其對存儲通路的存儲帶寬有更高的要求,因此存儲系統(tǒng)的數(shù)據(jù)傳輸能力與系統(tǒng)整體性能密切相關(guān)。統(tǒng)一著色架構(gòu)3D引擎在提升系統(tǒng)處理能力的同時,也導致了更嚴重的“存儲墻”問題,對存儲系統(tǒng)提出了更高的要求[5]。

目前,在GPU硬件資源有限的條件下,提高存儲帶寬利用率,充分使用共享和復用減少對外部存儲器的訪問次數(shù),成為“存儲墻”問題通用的解決方案。統(tǒng)一著色架構(gòu)3D引擎為減少各請求源對外部存儲器的訪問頻率,減少DDR3存儲通路的帶寬壓力,采用層次化的存儲結(jié)構(gòu),存儲架構(gòu)如圖2所示。

其中L0層是各請求源內(nèi)部的寄存器級緩存,具有速度快、容量小的特點,訪問最頻繁;L1層主要包括單個SM級的本地存儲和L1Cache;L2層主要包括所有SM能夠共享的著色程序存儲器、紋理Cache的二級緩存;L3層是兩條數(shù)據(jù)位寬的獨立通路,組成DDR存儲訪問與控制,用以訪問片外存儲,其訪問速度最慢、容量最大[6]。

圖2 統(tǒng)一著色架構(gòu)的多層次存儲架構(gòu)

2.1 統(tǒng)一著色器的設(shè)計

統(tǒng)一著色器的設(shè)計主要包括指令集定義、數(shù)據(jù)通路設(shè)計、著色器架構(gòu)、具體運算單元設(shè)計以及多個著色器的執(zhí)行架構(gòu)等方面。

統(tǒng)一著色架構(gòu)的指令集定義遵循通用和高效的原則。在通用性方面,應基于OpenGL 2.0等相關(guān)通用標準,以及上文對統(tǒng)一著色器實現(xiàn)具體頂點、像素運算的內(nèi)容分析,定義基本的常用運算指令、基于圖形特性的特殊函數(shù)指令以及提升著色器效率的其他指令;在高效性方面,通過指令集的優(yōu)化設(shè)計提升著色器的流處理特性來發(fā)揮其強大的運算優(yōu)勢[7]。

統(tǒng)一著色架構(gòu)將統(tǒng)一著色器和特殊功能單元(special function unit,SFU)的數(shù)據(jù)通路相結(jié)合,其設(shè)計包括加法單元、乘法單元、乘加單元、移位單元、累加單元、浮點加法單元、浮點乘法單元等[8]。

統(tǒng)一著色器核主要包括取指令單元、譯碼單元、Register file、本地數(shù)據(jù)存儲器、各種運算單元及輸出寄存器,其體系結(jié)構(gòu)設(shè)計如圖3所示。

為提升3D引擎的并行性及數(shù)據(jù)吞吐量,單個SM處理器內(nèi)部的多個著色器的執(zhí)行架構(gòu)采用單指令多數(shù)據(jù)(single instruction multiple data,SIMD)或單指令多線程(single instruction multiple threads,SIMT)架構(gòu)組織實現(xiàn),從而最大化地實現(xiàn)運算單元的復用。與傳統(tǒng)的標量執(zhí)行模式相比,SIMD和SIMT架構(gòu)都能夠?qū)崿F(xiàn)數(shù)據(jù)的并行執(zhí)行操作,標量架構(gòu)的執(zhí)行域以單一數(shù)據(jù)為基本單位,SIMD架構(gòu)的執(zhí)行域以一元向量為基本單位,SIMT架構(gòu)的執(zhí)行域以矩陣為基本單位。

圖3 統(tǒng)一著色器設(shè)計架構(gòu)

SIMD結(jié)構(gòu)有利于對向量和數(shù)組進行數(shù)據(jù)的并行計算,但同時也制約了它進行有效的多線程計算。GPU中的“硬件多線程”主要采用少數(shù)指令對大量數(shù)據(jù)進行操作的方式實現(xiàn)。在商用設(shè)計領(lǐng)域,NVIDIA將芯片架構(gòu)逐步轉(zhuǎn)向了SIMT模式。有別于AMD的SIMD架構(gòu),SIMT的優(yōu)勢在于數(shù)據(jù)無需湊成合適的矢量長度,同時SIMT允許每個線程有不同的分支。由于條件跳轉(zhuǎn)會根據(jù)輸入數(shù)據(jù)不同在不同的線程中有不同表現(xiàn),純粹使用SIMD無法實現(xiàn)并行執(zhí)行有條件跳轉(zhuǎn)的函數(shù),而SIMT架構(gòu)則能夠?qū)崿F(xiàn)。然而,SIMT架構(gòu)的SM硬件設(shè)計結(jié)構(gòu)較之SIMD更復雜,控制邏輯設(shè)計難度更高。AMD的SIMD架構(gòu)可以用少量的晶體管構(gòu)建龐大數(shù)量的流處理器,從而擁有強大的理論浮點運算能力;而NVIDIA的SIMT架構(gòu)的單個流處理器所需的晶體管更多,理論浮點運算能力也更強。相較而言,AMD以數(shù)量彌補效率的不足,而NVIDIA以效率彌補數(shù)量的劣勢[9]。

2.2 統(tǒng)一著色架構(gòu)調(diào)度策略

基于對3D引擎圖形流水線的研究,統(tǒng)一著色架構(gòu)之前的性能瓶頸主要在于像素著色階段,即使分離可編程架構(gòu)中將1∶3作為頂點與像素著色引擎的黃金比例,依然無法滿足復雜多變場景的渲染需求,因此資源利用率不足成為限制GPU性能提升的關(guān)鍵[10]。作為支持多任務的計算平臺,統(tǒng)一著色架構(gòu)3D引擎中每個計算單元的任務處理效率可能不同,為充分利用系統(tǒng)資源,需要3D引擎具備監(jiān)控以及動態(tài)調(diào)度計算核心的能力。同時,統(tǒng)一著色架構(gòu)3D引擎的核心處理性能主要由其任務調(diào)度能力和各個流處理器核的執(zhí)行能力表征,因而兼顧靈活、高效以及可靠的任務調(diào)度與資源分配方案是統(tǒng)一著色架構(gòu)3D引擎的研究重點和關(guān)鍵技術(shù)。

在多任務環(huán)境下,圖形處理系統(tǒng)通過多任務調(diào)度框架的多級調(diào)度設(shè)計,保證整個系統(tǒng)高效的調(diào)度效率和良好的圖形處理性能,調(diào)度框架如圖4所示。調(diào)度的對象是經(jīng)過組裝的一組固定格式的頂點或像素warp(又稱wavefront)。

圖4 GPU的多任務調(diào)度框架

當一部分任務分發(fā)至3D引擎之前,主機接口與前端處理模塊首先接收任務輸入,并通過分析多任務間的資源競爭問題[11],完成初步的多任務隊列排序及任務的分發(fā)功能。在統(tǒng)一著色架構(gòu)3D引擎內(nèi)部,warp任務組裝單元接收來自主機接口與前端模塊的頂點任務輸入,以及來自3D引擎內(nèi)部其他模塊的像素任務;全局任務調(diào)度單元接收組裝完成的warp任務輸入,對待分發(fā)任務進行統(tǒng)一分配、對所有執(zhí)行單元任務執(zhí)行狀態(tài)進行統(tǒng)一調(diào)度管理,并采用各流多處理器(SM)內(nèi)部的調(diào)度器,完成3D引擎內(nèi)部的兩級調(diào)度,最終實現(xiàn)對SIMD(或SIMT)架構(gòu)的執(zhí)行單元以及統(tǒng)一著色器的調(diào)度管理。同時全局任務調(diào)度層通過SM調(diào)度單元內(nèi)部的統(tǒng)計與反饋,實現(xiàn)統(tǒng)一任務調(diào)度單元的實時、動態(tài)調(diào)度。

在多任務調(diào)度系統(tǒng)中,采用的調(diào)度策略主要分為以下幾類[12-14]:

第一類是基于先到先服務(first come first served,F(xiàn)CFS)的簡單調(diào)度策略,該調(diào)度策略便于實現(xiàn),硬件資源占用較小,但無法適應統(tǒng)一著色架構(gòu)對靈活的調(diào)度性能需求。

第二類采用完全公平調(diào)度策略(completely fair scheduling,CFS),使每個待調(diào)度任務公平地共享計算資源,同時以任務的優(yōu)先級和任務運行時間作為調(diào)度的依據(jù),在任務的優(yōu)先級相同時,優(yōu)先調(diào)度之前占用3D引擎執(zhí)行時間較少的任務,既保證了調(diào)度的公平性又增加了靈活性,但未區(qū)分統(tǒng)一著色架構(gòu)面向圖形類應用和非圖形類應用時不同的調(diào)度需求。

第三類采用基于分類和多優(yōu)先級隊列(class priority multiple queue,CPMQ)的多任務調(diào)度系統(tǒng),面向圖形應用、通用計算、實時著色等多種任務類型的調(diào)度需求,采用加權(quán)公平排隊算法(weighted fair queuing,WFQ)對待分發(fā)任務進行排序,有效降低了圖形任務的響應時間,提升了應用系統(tǒng)的圖形用戶體驗。

依據(jù)上文對GPU調(diào)度框架的分析,3D引擎內(nèi)部的調(diào)度策略可以分為兩級,包括全局的任務調(diào)度和各SM內(nèi)部的調(diào)度。全局的任務調(diào)度主要完成的功能包括對所有待處理任務的統(tǒng)計與排序,對待處理任務向各SM內(nèi)部統(tǒng)一著色器的調(diào)度分發(fā),以及對所有SM內(nèi)統(tǒng)一著色器的執(zhí)行狀態(tài)和執(zhí)行類型進行管理;各SM內(nèi)部的調(diào)度策略為隱藏著色器執(zhí)行操作中對各級存儲的訪問延遲而設(shè)計,通過單指令多周期執(zhí)行和多個warp的調(diào)度切換來實現(xiàn)。

3 結(jié)束語

基于統(tǒng)一著色架構(gòu)的3D引擎是當前圖形處理技術(shù)的研究熱點,它統(tǒng)一了上一代分離可編程架構(gòu)中分離的頂點著色器和像素著色器,打破了因資源分配不均導致的性能瓶頸,同時對統(tǒng)一著色器、多層次任務調(diào)度策略和多層次存儲架構(gòu)等相關(guān)設(shè)計提出了更高的要求。

目前對這幾項關(guān)鍵技術(shù)的研究已取得了一定的進展,向自主研制統(tǒng)一著色架構(gòu)GPU的方向邁進了一大步,但在統(tǒng)一著色器的指令集設(shè)計、面向圖形領(lǐng)域與通用計算領(lǐng)域的多任務并行調(diào)度,及統(tǒng)一著色架構(gòu)GPU各類關(guān)鍵技術(shù)的性能評價體系等方面,仍需進行更深入的理論研究和優(yōu)化設(shè)計。

參考文獻:

[1] 田 澤,張 駿,許宏杰,等.圖形處理器低功耗設(shè)計技術(shù)研究[J].計算機科學,2013,40(6A):210-216.

[2] 劉 堅.嵌入式多核GPU渲染流水線的研究與實現(xiàn)[D].成都:電子科技大學,2015.

[3] SHREINER D,WOO M,NEIDER J,et al.OpenGL編程指南[M].北京:人民郵電出版社,2007:23-51.

[4] PAUL B.Introduction to the direct rendering infrastructure[EB/OL].(2000-08-10)[2014-03-23].http://dri.sourceforge.net/doc/DRIintro.html.

[5] LINDHOLM E,NICKOLLS J,OBERMAN S,et al.NVIDIA Tesla:a unified graphics and computing architecture[J].IEEE Micro,2008,28(2):39-55.

[6] 盧 俊,顏 哲,田 澤.一種高效GPU存儲系統(tǒng)體系架構(gòu)設(shè)計[J].計算機技術(shù)與發(fā)展,2015,25(4):6-9.

[7] 黃偉鈿.面向移動平臺的3D圖形處理器的設(shè)計[D].廣州:華南理工大學,2011.

[8] WOO J H,KIM H,YOO H J.A low power multimedia SoC with fully programmable 3D graphics for mobile devices[J].IEEE Computer Graphics & Applications,2009,29(5):82-90.

[9] WOO J H,SOHN J H,KIM H,et al.A 152 mW mobile multimedia SoC with fully programmable 3D graphics and MPEG4/H.264/JPE[J].IEEE Transactions on Very Large Scale Integration Systems,2009,17(9):1260-1266.

[10] WANG P H,CHEN Y M,YANG C L,et al.A predictive shutdown technique for GPU shader processor[J].IEEE Computer Architecture Letters,2009,8(1):9-12.

[11] 丑文龍,梅魁志,高增輝,等.ARM GPU的多任務調(diào)度設(shè)計與實現(xiàn)[J].西安交通大學學報,2014,48(12):87-92.

[12] 賓雪蓮,楊玉海,金士堯.一種基于分組與適當選取策略的實時多處理器系統(tǒng)的動態(tài)調(diào)度算法[J].計算機學報,2006,29(1):81-91.

[13] LIU Shuo,QUAN Gang,REN Shangping.On-line scheduling of real-time services for cloud computing[C]//Proceedings of the 2010 6th world congress on services.Washington DC,USA:IEEE Computer Society,2010:459-464.

[14] 劉加海,楊茂林,雷 航,等.共享資源約束下多核實時任務分配算法[J].浙江大學學報:工學版,2014,48(1):113-117.

猜你喜歡
任務調(diào)度著色引擎
基于生產(chǎn)函數(shù)的云計算QoS任務調(diào)度算法
基于動態(tài)能量感知的云計算任務調(diào)度模型
蔬菜著色不良 這樣預防最好
新海珠,新引擎,新活力!
蘋果膨大著色期 管理細致別大意
車壇往事4:引擎進化之屢次失敗的蒸汽機車
10位畫家為美術(shù)片著色
藍谷: “涉藍”新引擎
基于HMS的任務資源分配問題的研究
基于混合粒子群算法的云計算任務調(diào)度研究
东辽县| 金门县| 酒泉市| 遂宁市| 靖江市| 泾阳县| 临邑县| SHOW| 绥德县| 西丰县| 广南县| 墨江| 玉屏| 泸溪县| 石家庄市| 来凤县| 西和县| 门源| 凌海市| 丹阳市| 车致| 湄潭县| 渑池县| 孟津县| 大洼县| 新乡县| 舒城县| 体育| 东莞市| 武乡县| 神农架林区| 慈溪市| 疏附县| 大新县| 普兰店市| 秦安县| 建阳市| 临颍县| 舞钢市| 舒城县| 涞水县|