国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的事件抽取模型與加速器的設(shè)計(jì)實(shí)現(xiàn) *

2020-11-30 07:36姜晶菲喬林波許金偉闞志剛
關(guān)鍵詞:流水線加速器卷積

韓 哲,姜晶菲,喬林波,竇 勇,許金偉,闞志剛

(國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410073)

1 引言

隨著信息技術(shù)的快速發(fā)展,電腦、手機(jī)等電子設(shè)備成為人們生活中不可或缺的工具,通過互聯(lián)網(wǎng)了解信息也成為了人們獲取信息的主要途徑。然而怎樣從海量的信息中快速找到人們所需要的信息卻成為了大數(shù)據(jù)時(shí)代的一個(gè)難題。在這樣的背景下,信息抽取(Information Extraction)技術(shù)應(yīng)運(yùn)而生,人們期望可以使用這項(xiàng)技術(shù)從海量自然語言描述的信息中,抽取出人們關(guān)心的事件,以實(shí)現(xiàn)對(duì)信息的自動(dòng)分類、提取和重構(gòu)。

為了解決這些問題,研究人員早期采用基于模式匹配[1]的方法進(jìn)行事件抽取。這種方法在特定領(lǐng)域內(nèi)性能優(yōu)異,但是需要耗費(fèi)大量人力來制定模板,并且很難遷移至其他領(lǐng)域。近些年機(jī)器學(xué)習(xí)發(fā)展迅速,機(jī)器學(xué)習(xí)在自然語言處理領(lǐng)域也大顯神威。但是之后,深度神經(jīng)網(wǎng)絡(luò)興起并在諸如圖像[2,3]、聲音[4,5]和視頻[6,7]多個(gè)領(lǐng)域取得了極其優(yōu)異的成績(jī)。在自然語言處理領(lǐng)域,深度神經(jīng)網(wǎng)絡(luò)也取得了不俗的成果[8,9]。因此,當(dāng)前相關(guān)研究普遍都是基于深度神經(jīng)網(wǎng)絡(luò)。目前,事件抽取相關(guān)研究多集中于英文文本[10,11],對(duì)于中文文本的研究尚在初期階段。一般來說,事件抽取可以分為2個(gè)子任務(wù):事件觸發(fā)詞的識(shí)別與分類和事件元素的識(shí)別與分類。Zhang等人[12]提出將依賴樹轉(zhuǎn)化為目標(biāo)依賴樹,在ACE 2005中文語料庫(kù)上較之前的觸發(fā)詞分類F1值提升了4%。Ding等人[13]提出的TLNN(Trigger-aware Lattice Neural Network)動(dòng)態(tài)整合了單詞和字符信息,從而避免了觸發(fā)器-單詞不匹配的問題,其觸發(fā)詞分類F1值達(dá)到了67.78%。

然而,深度神經(jīng)網(wǎng)絡(luò)龐大的計(jì)算量和參數(shù)量需要耗費(fèi)大量的計(jì)算資源和能源,這嚴(yán)重限制了深度神經(jīng)網(wǎng)絡(luò)的部署應(yīng)用。大型綜合數(shù)據(jù)處理中心接入的信息源種類和規(guī)模可能都十分龐大,對(duì)于這種情況,快速處理是分析的基礎(chǔ)。FPGA(Field Programmable Gate Array)因其本身所具有的低功耗、可重構(gòu)特點(diǎn),可以根據(jù)算法設(shè)計(jì)硬件結(jié)構(gòu),是一種十分高效的加速方法,非常適合于上述應(yīng)用環(huán)境。

