999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式GPU中可重構視口變換單元的設計與實現

2018-07-04 13:12:18田汝佳鄧軍勇張雪婷
小型微型計算機系統 2018年5期
關鍵詞:結構

田汝佳,蔣 林,鄧軍勇,張雪婷

(西安郵電大學 電子工程學院,西安 710121)

1 引 言

圖形處理器(Graphics Processing Unit,GPU)的發展可劃分為工作站、個人電腦、移動設備三個階段.近年來,智能手機和平板電腦等移動設備帶來的產業革命不斷升溫,移動電子產品的發展趨勢極為迅猛.根據App Annie & IDC發布的2016年度回顧報告表明游戲、視頻、即時通信等顯示類應用位于手機應用排行榜之首.因此,每年大量的移動設備對高質量圖形渲染的迫切需求也成為移動圖形處理器發展及研究的內在驅動.相比于桌面GPU,由于自身功耗和帶寬等方面的限制,移動GPU以較低的運算成本實現高性能、高質量的圖形效果逐步成為設計的重點之一[1,2].為了在顯示區域觀察到預期場景,無論圖形渲染流水線采用固定流水線、可編程流水線或者統一著色器結構[3],都需要進行一系列的坐標系變換,即把世界坐標系中3D圖形的位置坐標映射到用于顯示的屏幕坐標系中,包括幾何變換、投影變換、裁剪變換、齊次坐標變換和視口變換空間坐標變換過程.視口變換是3D圖形處理中進行坐標變換的最后階段,是整個渲染管線中必不可少的處理環節,用于實現將經齊次坐標變換后的圖元頂點坐標變換為屏幕中視口矩形內的坐標.

傳統的視口變換多采用專用結構,文獻[4]中采用硬件結構實現了視口變換,其特點是采用一種簡單的RISC處理器實現視口變換的可編程.當前,面向不同應用的圖形處理器正朝著高性能、多種API兼容的方向迅速發展,眾多效率不一的圖形渲染算法使圖形處理具有高度靈活性,如何根據實際需求動態獲取最優性能是圖形處理器設計面臨的瓶頸問題之一.因此,為了滿足移動GPU以較低運算成本及可重構方式來實現視口變換的需求,本文從視口變換算法原理出發,推導了視口變換算法,發現算法對三角形圖元X、Y、Z坐標進行變換時無數據相關性,滿足陣列結構的并行化映射條件[5].在此基礎上,采用輕核處理元陣列,通過基礎的算數運算(加、減等)與邏輯運算(與、或、非、跳轉等)的動態重構,提出了一種基于可重構陣列結構的視口變換單元的硬件并行化實現方案,并在FPGA開發板上完成了硬件原型測試,結果表明本文實現的可重構視口變換方案,在與專用硬件實現性能相當的同時,提高了電路的靈活性.

本文結構如下:第1部分描述了可重構陣列結構,包括單個輕核處理元的硬件結構和處理元之間的數據交互訪問機制;第2部分詳細推導了視口變換算法,得出了判定公式,并基于計算過程中各數據之間的數據無關性,提出一種基于可重構陣列處理器的視口變換單元(Viewport Transformation Unit,VTU)結構;第3部分基于Xilinx的FPGA芯片XC6VLX760T完成了原型系統實現及測試;最后是總結與展望.

2 可重構陣列結構

本文采用的可重構陣列結構,是由4×4個輕核處理單元(Thin-Core Processing Element,TCPE)組成的一個陣列處理器簇(Processing Element Group,PEG).其中,單個PE由一個指令RAM、一個數據RAM、一個指令譯碼寄存器、譯碼單元、寄存器文件(RegFile)、PC控制器、運算單元和一個鄰接互連控制器組成.PE的指令集有算數運算、邏輯運算、分支控制等指令[6].圖1給出了單個PE的微體系結構圖.

圖1 PE的微體系結構框圖Fig.1 Microarchitecture block diagram of PE

