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

        ?

        CGRA-PIMSim:基于粗粒度可重構(gòu)陣列的存內(nèi)處理架構(gòu)仿真器

        2021-04-01 08:14:30劉碩
        現(xiàn)代計算機 2021年5期
        關(guān)鍵詞:粗粒度仿真器指令

        劉碩

        (上海交通大學(xué)電子信息與電氣工程學(xué)院,上海200240)

        0 引言

        隨著數(shù)據(jù)規(guī)模的不斷擴展和對DRAM需求的進(jìn)一步提升,人們開始思考在內(nèi)存中處理大數(shù)據(jù)應(yīng)用的可能性。與傳統(tǒng)基于硬盤訪問的架構(gòu)系統(tǒng)相比,將數(shù)據(jù)存儲在主存中可以實現(xiàn)數(shù)據(jù)訪問的量級加速。該類存內(nèi)計算在數(shù)據(jù)處理方面的潛力已經(jīng)被包括RAMCloud[1]、GraphLab[2]、Pregel、Oracle TimesTen[3]和SAP HANA[4]在內(nèi)的學(xué)術(shù)和工業(yè)界所證實。

        粗粒度可重構(gòu)計算架構(gòu)(Coarse-Grained Reconfigurable Array,CGRA)被證明在高性能系統(tǒng)計算和低功耗方面有顯著優(yōu)勢[5-6],已經(jīng)成為近年來的研究熱點[7-9]。其主要特點是芯片的功能可以在運行時根據(jù)不同的應(yīng)用進(jìn)行配置,結(jié)合了專用集成電路的高能效性和通用可編程處理器的高靈活性。這使得可重構(gòu)處理器非常適合支持在性能和功耗方面具有較高要求的數(shù)據(jù)密集型應(yīng)用,例如多媒體領(lǐng)域[10-12]和密碼學(xué)領(lǐng)域[13]。

        由于可重構(gòu)架構(gòu)和存內(nèi)處理都具有對數(shù)據(jù)密集型應(yīng)用的友好性,本文將實現(xiàn)基于粗粒度可重構(gòu)陣列的存內(nèi)計算架構(gòu)仿真,以探尋該架構(gòu)在處理數(shù)據(jù)密集型應(yīng)用上的性能優(yōu)勢。為了實現(xiàn)按需求快速仿真,該仿真器采用面向?qū)ο蟮膶哟位TO(shè)計和參數(shù)化定義。實驗結(jié)果表明,與傳統(tǒng)CPU架構(gòu)相比,實現(xiàn)10x以上的加速提升。

        1 設(shè)計策略

        1.1 架構(gòu)仿真策略

        該仿真器的設(shè)計采用粗粒度可重構(gòu)硬件體系結(jié)構(gòu)的一般定義,如圖1所示,在具體設(shè)計實現(xiàn)過程中,該體系結(jié)構(gòu)被劃分為三個抽象層:①處理單元(Processing Element,PE)級仿真;②處理單元陣列(Processing Element Array,PEA)級仿真;③CGRA級仿真。

        圖1 CGRA架構(gòu)

        PE級:在細(xì)粒度架構(gòu)中,邏輯單元通常是查找表和可編程寄存器;在粗粒度架構(gòu)中,PE則是存儲單元(Load/Store Unit,LSU)或是完整的運算邏輯單元(Algorithm Logic Unit,ALU),PE間支持并行數(shù)據(jù)處理。

        PEA級:指定PE的數(shù)量和互連方案,PEA的規(guī)模和互連方案都會對架構(gòu)性能造成顯著影響。該方案定義PE之間關(guān)聯(lián)方式和數(shù)據(jù)傳輸方式,PE的數(shù)量支持參數(shù)化配置,可以通過相關(guān)接口進(jìn)行調(diào)整建模。

        CGRA級:CGRA層是最高級別的抽象層。在該層視角下,PEA可以被認(rèn)為是一個基本的計算單元。指令寄存器(Configuration Memory)用以存儲和配置ALU輸入和功能指令。數(shù)據(jù)存儲器(Data Memory)用于存儲臨時結(jié)果。I/O接口用以CGRA與外界的數(shù)據(jù)傳輸和交換,在本文仿真器中,I/O接口將與DRAM直連,實現(xiàn)近數(shù)據(jù)處理。

        1.2 架構(gòu)探索流程

        本文采用的架構(gòu)探索流程如圖2所示?;贑GRA設(shè)計存內(nèi)處理架構(gòu)建模首先要進(jìn)行應(yīng)用分析,確定性能要求;之后選擇架構(gòu)參數(shù),初步參數(shù)選擇是依據(jù)過往經(jīng)驗,后續(xù)參數(shù)將依據(jù)具體性能評估結(jié)果進(jìn)行調(diào)整;進(jìn)行仿真建模,實現(xiàn)目標(biāo)仿真器,進(jìn)行性能評估。

        圖2架構(gòu)探索流程圖

        2 CGRA-PIMSim設(shè)計方法

        2.1 CGRA仿真

        CGRA架構(gòu)仿真時基于面向?qū)ο蟮膶哟位8拍?,各組件之間有類的繼承關(guān)系,如圖3所示。

        圖3 CGRA架構(gòu)內(nèi)繼承關(guān)系

        對于圖1中的各組件,可以用類內(nèi)函數(shù)來模擬硬件行為。例如PE類的函數(shù)包括運算(algorithm_func)、選擇器(mux_func)和指令配置(configuration_func)。運算函數(shù)將執(zhí)行由配置指令控制的算術(shù)邏輯功能,這里將設(shè)置一系列通用算術(shù)運算(add、multiple等)和邏輯運算(AND、OR、XOR等),未來針對特定領(lǐng)域的應(yīng)用將添加或移除額外的運算功能。選擇器函數(shù)根據(jù)配置指令接收目標(biāo)輸入,并將它們輸送到運算部分。指令配置函數(shù)接收來自外部的命令,并將目標(biāo)指令發(fā)送到運算和選擇函數(shù)中,作為一個配置參數(shù)變量。

        PE的硬件架構(gòu)如圖4所示,包含算術(shù)邏輯單元(ALU),兩輸入一輸出I/O接口,選擇器(MUX)和本地寄存器堆。

        圖4處理單元的硬件架構(gòu)

        存內(nèi)處理的概念體現(xiàn)在CGRA整體對外的I/O接口與DRAM(圖4中的Off-chip Memory)進(jìn)行直連,實現(xiàn)數(shù)據(jù)近內(nèi)存?zhèn)鬏敚瑴p少數(shù)據(jù)傳輸延時和相應(yīng)功耗。

        2.2 事件驅(qū)動仿真機制

        為了提高仿真效率和降低仿真模型編寫的困難程度,采用事件驅(qū)動仿真機制實現(xiàn)目標(biāo)架構(gòu)的搭建。

        Gem5提供用于創(chuàng)建事件驅(qū)動的包裝器功能(EventFunctionWrapper類)。目標(biāo)函數(shù)封裝時使用lambda表達(dá)式,例如:

        使用sch edule()函數(shù)進(jìn)行事件安排,執(zhí)行目標(biāo)函數(shù)processEvent(),使其在某一時刻觸發(fā):

        本次設(shè)計基于事件驅(qū)動仿真搭建PE的行為模型,PE類內(nèi)的運算(algorithm_func)函數(shù)、選擇器(mux_func)函數(shù)和指令配置(configuration_func)函數(shù)作為processEvent目標(biāo)函數(shù)被EventFunctionWrapper類封裝,根據(jù)具體行為的執(zhí)行順序進(jìn)行階段觸發(fā)。由于PE內(nèi)數(shù)據(jù)傳遞都是非阻塞傳輸且物理距離很短,因此上述事件函數(shù)的觸發(fā)時間普遍設(shè)置為當(dāng)前時刻的下一個周期。

        3 基于Gem5的仿真實現(xiàn)

        3.1 仿真流程

        Gem5是一款高度模塊化、支持事件驅(qū)動方式的全系統(tǒng)仿真器。在Gem5中,所有模塊單元都被抽象設(shè)計為一個具體完成功能實現(xiàn)的C++類和一個對應(yīng)模塊接口的Python類。當(dāng)Python類與相關(guān)C++類綁定時,傳遞給Python類的具體參數(shù)將通過Gem5的參數(shù)傳遞機制賦值給C++類的相應(yīng)成員變量。C++類內(nèi)完成父類的繼承重寫(虛函數(shù)),構(gòu)造函數(shù)和事件類(Event)實例化等。

        仿真流程如圖5所示。由Scons軟件基于Python完成編譯,將所有模塊文件編譯并鏈接生成可執(zhí)行文件。架構(gòu)實現(xiàn)過程中相關(guān)配置參數(shù)的傳遞是通過Python模型對C++模型的接口實現(xiàn)的。具體應(yīng)用時只需對Python模型中的參數(shù)進(jìn)行設(shè)置,參數(shù)將會傳遞至C++模型中,完成對架構(gòu)整體的搭建和初始化。具體仿真階段,將可執(zhí)行文件加載到系統(tǒng)中開始相關(guān)仿真,Gem5提供debug-file功能,打印中間過程,并取得輸出結(jié)果。

        圖5 Gem5仿真流程

        3.2 CGRA-PIM調(diào)度機制

        Gem5仿真平臺有完整的CPU、總線和內(nèi)存等的仿真,本文設(shè)計實現(xiàn)的CGRA-PIM架構(gòu)通過仿真I/O接口直連到DRAM上。為了實現(xiàn)主處理器對CGRAPIM的調(diào)起操作,這里將在原有的X86指令集上進(jìn)行擴展,利用Gem5中原有的X86預(yù)留空白指令位置實現(xiàn)目標(biāo)CGRA-PIM指令。優(yōu)勢在于CGRA-PIM指令可以直接作為已有主處理器指令的一部分進(jìn)行相關(guān)執(zhí)行,不需要對現(xiàn)有的編譯器和編程模型進(jìn)行修改,降低實現(xiàn)難度。

        將cpp文件編譯為可執(zhí)行文件,由CPU進(jìn)行文件執(zhí)行,當(dāng)CPU執(zhí)行到CGRA-PIM特定指令時,由CPU負(fù)責(zé)調(diào)起相關(guān)處理單元。其中,CGRA-PIM和CPU是并行工作的,前者進(jìn)行相關(guān)處理時,CPU將繼續(xù)執(zhí)行之后的指令。這種并行處理的優(yōu)勢在于能夠有效減少PE的空閑時間,有效提高計算資源利用率。

        CPU和CGRA-PIM并發(fā)執(zhí)行可能會帶來的問題是當(dāng)處理的計算密集型應(yīng)用需要循環(huán)操作時,CPU調(diào)取下一條CGRA-PIM相關(guān)指令的時間將有可能比CGRA-PIM自身完成上一條相關(guān)指令時間更短(與CGRA-PIM處理的數(shù)據(jù)規(guī)模有關(guān),這里將根據(jù)實際運行時間有選擇性地控制可重構(gòu)陣列規(guī)模),即后者在當(dāng)前時刻有可能無法立即執(zhí)行該條指令。因此為了避免主處理器運行阻塞,也為了避免造成當(dāng)前指令的遺失,將設(shè)計添加CGRA-PIM工作隊列來存放待處理的任務(wù),該工作隊列采用先進(jìn)先出(FIFO)的行為方式。由CPU調(diào)取CGRA的待處理任務(wù)將會放入該工作隊列中,已經(jīng)完成的任務(wù)會從隊列中彈出。

        4 評估

        系統(tǒng)參數(shù)設(shè)置如表1所示,目標(biāo)架構(gòu)CGRA為異構(gòu)粗粒度可重構(gòu)模型。處理單元陣列規(guī)模為8×8,共64個處理單元組成。其中LSU28個,ALU36個,LSU分布在四條邊上,ALU分布在陣列內(nèi)部。

        表1 系統(tǒng)參數(shù)設(shè)置

        由于CGRA-PIM架構(gòu)主要解決的是大規(guī)模數(shù)據(jù)傳輸造成的性能影響,因此將使用典型的數(shù)據(jù)密集型應(yīng)用——稀疏矩陣向量乘(SpMV)來評估該架構(gòu)性能。

        選擇不同規(guī)模矩陣(N×N)作為測試樣本,將比較CGRA-PIM架構(gòu)和CGRA-DRAM(不考慮近內(nèi)存處理)架構(gòu)以及傳統(tǒng)CPU架構(gòu)(CPU-DRAM)的性能,將根據(jù)傳統(tǒng)CPU架構(gòu)進(jìn)行歸一化。不同規(guī)模矩陣進(jìn)行SpMV應(yīng)用后三者性能結(jié)果對比如表2所示。

        表2 各架構(gòu)性能加速比

        不同架構(gòu)性能加速比在不同規(guī)模矩陣下呈現(xiàn)結(jié)果有一定差異。隨著矩陣規(guī)模的擴大,CGRA-DRAM和CGRA-PIM的加速比都有提高,原因是處理數(shù)據(jù)的時間占比上升。在矩陣規(guī)模較小時,數(shù)據(jù)讀取和預(yù)處理的時間占比較高,留給CGRA進(jìn)行處理加速的循環(huán)操作時間占比較低,故而加速比較低,而隨著矩陣規(guī)模的擴大,循環(huán)操作的時間占比提升,這時可供CGRA加速的余地更大,因此帶來了更高的加速比,這也是CGRA-PIM更適合進(jìn)行數(shù)據(jù)密集型應(yīng)用加速處理的原因。

        5 結(jié)語

        本文從實際應(yīng)用角度出發(fā),針對數(shù)據(jù)密集型應(yīng)用提出一種新型的存算一體架構(gòu)CGRA-PIM。通過Sp-MV實例說明該架構(gòu)較傳統(tǒng)架構(gòu)的優(yōu)越性,取得了明顯的性能提升。未來將考慮在該架構(gòu)的通用性上進(jìn)行擴展。

        猜你喜歡
        粗粒度仿真器指令
        聽我指令:大催眠術(shù)
        一種端到端的加密流量多分類粗粒度融合算法*
        基于卷積神經(jīng)網(wǎng)絡(luò)的粗粒度數(shù)據(jù)分布式算法
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        在線評論情感分析研究綜述
        基于公共池自適應(yīng)遷移策略的并行遺傳算法
        基于多線程的慣導(dǎo)邏輯仿真器設(shè)計
        計算機工程(2015年4期)2015-07-05 08:28:57
        坐標(biāo)系旋轉(zhuǎn)指令數(shù)控編程應(yīng)用
        機電信息(2014年27期)2014-02-27 15:53:56
        天文測量仿真器模擬星圖精度分析
        色综合久久无码中文字幕app| 欧美熟妇另类久久久久久多毛| 日本va欧美va精品发布| 人妻少妇邻居少妇好多水在线| 四虎精品国产一区二区三区| 久久精品中文字幕免费| 少妇免费av一区二区三区久久| 亚洲av日韩综合一区二区三区| 免费人成年小说在线观看| 久久91精品国产91久久麻豆| 中文字幕一区乱码在线观看| 色偷偷偷在线视频播放| 少妇脱了内裤让我添| 成人日韩av不卡在线观看| 97女厕偷拍一区二区三区| 国产色视频一区二区三区qq号| 久久精品国产亚洲av高清漫画| 在线亚洲AV不卡一区二区| 人日本中文字幕免费精品| 亚洲色图片区| 亚洲av色无码乱码在线观看| 亚洲国产成人aⅴ毛片大全| 免费播放成人大片视频| 亚洲 卡通 欧美 制服 中文| 国产亚洲亚洲精品777| 午夜香蕉av一区二区三区| 免费视频无打码一区二区三区| 国产精品51麻豆cm传媒| 国产人成无码视频在线| 热综合一本伊人久久精品| 国产大屁股视频免费区| 五月天激情婷婷婷久久| 国产成人精品aaaa视频一区| 亚洲自拍偷拍一区二区三区| 国产精品久线在线观看| 一级二级中文字幕在线视频| 亚洲av精品一区二区| 免费a级毛片18禁网站免费| 性一交一乱一伦a片| 免费a级毛片无码a∨免费| 精品三级国产一区二区三|