基于FPGA的加速器是當(dāng)前神經(jīng)網(wǎng)絡(luò)加速的熱點(diǎn)之一,但是多數(shù)FPGA加速器只是單純地將神經(jīng)網(wǎng)絡(luò)遷移至硬件上,而沒有考慮網(wǎng)絡(luò)結(jié)構(gòu)規(guī)整性與硬件實(shí)現(xiàn)復(fù)雜度的關(guān)系。如果根據(jù)硬件特點(diǎn)對(duì)網(wǎng)絡(luò)進(jìn)一步優(yōu)化、調(diào)整或者替換某些網(wǎng)絡(luò)結(jié)構(gòu),可以降低硬件的復(fù)雜度和面積。此外,先前針對(duì)事件抽取任務(wù)的工作普遍采用長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)LSTM(Long Short-Term Memory)或者其變體作為核心網(wǎng)絡(luò),但是受限于LSTM對(duì)時(shí)序數(shù)據(jù)進(jìn)行序列處理的計(jì)算方式,LSTM不具備像卷積神經(jīng)網(wǎng)絡(luò)一樣并行加速的條件。而目前的CNN加速器研究幾乎都是針對(duì)圖像[14,15]或視頻[16,17]的加速器,針對(duì)事件抽取的專用硬件加速器研究與設(shè)計(jì)尚屬空白。

基于以上幾點(diǎn),本文選擇了當(dāng)前在英文事件抽取領(lǐng)域效果出眾的神經(jīng)網(wǎng)絡(luò)EE-DGCNN (Event Extraction based on multi-layer Dilate Gated Convolutional Neural Network)[18],在其基礎(chǔ)上提出了一種適合FPGA加速的中文事件抽取神經(jīng)網(wǎng)絡(luò)CEE-DGCNN(Chinese EE-DGCNN)。實(shí)驗(yàn)結(jié)果顯示,該網(wǎng)絡(luò)在ACE 2005中文語料庫(kù)上進(jìn)行事件觸發(fā)詞分類的F1值達(dá)到了71.12%,顯著優(yōu)于之前的工作。同時(shí),本文基于Xilinx XQKU115 FPGA設(shè)計(jì)實(shí)現(xiàn)了與之相匹配的FPGA硬件加速器,相較于Intel i7-8700k,該加速器獲得了67倍的性能提升。

2 背景知識(shí)

2.1 卷積神經(jīng)網(wǎng)絡(luò)

卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)是深度神經(jīng)網(wǎng)絡(luò)中最具代表性的算法之一。卷積神經(jīng)網(wǎng)絡(luò)一般由卷積層、全連接層、池化層等網(wǎng)絡(luò)層組成。其中,卷積層是整個(gè)卷積神經(jīng)網(wǎng)絡(luò)的核心,其計(jì)算量往往占據(jù)了卷積神經(jīng)網(wǎng)絡(luò)的主要部分。因此,加速卷積神經(jīng)網(wǎng)絡(luò)關(guān)鍵點(diǎn)在于簡(jiǎn)化卷積計(jì)算或者設(shè)計(jì)合適的硬件結(jié)構(gòu)以適合卷積運(yùn)算,常見的方法有頻域卷積、Winograd算法[19]等。

普通的卷積層通過在輸入特征上滑動(dòng)卷積核并進(jìn)行卷積運(yùn)算,生成一組特征。在每個(gè)滑動(dòng)位置上,卷積核與輸入特征之間進(jìn)行相應(yīng)元素的乘積和求和運(yùn)算,將輸入特征中的信息映射到輸出特征中的一個(gè)元素上。卷積層的計(jì)算公式為:

(1)

其中,Xj為一個(gè)卷積窗口大小的輸入,Yi為對(duì)應(yīng)位置的輸出,Kij為相應(yīng)的部分卷積核,bias為卷積偏置,m和n均為自然數(shù),具體的數(shù)值取決于輸入的大小。假設(shè)卷積核的大小為k×k,則每個(gè)滑動(dòng)窗口需要進(jìn)行k×k次乘累加運(yùn)算。因此,卷積神經(jīng)網(wǎng)絡(luò)往往需要耗費(fèi)大量的時(shí)間用于卷積層的計(jì)算。

2.2 膨脹門卷積神經(jīng)網(wǎng)絡(luò)