陣列處理器中PE間的數據交互通過鄰接互連和共享存儲訪問兩種機制實現,相鄰PE之間的數據交互采用鄰接互連機制通過共享寄存器完成[7];不相鄰PE之間的數據交互采用共享訪問機制通過訪問共享兩級交換結構的4×4個分布隨機訪問存儲器(Random Access Memory,RAM)的方法實現.圖2給出了可重構PE陣列的結構示意圖,其中帶箭頭直線部分表示鄰接互連通信時數據通路,通過PE間共享寄存器進行數據交換;帶RAM雙向箭頭及交叉互連長直線部分為陣列處理器簇內的兩級交換結構,每個PE均可實現本地RAM的優先訪問以及4×4個分布式RAM的共享訪問.

可重構陣列結構利用可編程PE通過加載存儲在指令RAM中的指令或由全局控制器傳遞并存儲在RAM中的實時指令實現多次重復配置邏輯狀態的特性實現實時電路重構.在運行時可根據需要下發指令動態改變系統的電路結構,使PE矩陣可以運行在數據流模式下,從而使電路兼具靈活、硬件資源可復用、并行計算及降低功耗等優良性能.

圖2 可重構PE陣列結構圖Fig.2 Reconfigurable PE array structure diagram

在算法實現的應用中,與基于CUDA(Compute Unified Device Architecture)實現通用計算和圖形渲染算法[8,9]相比,可重構陣列與CUDA在算法的并行計算上都是基于多核結構實現,且都可通過快速的共享內存有效地共享數據.此外,本文采用的可重構陣列結構通過鄰接互連機制解決了CUDA架構在執行計算過程中相鄰處理塊間無法進行數據交互的問題.

3 可重構視口變換單元的實現

3.1 視口變換的原理及算法推導

在計算機圖形學中,視口定義了一個繪制圖形的矩形窗口區域[10].視口用窗口坐標來測量,窗口坐標反映了屏幕上的像素相對于窗口左下角的位置.視口決定了顯示到屏幕上的圖形的位置和大小,同一屏幕上可以定義多個視口,用來顯示不同的圖形信息[11].

OpenGL函數庫中的void glViewport(GLint x,GLint y,GLsizei width,GLsizei height)函數指定了屏幕中視口矩形的原點即視口矩形左下角點的坐標(x0,y0),以及寬度w和高度h.其中width和height值主要用于對三角形圖元頂點坐標中X,Y坐標進行視口變換.與X和Y窗口坐標不同,在OpenGL中Z坐標總是被認為位于0.0~0.1的范圍之間,函數Void glDepthRange(GLclampd near,GLclampd far)為Z坐標定義了一種編碼形式.其中,near和far值表示經過調整后可以存儲在深度緩沖區中的最小值和最大值,在默認情況下初始值分別是0.0和1.0,且范圍被限定在[0,1]之間[11].

因此,歸一化圖形頂點坐標與視口坐標的變換等式有:

(1)

即視口變換矩陣可以表示為:

(2)

其中視口矩陣的參數由函數glViewport和glDepthRange參數指定.

3.2 核心模塊設計

基于上述視口變換算法的分析,本文提出一種基于可重構陣列處理器的視口變換單元(Viewport Transformation Unit,VTU)結構.圖3給出了視口變換單元硬件結構框圖.其中Din是上一流水級送來的圖形命令及數據信息;Vin是上一級向本級傳送數據的數據有效信號;Rin是本級可以接收上一級輸出的握手響應信號;Dout是向下一級輸出的圖形命令及數據信息;Vout是本級向下一級傳送數據的數據有效信號;Rout是下一級可以接收本級輸出的握手響應信號.

圖3 視口變換單元硬件結構框圖Fig.3 Hardware structure diagram of VTU

VTU主要包含圖形命令譯碼模塊、存儲參數寄存器模塊、齊次坐標變換模塊和視口變換計算模塊.其中視口變換計算模塊是VTU單元的核心,其主要功能就是將經過齊次坐標變換的圖元頂點坐標與視口矩陣相乘.

