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

        ?

        基于多現(xiàn)場可編程門陣列異構(gòu)平臺的流水線技術(shù)優(yōu)化方法

        2020-09-28 10:24:44胡延步邵翠萍李慧云
        集成技術(shù) 2020年5期
        關(guān)鍵詞:板間流水線異構(gòu)

        胡延步 邵翠萍 李慧云

        1(中國科學(xué)院深圳先進技術(shù)研究院 深圳 518055)2(西安電子科技大學(xué) 西安 710071)

        3(中國科學(xué)院人機智能協(xié)同系統(tǒng)重點實驗室 深圳 518055)

        4(粵港澳人機智能協(xié)同系統(tǒng)聯(lián)合實驗室 深圳 518055)

        1 引 言

        隨著大數(shù)據(jù)、人工智能等領(lǐng)域[1-2]的發(fā)展,數(shù)據(jù)的產(chǎn)生量、存儲量和運算量都在飛快地發(fā)展。另一方面,摩爾定律的持續(xù)放緩使得傳統(tǒng)中央處理器(Central Processing Unit,CPU)難以滿足人工智能領(lǐng)域的高算力要求。而異構(gòu)計算[3]融合了不同的芯片架構(gòu),如 CPU、現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)、圖形處理器(Graghics Processing Unit,GPU)、專用集成電路等。整個異構(gòu)平臺通過合理地控制與分配運算使得架構(gòu)中的芯片各專所長,從而構(gòu)成了強大的異構(gòu)計算系統(tǒng)。與 GPU 相比,F(xiàn)PGA[4-5]的功耗更低,不僅能利用硬件單元進行并行計算,同時還具有可編程的優(yōu)點,故比專用集成電路更具靈活性。將 FPGA 與嵌入式 CPU 相結(jié)合,可以有效補充 CPU 算力不足與功耗高的問題。以賽靈思(Xilinx)和英特爾為代表的 FPGA 廠商[6]在認(rèn)識到異構(gòu)計算的重要性后,紛紛推出搭建安謀架構(gòu)的 CPU(ARM)+FPGA 的片上系統(tǒng)異構(gòu)芯片。但在運行日益復(fù)雜的深度學(xué)習(xí)模型時,單塊 FPGA 芯片[7-9]往往會出現(xiàn)硬件資源不足的情況,而在追求高算力和低功耗的深度學(xué)習(xí)推理模型下,多 FPGA 異構(gòu)平臺成為了一種新的探索目標(biāo)和解決方案。

        多 FPGA 異構(gòu)平臺中,ARM 負(fù)責(zé)多 FPGA 的控制與調(diào)度。目前國內(nèi)外常用的多 FPGA 異構(gòu)控制方法為并行控制、分布式控制和流水線控制。與并行控制和分布式控制相比,流水線控制在控制邏輯上更簡單,也更符合深度學(xué)習(xí)算法推理的數(shù)據(jù)流過程。但國內(nèi)外在 FPGA 板之間分配算法任務(wù)等流水線問題仍缺乏系統(tǒng)性方法。首先,在任務(wù)劃分方面,大多數(shù)案例僅依據(jù)算法中運算量大的層級,如卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)的卷積層,進行簡單的主觀劃分。因此,需要多次劃分比較甚至遍歷才能獲得理想的流水線平衡,同時這也限制了獲得更優(yōu)良流水線性能及吞吐率的可能。例如,Morisita 等[10]設(shè)計的多 FPGA 平臺由于任務(wù)不均衡導(dǎo)致其流水線利用率僅 60%。其次,在通信延遲方面,Yoshimi 等[11]構(gòu)建了超長的流水線結(jié)構(gòu),但并未考慮板間傳輸延遲造成的顯著影響,故而吞吐率不高;Guo 等[12]雖然針對特定任務(wù)進行了合理劃分與部署,但由于缺少通用性且通信方案固定,因此限制了流水線優(yōu)化的靈活性。此外,在模塊內(nèi)優(yōu)化方面,大多數(shù)研究在使用高層次綜合(High-level Synthesis,HLS)工具進行 FPGA 板內(nèi)模塊開發(fā)時,并未充分利用數(shù)據(jù)關(guān)系與循環(huán)流水線技術(shù)進行并行加速設(shè)計。

        本文通過搭建多 FPGA 流水線異構(gòu)平臺,充分發(fā)揮多 FPGA 與流水線技術(shù)的優(yōu)勢,以提高異構(gòu)平臺的吞吐率。具體地,從三方面對多 FPGA 異構(gòu)平臺的流水線技術(shù)進行優(yōu)化:①利用二分法將任務(wù)劃分問題求解難度降低,并將任務(wù)均衡地劃分部署到各 FPGA 中,從而提高了流水線的平衡度;②根據(jù)板間傳輸延遲的相對大小優(yōu)化流水線結(jié)構(gòu),若延遲較小或任務(wù)運行延遲較大則將板間延遲加入流水線的級內(nèi),反之則將板間延遲作為模塊級流水線的單獨一級;③并行優(yōu)化計算單元模塊,考察任務(wù)中多層嵌套循環(huán)的數(shù)據(jù)關(guān)系并重新部署代碼結(jié)構(gòu),通過使用循環(huán)展開與循環(huán)流水線技術(shù)在時間和空間上進行并行加速,同時合理使用 FPGA 內(nèi)的塊級隨機訪問存儲器(BlockRAM,BRAM)以優(yōu)化訪存。

        2 背 景

        2.1 異構(gòu)計算

        異構(gòu)計算是指使用不同體系結(jié)構(gòu)的硬件設(shè)備或不同類型指令集的硬件設(shè)備組成一個系統(tǒng)進行計算的方法。使用異構(gòu)系統(tǒng)將不同的計算任務(wù)交由不同的平臺處理,可以充分發(fā)揮各類設(shè)備的優(yōu)勢,以獲得更高的計算性能。

        常見的異構(gòu)計算平臺[13]包括 GPU、FPGA 和數(shù)字信號處理器等。GPU 具有多核多線程、高度并行、高存儲帶寬等特點,在高性能計算中的應(yīng)用日益廣泛。2019 年超威公司推出了更為先進的 Zen 2 架構(gòu)[14],進一步提升了 GPU 性能,此應(yīng)用處理器更是實現(xiàn)了異構(gòu)系統(tǒng)的單片化,將 CPU 和 GPU 集成于同一芯片上,大幅縮減了主機與從機間數(shù)據(jù)傳輸?shù)臅r間。FPGA 作為一種可編程器件,于 2012 年正式加入異構(gòu)計算的行列。從硬件架構(gòu)上來看,F(xiàn)PGA 與異構(gòu)計算加速設(shè)備的平臺模型沒有明顯的對應(yīng)關(guān)系,但可編程的優(yōu)點使其成為一種更加靈活的異構(gòu)計算平臺。例如,在處理分支跳轉(zhuǎn)指令時,F(xiàn)PGA 采用邏輯電路同時執(zhí)行各個分支語句,而 GPU 則需要串行處理不同分支語句。異構(gòu)計算作為面對大規(guī)模處理任務(wù)時的通用解決方案,已經(jīng)部署應(yīng)用于越來越多的場合中。異構(gòu)計算一般由一組異構(gòu)機器、將各異構(gòu)機器連接起來的高速網(wǎng)絡(luò)及相應(yīng)異構(gòu)計算支撐軟件組成。

        2.2 多 FPGA 異構(gòu)平臺

        由于單板 FPGA 片上計算資源與高速緩存較少,在運行規(guī)模龐大的算法任務(wù)時不能滿足高性能和高能源效率的要求,因此搭建多 FPGA 異構(gòu)平臺成為一種需要。多 FPGA 異構(gòu)平臺具有不同的布置與處理方式,如分布式計算平臺與并行計算平臺。Lin 等[15]和林常航等[16]提出基于 Zynq 開發(fā)板的 Hadoop 集群 Z Cluster。該平臺整體采取主從結(jié)構(gòu),由 1 臺 PC 機作為主設(shè)備(用作任務(wù)調(diào)配和對外通信),8 塊 Zynq 板作為從設(shè)備(用作并行計算的運行設(shè)備)。這種 ARM+FPGA 的模式既能在一定程度上彌補嵌入式處理器計算能力不足的缺陷,又能發(fā)揮其低功耗的優(yōu)勢,組成具有較好拓展性及較高性能的分布式計算環(huán)境。Neshatpour 等[17-18]提出一種由一個主設(shè)備和多個從設(shè)備共同組成的并行計算平臺。其中,該平臺的主設(shè)備采用臺式機(負(fù)責(zé)任務(wù)的分配和調(diào)度),從設(shè)備是 Zedboard(負(fù)責(zé)被分配任務(wù)的計算,并將計算的結(jié)果反饋給主設(shè)備進行綜合處理),二者通過 PCIe 相連。

        分布式計算平臺適合用于同時計算不同的算法任務(wù),而并行計算方式適合用于分支結(jié)構(gòu)復(fù)雜的算法任務(wù)。但是,這兩種方式并不適合數(shù)據(jù)流形式的深度學(xué)習(xí)推理,因而在多板控制上應(yīng)用流水線技術(shù)[19-20]成為最佳選擇。與多周期方式相比,流水線處理方式在連續(xù)運行的情況下極大地提高了吞吐率。但在應(yīng)用流水線技術(shù)設(shè)計多 FPGA 平臺時,仍存在較多問題,如任務(wù)劃分問題、流水線結(jié)構(gòu)問題和板內(nèi)設(shè)計問題。

        3 基于多 FPGA 異構(gòu)平臺流水線技術(shù)的優(yōu)化方法

        本文采用的多 FPGA 異構(gòu)流水線方式[21]如圖 1 所示。首先,把每個 FPGA 節(jié)點作為流水線的一級,使用 RapidIO 對板間的傳輸進行連接,并通過片內(nèi) AXI 總線將中間數(shù)據(jù)傳輸?shù)?SRIO 的 IP 核進行編碼打包;然后,通過 GTX 協(xié)議,在物理層上以 SFP+的光纖接口連接到下一個 FPGA 節(jié)點的 SFP+光纖接口中;最后,通過 SRIO 核進行解碼,恢復(fù)出傳輸?shù)臄?shù)據(jù)并送到該節(jié)點 FPGA 計算單元中。

        本文針對基于多 FPGA 異構(gòu)的流水線平臺,進行如下整體設(shè)計與優(yōu)化方案:①對整體的總?cè)蝿?wù)進行劃分并將劃分后的各個子任務(wù)部署在多 FPGA 節(jié)點之中;②針對不同 FPGA 節(jié)點板間傳輸延遲的影響,對流水線結(jié)構(gòu)進行優(yōu)化;③優(yōu)化部署后對不同 FPGA 節(jié)點內(nèi)負(fù)責(zé)執(zhí)行各子任務(wù)的計算單元進行并行加速優(yōu)化設(shè)計。

        3.1 多 FPGA 的任務(wù)劃分方法

        任務(wù)劃分的目的是平衡各 FPGA 的流水線以最大化吞吐率。具體地,先拆分任務(wù)層級結(jié)構(gòu),再將拆分的多個子層級劃分部署于多個 FPGA 節(jié)點中。假設(shè)對于一個任務(wù)網(wǎng)絡(luò)(如 CNN 網(wǎng)絡(luò)),在不破壞網(wǎng)絡(luò)層級結(jié)構(gòu)的前提下,按照該任務(wù)的層級結(jié)構(gòu)將網(wǎng)絡(luò)拆分為多個細小的子層級,若數(shù)量為m,按照網(wǎng)絡(luò)的運行順序分別表示為M1,M2,…,Mm,則m個子層級的相應(yīng)運行延遲為L(Mi),其中i=1, 2, …,m,而這些排列好的L(Mi)組成數(shù)組M。當(dāng) FPGA 節(jié)點內(nèi)部使用近似并行優(yōu)化策略時,各子層級的運行延遲與運算量近似成正比。因此,任務(wù)劃分即為優(yōu)化板級流水線結(jié)構(gòu),亦即將流水線中最長的一級延遲降至最低,同時也是將任務(wù)量盡量均衡地部署在多 FPGA 中。對于任務(wù)劃分問題,有多種方法可求解。為了適配問題求解的通用性與易用性,需要設(shè)計一個對任意數(shù)組M以及 FPGA 節(jié)點數(shù)K進行自動計算劃分結(jié)果的程序或方法,因此本文提出任務(wù)二分迭代法。

        二分法是單調(diào)函數(shù)求根中的常用方法,其基本思想是利用零點定理確定根的存在區(qū)間,將含根的區(qū)間對分,通過判別對分點函數(shù)的符號,將有根區(qū)間縮小一半。然后,重復(fù)以上過程,將根的存在區(qū)間縮到充分小,從而求出滿足精度要求的根的近似值。二分法尋根具有計算量低的優(yōu)勢,同時,二分法的引入是為了通過迭代方式逐步求得每個 FPGA 應(yīng)該部署到哪些子層級中。為達到這一目標(biāo)還需引入約束值LM,其中LM的引入是對 FPGA 設(shè)備運算量部署/運行延遲進行約束或參考。由于數(shù)組M的元素都是正數(shù),如果以元素的角標(biāo)作為函數(shù)x的自變量、以元素的累加和減去約束值LM作為函數(shù)因變量f(x),那么離散函數(shù)f(x)就構(gòu)成了單調(diào)遞增函數(shù),這符合利用二分法求值的前提。

        首先設(shè)置約束值LM,再根據(jù)二分法使選取子層級的運行延遲L(Mi)之和盡可能接近LM,即做出了 1 次單次劃分。由于每次單次劃分后的結(jié)果相對約束值存在一定的偏差,因此在每次單次劃分后需要不斷迭代上述過程,最終得出一個優(yōu)良的任務(wù)劃分結(jié)果,因此該法稱為任務(wù)二分迭代法。 設(shè)運算量/執(zhí)行延遲最大的子層級為Mt,其對應(yīng)的執(zhí)行延遲為L(Mt),則LM表示為:

        3.2 針對板間延遲的流水線結(jié)構(gòu)優(yōu)化

        在多 FPGA 系統(tǒng)中應(yīng)用流水線,不可避免地要考慮板間傳輸延遲的影響。由于板間傳輸延遲與任務(wù)劃分部署結(jié)果及板間通信方案均有關(guān),因此為了探索不同場景下板間傳輸延遲的影響及其應(yīng)對方法,提出 2 種針對板間延遲的流水線結(jié)構(gòu)優(yōu)化方案:(a)將板間延遲加入到板內(nèi)作為流水線的一部分;(b)將板間延遲單獨作為流水線的一級。

        圖2 任務(wù)二分迭代法的劃分示意圖Fig. 2 Schematic diagram of task dichotomy iteration method

        圖3 針對板間延時的流水線結(jié)構(gòu)的設(shè)計優(yōu)化方案Fig. 3 Design optimization scheme of pipeline structure for interboard delay

        3.3 計算單元并行優(yōu)化方法

        圖4 優(yōu)化前后的卷積計算代碼Fig. 4 The convolution computation code before and after optimization

        表1 數(shù)據(jù)共享關(guān)系Table 1 Data sharing relationship

        對數(shù)據(jù)關(guān)系進行重排和將循環(huán)展開后,循環(huán)個數(shù)將變?yōu)?4 個嵌套的完美循環(huán)。在展開后的循環(huán)層級中使用流水線技術(shù),可以達到時間上的優(yōu)化,提高模塊內(nèi)的吞吐率。也就是說,循環(huán)展開是一種空間優(yōu)化技術(shù),而流水線是一種時間優(yōu)化技術(shù),兩者結(jié)合將得到良好的模塊內(nèi)并行優(yōu)化結(jié)果。優(yōu)化前后的卷積計算代碼如圖 4 所示,綜合后的硬件框架如圖 5 所示。

        4 實驗驗證

        4.1 實驗建立

        實驗選擇的任務(wù)為經(jīng)典 CNN 網(wǎng)絡(luò)——AlexNet。由于全連接層參數(shù)多會導(dǎo)致 BRAM 資源不足且功耗較高,因此舍棄全連接層,并對 AlexNet 進行修改。按照前文所述方法列出各子層級信息并使用 HLS 得到各子層級的延遲信息與資源信息,具體如表 2 所示。為說明任務(wù)二分迭代法的通用性,實驗平臺為由 3/4 塊 Zynq7035 搭建的K=3/4 的 FPGA 異構(gòu)開發(fā)平臺,而流水

        表2 初步綜合后的網(wǎng)絡(luò)子層級信息Table 2 Network sub-level information after preliminary synthesis

        圖5 代碼優(yōu)化綜合后的硬件框架示意圖Fig. 5 The hardware framework diagram after code optimization and synthesis

        4.2 實驗結(jié)果

        圖6 傳統(tǒng)的任務(wù)劃分結(jié)果Fig. 6 Traditional task segmentation results

        圖7 使用二分迭代法后的任務(wù)劃分結(jié)果Fig. 7 The results of task partition after using dichotomy iteration method

        圖8 不同任務(wù)數(shù)下兩種方案的總時間比較Fig. 8 The total time of the two schemes is compared with the number of tasks

        4.2.3 計算單元并行優(yōu)化結(jié)果

        圖9 不同階段優(yōu)化方法的吞吐率與能效比實驗結(jié)果(K=4 )Fig. 9 Experimental results of throughput and energy efficiency of optimization methods in each stage are compared when K=4

        在任務(wù)劃分與流水線結(jié)構(gòu)優(yōu)化后,根據(jù) 3.3 小節(jié)所述優(yōu)化卷積層代碼從而并行優(yōu)化各 FPGA 節(jié)點的計算單元。各階段優(yōu)化方法的吞吐率與能效比實驗結(jié)果如圖 9 所示,圖中從左到右為優(yōu)化的順序。傳統(tǒng)方法采用圖 6 方法部署任務(wù),且未優(yōu)化流水線結(jié)構(gòu)與計算單元。此方法單次任務(wù)運行延遲為 517.7 ms,吞吐率為 7.73 imgs/s,總功耗為 8.57 W,能效比為 0.9 imgs/J。而采用本文的任務(wù)劃分方法后,吞吐率提升為 9.09 imgs/s;之后針對板間延遲優(yōu)化流水線結(jié)構(gòu),吞吐率提升為 9.48 imgs/s;最后并行優(yōu)化計算單元,單次任務(wù)運行延遲為 328 ms,吞吐率為 24.4 imgs/s,總功耗為 13.18 W,能效比為 1.85 imgs/J。與傳統(tǒng)方法相比,本文方法完成所有優(yōu)化步驟后的平臺吞吐率提高了 215.6%,能效比提高了 105.5%,單次任務(wù)的運行時間也減少了 36.6%。

        5 討論與分析

        現(xiàn)有的異構(gòu)計算研究主要以單板為主,盡管目前對多 FPGA 異構(gòu)平臺的研究還比較少,但其具有良好的應(yīng)用前景,同時構(gòu)建多 FPGA 流水線結(jié)構(gòu)非常契合深度學(xué)習(xí)推理的需求。然而,在多 FPGA 異構(gòu)平臺的流水線結(jié)構(gòu)中,對流水線技術(shù)各方面的優(yōu)化還缺乏系統(tǒng)方法。Zhang 等[22]在多 FPGA 的任務(wù)劃分問題上提出吞吐率最大化和單次延遲最小化的窮舉法,時間復(fù)雜度為O(m2×K)(m為子任務(wù)的數(shù)量,K為 FPGA 數(shù)量),但該方法沒有具體討論板間通信延遲的影響。Liang 等[23]針對多 FPGA 流水線問題提出板間延遲模塊化流水線方法,但在任務(wù)劃分方面仍使用傳統(tǒng)方法,且在計算單元并行優(yōu)化中沒有分析數(shù)據(jù)關(guān)系。

        與上述多 FPGA 異構(gòu)平臺流水線方式相比,本文提出的任務(wù)劃分法降低了吞吐率最大化問題的求解次數(shù)與難度,最壞情況下時間復(fù)雜度僅為O(K/2×log2m)。不僅針對板間通信延遲優(yōu)化了流水線結(jié)構(gòu),而且在板內(nèi)也優(yōu)化了循環(huán)流水線,并根據(jù)數(shù)據(jù)關(guān)系重排數(shù)據(jù)結(jié)構(gòu)。同時,本文方法合理利用 BRAM,最終在時間、空間方面提高了吞吐率與能效比。

        6 結(jié) 論

        本文提出一種基于多 FPGA 異構(gòu)平臺的流水線技術(shù)優(yōu)化方法:①將總體任務(wù)采用任務(wù)二分迭代法合理劃分部署于多 FPGA 中,該方法滿足通用性,克服了人工劃分的諸多缺點,達到了更好的流水線平衡,提高了吞吐率;②基于板間延遲影響優(yōu)化流水線結(jié)構(gòu),比較了兩種流水線結(jié)構(gòu)處理辦法,其中選擇將板間延遲作為流水線一級的優(yōu)化方法提高了吞吐率;③并行優(yōu)化計算單元模塊,包括重排數(shù)據(jù)關(guān)系、循環(huán)展開和使用流水線技術(shù),該優(yōu)化既提高了吞吐率也提高了能效比。AlexNet 的實驗結(jié)果表明,與傳統(tǒng)方法相比,本文方法吞吐率提高了 215.6%,能效比提高了 105.5%,單次任務(wù)運行時間減少了 36.6%。未來將對上述優(yōu)化方法作進一步的研究,如其對資源利用率的影響等,同時采用更多的方法對該平臺進行優(yōu)化。

        猜你喜歡
        板間流水線異構(gòu)
        Gen Z Migrant Workers Are Leaving the Assembly Line
        試論同課異構(gòu)之“同”與“異”
        流水線
        電容器的兩種工作狀態(tài)
        關(guān)于電容器中U不變還是Q不變的判斷
        關(guān)于電容器中U不變還是Q不變的判斷
        電容器的兩種工作狀態(tài)
        overlay SDN實現(xiàn)異構(gòu)兼容的關(guān)鍵技術(shù)
        LTE異構(gòu)網(wǎng)技術(shù)與組網(wǎng)研究
        報廢汽車拆解半自動流水線研究
        亚洲人成网站www| 国产av无码专区亚洲av中文| 看av免费毛片手机播放| 欧美成人免费高清视频| 久久精品国产亚洲AV高清wy| 亚洲一区中文字幕一区| 精品露脸国产偷人在视频| 亚洲av永久无码国产精品久久| 日本污视频| av资源在线永久免费观看 | 日本不卡一区二区高清中文| 国产偷国产偷亚洲高清| 99精品国产在热久久无毒不卡| 天天天天躁天天爱天天碰2018| av中文字幕综合在线| 国产av一区网址大全| 97精品人妻一区二区三区在线| 吃奶呻吟打开双腿做受视频| 少妇厨房愉情理伦片bd在线观看 | 果冻蜜桃传媒在线观看| 国产三级不卡一区不卡二区在线| 午夜理论片yy44880影院| 国产啪精品视频网站丝袜| 国产av乳头久久一区| 二区三区三区视频在线观看| 久久人人爽人人爽人人片av东京热| 亚洲人成人网毛片在线播放| 国产日韩精品视频一区二区三区| 操风骚人妻沉沦中文字幕| 久久夜色精品国产| 精品国产福利片在线观看| 亚洲人妻御姐中文字幕| 美女内射毛片在线看免费人动物| 国产肉体ⅹxxx137大胆| 最新亚洲无码网站| 亚洲av色av成人噜噜噜| 鲁丝片一区二区三区免费| 亚洲综合色一区二区三区另类| 精品视频一区二区在线观看| 无码av天天av天天爽| 亚洲av无码专区在线电影|