膨脹門卷積神經(jīng)網(wǎng)絡(luò)DGCNN(Dilate Gated Convolutional Neural Network)是一種融合了膨脹卷積和門機(jī)制的新型網(wǎng)絡(luò)結(jié)構(gòu)。其基本結(jié)構(gòu)如圖1所示。

Figure 1 Structure of DGCNN圖1 膨脹門卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)

在普通的卷積層中,每一個(gè)輸出的特征只能通過卷積核捕獲k個(gè)相鄰輸入特征的依賴信息,對(duì)于長(zhǎng)距離的依賴則無能為力。如果需要獲得長(zhǎng)距離的信息,則必須擴(kuò)大卷積核。對(duì)于一維卷積,其參數(shù)量和計(jì)算量與卷積核成線性關(guān)系,而對(duì)于二維卷積和其他高維卷積來說,擴(kuò)大卷積核意味著計(jì)算量爆炸式增長(zhǎng)。因此,研究人員提出了膨脹卷積的概念。如圖2所示,在同樣采用3層卷積層、卷積核大小同樣為3的情況下,普通卷積第3層的節(jié)點(diǎn)至多獲得相距4個(gè)節(jié)點(diǎn)的第1層節(jié)點(diǎn)信息,而膨脹卷積在第3層則可以獲得相距8個(gè)節(jié)點(diǎn)的第1層信息,并且參數(shù)量和計(jì)算量與普通卷積是完全相同的。因?yàn)樵谔幚碜匀徽Z言的時(shí)候,往往需要結(jié)合上下文進(jìn)行分析,需要考慮多個(gè)距離較遠(yuǎn)的單詞信息,因此,可以使用更少的參數(shù)量和計(jì)算量獲得更遠(yuǎn)距離信息的膨脹卷積比普通卷積更適合于自然語言處理領(lǐng)域。

Figure 2 Normal convolution vs.dilated convolution圖2 普通卷積與膨脹卷積對(duì)比

門機(jī)制最早是由Gehring等人[20]提出的,其數(shù)學(xué)化表述為:

Y=Conv1D1(X)?σ(Conv1D2(X))

(2)

其中X為輸入的向量序列,Y為輸出結(jié)果,σ為Sigmoid激活函數(shù),Conv1D1和Conv1D2為2個(gè)一維卷積,其輸出大小相同,在EE-DGCNN中Conv1D1和Conv1D2使用同一個(gè)一維卷積層,因此本文使用殘差結(jié)構(gòu)將輸入與輸出相加,實(shí)現(xiàn)信息多通道傳輸。這種結(jié)構(gòu)可以整體看作是一種激活函數(shù),稱為線性門單元(Gated Linear Unit)。

通過椎角逸出的等離子(氦離子、電子等)進(jìn)入強(qiáng)磁場(chǎng)發(fā)生遍轉(zhuǎn),分別打在正、負(fù)極板上、接通外電路,行成電流。這叫磁流體發(fā)電。

3 網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化

3.1 面向硬件的網(wǎng)絡(luò)設(shè)計(jì)

相比于普通的CNN,DGCNN可以在相同的計(jì)算量和參數(shù)量下學(xué)習(xí)到更遠(yuǎn)距離的信息,因此本文選擇了EE-DGCNN作為本文模型的骨干網(wǎng)。但是,一方面,EE-DGCNN是面向英文文本處理的,對(duì)于中文的處理效果還有待提升;另一方面,EE-DGCNN在設(shè)計(jì)之初并沒有考慮對(duì)硬件的優(yōu)化。因此,本文在EE-DGCNN的基礎(chǔ)上進(jìn)行了擴(kuò)展和優(yōu)化,設(shè)計(jì)了更適合于中文自然語言處理及硬件實(shí)現(xiàn)的CEE-DGCNN。CEE-DGCNN的網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。

Table 1 Architecture of CEE-DGCNN

與原始的EE-DGCNN相比,CEE-DGCNN主要優(yōu)化了以下3點(diǎn):

