亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        多核并行訪問紋理單元的預(yù)處理方法?

        2019-11-29 05:13:50劉世豪杜慧敏黃虎才
        計算機與數(shù)字工程 2019年11期
        關(guān)鍵詞:方法

        劉世豪 杜慧敏 黃虎才 王 可 盧 通

        (西安郵電大學(xué) 西安 710121)

        1 引言

        隨著計算機圖形學(xué)技術(shù)的快速發(fā)展,用戶對動畫、游戲開發(fā)、虛擬現(xiàn)實等圖形場景的真實感[1~3]的要求越來越高。紋理映射是GPU(Graphics Processing Unit,圖形處理器)實現(xiàn)逼真效果的重要方法[4~5]。

        紋理單元是GPU 中實現(xiàn)紋理映射的模塊,可分為紋理前處理和紋理后處理,前處理部分讀取紋理數(shù)據(jù),包含紋理地址計算和紋理cache模塊,后處理部分過濾紋理數(shù)據(jù)后將數(shù)據(jù)輸出,包含紋理過濾和紋理數(shù)據(jù)輸出模塊。紋理單元接收SP(SIMT Processor,單指令多線程處理器)發(fā)來的紋理數(shù)據(jù)采樣請求,地址計算模塊根據(jù)紋理坐標(biāo)計算出紋理數(shù)據(jù)的地址,再由地址訪問紋理cache,讀出紋理數(shù)據(jù),最后根據(jù)紋理采樣方式對紋理數(shù)據(jù)濾波處理,將過濾后的紋理數(shù)據(jù)返回給SP,紋理單元流水線如圖1所示。

        基 于tile 渲 染 模 式(Tile-based Rendering,TBR)將一幀圖像劃分為多個tile[6~7],為提升圖像的渲染速度,通常采用多核并行渲染不同tile。當(dāng)渲染的場景中存在大量重復(fù)紋理圖片時,如教室內(nèi)的課桌、草地、鳥群或軍隊等,不同tile 可能用相同的紋理進行貼圖。如圖2 所示,圖中每個tile 對應(yīng)的紋理圖像都是兔子。

        圖1 紋理單元流水線

        圖2 重復(fù)貼圖的兔子

        在基于tile 的GPU 設(shè)計中,對于只有一個紋理單元的架構(gòu),多個SP 同時訪問紋理單元。本文提出了固定處理模式與預(yù)處理模式兩種方法實現(xiàn)SP對紋理單元的訪問。其中,預(yù)處理模式可實現(xiàn)多個SP 用相同的紋理數(shù)據(jù)采樣請求,紋理單元只執(zhí)行一次操作,減少了紋理單元的功耗,提升了紋理映射的速度。本文用System Verilog 語言在VCS 環(huán)境下驗證了兩種方法,測試了4 類數(shù)據(jù)集。測試結(jié)果表明當(dāng)存在大量重復(fù)紋理貼圖的情況下,本文提出的預(yù)處理方法能夠較好提升紋理映射性能。

        2 相關(guān)研究工作

        紋理映射作為提升圖像真實感的重要處理方式,國內(nèi)外進行了深入的研究。

        在紋理映射綜述方面,張英杰[8]等較早地介紹了紋理映射技術(shù)的發(fā)展歷史和紋理映射中的圖形反混淆算法,盧張平[9]等對紋理映射的算法進行分類,從二維紋理映射和三維紋理映射兩個大類分別進行闡述。曾成強[10]系統(tǒng)地總結(jié)紋理映射技術(shù)的發(fā)展歷史和紋理映射的幾種經(jīng)典算法,并比較了其中幾種算法的優(yōu)劣。

        在紋理映射算法方面,謝豐等人采用mipmap濾波對凹凸映射進行優(yōu)化[11],在保證紋理凹凸感的前提下,減少了凹凸映射的計算量。Wanghai Qing等針對紋理數(shù)據(jù)大傳輸粒度導(dǎo)致CPU 無法訪問內(nèi)存和空轉(zhuǎn)的情況,提出了一種數(shù)據(jù)預(yù)取的方法[12],有效提升了渲染速度。杜慧敏和徐啟超等提出了采用線性逼近的方法實現(xiàn)各向同性逼近各項異性濾波器[13],該算法易于硬件實現(xiàn),且誤差較小。

        在紋理映射架構(gòu)方面董梁等提出一種實用型流水線設(shè)計結(jié)構(gòu)[14],分析紋理單元的功能,并提出了一種紋理映射的設(shè)計方法,通過軟件進行了功能驗證。趙國宇等提出了一種高效紋理單元的硬件架構(gòu)[15],采用查找表和二次多項式逼近算法優(yōu)化浮點除法運算,并且動態(tài)配置紋理cache的映射方式,優(yōu)化了紋理單元運算和存儲帶寬的性能。沈春江完成了紋理單元各模塊的設(shè)計,紋理載入速率達到了每秒30 幀[16]。韓立敏等提出了一種多模式并行處理硬件專用紋理引擎[17],并行實施多模式的紋理操作,顯著提升了紋理貼圖的執(zhí)行效率。

        高分辨率的圖片意味著更真實的效果,但是會增加存儲容量,研究人員以減少數(shù)據(jù)大小和帶寬,同時以最小化視覺影響為目的提出各種紋理壓縮方案[18~19]?,F(xiàn)在常用的紋理壓縮格式有S3 公司發(fā)布 的S3TC(S3 Texture Compression),Imagination Technologies 公 司 發(fā) 布 的 PVRTC/PVRTC2(PowerVR Texture Compression),Khronos Group 組織發(fā)布的ETC/ETC2,ARM 公司發(fā)布的ASTC(Adaptive Scalable Texture Compression)等。不同存儲格式對紋理映射性能也會產(chǎn)生影響,可利用紋理數(shù)據(jù)的局部性提升紋理數(shù)據(jù)訪問效率[20]。Baokang Wang 等提出一種Z 型布局的存儲格式[21],縮小了地址跨度,減少了cache沖突缺失,紋理數(shù)據(jù)可根據(jù)紋理像素坐標(biāo)將Z 型區(qū)域內(nèi)的地址設(shè)置為連續(xù)地址。

        紋理單元實現(xiàn)了紋理映射復(fù)雜算法,在多核并行訪問紋理單元的情況下,若存在一種檢測機制,將多核發(fā)送的相同紋理數(shù)據(jù)采樣請求合并為一個請求,可減少紋理單元的執(zhí)行次數(shù),降低紋理單元功耗,并提升紋理映射的速度。業(yè)界對于紋理單元并行訪問機制的處理方法并沒有詳細的公開資料,而多核并行訪問紋理單元的預(yù)處理方法對紋理映射性能有很大提升,因此該方向的研究具有重要意義。

        3 紋理映射的兩種方法

        3.1 固定處理模式

        多個處理器核對應(yīng)同一紋理單元的固定處理模式結(jié)構(gòu)如圖3所示。設(shè)定8個SP對應(yīng)1個紋理單元,當(dāng)多個SP 同時訪問紋理單元時,紋理單元首先對多個請求進行仲裁,采用自適應(yīng)輪詢調(diào)度算法選出當(dāng)前優(yōu)先級最高的SP 請求。輪詢調(diào)度算法[22]設(shè)定每個SP 的優(yōu)先級相同,防止固定優(yōu)先級導(dǎo)致的低優(yōu)先級餓死情況。

        圖3 固定處理模式結(jié)構(gòu)

        GPU 在處理圖像時,所有的SP 不是每拍都會同時發(fā)出請求,針對此類情況采用自適應(yīng)輪詢調(diào)度算法。當(dāng)全部SP同時發(fā)出請求時,第一拍執(zhí)行SP0請求,第二拍執(zhí)行SP1 請求,依次輪詢。但是由于SP執(zhí)行的tile場景可能不同,因此不一定全部SP同時發(fā)起紋理請求,如果當(dāng)前拍只有SP1、SP2 和SP6訪問紋理單元,那么當(dāng)前的優(yōu)先級為SP1→SP2→SP6,如果下一拍的請求為SP1、SP2、SP4 和SP6,那么當(dāng)前優(yōu)先級為SP2→SP4→SP6→SP1。優(yōu)先級按照0-7 的順序依次輪詢,剛被執(zhí)行的SP 在下一拍的優(yōu)先級最低,當(dāng)前拍的優(yōu)先級排序只在有紋理請求的SP中進行。

        紋理單元對仲裁出的請求進行處理,當(dāng)多個SP 訪問相同紋理坐標(biāo)的情況,該模式仍然對每一個訪問請求進行處理,在單幀重復(fù)貼圖基數(shù)大的模型場景中,紋理單元會存在大量的重復(fù)性操作,導(dǎo)致功耗大并且處理內(nèi)容冗余。

        3.2 預(yù)處理方法

        3.2.1 預(yù)處理方法的基本思想

        根據(jù)自適應(yīng)輪詢調(diào)度算法確定當(dāng)前SP 訪問請求的優(yōu)先級,當(dāng)出現(xiàn)多個SP 的紋理采樣點相同時,合并相同紋理采樣請求,使紋理單元只執(zhí)行一次紋理數(shù)據(jù)采樣操作。預(yù)處理結(jié)構(gòu)圖如圖4所示。

        預(yù)處理方法是在紋理單元的前處理部分(Tex_pre_process 模塊)增加外圍電路,包括Arbiter模塊、Req_buf 模塊和Data_buf 模塊。預(yù)處理方法通過兩次比較解決了同一時刻和某段時間內(nèi)出現(xiàn)相同紋理數(shù)據(jù)采樣請求的情況,減少了紋理單元重復(fù)冗余的操作。

        圖4 預(yù)處理結(jié)構(gòu)圖

        3.2.2 各模塊功能及處理流程

        1)發(fā)出采樣請求

        圖中各個SP用于渲染不同tile內(nèi)場景,SP下發(fā)紋理映射請求給Arbiter模塊,請求數(shù)據(jù)包含紋理映射的狀態(tài)信息(如紋理坐標(biāo)、SP 的ID、每個SP 的請求ID、紋理圖片大小、紋理數(shù)組使能和陰影貼圖使能等)。

        2)仲裁并處理采樣請求

        Arbiter 模塊接收各個SP 發(fā)來的紋理映射請求,根據(jù)自適應(yīng)輪詢調(diào)度算法得到當(dāng)前拍優(yōu)先級最高的SP請求,并送給Req_buf模塊。

        Arbiter模塊將優(yōu)先級最高的SP請求與其他SP請求進行比較,如果紋理坐標(biāo)相等,說明同一拍中不同SP 有相同的紋理數(shù)據(jù)采樣請求,這里規(guī)定其他的紋理數(shù)據(jù)采樣請求為副本請求。當(dāng)前節(jié)拍仲裁出的紋理請求經(jīng)Req_buf送給Tex_pre_process模塊,然后通過Data_buf,再由Tex_post_process 模塊把采樣點處的紋理數(shù)據(jù)送給Arbiter 模塊。優(yōu)先級最高的紋理請求和所有副本請求對應(yīng)的SP 都接收該次采樣的紋理數(shù)據(jù),上述處理過程如圖5所示。

        圖5 合并相同SP請求示意圖

        Arbiter 模塊解決了同一拍中多個SP 的紋理數(shù)據(jù)采樣請求相同的問題,并行地將紋理數(shù)據(jù)返回給所有發(fā)出相同紋理坐標(biāo)請求的SP。

        3)緩存不同紋理數(shù)據(jù)采樣請求

        Req_buf 模塊接收Arbiter 模塊發(fā)送的紋理數(shù)據(jù)采樣請求,并緩存最近n 次無副本請求的紋理坐標(biāo)。Req_buf深度為n,緩存的數(shù)據(jù)為紋理坐標(biāo)。

        Req_buf每接收到一個新請求都會與其內(nèi)部緩存的舊請求進行坐標(biāo)比較,如果新請求的坐標(biāo)和Req_buf 某行存儲的紋理坐標(biāo)不相同,則緩存本次新請求,并且將新請求發(fā)送給Tex_pre_process模塊讀取紋理數(shù)據(jù)。如果新請求和Req_buf 某行存儲的紋理坐標(biāo)相同,說明在n 次訪問內(nèi)已經(jīng)讀取了該紋理坐標(biāo)對應(yīng)的數(shù)據(jù),那么本次的請求無需發(fā)送給Tex_pre_process 模塊,將紋理坐標(biāo)直接發(fā)送到Data_buf,讀取該坐標(biāo)對應(yīng)行的數(shù)據(jù),比較方式如圖6所示。

        當(dāng)buffer 內(nèi)數(shù)據(jù)存滿并且新的紋理請求與buffer 中任意一行不匹配,則采用先入先出的替換策略,替換n行中最先存入buffer的數(shù)據(jù),如圖7所示。

        圖7 替換策略

        4)讀取紋理數(shù)據(jù)

        Tex_pre_process 模塊實現(xiàn)紋理數(shù)據(jù)讀取功能。該模塊接收紋理采樣請求,在經(jīng)過紋理地址計算和讀取紋理cache數(shù)據(jù)后得到對應(yīng)坐標(biāo)的紋理數(shù)據(jù),將紋理數(shù)據(jù)和紋理坐標(biāo)送給Data_buf。

        5)緩存紋理坐標(biāo)與紋理數(shù)據(jù)

        Data_buf 每一行存放的數(shù)據(jù)為紋理坐標(biāo)和紋理數(shù)據(jù)。Data_buf深度為n,當(dāng)buffer數(shù)據(jù)存滿時采用先入先出的替換策略。

        Data_buf 將Tex_pre_process 模塊輸出的紋理坐標(biāo)和數(shù)據(jù)緩存到buffer 內(nèi),然后將接收到的紋理數(shù)據(jù)送給Tex_post_process 模塊。并且Data_buf 會與Req_buf 發(fā)送的坐標(biāo)進行匹配,為未經(jīng)過Tex_pre_process 模塊處理的請求讀取數(shù)據(jù),如果坐標(biāo)命中,將相應(yīng)buffer 行的數(shù)據(jù)送給Tex_post_process 模塊,如果坐標(biāo)未命中,則將該坐標(biāo)存入Data_buf中的失靶buffer中,Data_buf每接收一組紋理坐標(biāo)與數(shù)據(jù)都會與失靶buffer 中的坐標(biāo)進行匹配,直到讀出紋理數(shù)據(jù)。

        6)紋理后處理

        Tex_post_process 模塊根據(jù)紋理映射模式對紋理數(shù)據(jù)進行過濾和格式轉(zhuǎn)換等操作,由該模塊得到采樣點處紋理數(shù)據(jù),然后輸出給Arbiter模塊。

        4 性能評價

        本文對紋理映射的兩種方法進行抽象,將方法一與方法二的性能進行比較。在存在大量重復(fù)紋理圖像的場景中,量化地統(tǒng)計方法二相較于方法一的性能提升比率。

        采用System verilog 進行建模,在VCS 平臺仿真,時鐘頻率為100MHz,測試數(shù)據(jù)2048個,每個SP對應(yīng)16*16的像素塊,處理256個數(shù)據(jù),不同測試集下預(yù)處理方法的速率提升結(jié)果如表1所示。

        表1 預(yù)處理模式的性能提升比率

        A 類測試集:16*16的像素塊內(nèi)貼4個8*8的紋理圖像,每個SP隨機發(fā)送紋理坐標(biāo)。

        B 類測試集:16*16 的像素塊內(nèi)貼16 個4*4 的紋理圖像,每個SP隨機發(fā)送紋理坐標(biāo)。

        C 類測試集:16*16 的像素塊內(nèi)貼64 個2*2 的紋理圖像,每個SP隨機發(fā)送紋理坐標(biāo)。

        D 類測試集:8 個SP 向Arbiter 模塊發(fā)送紋理請求,每個發(fā)送256個,每個SP發(fā)送的紋理坐標(biāo)相同。

        5 結(jié)語

        紋理映射是圖形渲染管線中極其重要的一部分,它是圖像真實性的有效保證,性能優(yōu)越的紋理單元不僅能夠保障圖像的真實性,也能提升紋理映射的處理速度。對于多核并行訪問紋理單元的架構(gòu),應(yīng)該根據(jù)渲染圖像的特點,合并相同的紋理數(shù)據(jù)采樣請求,減少紋理單元的冗余操作,本文據(jù)此提出了一種多核并行訪問紋理單元的預(yù)處理方法,對預(yù)處理模式的各個模塊進行介紹,核心思路為采用兩次比較的方式減少了冗余操作,提升了紋理單元的性能。實驗結(jié)果表明,在存在大量重復(fù)紋理貼圖的情況下,能夠較好提升紋理映射性能。

        猜你喜歡
        方法
        中醫(yī)特有的急救方法
        中老年保健(2021年9期)2021-08-24 03:52:04
        高中數(shù)學(xué)教學(xué)改革的方法
        河北畫報(2021年2期)2021-05-25 02:07:46
        化學(xué)反應(yīng)多變幻 “虛擬”方法幫大忙
        變快的方法
        兒童繪本(2020年5期)2020-04-07 17:46:30
        學(xué)習(xí)方法
        可能是方法不對
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        最有效的簡單方法
        山東青年(2016年1期)2016-02-28 14:25:23
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        久久午夜夜伦鲁鲁片免费无码| av网站免费观看入口| 色视频网站一区二区三区| 国产成+人欧美+综合在线观看| 中文无码精品一区二区三区| 国产激情久久久久久熟女老人| 日本一区二区三级免费| 隔壁老王国产在线精品| 精品国内自产拍在线观看| 99精品久久久中文字幕| 青青草免费视频一区二区| 在线视频夫妻内射| a亚洲va欧美va国产综合| 亚洲电影一区二区| 国产亚洲专区一区二区| 男人女人做爽爽18禁网站| 久久精品国产9久久综合| 91自国产精品中文字幕| 久久一道精品一区三区| 亚洲av日韩av天堂一区二区三区 | 久草久热这里只有精品| 日韩亚洲一区二区三区四区 | 免费人人av看| 亚洲综合在线观看一区二区三区| 少妇激情一区二区三区视频| 福利在线国产| 大又黄又粗又爽少妇毛片| 公和我做好爽添厨房| 免费无码毛片一区二区三区a片| 亚洲国产综合专区在线电影| 在线视频观看一区二区| 欧美人牲交| 日本亚洲欧美高清专区| 白丝美女扒开内露出内裤视频| 极品少妇被黑人白浆直流| 免费无码毛片一区二区三区a片| 人妻少妇精品无码系列| 福利利视频在线观看免费| 中文字幕肉感巨大的乳专区| 精品亚洲国产探花在线播放| 一区二区三区在线日本视频|