VTU具體處理流程如下:接收來自上一級流水線的Din輸入,并分別存入圖形命令寄存器和數據寄存器中,然后對圖形命令進行譯碼,根據譯碼結果對數據進行相關的存儲和處理.當接收到glViewport命令,存儲參數x、y、w和h,用于對圖元頂點坐標X和坐標Y的變換;當接收到glDepthRange命令,存儲參數n和f,用于對坐標Z的變換;當接收到glPushAttrib命令,將指定的屬性信息組(即參數x、y、w、h、n和f)壓入堆棧,由于下級流水也需要通過該命令來進行壓棧操作,所以本級需要將該命令傳給下級然后返回接收數據;當接收到glPopAttrib命令,將屬性組參數彈出堆棧,恢復glPushAttrib保存的屬性組信息,由于下級流水也需要通過該命令來進行出棧操作,所以本級需要將該命令傳給下級然后返回并接收數據;當接收到glRasterPos和glVertex命令時,將光柵位置坐標和頂點坐標屬性分別進行齊次坐標變換和視口變換,之后將處理完的屏幕坐標發送給下一級,發送完成返回并接收新命令.

3.3 算法的并行化硬件實現

根據可重構陣列結構的指令集、處理器數據位寬、寄存器與存儲結構等特點,為滿足GPU數據處理的精度要求,將并行化實現分為以下三個步驟:數據準備與拆分、進行矩陣計算以及計算結果的轉儲與輸出.

3.3.1 數據準備與拆分

為了將VTU中的規范后的三角形圖元頂點坐標數據并行的傳輸到陣列處理模塊中,本文充分利用了可重構陣列處理器的鄰接互聯數據交互機制,通過陣列處理器外圍PE的共享寄存器將坐標數據通過直接賦值共享寄存器的方式將數據并行送入陣列處理單元.具體實現方式為:圖元頂點的X坐標及視口矩形的寬W連續賦值給PE10的R5共享寄存器,圖元頂點的Y坐標及視口矩形的高H連續賦值給PE01的R6共享寄存器,圖元頂點的Z坐標及視口變換的深度信息f,n連續賦值給PE02的R6共享寄存器,視口矩形的左下角坐標x0,y0連續賦值給PE23的R3共享寄存器.圖4給出了數據傳輸的示意圖.

圖4 PEG接收數據示意圖Fig.4 Receive data schematic diagram of PEG

由于可重構陣列處理器的數據位寬為32位,所要處理的頂點數據也為32位,為了避免乘法計算時出現溢出錯誤.同時,為了簡化乘法運算,提高計算效率,根據陣列處理器的特點,對數據采用圖5和圖6兩種方式進行拆分,然后對每部分進行乘法處理,最終將每部分的計算結果通過移位加的方式拼接成正確結果.

3.3.2 矩陣計算

圖5 第一種數據拆分形式Fig.5 First form of data split

圖6 第二種數據拆分形式Fig.6 Second form of data split

視口矩陣中存在大量0元素,為了優化計算,節約計算成本,在計算映射時只執行有效元素的計算.圖7給出了視口變換矩陣與三角形圖元頂點坐標相乘時的整體映射過程,其中,根據輕核處理元精簡指令集的特點,每個設計乘法計算的PE通過循環移位加的方式實現乘法功能.最終陣列處理器中14個PE用于矩陣乘法映射,PE33用于部分結果的轉儲和輸出,PE32空閑不做任何處理.

圖7 視口矩陣算法整體映射圖Fig.7 Overall mapping diagram of viewport matrix algorithm

3.3.3 結果的轉儲與輸出

4 實驗結果和分析

4.1 VTU實現效果

為了測試本文所提出方法的正確性和可行性,將本文中所實現的方法接入文獻[4]所提的結構中,選用Xilinx的FPGA芯片XC6VLX760對本文所提出的方法進行原型驗證實現.實現流程為首先下載硬件配置文件到FPGA中運行,然后通過上位機編譯軟件OpenGL程序,最終觀察通過VGA輸出到顯示器上的圖像來判斷所提方案的正確性.

圖8 FPGA平臺輸出結果 圖9 VS2013平臺運行結果

最終輸出結果與在軟件VS2013平臺運行結果一致,正確完成了渲染流水線中視口變換功能.圖8給出了FPGA平臺輸出結果,圖9給出了VS2013平臺的運行結果.