(1)更深的網(wǎng)絡(luò)。不同于英文單詞之間有明確的界限,中文詞與詞之間沒有明確的分割符,因此,對(duì)于更為復(fù)雜的中文文本EE-DGCNN缺乏足夠的分類能力。為此,本文逐步增加了網(wǎng)絡(luò)的層數(shù)以提高網(wǎng)絡(luò)的分類能力。最終CEE-DGCNN包含24層DGCNN,和EE-DGCNN相比,DGCNN的層數(shù)增加了一倍。

(2)更高的數(shù)據(jù)維度。本文的識(shí)別與分類基于中文字符,因此相較于英文一個(gè)單詞只需要一個(gè)詞向量表示,中文一個(gè)字可能需要多個(gè)詞向量來表示。這意味著每一個(gè)字都包含著比英文單詞更加豐富的含義,原本的數(shù)據(jù)維度不足以滿足中文表示的需要。為此,本文提高了詞嵌入表示的向量長(zhǎng)度,將其從768調(diào)整至1 024。此外,長(zhǎng)度為1 024的向量對(duì)于硬件更為規(guī)整,可以減少在數(shù)據(jù)邊界產(chǎn)生的資源浪費(fèi),從而降低電路復(fù)雜度。

(3)合適的膨脹系數(shù)。在CEE-DGCNN當(dāng)中,本文采用1,2,4作為膨脹系數(shù)。當(dāng)使用EE-DGCNN中的1,2,5作為膨脹系數(shù)時(shí),在高并行度的情況下會(huì)因?yàn)?無法被2整除而導(dǎo)致數(shù)據(jù)吞吐量的不一致或計(jì)算資源的浪費(fèi)。前者會(huì)導(dǎo)致流水線停頓,增加不必要的時(shí)間開銷;后者則降低了資源利用率。本文的實(shí)驗(yàn)表明,將膨脹系數(shù)設(shè)置為1,2,4可以獲得比1,2,5更好的性能,實(shí)驗(yàn)結(jié)果如表2所示。

Table 2 Effect of different dilations

3.2 定點(diǎn)量化

盡管使用DGCNN已經(jīng)大幅減少了計(jì)算量和參數(shù)量,但是所有的計(jì)算以及數(shù)據(jù)表示都是使用的32位浮點(diǎn)數(shù),這將會(huì)占用較多的計(jì)算資源,不利于縮小芯片面積。因此,本文需要在保證精度的情況下將浮點(diǎn)數(shù)轉(zhuǎn)化為定點(diǎn)數(shù)表示,并盡可能縮小數(shù)據(jù)位寬。如此可以在相同的面積與功耗下,實(shí)現(xiàn)更高的并行度,同時(shí)進(jìn)一步降低了對(duì)于訪存帶寬以及存儲(chǔ)資源的壓力。

本文采用的策略是通過數(shù)學(xué)統(tǒng)計(jì)的方式確定數(shù)據(jù)的分布區(qū)間,在此基礎(chǔ)上確定所需要的最小數(shù)據(jù)位寬,之后進(jìn)一步確定小數(shù)點(diǎn)的位置并通過實(shí)驗(yàn)進(jìn)行檢驗(yàn)。本文實(shí)驗(yàn)了多種數(shù)據(jù)精度組合,最終確定網(wǎng)絡(luò)的權(quán)重僅僅需要8位即可滿足精度需求,而數(shù)據(jù)以及中間計(jì)算結(jié)果,則需要16位方可保持網(wǎng)絡(luò)精度幾乎不變化。表3展示了量化帶來的精度變化。

Table 3 Effect of quantization on network accuracy

4 硬件設(shè)計(jì)

4.1 整體結(jié)構(gòu)

