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

        ?

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

        2020-09-28 10:24:44胡延步邵翠萍李慧云
        集成技術 2020年5期
        關鍵詞:板間流水線異構

        胡延步 邵翠萍 李慧云

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

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

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

        1 引 言

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

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

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

        2 背 景

        2.1 異構計算

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

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

        2.2 多 FPGA 異構平臺

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

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

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

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

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

        3.1 多 FPGA 的任務劃分方法

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

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

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

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

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

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

        圖3 針對板間延時的流水線結構的設計優(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ù)共享關系Table 1 Data sharing relationship

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

        4 實驗驗證

        4.1 實驗建立

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

        表2 初步綜合后的網(wǎng)絡子層級信息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 實驗結果

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

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

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

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

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

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

        5 討論與分析

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

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

        6 結 論

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

        猜你喜歡
        板間流水線異構
        Gen Z Migrant Workers Are Leaving the Assembly Line
        試論同課異構之“同”與“異”
        流水線
        電容器的兩種工作狀態(tài)
        關于電容器中U不變還是Q不變的判斷
        關于電容器中U不變還是Q不變的判斷
        電容器的兩種工作狀態(tài)
        overlay SDN實現(xiàn)異構兼容的關鍵技術
        電信科學(2016年11期)2016-11-23 05:07:56
        LTE異構網(wǎng)技術與組網(wǎng)研究
        報廢汽車拆解半自動流水線研究
        国产av天堂亚洲国产av麻豆| 国产极品粉嫩福利姬萌白酱| 门卫又粗又大又长好爽| 国产亚洲情侣一区二区无| 国产一级三级三级在线视| 亚洲色图少妇熟女偷拍自拍| 亚洲亚色中文字幕剧情| 欧美成人片在线观看| 国产v视频| 水蜜桃在线视频在线观看| 蜜桃视频在线免费视频| 精品欧洲av无码一区二区14 | 成人性生交大片免费| 免费看操片| 亚洲国产综合性感三级自拍 | 午夜天堂精品久久久久| 亚洲粉嫩高潮的18p| 制服无码在线第一页| 国产中文色婷婷久久久精品| 女人被男人爽到呻吟的视频| 国产999精品久久久久久| 欧美一级视频在线| 高清少妇二区三区视频在线观看| 无码中文亚洲av影音先锋 | 国产在线不卡视频| 亚洲精品视频一区二区三区四区 | 日韩www视频| 偷柏自拍亚洲综合在线| 久久精品国产亚洲av超清| 国产69精品久久久久999小说| 亚洲不卡电影| 国产女人乱码一区二区三区| 亚洲av无码国产综合专区| 国产一区日韩二区欧美三区| 青青草视频原手机在线观看| 亚洲毛片在线免费视频| 人妻少妇精品无码专区二区| 亚洲最大无码AV网站观看| 久久影院最新国产精品| 欧美成人精品a∨在线观看| 欧美日本日韩aⅴ在线视频|