4.2 可重構VTU結果分析

用XILINX ISE14.7對VTU進行綜合,器件選用XC6VLX760-1ff1760.綜合后,可重構VTU實現方案最大工作頻率可以達到160.65MHz.具體器件資源占用情況由表1給出.

表1 XC6VLX760T邏輯資源占用統計表Table 1 Logic resource utilization of XC6VLX760T

表2 VTU性能對比Table 2 Performance comparison of VTU

在相同的FPGA開發板上進行原型驗證,與文獻[4]中采用傳統采用專用硬件電路實現視口變換單元相比,表2給兩種不同視口變換單元實現的性能對比數據,本文實現的可重構視口變換單元,在與專用硬件實現性能相當的同時,提高了電路的靈活性,為移動圖形處理器的靈活性設計提供了思路.

5 結 論

為了充分提高移動圖形處理器的靈活性特點,本文根據可重構陣列結構,提出了一種可重構視口變換單元的設計,用可重構的方式靈活的實現了3D圖形渲染流水線中視口變換的功能.在Xilinx的Virtex6系列FPGA開發板上進行原型實現,并對glViewport函數的不同參數情況進行了測試.實驗結果表明,本文所提出的可重構視口變換單元并行化映射實現方法,能夠正確將規范化的齊次坐標映射到顯示在屏幕視區上的坐標,在對不同參數情況進行正確變換的同時,與專用硬件實現性能相當,但靈活性大大提高,且更加實用.

[1] Jiao Ji-ye,Li Tao,Du Hui-min,et al.State of the art and development of mobile graphics processing unit[J].Journal of Computer-Aided Design & Computer Graphics,2015,27(6):1005-1016.

[2] Tunjic B.Computer graphics on mobile devices[J].Vienna University of Technology,2012.

[3] Patney A,Tzeng S,Seitz K A,et al.Piko:a framework for authoring programmable graphics pipelines[J].Acm Transactions on Graphics,2015,34(4):1-13.

[4] Deng Jun-yong,Li Tao,Jiang Lin,et al.Design and implementation of the graphics accelerator oriented to OpenGL[J].Journal of Xidian University,2015,42(6):124-130.

[5] Shen Xu-bang,Sun Lu.The unification research for computing paradigm[J].Chinese Journal of Computers,2014,37(7):1435-1444.

[6] Lv Qing,Jiang Lin,Deng Jun-yong,et al.A reconfigurable array structure for logarithmic and exponential functions[J].Microelectronics & Computer,2016,33(10):28-31+35.

[7] Jiang Lin,Wang Xing-jun,Liu Zhen-tao,et al.Reconfigurable array processor modeling based on systemC[J].Journal of Xi′an University of Posts and Telecommunications,2016,21(3):73-78.

[8] Zhao Jie-yi,Tang Min,Tong Ruo-feng.CUDA based shadow volume algorithm for subdivision surfaces[J].Journal of Zhejiang University(Engineering Science),2012,46(7):1301-1306.

[9] Cai W,Zhou X,Cui X.Optimization of a GPU implementation of multi-dimensional RF pulse design algorithm[C].Bioinformatics and Biomedical Engineering,(iCBBE)2011 5th International Conference on.IEEE,2011:1-4.

[10] Gao Teng-fei,Zeng Chao-yang,Hao Gang-tao,et al.Simulation of space target iamge sequence based on OpenGL[J].Computer Engineering and Design,2014,35(11):3946-3950.

[11] Shreiner D,Bill The Khronos OpenGL ARB Working Group.OpenGL programming guide:the official guide to learning OpenGL,versions 3.0 and 3.1[M].Pearson Education,2009.

附中文參考文獻:

[1] 焦繼業,李 濤,杜慧敏,等.移動圖形處理器的現狀、技術及其發展[J].計算機輔助設計與圖形學學報,2015,27(6):1005-1016.

[4] 鄧軍勇,李 濤,蔣 林,等.面向OpenGL的圖形加速器設計與實現[J].西安電子科技大學學報(自然科學版),2015,42(6):124-130.

[5] 沈緒榜,孫 璐.計算模式的統一研究[J].計算機學報,2014,37(7):1435-1444.