圖3展示了本文設(shè)計(jì)的加速器整體結(jié)構(gòu)。上位機(jī)通過訪問FPGA片外存儲(chǔ)DDR的方式與加速器進(jìn)行通信。FPGA加速器主要由控制器、片上存儲(chǔ)、輸入/輸出緩沖和PE(Processing Element)組成??刂破髫?fù)責(zé)接收來自上位機(jī)的指令,控制加速器的狀態(tài)。片上存儲(chǔ)器由不同大小的BRAM(Block RAM)組成,用于存儲(chǔ)中間結(jié)果和權(quán)重。輸入/輸出緩存由2個(gè)512 bit 位寬的FIFO組成,用于緩沖片外存儲(chǔ)與片上存儲(chǔ)器之間的數(shù)據(jù)。

Figure 3 Overall structure of the accelerator圖3 加速器整體結(jié)構(gòu)

圖4展示了PE中的核心部分:DGCNN的硬件結(jié)構(gòu),PE的整體結(jié)構(gòu)即由前者串聯(lián)拼接而成的。具體的計(jì)算流程如下所示:

(1) 將輸入重組存至輸入重組緩存(Input Mapping Buffer);

(2) 輸入重組緩存中數(shù)據(jù)同時(shí)傳送給MAC計(jì)算陣列(MAC Array)和輸入緩存(Input Buf- fer),輸入緩存中的數(shù)據(jù)用于后續(xù)門結(jié)構(gòu)的計(jì)算;

(3) MAC計(jì)算陣列的結(jié)果傳輸至Sigmoid函數(shù)模塊和卷積結(jié)果緩存(Conv Buffer),后者用于后續(xù)門結(jié)構(gòu)的計(jì)算;

(4) 在最后MAC陣列中對(duì)輸入緩存和卷積結(jié)果緩存中的數(shù)據(jù)進(jìn)行門結(jié)構(gòu)的計(jì)算,并輸出。

Figure 4 Main structure of PE圖4 PE核心結(jié)構(gòu)

4.2 層融合

本文通過融合所有的網(wǎng)絡(luò)層來構(gòu)建細(xì)粒度的層內(nèi)與層間流水線執(zhí)行,從而實(shí)現(xiàn)層間的有效重疊以降低計(jì)算延遲。

(1)層內(nèi)流水線。為了計(jì)算一個(gè)輸出值的所有依賴數(shù)據(jù),對(duì)于CONV層來說,在同一個(gè)卷積窗口中采用完全并行是執(zhí)行速度最快的選擇。最理想的情況是同時(shí)完成一組輸入的全部相關(guān)計(jì)算,一次完成一組數(shù)據(jù)的全部計(jì)算,在本文中,即同時(shí)完成1 024個(gè)輸出值的計(jì)算。這不僅需要大量的乘法器,還要求有充足的訪存帶寬,顯然完全并行處理這些操作對(duì)于硬件要求非??量?。因此,本文在層內(nèi)建立流水線,通過流式輸入數(shù)據(jù)的方式進(jìn)行計(jì)算,實(shí)現(xiàn)硬件資源利用最大化,并對(duì)層內(nèi)的循環(huán)有限地進(jìn)行展開,以求兼顧資源限制與性能需求,其HLS偽代碼如下所示:

for(i=0;i< 1024;i++) {

#pragma HLS UNROLLfactor=4

#pragma HLS PIPELINE

for(j=0;j< 3;j++) {

#pragma HLS UNROLLfactor=3

conv_result[i]+=kernel[j] *ifmap[i+j];

}

conv_result[i]+=bias;

sigmoid_result[i] = 1./(1.+exp(-ifmap[i]));

ofmap[i] =sigmoid_result[i] *ifmap[i]+(1-sigmoid_result[i]) *conv_result[i];

}

可以看到,整個(gè)DGCNN層完全使用流水線技術(shù)進(jìn)行運(yùn)算,并且同時(shí)進(jìn)行4個(gè)卷積窗口的運(yùn)算。

