高性能GPU模擬器的實(shí)現(xiàn)
發(fā)布時(shí)間:2021-07-20 16:39
基于圖形處理器(GPU)由固定功能管線與可編程流處理器單元構(gòu)成的特點(diǎn),設(shè)計(jì)了一種半周期精確的模擬器實(shí)現(xiàn)方法,并結(jié)合一種GPU結(jié)構(gòu)進(jìn)行了GPU模擬器的實(shí)現(xiàn)。GPU模擬器支持OpenGL 2.0 API,在實(shí)現(xiàn)了固定功能管線的基礎(chǔ)上,支持統(tǒng)一著色器渲染架構(gòu)。模擬器對GPU結(jié)構(gòu)進(jìn)行半周期精確模擬。固定功能管線部分實(shí)現(xiàn)為完全周期精確模擬,可以進(jìn)行3D圖形算法的正確性驗(yàn)證以及性能評估。對可編程流處理器單元進(jìn)行指令級功能模擬,在固定功能管線部分的配合下,可以快速輕量地對整個(gè)GPU結(jié)構(gòu)進(jìn)行結(jié)構(gòu)與功能的驗(yàn)證。文章使用模擬器運(yùn)行了glmark2測試集,并且根據(jù)測試結(jié)果對GPU結(jié)構(gòu)進(jìn)行3D圖形算法正確性驗(yàn)證與性能評估,結(jié)果表明基于本文設(shè)計(jì)方法的GPU模擬器可以快速輕量地實(shí)現(xiàn)3D圖形算法正確性驗(yàn)證與性能分析。
【文章來源】:高技術(shù)通訊. 2020,30(06)北大核心
【文章頁數(shù)】:8 頁
【部分圖文】:
GPU模擬器結(jié)構(gòu)示意圖
圖元處理引擎結(jié)構(gòu)各流水級完成各種不同數(shù)據(jù)的乘加運(yùn)算或其他數(shù)學(xué)運(yùn)算,所有運(yùn)算部件設(shè)計(jì)為全流水部件,流水級內(nèi)部同樣實(shí)現(xiàn)更細(xì)粒度的周期模擬。流水級內(nèi)部通過虛假執(zhí)行與逆序流水的方式實(shí)現(xiàn)細(xì)分流水。圖2表示2個(gè)流水級之間的數(shù)據(jù)傳遞與數(shù)據(jù)計(jì)算,每一流水級包括4級細(xì)分流水級。如第1步所示,Clock函數(shù)執(zhí)行時(shí),后序流水級首先判定其最后一級細(xì)分流水級是否為空,如果為空,則將其前3級細(xì)分流水?dāng)?shù)據(jù)傳遞至后一級細(xì)分流水級,同時(shí)將第1級細(xì)分流水級標(biāo)為空。如第2步所示,當(dāng)前序流水級最后1級細(xì)分流水級不為空,且后序流水級第1級細(xì)分流水級為空時(shí),前序流水級將數(shù)據(jù)傳遞至后序流水級,后序流水級直接將數(shù)據(jù)進(jìn)行計(jì)算,并將結(jié)果寫入后序流水級第1級細(xì)分流水級。如第3步所示,前序流水級進(jìn)行流水級內(nèi)細(xì)分流水級數(shù)據(jù)傳遞。圖元處理引擎將整條流水線逆向調(diào)用所有流水級的Clock操作,來實(shí)現(xiàn)整條流水線的并行周期執(zhí)行。3.2.2 光柵化單元
圖3是商業(yè)顯卡GPU環(huán)境下build測試項(xiàng)的標(biāo)準(zhǔn)渲染結(jié)果,圖4是GPU模擬器渲染結(jié)果。對比發(fā)現(xiàn),肉眼無法看出2圖之間的差別。對圖3與圖4進(jìn)行逐像素對比,對比方式為對2圖中每一相同位置像素值進(jìn)行做差運(yùn)算,差值結(jié)果為正數(shù),則將差值數(shù)據(jù)保存至圖5,差值結(jié)果為負(fù)數(shù),則將差值數(shù)據(jù)絕對值保存至圖6。對圖5與圖6進(jìn)行對比,可以發(fā)現(xiàn)圖5呈現(xiàn)出build測試場景的下邊沿,圖6則呈現(xiàn)出build測試場景的上邊沿,表示圖3與圖4存在輕微的位置偏移,這是由于光柵化算法的實(shí)現(xiàn)不同所引起,屬于差異而不是錯(cuò)誤。而圖5與圖6中除了模型邊沿?cái)?shù)據(jù),不再有其他差別,表明GPU模擬器對build測試項(xiàng)繪制正確。圖4 GPU模擬器繪制效果圖
【參考文獻(xiàn)】:
期刊論文
[1]自主CPU發(fā)展道路及在航天領(lǐng)域應(yīng)用[J]. 胡偉武. 上海航天. 2019(01)
本文編號:3293193
【文章來源】:高技術(shù)通訊. 2020,30(06)北大核心
【文章頁數(shù)】:8 頁
【部分圖文】:
GPU模擬器結(jié)構(gòu)示意圖
圖元處理引擎結(jié)構(gòu)各流水級完成各種不同數(shù)據(jù)的乘加運(yùn)算或其他數(shù)學(xué)運(yùn)算,所有運(yùn)算部件設(shè)計(jì)為全流水部件,流水級內(nèi)部同樣實(shí)現(xiàn)更細(xì)粒度的周期模擬。流水級內(nèi)部通過虛假執(zhí)行與逆序流水的方式實(shí)現(xiàn)細(xì)分流水。圖2表示2個(gè)流水級之間的數(shù)據(jù)傳遞與數(shù)據(jù)計(jì)算,每一流水級包括4級細(xì)分流水級。如第1步所示,Clock函數(shù)執(zhí)行時(shí),后序流水級首先判定其最后一級細(xì)分流水級是否為空,如果為空,則將其前3級細(xì)分流水?dāng)?shù)據(jù)傳遞至后一級細(xì)分流水級,同時(shí)將第1級細(xì)分流水級標(biāo)為空。如第2步所示,當(dāng)前序流水級最后1級細(xì)分流水級不為空,且后序流水級第1級細(xì)分流水級為空時(shí),前序流水級將數(shù)據(jù)傳遞至后序流水級,后序流水級直接將數(shù)據(jù)進(jìn)行計(jì)算,并將結(jié)果寫入后序流水級第1級細(xì)分流水級。如第3步所示,前序流水級進(jìn)行流水級內(nèi)細(xì)分流水級數(shù)據(jù)傳遞。圖元處理引擎將整條流水線逆向調(diào)用所有流水級的Clock操作,來實(shí)現(xiàn)整條流水線的并行周期執(zhí)行。3.2.2 光柵化單元
圖3是商業(yè)顯卡GPU環(huán)境下build測試項(xiàng)的標(biāo)準(zhǔn)渲染結(jié)果,圖4是GPU模擬器渲染結(jié)果。對比發(fā)現(xiàn),肉眼無法看出2圖之間的差別。對圖3與圖4進(jìn)行逐像素對比,對比方式為對2圖中每一相同位置像素值進(jìn)行做差運(yùn)算,差值結(jié)果為正數(shù),則將差值數(shù)據(jù)保存至圖5,差值結(jié)果為負(fù)數(shù),則將差值數(shù)據(jù)絕對值保存至圖6。對圖5與圖6進(jìn)行對比,可以發(fā)現(xiàn)圖5呈現(xiàn)出build測試場景的下邊沿,圖6則呈現(xiàn)出build測試場景的上邊沿,表示圖3與圖4存在輕微的位置偏移,這是由于光柵化算法的實(shí)現(xiàn)不同所引起,屬于差異而不是錯(cuò)誤。而圖5與圖6中除了模型邊沿?cái)?shù)據(jù),不再有其他差別,表明GPU模擬器對build測試項(xiàng)繪制正確。圖4 GPU模擬器繪制效果圖
【參考文獻(xiàn)】:
期刊論文
[1]自主CPU發(fā)展道路及在航天領(lǐng)域應(yīng)用[J]. 胡偉武. 上海航天. 2019(01)
本文編號:3293193
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3293193.html
最近更新
教材專著