[6] 呂 青,蔣 林,鄧軍勇,等.面向對數與指數函數的可重構陣列結構[J].微電子學與計算機,2016,33(10):28-31+35.

[7] 蔣 林,王杏軍,劉鎮弢,等.基于SystemC的可重構陣列處理器模型[J].西安郵電大學學報,2016,21(3):73-78.

[8] 趙杰伊,唐 敏,童若鋒.基于CUDA的細分曲面陰影體算法[J].浙江大學學報(工學版),2012,46(7):1301-1306.

[10] 高騰飛,曾朝陽,郝剛濤,等.基于OpenGL的空間目標圖像序列仿真[J].計算機工程與設計,2014,35(11):3946-3950.

猜你喜歡
結構
DNA結構的發現
《形而上學》△卷的結構和位置
哲學評論(2021年2期)2021-08-22 01:53:34
論結構
中華詩詞(2019年7期)2019-11-25 01:43:04
新型平衡塊結構的應用
模具制造(2019年3期)2019-06-06 02:10:54
循環結構謹防“死循環”
論《日出》的結構
縱向結構
縱向結構
我國社會結構的重建
人間(2015年21期)2015-03-11 15:23:21
創新治理結構促進中小企業持續成長
現代企業(2015年9期)2015-02-28 18:56:50
主站蜘蛛池模板: 国产精品极品美女自在线看免费一区二区 | 久久免费视频6| 亚洲一区二区成人| 国产免费观看av大片的网站| 亚洲乱码精品久久久久..| 婷婷午夜天| 色香蕉影院| 久久久久九九精品影院| 亚洲激情区| 国产www网站| 四虎成人免费毛片| 国产一区亚洲一区| 久久久久国产一区二区| 免费可以看的无遮挡av无码| 国产粉嫩粉嫩的18在线播放91 | 国产女同自拍视频| 人人看人人鲁狠狠高清| 免费 国产 无码久久久| 中文字幕1区2区| 色婷婷综合激情视频免费看| 国产精品流白浆在线观看| 一级毛片在线播放免费| 在线观看无码av免费不卡网站| 风韵丰满熟妇啪啪区老熟熟女| 伊人狠狠丁香婷婷综合色| 免费日韩在线视频| 国产91丝袜在线观看| 国产十八禁在线观看免费| 国产成人久视频免费 | 成人另类稀缺在线观看| 色香蕉网站| 狠狠色香婷婷久久亚洲精品| 国产真实乱子伦精品视手机观看| 无码人中文字幕| 国产成人综合日韩精品无码首页| 免费观看成人久久网免费观看| 亚洲中文字幕国产av| 97精品久久久大香线焦| 国产精品55夜色66夜色| 伊人成人在线| 久久久久人妻一区精品色奶水| 国产天天射| 免费一级无码在线网站 | 日韩精品中文字幕一区三区| 片在线无码观看| 午夜日本永久乱码免费播放片| 全午夜免费一级毛片| 日韩a在线观看免费观看| 国产高清毛片| 国产成人精品亚洲77美色| 日本欧美成人免费| 日本亚洲最大的色成网站www| 91蜜芽尤物福利在线观看| AV片亚洲国产男人的天堂| 国产理论精品| 婷婷五月在线| 爱爱影院18禁免费| 国产精品污视频| 精品伊人久久久久7777人| 久久精品视频一| 国产本道久久一区二区三区| 国产精品成人一区二区| 丰满少妇αⅴ无码区| 欧美国产中文| 亚洲swag精品自拍一区| 欧美一区二区精品久久久| 日本一区二区不卡视频| 久久 午夜福利 张柏芝| 丰满人妻中出白浆| 精品一区二区久久久久网站| 色婷婷在线影院| 国产高颜值露脸在线观看| 不卡国产视频第一页| 亚洲人妖在线| 久久性视频| 国产欧美日韩专区发布| 日韩欧美网址| 亚洲欧美自拍一区| 这里只有精品国产| 欧美综合激情| 国产丝袜无码一区二区视频| 国产成本人片免费a∨短片|