(2)層間流水線。為了降低網(wǎng)絡(luò)整體延遲,本文設(shè)計(jì)了一種細(xì)粒度的層間流水線。使用這種流水線,所有的網(wǎng)絡(luò)層都被融合并并行處理。以圖5所示的3層網(wǎng)絡(luò)為例,當(dāng)?shù)?層的灰色部分計(jì)算完成之后,立即開始計(jì)算第2層的灰色部分。在第2層灰色部分的最后1個(gè)數(shù)據(jù)計(jì)算完成后,立即開始第3層的計(jì)算。第3層在完成已有數(shù)據(jù)的計(jì)算后,會(huì)立即將得到的結(jié)果累加保存,從而減少不必要的數(shù)據(jù)存儲(chǔ)。換句話說,不同層的數(shù)據(jù)是并行融合處理的,它們的延遲是重疊的。

Figure 5 Data dependency圖5 數(shù)據(jù)依賴關(guān)系示意

圖6分別展示了傳統(tǒng)的層間流水線和層融合流水線,顯而易見,融合后的流水線可以顯著降低數(shù)據(jù)處理延遲。

Figure 6 Traditional layer pipeline vs.fusion pipeline圖6 傳統(tǒng)層間流水線與層融合流水線

圖7展示了各層和整個(gè)網(wǎng)絡(luò)的延遲,加速器的整體延遲等于單層的延遲加上等待依賴輸入的時(shí)間,采用層融合流水線后網(wǎng)絡(luò)整體延遲只有單層網(wǎng)絡(luò)延遲的1.7倍。

Figure 7 Latencies of each layer and the overall network圖7 各層和整個(gè)網(wǎng)絡(luò)的延遲

4.3 Sigmoid函數(shù)簡(jiǎn)化

在DGCNN中,需要使用Sigmoid函數(shù)對(duì)膨脹卷積的輸出進(jìn)行激活。Sigmoid函數(shù)的公式表達(dá)為:

(3)

式(3)包含1個(gè)冪運(yùn)算和1個(gè)除法運(yùn)算,這不利于硬件實(shí)現(xiàn),因此本文需要對(duì)Sigmoid函數(shù)進(jìn)行簡(jiǎn)化處理,常見的處理方法有查表法和分段函數(shù)擬合法。本文通過3.2節(jié)的定點(diǎn)量化實(shí)驗(yàn)發(fā)現(xiàn),在計(jì)算的過程中Sigmoid函數(shù)的輸出僅僅需要8 bit位寬表示的定點(diǎn)小數(shù)即可滿足精度需求。因此,本文采用分段查表法對(duì)Sigmoid函數(shù)進(jìn)行簡(jiǎn)化,具體的策略如下所示:

(1)當(dāng)輸入大于4時(shí),直接輸出結(jié)果1;

(2)當(dāng)輸入大于或等于-4且小于或等于4時(shí),使用輸入的2位整數(shù)位、6位小數(shù)位作為地址,通過查表獲得計(jì)算結(jié)果;

(3)當(dāng)輸入小于-4時(shí),直接輸出結(jié)果0。

簡(jiǎn)化后的函數(shù)圖像如圖8所示,黑色曲線為使用分段查表法簡(jiǎn)化后的Sigmoid函數(shù)曲線,灰色點(diǎn)狀線為原始的Sigmoid函數(shù)曲線??梢钥闯鰞烧咧g的差異幾乎可以忽略不計(jì)。

Figure 8 Comparison of Sigmoid function圖8 Sigmoid函數(shù)簡(jiǎn)化對(duì)比

5 實(shí)驗(yàn)與結(jié)果

5.1 實(shí)驗(yàn)平臺(tái)

本文使用ACE 2005中文語料庫(kù)對(duì)CEE-DGCNN進(jìn)行訓(xùn)練,學(xué)習(xí)率為0.001,批大小為8。取75%的數(shù)據(jù)作為訓(xùn)練集,其余25%作為測(cè)試集。ACE 2005語料庫(kù)是一個(gè)基于真實(shí)世界語料的語料庫(kù),其語料全部來自于廣播、新聞和網(wǎng)絡(luò)博客,因此其可以較為真實(shí)地反映實(shí)際應(yīng)用后的模型性能。

此外,本文基于Xilinx公司的Kintex UltraSclae開發(fā)板實(shí)現(xiàn)并評(píng)估了本文設(shè)計(jì)的加速器,該評(píng)估板采用XCKU115 FPGA芯片。加速器采用Verilog語言編寫,并使用Xilinx Vivado 2018.3綜合實(shí)現(xiàn)仿真。對(duì)比平臺(tái)基于當(dāng)前廣泛使用的Intel i7-8700k中央處理器,使用C語言實(shí)現(xiàn),并在任務(wù)級(jí)并行計(jì)算以充分利用CPU的多核優(yōu)勢(shì)。

5.2 實(shí)驗(yàn)結(jié)果

本文測(cè)試了CEE-DGCNN的模型性能,并與前人的工作進(jìn)行對(duì)比,具體結(jié)果展示在表4中。

Table 4 Model performance comparison

從表4中可以看到,本文模型較前人工作取得了非常大的提升,尤其是在精度上,本文模型較先前的工作提升了約10%。這主要有2個(gè)原因,一方面,我們前期使用BERT(Bidirectional Encoder Representation from Transformers)[22]而非word2vec等算法對(duì)文本進(jìn)行預(yù)處理,前者生成的詞向量可以根據(jù)語境進(jìn)行調(diào)整,相較于后者僅采用一種詞向量表示有著更強(qiáng)的表達(dá)能力;另一方面,本文所使用的DGCNN結(jié)構(gòu)有著更強(qiáng)的特征提取能力。

Table 5 Resource Utilization

表5列出了加速器的資源使用情況,可以看出,加速器占用資源非常少,因此可以同時(shí)滿足嵌入式領(lǐng)域和數(shù)據(jù)中心的要求。表6列出了本文的加速器與CPU平臺(tái)的性能對(duì)比。與CPU相比,本文的加速器降低了96%的延遲,提升了約67倍的吞吐量。

Table 6 Performance comparison of different platforms

6 結(jié)束語

本文針對(duì)中文事件抽取任務(wù)提出了一個(gè)適合FPGA硬件實(shí)現(xiàn)的神經(jīng)網(wǎng)絡(luò)模型,并進(jìn)一步設(shè)計(jì)實(shí)現(xiàn)了其對(duì)應(yīng)的硬件結(jié)構(gòu)。網(wǎng)絡(luò)模型以EE-DGCNN為基礎(chǔ),通過調(diào)整數(shù)據(jù)維度和網(wǎng)絡(luò)參數(shù)的方式使其更為規(guī)整,以適合硬件實(shí)現(xiàn),并且在訓(xùn)練完成后使用定點(diǎn)量化縮小存儲(chǔ)和訪存帶寬要求。該網(wǎng)絡(luò)模型最終在ACE 2005中文語料庫(kù)上達(dá)到了71.71%的F1值,顯著優(yōu)于之前的工作。對(duì)應(yīng)的加速器采用全流水結(jié)構(gòu)實(shí)現(xiàn)提出的網(wǎng)絡(luò)模型,并利用層融合技術(shù)降低了數(shù)據(jù)處理延遲,顯著提高了數(shù)據(jù)處理效率。本文基于Xilinx XCKU115 FPGA實(shí)現(xiàn)該加速器,最高吞吐量達(dá)到了CPU平臺(tái)上性能的67倍,性能獲得了極大的提升。

猜你喜歡
流水線加速器卷積
莫比斯加速器眾創(chuàng)辦公空間
知識(shí)快餐店 科學(xué)加速器
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
全民小康路上的“加速器”
流水線
卷積神經(jīng)網(wǎng)絡(luò)的分析與設(shè)計(jì)
從濾波器理解卷積
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
報(bào)廢汽車拆解半自動(dòng)流水線研究
流水線生產(chǎn)殺死藝術(shù)