• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    YOLOv3-tiny的硬件加速設(shè)計(jì)及FPGA實(shí)現(xiàn)*

    2021-12-23 06:40:56陳浩敏姚森敬辛文成王龍海
    關(guān)鍵詞:池化加速器流水

    陳浩敏,姚森敬,席 禹,張 凡,辛文成,王龍海,任 超

    (1.南方電網(wǎng)數(shù)字電網(wǎng)研究院有限公司,廣東 廣州 510623;2.天津大學(xué)電氣自動(dòng)化與信息工程學(xué)院,天津 300072)

    1 引言

    隨著人工智能浪潮的不斷迭起,各種網(wǎng)絡(luò)模型層出不窮,在圖像分類(lèi)領(lǐng)域有:AlexNet(Alex Network)[1]、VGGNet(Visual Geometry Group Network)[2]、GoogLeNet(Google LeNet)[3]和ResNet(Residual neural Network)[4]等,在目標(biāo)檢測(cè)領(lǐng)域有:RCNN(Regions with CNN features)[5]、Fast RCNN(Fast Regions with CNN features)[6]、SSD(Single Shot multibox Detector)[7]和YOLO(You Only Look Once)[8]等。表1列舉了幾種典型的圖像分類(lèi)網(wǎng)絡(luò)模型,從表1中可以看出,網(wǎng)絡(luò)模型的精度越來(lái)越高,但隨之而來(lái)的是網(wǎng)絡(luò)的結(jié)構(gòu)越來(lái)越復(fù)雜,網(wǎng)絡(luò)的規(guī)模越來(lái)越大,因此網(wǎng)絡(luò)模型的訓(xùn)練及前向推理過(guò)程也變得十分緩慢。表1中,GMACs表示每秒10億(=109)次的定點(diǎn)乘累加運(yùn)算。

    Table 1 Typical image classification network models表1 典型圖像分類(lèi)網(wǎng)絡(luò)模型

    網(wǎng)絡(luò)的性能越強(qiáng)其所需要的計(jì)算力也就越高,為了加速網(wǎng)絡(luò)的運(yùn)算通常使用專(zhuān)用的硬件,如現(xiàn)場(chǎng)可編程門(mén)陣列FPGA(Field Programmable Gate Array)。FPGA是一種半定制、可重構(gòu)的專(zhuān)用集成電路,具有功耗低、靈活性好、性能強(qiáng)的特點(diǎn)。Cloutier等人[9]使用FPGA進(jìn)行手寫(xiě)字母識(shí)別的相關(guān)加速工作,受制于當(dāng)時(shí)芯片的制造工藝沒(méi)能取得較好的結(jié)果。Zhang等人[10]使用HLS(High Level Synthesis)的設(shè)計(jì)方法,提出了基于Roofline的模型分析方法,在XILINX Virtex7 FPGA上實(shí)現(xiàn)了AlexNet網(wǎng)絡(luò)的卷積層設(shè)計(jì),消耗了較多硬件資源。Ghaffari等人[11]提出一種通用卷積神經(jīng)網(wǎng)絡(luò)加速框架,使用LeNet5對(duì)設(shè)計(jì)架構(gòu)進(jìn)行測(cè)試,未能取得較高的計(jì)算力。Lu等人[12]使用快速 Winograd 算法進(jìn)行卷積運(yùn)算的加速,提出了一個(gè)能夠在FPGA上運(yùn)行Winograd快速運(yùn)算的算法架構(gòu),設(shè)計(jì)較為復(fù)雜。Li等人[13]提出一種基于FPGA的端到端卷積神經(jīng)網(wǎng)絡(luò)加速器設(shè)計(jì)方法,以此提高加速器的吞吐率,然而靈活性較差。Venieris等人[14]提出一種基于FPGA的動(dòng)態(tài)可重構(gòu)卷積神經(jīng)網(wǎng)絡(luò)加速框架,采用脈動(dòng)陣列的方式設(shè)計(jì)硬件加速單元,動(dòng)態(tài)可重構(gòu)的設(shè)計(jì)需要在使用時(shí)對(duì)FPGA反復(fù)燒寫(xiě),模型部署較為復(fù)雜。FPGA進(jìn)行硬件加速依然存在較多的挑戰(zhàn),硬件加速的性能與FPGA的片上資源有直接關(guān)系,如何使用有限的硬件資源設(shè)計(jì)出高效的硬件加速架構(gòu)是十分重要的研究問(wèn)題。YOLOv3-tiny[15]具有優(yōu)秀的目標(biāo)檢測(cè)能力,但模型所需的計(jì)算力依然較大,難以實(shí)現(xiàn)面向嵌入式領(lǐng)域的應(yīng)用。

    本文設(shè)計(jì)一種YOLOv3-tiny的硬件加速方法,并在FPGA平臺(tái)上進(jìn)行實(shí)現(xiàn)。從定點(diǎn)化、并行化和流水化3個(gè)角度對(duì)模型進(jìn)行硬件加速設(shè)計(jì),使用XILINX Vivado開(kāi)發(fā)套件,在XILINX XC7Z020CLG400-1平臺(tái)上對(duì)上述研究?jī)?nèi)容進(jìn)行設(shè)計(jì)驗(yàn)證,分別設(shè)計(jì)了卷積、池化、上采樣和YOLO Detection硬件加速I(mǎi)P,在Vivado IDE上完成了基于Zynq7020的片上系統(tǒng)SOC(System On Chip)搭建,分別從計(jì)算速度、資源利用率和功耗效率等方面對(duì)設(shè)計(jì)進(jìn)行了綜合性能分析。

    2 基本理論

    2.1 YOLOv3-tiny網(wǎng)絡(luò)結(jié)構(gòu)

    YOLOv3-tiny是YOLOv3網(wǎng)絡(luò)的精簡(jiǎn)版,其與YOLOv3模型性能的對(duì)比如表2所示。表2中FLOPS(FLoating-point Operations Per Second)表示每秒浮點(diǎn)運(yùn)算次數(shù),Bn表示Billion。在未對(duì)網(wǎng)絡(luò)進(jìn)行剪枝、壓縮等操作之前,YOLOv3-tiny所需的計(jì)算量和權(quán)重大小遠(yuǎn)小于YOLOv3的,但模型識(shí)別精度低于YOLOv3的。主要是因?yàn)槠渲鞲删W(wǎng)絡(luò)較淺,為了提升速度犧牲了一部分精度。

    Table 2 Performance comparison between YOLOv3-tiny and YOLOv3 models表2 YOLOv3-tiny與YOLOv3網(wǎng)絡(luò)模型性能對(duì)比

    Figure 1 YOLOv3-tiny network structure diagram圖1 YOLOv3-tiny網(wǎng)絡(luò)結(jié)構(gòu)圖

    YOLOv3-tiny的主干網(wǎng)絡(luò)由卷積層、BN層[16]和池化層等構(gòu)成,預(yù)測(cè)分支網(wǎng)絡(luò)由卷積層、上采樣層和張量拼接層等組成,網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。模型特征圖輸入尺寸為416×416×3,輸出13×13×255,26×26×255 2個(gè)尺度的預(yù)測(cè)結(jié)果,主干網(wǎng)絡(luò)由7層卷積層構(gòu)成,卷積核尺寸均為3×3,步長(zhǎng)均為1,每個(gè)卷積層之后緊跟著一個(gè)步長(zhǎng)為2的最大池化層,池化單元尺寸為2×2,主干網(wǎng)絡(luò)是典型的直筒型卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),且卷積與池化計(jì)算統(tǒng)一,便于進(jìn)行硬件加速實(shí)現(xiàn)。

    多尺度的預(yù)測(cè)是YOLOv3網(wǎng)絡(luò)的一大特點(diǎn),提高了網(wǎng)絡(luò)模型的泛化能力和檢測(cè)精度。不同尺度的網(wǎng)格單元相結(jié)合能夠增強(qiáng)網(wǎng)絡(luò)對(duì)目標(biāo)的預(yù)測(cè)能力。對(duì)于YOLOv3-tiny網(wǎng)絡(luò)來(lái)說(shuō),需要設(shè)計(jì)的硬件加速單元有:卷積計(jì)算單元、池化計(jì)算單元、上采樣計(jì)算單元和YOLO Detection計(jì)算單元。需要強(qiáng)調(diào)的是,YOLO Detection為網(wǎng)絡(luò)輸出的最后一層,作用是輸出邊框預(yù)測(cè)及類(lèi)別判斷信息,其輸出結(jié)果除tw、th(tw表示網(wǎng)絡(luò)預(yù)測(cè)邊框的寬,th表示網(wǎng)絡(luò)預(yù)測(cè)邊框的高)以外均需使用Sigmoid函數(shù)進(jìn)行處理。

    2.2 定點(diǎn)化原理

    定點(diǎn)化的計(jì)算能夠顯著提高計(jì)算效率,一個(gè)定點(diǎn)數(shù)由符號(hào)位、整數(shù)位和小數(shù)位組成,其總位寬為W,整數(shù)部分位寬為I,量化因子為W-I-1,本文使用S_float(32)、int(W)、I_float(32)分別表示原始浮點(diǎn)型數(shù)據(jù)、定點(diǎn)量化后的數(shù)據(jù)和定點(diǎn)數(shù)反量化的數(shù)據(jù),三者之間的關(guān)系可用式(1)表示:

    int(W)=S_float(32)*2W-I-1

    I_float(32)=int(W)/2W-I-1

    (1)

    當(dāng)總位寬與整數(shù)部分位寬固定時(shí),即可使用式(1)進(jìn)行數(shù)據(jù)的量化與反量化,將W-I-1稱(chēng)為量化因子,不同的量化因子具有不同的精度,量化因子越大相應(yīng)的數(shù)據(jù)精度就越高。為了衡量定點(diǎn)化后數(shù)據(jù)損失的精度,通常將定點(diǎn)化之后的樣本數(shù)據(jù)進(jìn)行反量化,并與原始樣本數(shù)據(jù)進(jìn)行對(duì)比,總體的量化精度損失[17]可使用式(2)進(jìn)行描述:

    (2)

    其中,N表示待量化的數(shù)據(jù)總個(gè)數(shù)。

    定點(diǎn)化過(guò)程中數(shù)據(jù)整數(shù)部分位寬和量化因子的選擇十分重要,前者決定了定點(diǎn)數(shù)所能表示的數(shù)據(jù)范圍,后者決定了定點(diǎn)數(shù)據(jù)的精度。

    2.3 并行化原理

    文獻(xiàn)[18]對(duì)卷積神經(jīng)網(wǎng)絡(luò)中的并行性做了詳細(xì)介紹,本文在此基礎(chǔ)上對(duì)并行性進(jìn)行簡(jiǎn)單分析。卷積運(yùn)算是網(wǎng)絡(luò)計(jì)算中的主要計(jì)算單元,因此對(duì)并行性的分析主要針對(duì)卷積計(jì)算單元。

    (1)卷積核間并行性:卷積核間并行是指每個(gè)卷積計(jì)算的卷積核是相互獨(dú)立的,所有的卷積核共享輸入特征圖。因此,卷積核間的計(jì)算不存在相互依賴(lài)的關(guān)系,可以同時(shí)進(jìn)行。

    (2)特征圖間并行性:特征圖間的并行性是指對(duì)于輸入特征圖來(lái)說(shuō),每一組卷積核都有與之對(duì)應(yīng)的特征圖。當(dāng)進(jìn)行卷積計(jì)算時(shí),每個(gè)卷積核與對(duì)應(yīng)的輸入特征圖進(jìn)行乘加計(jì)算。實(shí)際計(jì)算時(shí)可將每個(gè)特征圖與對(duì)應(yīng)卷積核進(jìn)行并行計(jì)算,然后將計(jì)算得到的結(jié)果相加即可。

    (3)特征圖內(nèi)并行性:一個(gè)特征圖共享一個(gè)卷積核,因此可以將特征圖上的卷積滑窗同時(shí)進(jìn)行運(yùn)算,在一個(gè)特征圖上的不同位置使用共享的卷積核進(jìn)行并行運(yùn)算,可減少循環(huán)的次數(shù)。

    (4)卷積核內(nèi)并行性:以3×3的卷積核為例,整個(gè)計(jì)算過(guò)程需要進(jìn)行9次乘法與8次加法運(yùn)算,如果使用串行計(jì)算共需要循環(huán)9次;如果將卷積核與特征圖滑窗展開(kāi)為向量,可同時(shí)進(jìn)行9次乘法運(yùn)算,然后再進(jìn)行1次加法運(yùn)算即可完成整個(gè)計(jì)算。

    2.4 流水化原理

    流水化的設(shè)計(jì)思想被廣泛應(yīng)用于硬件設(shè)計(jì)中。本文以3級(jí)流水線對(duì)流水化的設(shè)計(jì)思想進(jìn)行簡(jiǎn)單分析,從圖2可以看出,對(duì)于3個(gè)任務(wù),串行設(shè)計(jì)需要耗時(shí)9個(gè)時(shí)鐘周期,并行設(shè)計(jì)需要耗時(shí)3個(gè)時(shí)鐘周期,流水化設(shè)計(jì)需要耗時(shí)5個(gè)時(shí)鐘周期。

    橫向比較可知:并行化的計(jì)算速度最快,但并行化的過(guò)程需要將硬件資源加倍,圖2中所需的硬件資源為串行的3倍,流水化的設(shè)計(jì)無(wú)需將所有的硬件資源都加倍,但依然需要消耗額外的存儲(chǔ)單元和寄存器等。

    Figure 2 Serial,parallel and pipeline structure 圖2 串行、并行和流水化結(jié)構(gòu)

    縱向比較可知:串行設(shè)計(jì)1次僅能計(jì)算1個(gè)子任務(wù),并行化與流水化1次能夠計(jì)算3個(gè)子任務(wù),區(qū)別在于并行化是對(duì)彼此獨(dú)立的任務(wù)1次執(zhí)行多個(gè)相同的子任務(wù),流水化是對(duì)彼此獨(dú)立的任務(wù)1次執(zhí)行多個(gè)不同的子任務(wù)。

    因此,并行化主要面向沒(méi)有數(shù)據(jù)依賴(lài)關(guān)系的任務(wù)間,流水化主要面向有相對(duì)數(shù)據(jù)依賴(lài)的任務(wù)內(nèi),流水與并行的同時(shí)應(yīng)用能夠大幅提高任務(wù)的運(yùn)行效率。本文將網(wǎng)絡(luò)模型的流水化抽象為2個(gè)層級(jí),宏觀上的流水化可在網(wǎng)絡(luò)的各層級(jí)之間進(jìn)行設(shè)計(jì),微觀上的流水化可在具體的層內(nèi)展開(kāi)設(shè)計(jì)。

    3 硬件加速設(shè)計(jì)

    3.1 定點(diǎn)化設(shè)計(jì)

    (1)數(shù)據(jù)范圍。

    數(shù)據(jù)進(jìn)行定點(diǎn)化之前需對(duì)數(shù)據(jù)范圍進(jìn)行統(tǒng)計(jì),以此確定定點(diǎn)數(shù)的位數(shù),本文對(duì)YOLOv3-tiny定點(diǎn)化前后的各層權(quán)重和偏置數(shù)據(jù)分布進(jìn)行統(tǒng)計(jì),并對(duì)定點(diǎn)化前后的數(shù)據(jù)精度損失進(jìn)行對(duì)比。YOLOv3-tiny共有13層卷積層,定點(diǎn)化前各層權(quán)重和偏置的總體分布如圖3和圖4所示,從圖中可知,各層權(quán)重與偏置數(shù)據(jù)主要集中分布在0附近。本文分別使用8位,16位以及32位定點(diǎn)數(shù)進(jìn)行定點(diǎn)化設(shè)計(jì),從精度損失和計(jì)算資源消耗2個(gè)方面對(duì)設(shè)計(jì)進(jìn)行評(píng)估。

    Figure 3 Overall distribution of weights圖3 權(quán)重總體分布圖

    Figure 4 Overall distribution of bias圖4 偏置總體分布圖

    為了衡量定點(diǎn)化后的數(shù)據(jù)精度損失,本文使用式(1)對(duì)定點(diǎn)化后的數(shù)據(jù)進(jìn)行反量化,然后使用式(2)統(tǒng)計(jì)其精度損失,不同定點(diǎn)數(shù)定點(diǎn)化后各層的數(shù)據(jù)精度損失如表3所示。從表3可知,采用8位定點(diǎn)數(shù)(FP8)進(jìn)行定點(diǎn)化數(shù)據(jù)精度損失較大,16位定點(diǎn)數(shù)(FP16)數(shù)據(jù)精度損失較小,32位定點(diǎn)數(shù)(FP32)幾乎可達(dá)無(wú)損量化。因此,從數(shù)據(jù)精度角度來(lái)說(shuō),使用16位定點(diǎn)數(shù)能夠滿足設(shè)計(jì)要求。雖然采用8~16位的定點(diǎn)數(shù)也有可能滿足權(quán)重精度的要求,但考慮到定點(diǎn)化的統(tǒng)一性以及定點(diǎn)數(shù)對(duì)中間層數(shù)據(jù)范圍的覆蓋能力,更少位數(shù)的定點(diǎn)數(shù)可能導(dǎo)致數(shù)據(jù)精度的下降。

    Table 3 Weights and biases accuracy loss of each layer表3 各層權(quán)重和偏置定點(diǎn)化精度損失

    通常網(wǎng)絡(luò)模型中原始的數(shù)據(jù)類(lèi)型為float,其占用4個(gè)字節(jié)的內(nèi)存空間,32位定點(diǎn)數(shù)所需的內(nèi)存空間同樣為4個(gè)字節(jié),因此不能節(jié)省存儲(chǔ)空間,16位定點(diǎn)數(shù)所需的內(nèi)存空間為2個(gè)字節(jié),能夠節(jié)省50%的存儲(chǔ)空間,而8位定點(diǎn)數(shù)則能節(jié)省75%的存儲(chǔ)空間。結(jié)合表3與圖5可知,采用16位定點(diǎn)數(shù)進(jìn)行定點(diǎn)化設(shè)計(jì)能夠在數(shù)據(jù)的精度損失和資源消耗間取得平衡,因此本文使用16位定點(diǎn)數(shù)作為加速器整體的定點(diǎn)位數(shù)。

    本文使用一個(gè)3×3的卷積運(yùn)算對(duì)不同定點(diǎn)數(shù)的資源消耗進(jìn)行仿真測(cè)試,結(jié)果如圖5所示。從圖5中可知,定點(diǎn)位數(shù)越高其所需的硬件資源也越多。

    Figure 5 Resource consumption diagram圖5 資源消耗圖

    (2)數(shù)據(jù)溢出處理。

    對(duì)于YOLOv3-tiny網(wǎng)絡(luò)來(lái)說(shuō),數(shù)據(jù)溢出主要出現(xiàn)在卷積的計(jì)算過(guò)程以及計(jì)算結(jié)果的輸出中,各層的權(quán)重、偏置、輸入數(shù)據(jù)只參與計(jì)算過(guò)程,無(wú)需進(jìn)行數(shù)據(jù)的更新(此處指本層輸入數(shù)據(jù))。因此,權(quán)重、偏置、輸入數(shù)據(jù)的溢出處理直接使用舍去高位保留低位的方法。而卷積計(jì)算過(guò)程中的數(shù)據(jù)累加,則使用更大范圍的定點(diǎn)數(shù)據(jù)類(lèi)型暫存計(jì)算結(jié)果,設(shè)計(jì)中本文使用32位定點(diǎn)數(shù)。對(duì)于卷積計(jì)算的最終輸出結(jié)果,本文使用16位定點(diǎn)數(shù)進(jìn)行表示,當(dāng)發(fā)生數(shù)據(jù)溢出時(shí),直接使用定點(diǎn)數(shù)據(jù)的最大值代替該值,避免造成更大的精度損失。對(duì)于池化層、上采樣層和YOLO Detection層,其計(jì)算過(guò)程不存在數(shù)據(jù)累加、乘積等造成數(shù)據(jù)溢出的問(wèn)題,因此直接使用16位定點(diǎn)數(shù),當(dāng)發(fā)生數(shù)據(jù)溢出時(shí),直接使用定點(diǎn)數(shù)據(jù)的最大值代替該值。

    3.2 計(jì)算單元并行化設(shè)計(jì)

    (1)卷積計(jì)算單元。

    卷積計(jì)算單元的結(jié)構(gòu)如圖6所示。卷積計(jì)算單元的數(shù)據(jù)輸入共有2種AXI4-Stream數(shù)據(jù)流:一種用于權(quán)重和特征圖數(shù)據(jù)的傳輸,記為INA Stream;一種用于偏置和中間計(jì)算結(jié)果的傳輸,記為INB Stream。

    ①I(mǎi)NA Stream。

    Figure 6 Structure of convolution calculation unit圖6 卷積計(jì)算單元結(jié)構(gòu)

    輸入與輸出通道的循環(huán)分塊因子分別記為q和p,通過(guò)改變q和p的大小即可實(shí)現(xiàn)對(duì)并行度的控制。對(duì)于權(quán)重?cái)?shù)據(jù),本文僅將本次計(jì)算所需的權(quán)重傳輸至片上BRAM,因此片上BRAM的大小為:p×q×k×k,其中k為卷積核尺寸。對(duì)于特征圖的輸入,本文設(shè)計(jì)q個(gè)3行的緩存結(jié)構(gòu),記為“Line Buffer”,通過(guò)移動(dòng)與插入即可實(shí)現(xiàn)輸入數(shù)據(jù)的緩存。對(duì)于卷積計(jì)算的滑窗,本文設(shè)計(jì)3×3的窗口,記為“Window”,將“Line Buffer”內(nèi)的數(shù)據(jù)不斷移動(dòng)到“Window”內(nèi)即可實(shí)現(xiàn)卷積滑窗計(jì)算的功能。對(duì)于卷積計(jì)算的特征圖輸出,本文使用可編程邏輯PL(Programmable Logic)內(nèi)部的AXI4-Stream協(xié)議設(shè)計(jì)FIFO結(jié)構(gòu),F(xiàn)IFO深度設(shè)置為2。

    ②INB Stream。

    由于循環(huán)分塊因子的引入,本次卷積計(jì)算的結(jié)果需要和上次循環(huán)的計(jì)算結(jié)果累加,然后再作為本次計(jì)算的最終結(jié)果傳輸至片外存儲(chǔ)。因此,需要設(shè)計(jì)片上存儲(chǔ)結(jié)構(gòu),對(duì)本次循環(huán)所需要累加的數(shù)據(jù)進(jìn)行存儲(chǔ),緩存大小和輸出通道的循環(huán)分塊因子p相等;此外,當(dāng)完成一個(gè)輸出通道的卷積計(jì)算時(shí),需要將偏置與當(dāng)前計(jì)算結(jié)果相加,然后再進(jìn)行激活輸出,偏置的片上緩存大小也同輸出通道的循環(huán)分塊因子p相等。

    ③循環(huán)分塊因子。

    本文使用“ARRAY_PARTITION”與“PIPLINE”指令對(duì)卷積計(jì)算單元進(jìn)行優(yōu)化。設(shè)置不同的循環(huán)分塊因子(AXI4-Stream位寬64,一次傳輸4個(gè)通道,因此循環(huán)分塊因子為4的倍數(shù)),進(jìn)而得到不同循環(huán)分塊因子下的資源消耗,結(jié)果如圖7所示。從圖7中可知,隨著循環(huán)分塊因子的增加,硬件資源的消耗幾乎也成倍增加,考慮到實(shí)驗(yàn)平臺(tái)Zynq7020的資源配置,本文最終將系統(tǒng)的循環(huán)分塊因子設(shè)置為32,即p=q=32。

    Figure 7 Resource consumption of different cyclic blocking factors圖7 不同循環(huán)分塊因子資源消耗

    (2)池化計(jì)算單元。

    池化計(jì)算單元的設(shè)計(jì)相較于卷積計(jì)算單元要簡(jiǎn)單,池化層中不存在權(quán)重與偏置,也無(wú)需設(shè)計(jì)復(fù)雜的片上存儲(chǔ)結(jié)構(gòu)與計(jì)算流程,卷積計(jì)算單元中將循環(huán)分塊因子設(shè)置為32,為了保持系統(tǒng)設(shè)計(jì)的一致性,本文將池化層的循環(huán)分塊因子也設(shè)置為32。池化層中的輸入與輸出通道數(shù)相等,且各通道間的池化運(yùn)算不存在數(shù)據(jù)依賴(lài),池化計(jì)算單元的設(shè)計(jì)可用圖8描述。

    池化計(jì)算單元的數(shù)據(jù)輸入與輸出均為AXI4-Srteam,由于YOLOv3-tiny中的池化步長(zhǎng)固定為2,本文設(shè)計(jì)32個(gè)2行的緩存結(jié)構(gòu),通過(guò)移動(dòng)與插入即可實(shí)現(xiàn)輸入數(shù)據(jù)的緩存;對(duì)于池化計(jì)算的滑窗,設(shè)計(jì)2×2的窗口,將“Line Buffer”內(nèi)的數(shù)據(jù)不斷移動(dòng)到“Window”內(nèi)即可實(shí)現(xiàn)池化滑窗計(jì)算的功能,每完成一次池化計(jì)算即可將計(jì)算結(jié)果輸出,無(wú)需進(jìn)行片上存儲(chǔ)。

    Figure 8 Structure of pooled computing unit圖8 池化計(jì)算單元結(jié)構(gòu)

    池化計(jì)算單元的優(yōu)化設(shè)計(jì)與卷積層相同,本文使用“PIPLINE”對(duì)輸入通道下的循環(huán)進(jìn)行優(yōu)化,使用“ARRAY_PARTITION”對(duì)行緩存數(shù)組進(jìn)行分割。

    (3)上采樣計(jì)算單元。

    YOLOv3-tiny中僅有一層上采樣層,上采樣層的輸入輸出特征圖尺寸固定,分別為13×13,26×26,因此上采樣層的設(shè)計(jì)僅針對(duì)這一組參數(shù)即可。上采樣的計(jì)算過(guò)程與下采樣剛好相反,上采樣計(jì)算單元的設(shè)計(jì)與池化層十分類(lèi)似,每完成一次上采樣計(jì)算即可將計(jì)算結(jié)果輸出,無(wú)需進(jìn)行片上存儲(chǔ),其優(yōu)化方式也與池化層相同,這里不再進(jìn)行贅述。

    (4)YOLO Detection計(jì)算單元。

    YOLO Detection為網(wǎng)絡(luò)輸出的最后一層,其作用是輸出邊框預(yù)測(cè)及類(lèi)別判斷信息,圖9是其輸出向量示意圖,輸出結(jié)果除tw、th以外均需使用Sigmoid函數(shù)進(jìn)行處理。圖9中,tx表示網(wǎng)絡(luò)預(yù)測(cè)邊框的橫向相對(duì)坐標(biāo),ty表示網(wǎng)絡(luò)預(yù)測(cè)邊框的縱向相對(duì)坐標(biāo)。YOLO Detection計(jì)算單元的數(shù)據(jù)輸入無(wú)需使用行緩存,也無(wú)需設(shè)計(jì)片上存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)以AXI4-Stream的形式輸入,計(jì)算單元直接對(duì)輸出數(shù)據(jù)進(jìn)行處理,然后將結(jié)果輸出,由于未涉及到片上存儲(chǔ),因此優(yōu)化設(shè)計(jì)只需使用“PIPLINE”即可。該計(jì)算單元的設(shè)計(jì)不同之處在于Sigmoid函數(shù)的定點(diǎn)化硬件實(shí)現(xiàn)以及如何對(duì)tw、th進(jìn)行特殊處理。Sigmoid函數(shù)可用式(3)表示:

    (3)

    Figure 9 YOLO Detection output vector圖9 YOLO Detection輸出向量

    本文使用HLS中的“math.h”函數(shù)庫(kù)對(duì)Sigmoid函數(shù)進(jìn)行實(shí)現(xiàn)。從前文可知,16位定點(diǎn)數(shù)的整數(shù)位為7,小數(shù)位為8,符號(hào)位為1,因此對(duì)于一個(gè)16位定點(diǎn)數(shù),其所能表示的數(shù)據(jù)為[-128,128),最小數(shù)據(jù)精度為2-8,以最小數(shù)據(jù)精度為間隔,16位定點(diǎn)數(shù)所能表示的數(shù)據(jù)共有65 535個(gè)。因此,能夠得到等數(shù)量的Sigmoid計(jì)算輸出。本文將輸出結(jié)果與標(biāo)準(zhǔn)float型數(shù)據(jù)的運(yùn)算結(jié)果進(jìn)行對(duì)比并繪制輸出曲線圖,從圖10可知,除點(diǎn)p1(-128,1)與p2(-7.625,0.5625)外,定點(diǎn)化后的Sigmoid輸出曲線與原始曲線基本重合,將p1、p2 2個(gè)異常點(diǎn)剔除后,使其與標(biāo)準(zhǔn)輸出相等,得到修復(fù)后的輸出曲線,如圖11所示。

    Figure 10 Output curve before repairing abnormal points圖10 異常點(diǎn)修復(fù)前輸出曲線

    Figure 11 Output curve after repairing abnormal points圖11 異常點(diǎn)修復(fù)后輸出曲線

    對(duì)于YOLO Detection計(jì)算單元,不需要片上存儲(chǔ)單元,因此本文僅使用“PIPLINE”對(duì)其進(jìn)行優(yōu)化。

    3.3 層間流水化設(shè)計(jì)

    層間流水化與層間數(shù)據(jù)的傳遞關(guān)系密不可分,對(duì)于ARM+FPGA架構(gòu)的神經(jīng)網(wǎng)絡(luò)加速器來(lái)說(shuō),網(wǎng)絡(luò)各層的數(shù)據(jù)傳遞可用圖12來(lái)描述。使用FPGA構(gòu)成卷積、池化等計(jì)算單元的加速器,同時(shí)常用AXI4總線進(jìn)行數(shù)據(jù)傳輸。圖12的結(jié)構(gòu)中只有當(dāng)卷積層或池化層的計(jì)算結(jié)束后才能開(kāi)始下一層的計(jì)算,計(jì)算開(kāi)始之前與計(jì)算完成之后均需要使用AXI4總線進(jìn)行片外存儲(chǔ)的數(shù)據(jù)訪存,頻繁的數(shù)據(jù)傳輸將會(huì)限制加速器的計(jì)算性能。

    Figure 12 Structure of network data transmission 圖12 網(wǎng)絡(luò)數(shù)據(jù)傳輸結(jié)構(gòu)圖

    由網(wǎng)絡(luò)各層的計(jì)算特性分析可知,標(biāo)準(zhǔn)卷積層的計(jì)算需要遍歷所有的輸入通道數(shù)據(jù)才能得到一個(gè)完整的特征輸出,因此卷積層的計(jì)算需要等上一層的計(jì)算完成之后才能進(jìn)行。池化層的計(jì)算是對(duì)各個(gè)輸入通道數(shù)據(jù)的下采樣,通道間的計(jì)算沒(méi)有數(shù)據(jù)依賴(lài)。理論上可將卷積與池化合并為一個(gè)計(jì)算單元,但此時(shí)會(huì)失去各個(gè)計(jì)算單元獨(dú)立運(yùn)算的靈活性。

    如圖13所示,本文提出網(wǎng)絡(luò)各層間的流水化設(shè)計(jì)方法,依然設(shè)計(jì)不同的加速器計(jì)算單元,但在FPGA內(nèi)部使用硬件控制器將不同的加速單元連接起來(lái),可通過(guò)控制器選擇完成計(jì)算后的數(shù)據(jù)流向,對(duì)于卷積和池化來(lái)說(shuō),當(dāng)完成部分卷積計(jì)算后,可對(duì)計(jì)算完成后的數(shù)據(jù)直接進(jìn)行池化運(yùn)算,然后再將數(shù)據(jù)傳輸至片外存儲(chǔ),以此降低數(shù)據(jù)的傳輸次數(shù),提高加速器的整體性能。

    Figure 13 Pipeline structure of each network layer 圖13 網(wǎng)絡(luò)各層流水化設(shè)計(jì)結(jié)構(gòu)

    3.4 層內(nèi)流水化設(shè)計(jì)

    相對(duì)于層間來(lái)說(shuō),層內(nèi)的流水化設(shè)計(jì)具有更大的設(shè)計(jì)空間,本文以卷積層的流水化設(shè)計(jì)為例進(jìn)行詳細(xì)的分析。流水化的設(shè)計(jì)思想是將一個(gè)大的任務(wù)分割成幾個(gè)小的子任務(wù),每個(gè)子任務(wù)對(duì)應(yīng)著1級(jí)流水,任務(wù)執(zhí)行時(shí)不同任務(wù)的子任務(wù)能夠被同時(shí)執(zhí)行,從宏觀上來(lái)說(shuō)一個(gè)時(shí)鐘周期能夠完成一個(gè)大任務(wù)的運(yùn)算。如圖14所示,本文將卷積層的計(jì)算分為5個(gè)子任務(wù),分別為:行緩存、卷積滑窗、卷積計(jì)算、數(shù)據(jù)累加和計(jì)算輸出,因此整個(gè)流水線為5級(jí)流水設(shè)計(jì)。

    Figure 14 Pipeline structure of convolutional layer 圖14 卷積層流水化設(shè)計(jì)結(jié)構(gòu)

    流水線的工作流程如下:首先使用行緩存對(duì)輸入數(shù)據(jù)進(jìn)行讀取;然后卷積滑窗從行緩存提取需要進(jìn)行卷積運(yùn)算的特征數(shù)據(jù);接著卷積計(jì)算單元將提取出的特征數(shù)據(jù)與不同卷積核進(jìn)行卷積運(yùn)算,再將計(jì)算結(jié)果傳輸至數(shù)據(jù)累加單元,進(jìn)行不同卷積核計(jì)算結(jié)果的累加,從而得到本次計(jì)算的輸出結(jié)果;最后將輸出結(jié)果送入計(jì)算輸出單元的FIFO單元進(jìn)行臨時(shí)存儲(chǔ),同時(shí)將上一次計(jì)算的結(jié)果輸出至片外存儲(chǔ)單元。

    顯然,整個(gè)流水線中卷積計(jì)算單元的計(jì)算復(fù)雜度和時(shí)間復(fù)雜度均最高,該單元需要完成大量的乘加計(jì)算,因此是限制整個(gè)流水周期的關(guān)鍵路徑。本文給出的解決方法是在卷積計(jì)算單元內(nèi)引入并行設(shè)計(jì),使用更多的硬件資源進(jìn)行計(jì)算,能夠大幅降低時(shí)間復(fù)雜度,同時(shí)使用定點(diǎn)數(shù)據(jù)降低計(jì)算復(fù)雜度。

    4 系統(tǒng)實(shí)驗(yàn)

    加速器測(cè)試平臺(tái)使用Z-turn Board開(kāi)發(fā)板,Z-turn Board是深圳市米爾科技有限公司推出的一款以XILINX Zynq作為主處理器的嵌入式開(kāi)發(fā)板,核心芯片為Zynq7020,這里不作具體介紹。

    4.1 實(shí)驗(yàn)設(shè)計(jì)

    本文使用Vivado軟件對(duì)各IP進(jìn)行綜合設(shè)計(jì),生成比特流文件,然后在軟件開(kāi)發(fā)包SDK(Software Development Kit)環(huán)境下進(jìn)行YOLOv3-tiny網(wǎng)絡(luò)的復(fù)現(xiàn)。實(shí)驗(yàn)平臺(tái)的資源配置如表4所示。表4中PS(Processing System)表示處理系統(tǒng)。

    Table 4 Resource of experimental platform表4 實(shí)驗(yàn)平臺(tái)資源

    實(shí)驗(yàn)設(shè)計(jì)分為:僅使用ARM、使用加速器但不引入層間流水化和使用加速器并引入層間流水化3部分。僅使用ARM進(jìn)行實(shí)驗(yàn)的設(shè)置比較簡(jiǎn)單,不作詳細(xì)設(shè)計(jì)分析。

    Figure 15 IP connection of accelerator without interlayer pipeline system 圖15 加速器無(wú)層間流水系統(tǒng)IP連接

    使用加速器不引入層間流水的實(shí)驗(yàn)設(shè)計(jì)中,系統(tǒng)各IP連接方式如圖15所示,AXI4 Stream數(shù)據(jù)流通過(guò)AXI Switch0選擇進(jìn)入相應(yīng)的計(jì)算單元內(nèi),待計(jì)算結(jié)束后再通過(guò)AXI Switch1將計(jì)算結(jié)果輸出,各IP并行排列,每進(jìn)行1次加速計(jì)算僅能使用其中1個(gè)加速器,待該計(jì)算完成后再開(kāi)始新的一輪加速運(yùn)算。

    使用加速器引入層間流水的實(shí)驗(yàn)設(shè)計(jì)中,系統(tǒng)各IP連接方式如圖16所示,AXI4 Stream數(shù)據(jù)流通過(guò)AXI Switch0選擇進(jìn)入卷積計(jì)算單元內(nèi),并通過(guò)AXI Switch1將卷積計(jì)算結(jié)果輸出到池化等計(jì)算單元內(nèi),最后通過(guò)AXI Switch2將計(jì)算結(jié)果輸出。每進(jìn)行1次加速計(jì)算能使用其中2個(gè)加速器,無(wú)需進(jìn)行數(shù)據(jù)的二次傳輸。

    Figure 16 IP connection of the accelerator with interlayer pipeline system圖16 加速器有層間流水系統(tǒng)IP連接

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

    實(shí)驗(yàn)中FPGA端的時(shí)鐘頻率為100 MHz,ARM端的時(shí)鐘頻率為667 MHz,使用系統(tǒng)計(jì)時(shí)器記錄模型前向推理的時(shí)間段,用以評(píng)估計(jì)算延時(shí)。其中,不使用加速器的模型推理是基于Darknet框架在ARM-A9上進(jìn)行實(shí)現(xiàn)的。使用加速器的2種模型,本文在SDK中分別設(shè)計(jì)了各自的代碼框架。從YOLO官方網(wǎng)站可以知道,YOLOv3-tiny所需的GOPS(Giga Operations Per Second)為5.56,本文將從資源消耗、計(jì)算延時(shí)、功耗和GOPS 4個(gè)角度對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析。

    對(duì)于GOPS,需要做相應(yīng)的轉(zhuǎn)換,轉(zhuǎn)換公式如式(4)所示:

    (4)

    其中,Ts為前向推理時(shí)間。

    相關(guān)實(shí)驗(yàn)結(jié)果如表5所示,從表5中可知:對(duì)于資源消耗,引入層間流水前后并未造成較大幅度的資源消耗,兩者基本一致;對(duì)于計(jì)算延時(shí),使用加速器能夠大幅提升網(wǎng)絡(luò)的推理速度,且引入層間流水的加速器設(shè)計(jì)的推理速度最快,是僅使用PS端進(jìn)行模型推理的290.56倍,相較于未進(jìn)行流水化設(shè)計(jì)的方法,層間流水能夠減少48 ms的推理時(shí)間。對(duì)于片上功率,相較于未加速的設(shè)計(jì),使用加速器后的功率增加約1 W,且采用層間流水加速的設(shè)計(jì)其功耗相對(duì)更低,因此層間流水的設(shè)計(jì)在一定程度上既降低了功耗也提高了加速器的推理速度。對(duì)于GOPS,引入層間流水的加速器設(shè)計(jì)具有最大的GOPS,且能量效率最高。

    總的來(lái)說(shuō),在Z-turn Board平臺(tái)上系統(tǒng)總體GOPS可達(dá)10.692,雖然并未達(dá)到實(shí)時(shí)推理的加速性能,但實(shí)現(xiàn)了高達(dá)290.56倍加速性能,對(duì)工程化實(shí)現(xiàn)具有一定的參考價(jià)值。此外,實(shí)驗(yàn)所用平臺(tái)的硬件資源較為緊張,若在硬件資源更為豐富的平臺(tái)上進(jìn)行設(shè)計(jì),增加網(wǎng)絡(luò)的輸入輸出并行度,并提高PL端的時(shí)鐘頻率,相信能夠獲得更高的加速性能。

    Table 5 Experimental results表5 實(shí)驗(yàn)結(jié)果

    下面對(duì)系統(tǒng)設(shè)計(jì)的綜合性能進(jìn)行評(píng)估,將本文與前人的相關(guān)工作進(jìn)行綜合對(duì)比分析。為了能夠全面地對(duì)系統(tǒng)設(shè)計(jì)性能進(jìn)行說(shuō)明,分別選取了采用不同設(shè)計(jì)思路的卷積神經(jīng)網(wǎng)絡(luò)加速器設(shè)計(jì)方法的相關(guān)文獻(xiàn),并從多個(gè)角度對(duì)性能指標(biāo)進(jìn)行對(duì)比,相關(guān)結(jié)果如表6所示。

    文獻(xiàn)[10]給出了一種專(zhuān)用的卷積神經(jīng)網(wǎng)絡(luò)加速器,針對(duì)AlexNet網(wǎng)絡(luò)的前5層卷積層進(jìn)行加速,并對(duì)每一層使用設(shè)計(jì)空間搜索的方法得到每層的最優(yōu)設(shè)計(jì)參數(shù)。與本文的工作相比,文獻(xiàn)[10]的加速器雖然取得了更高的GOPS,但使用了更多的計(jì)算資源,且從能量效率與GOPS/DSP來(lái)看,本文的設(shè)計(jì)要優(yōu)于文獻(xiàn)[10]的。與本文的設(shè)計(jì)目標(biāo)相同,文獻(xiàn)[11]設(shè)計(jì)了一種通用的卷積神經(jīng)網(wǎng)絡(luò)加速器,并使用LeNet5對(duì)加速器的設(shè)計(jì)進(jìn)行測(cè)試,在與本文相同的實(shí)驗(yàn)平臺(tái)上僅獲得了1.62 GOPS的計(jì)算力,得益于更低的計(jì)算數(shù)據(jù)位,其單位BRAM的利用率要高于本文的。文獻(xiàn)[19]采用混合設(shè)計(jì)的思路,對(duì)YOLOv1-tiny的第1層卷積與最后1層卷積設(shè)計(jì)專(zhuān)用的計(jì)算單元,其他中間層采用通用計(jì)算單元,在與本文相同的實(shí)驗(yàn)平臺(tái)上,雖然PL端時(shí)鐘頻率高于本文的,但加速器的整體性略低于本文的。針對(duì)YOLOv2-tiny,文獻(xiàn)[20]設(shè)計(jì)了一種專(zhuān)用的硬件加速系統(tǒng),并采用低位數(shù)據(jù)對(duì)網(wǎng)絡(luò)進(jìn)行量化與再訓(xùn)練,其在與文獻(xiàn)[10]相同的平臺(tái)下取得了高達(dá)464.67 GOPS的計(jì)算性能,各方面設(shè)計(jì)性能均要優(yōu)于本文的設(shè)計(jì),但其可拓展性能較差且需要對(duì)網(wǎng)絡(luò)進(jìn)行二次訓(xùn)練,時(shí)間成本更高。

    Table 6 Comprehensive comparison of system design performance表6 系統(tǒng)設(shè)計(jì)性能綜合對(duì)比

    5 結(jié)束語(yǔ)

    本文對(duì)YOLOv3-tiny網(wǎng)絡(luò)進(jìn)行硬件加速設(shè)計(jì),從定點(diǎn)化、并行化和流水化的角度分別完成了卷積、池化、上采樣和YOLO Detection硬件加速I(mǎi)P的設(shè)計(jì)。并在Z-turn Board平臺(tái)上對(duì)加速器的整體性能進(jìn)行了測(cè)試,從資源消耗、計(jì)算延時(shí)、功耗和GOPS等方面對(duì)設(shè)計(jì)進(jìn)行了綜合性能分析。最終,本文方法獲得了10.69 GOPS的有效算力,實(shí)現(xiàn)了1.89 fps的YOLOv3-tiny前向推理速度,系統(tǒng)功耗僅為2.533 W。此外,層間流水的設(shè)計(jì)方法,在未引入額外硬件資源的情況下減少了48 ms的推理時(shí)間。

    猜你喜歡
    池化加速器流水
    基于緊湊型雙線性網(wǎng)絡(luò)的野生茵識(shí)別方法研究
    輪滑加速器
    化學(xué)工業(yè)的“加速器”
    基于Sobel算子的池化算法設(shè)計(jì)
    卷積神經(jīng)網(wǎng)絡(luò)中的自適應(yīng)加權(quán)池化
    全民小康路上的“加速器”
    流水
    文苑(2020年10期)2020-11-07 03:15:26
    基于卷積神經(jīng)網(wǎng)絡(luò)和池化算法的表情識(shí)別研究
    流水有心
    等待“加速器”
    国产亚洲一区二区精品| 丝瓜视频免费看黄片| 国产精品麻豆人妻色哟哟久久| 特级一级黄色大片| 蜜臀久久99精品久久宅男| 免费电影在线观看免费观看| 18禁裸乳无遮挡免费网站照片| 嘟嘟电影网在线观看| 久久精品熟女亚洲av麻豆精品| 高清午夜精品一区二区三区| 中国三级夫妇交换| 国产免费一区二区三区四区乱码| 亚洲精品视频女| 国产一区亚洲一区在线观看| 色婷婷久久久亚洲欧美| 亚洲三级黄色毛片| 1000部很黄的大片| 亚洲国产欧美人成| 秋霞在线观看毛片| 精品久久久噜噜| 久久女婷五月综合色啪小说 | 久久ye,这里只有精品| 毛片女人毛片| 一区二区三区免费毛片| 亚洲性久久影院| 国产免费一级a男人的天堂| 精品国产乱码久久久久久小说| 我要看日韩黄色一级片| 高清欧美精品videossex| 成年免费大片在线观看| 老女人水多毛片| 欧美老熟妇乱子伦牲交| 你懂的网址亚洲精品在线观看| 五月伊人婷婷丁香| 久久ye,这里只有精品| 69av精品久久久久久| 国产成人aa在线观看| 99久久人妻综合| 伦精品一区二区三区| 成人毛片a级毛片在线播放| 1000部很黄的大片| 麻豆久久精品国产亚洲av| 夫妻性生交免费视频一级片| 国内精品美女久久久久久| 街头女战士在线观看网站| 色视频www国产| 亚洲图色成人| 成人欧美大片| 大香蕉久久网| 午夜福利在线观看免费完整高清在| 亚洲av国产av综合av卡| 久久精品久久久久久噜噜老黄| 国产成人福利小说| 亚洲aⅴ乱码一区二区在线播放| 亚洲综合精品二区| 成人美女网站在线观看视频| 国产午夜福利久久久久久| 中国三级夫妇交换| 下体分泌物呈黄色| 国产免费福利视频在线观看| 街头女战士在线观看网站| av福利片在线观看| 中国三级夫妇交换| 毛片女人毛片| 少妇的逼水好多| 久久久亚洲精品成人影院| 97在线视频观看| 少妇 在线观看| 国产又色又爽无遮挡免| 欧美日韩在线观看h| 亚洲精品国产成人久久av| 狂野欧美白嫩少妇大欣赏| 成人午夜精彩视频在线观看| 男人舔奶头视频| 一级毛片电影观看| 免费看日本二区| 一个人看视频在线观看www免费| 97人妻精品一区二区三区麻豆| 观看美女的网站| 特大巨黑吊av在线直播| 欧美激情久久久久久爽电影| 日韩大片免费观看网站| 最近的中文字幕免费完整| 人人妻人人看人人澡| 亚洲精品久久久久久婷婷小说| 狂野欧美激情性xxxx在线观看| 亚洲精品成人av观看孕妇| 欧美高清成人免费视频www| 在线观看av片永久免费下载| 18禁在线播放成人免费| 欧美成人精品欧美一级黄| 人妻制服诱惑在线中文字幕| 精品国产三级普通话版| 久久久色成人| 免费看不卡的av| 2021天堂中文幕一二区在线观| 国产综合精华液| 如何舔出高潮| 人体艺术视频欧美日本| 一边亲一边摸免费视频| 三级国产精品片| 欧美激情国产日韩精品一区| 亚洲美女视频黄频| 精品一区二区三区视频在线| 中国美白少妇内射xxxbb| 亚洲天堂av无毛| 一二三四中文在线观看免费高清| 熟妇人妻不卡中文字幕| 成人毛片60女人毛片免费| 国产一区二区亚洲精品在线观看| 嘟嘟电影网在线观看| 看十八女毛片水多多多| 欧美精品国产亚洲| 成年免费大片在线观看| 三级男女做爰猛烈吃奶摸视频| 亚州av有码| 国产人妻一区二区三区在| 免费看不卡的av| 久久国产乱子免费精品| 欧美xxxx黑人xx丫x性爽| 老女人水多毛片| 亚洲av欧美aⅴ国产| 亚洲精品国产成人久久av| 男人狂女人下面高潮的视频| 国产熟女欧美一区二区| 激情五月婷婷亚洲| 日本三级黄在线观看| 欧美日韩一区二区视频在线观看视频在线 | 天堂中文最新版在线下载 | 国产乱人偷精品视频| 日本-黄色视频高清免费观看| 夫妻午夜视频| 婷婷色综合www| 国产乱人偷精品视频| 中文资源天堂在线| 三级国产精品欧美在线观看| 91aial.com中文字幕在线观看| 国产高清三级在线| 午夜激情福利司机影院| 九九爱精品视频在线观看| av线在线观看网站| 欧美区成人在线视频| 午夜激情久久久久久久| 久久精品国产亚洲网站| 国产高清不卡午夜福利| 综合色av麻豆| 欧美高清性xxxxhd video| 夜夜看夜夜爽夜夜摸| a级毛片免费高清观看在线播放| 一级av片app| 老司机影院毛片| 大片电影免费在线观看免费| 亚洲av不卡在线观看| 最近中文字幕2019免费版| 久久久国产一区二区| 人妻系列 视频| 欧美激情久久久久久爽电影| 亚洲国产欧美人成| 久久精品国产鲁丝片午夜精品| 成人毛片60女人毛片免费| 18禁在线播放成人免费| 久久精品国产a三级三级三级| 身体一侧抽搐| 亚洲色图综合在线观看| 联通29元200g的流量卡| 少妇被粗大猛烈的视频| 亚洲国产精品成人久久小说| 亚洲在久久综合| 亚洲怡红院男人天堂| 国产淫片久久久久久久久| 特级一级黄色大片| 少妇的逼好多水| 女人被狂操c到高潮| 老司机影院毛片| 国国产精品蜜臀av免费| 丝瓜视频免费看黄片| 永久免费av网站大全| 国产精品女同一区二区软件| 国产成人精品一,二区| 国产黄频视频在线观看| 亚洲四区av| 在线播放无遮挡| 又大又黄又爽视频免费| 在线 av 中文字幕| 国产毛片a区久久久久| 黑人高潮一二区| 日本黄色片子视频| 亚洲欧美精品自产自拍| 亚洲,一卡二卡三卡| 99热这里只有是精品50| 婷婷色综合大香蕉| 精品一区二区三区视频在线| 三级男女做爰猛烈吃奶摸视频| 久久久精品94久久精品| 尤物成人国产欧美一区二区三区| 国产亚洲5aaaaa淫片| 嫩草影院入口| 伦精品一区二区三区| 亚洲精品乱久久久久久| 中文字幕制服av| 永久网站在线| 色播亚洲综合网| 国产淫语在线视频| 久久久成人免费电影| 少妇 在线观看| 欧美最新免费一区二区三区| 一级毛片久久久久久久久女| a级一级毛片免费在线观看| eeuss影院久久| 国产淫片久久久久久久久| 国产欧美亚洲国产| 成人特级av手机在线观看| 熟妇人妻不卡中文字幕| 一区二区三区精品91| 一级毛片我不卡| 日韩在线高清观看一区二区三区| 自拍欧美九色日韩亚洲蝌蚪91 | 91精品伊人久久大香线蕉| 人妻 亚洲 视频| 久久久成人免费电影| 国产乱来视频区| 高清午夜精品一区二区三区| 免费观看无遮挡的男女| 国产成人午夜福利电影在线观看| 国产精品人妻久久久影院| 又爽又黄无遮挡网站| 日本-黄色视频高清免费观看| 天美传媒精品一区二区| 午夜视频国产福利| 在线观看三级黄色| 久久久久久久大尺度免费视频| 欧美精品一区二区大全| 日韩免费高清中文字幕av| 中国美白少妇内射xxxbb| 爱豆传媒免费全集在线观看| 亚洲美女搞黄在线观看| 少妇人妻一区二区三区视频| 日韩亚洲欧美综合| 亚洲成色77777| 亚洲av电影在线观看一区二区三区 | 精品人妻偷拍中文字幕| 国语对白做爰xxxⅹ性视频网站| 91精品一卡2卡3卡4卡| 免费不卡的大黄色大毛片视频在线观看| 啦啦啦啦在线视频资源| 亚洲av国产av综合av卡| 午夜爱爱视频在线播放| 欧美三级亚洲精品| 97热精品久久久久久| 高清视频免费观看一区二区| 一级毛片电影观看| 国产探花在线观看一区二区| 国产精品国产三级国产av玫瑰| 国产精品久久久久久精品古装| 午夜爱爱视频在线播放| 国产成人精品久久久久久| 国产av国产精品国产| 久久这里有精品视频免费| 少妇人妻久久综合中文| 成人亚洲精品av一区二区| 亚洲av国产av综合av卡| 国产人妻一区二区三区在| av天堂中文字幕网| 综合色丁香网| 欧美潮喷喷水| 久久久国产一区二区| 亚洲国产精品国产精品| 日韩不卡一区二区三区视频在线| 国产v大片淫在线免费观看| 午夜福利高清视频| 亚洲最大成人手机在线| 久久女婷五月综合色啪小说 | 一级毛片aaaaaa免费看小| 亚洲美女视频黄频| 欧美极品一区二区三区四区| 成人黄色视频免费在线看| 精品人妻熟女av久视频| 两个人的视频大全免费| 日本欧美国产在线视频| 网址你懂的国产日韩在线| 青青草视频在线视频观看| 国产淫语在线视频| 免费av毛片视频| 特大巨黑吊av在线直播| 亚洲熟女精品中文字幕| 成年免费大片在线观看| 只有这里有精品99| 亚洲国产精品成人久久小说| 夜夜看夜夜爽夜夜摸| 亚洲国产精品成人综合色| 亚洲无线观看免费| 久久精品综合一区二区三区| 亚洲人成网站高清观看| 亚洲av免费在线观看| 亚洲美女搞黄在线观看| 亚洲欧洲国产日韩| 成人亚洲精品av一区二区| 亚洲欧美精品专区久久| 免费在线观看成人毛片| 日日啪夜夜撸| 麻豆乱淫一区二区| 国产爱豆传媒在线观看| 欧美zozozo另类| 丝袜喷水一区| h日本视频在线播放| 80岁老熟妇乱子伦牲交| 午夜福利在线在线| 免费观看无遮挡的男女| 别揉我奶头 嗯啊视频| 国产高潮美女av| 一级二级三级毛片免费看| 99热全是精品| 国产成人freesex在线| 97人妻精品一区二区三区麻豆| 欧美xxxx黑人xx丫x性爽| 联通29元200g的流量卡| 久久99蜜桃精品久久| 亚洲婷婷狠狠爱综合网| 一级毛片aaaaaa免费看小| 免费看a级黄色片| 美女内射精品一级片tv| 成人欧美大片| 在线观看一区二区三区| 免费观看的影片在线观看| 亚洲人成网站在线观看播放| 美女主播在线视频| 日韩 亚洲 欧美在线| 九九在线视频观看精品| 国产高清国产精品国产三级 | 国产视频内射| 成人亚洲欧美一区二区av| 亚洲av福利一区| 亚洲欧美日韩另类电影网站 | 九九在线视频观看精品| 啦啦啦中文免费视频观看日本| 黄色欧美视频在线观看| 亚洲自拍偷在线| 久久久精品94久久精品| 免费黄网站久久成人精品| 亚洲av日韩在线播放| 色视频在线一区二区三区| 成人午夜精彩视频在线观看| 亚州av有码| 亚洲av在线观看美女高潮| 亚洲精品亚洲一区二区| 精品久久久精品久久久| 日韩,欧美,国产一区二区三区| 久久久久久久午夜电影| 新久久久久国产一级毛片| 日韩中字成人| 天堂俺去俺来也www色官网| 男的添女的下面高潮视频| 精品久久久精品久久久| 色综合色国产| 观看美女的网站| 欧美97在线视频| 国产 一区精品| 免费观看的影片在线观看| 99久久九九国产精品国产免费| 欧美一区二区亚洲| av专区在线播放| 亚洲一级一片aⅴ在线观看| 亚洲美女搞黄在线观看| 亚洲天堂av无毛| 久久久久国产精品人妻一区二区| av.在线天堂| 丰满少妇做爰视频| 日本熟妇午夜| a级毛片免费高清观看在线播放| 亚洲不卡免费看| 91久久精品电影网| 国产成人免费无遮挡视频| 波多野结衣巨乳人妻| 国产一区亚洲一区在线观看| 成年av动漫网址| 婷婷色综合大香蕉| 欧美丝袜亚洲另类| 亚洲第一区二区三区不卡| 欧美成人a在线观看| 亚洲最大成人中文| 国产综合精华液| 日日摸夜夜添夜夜添av毛片| 在线观看三级黄色| 欧美高清性xxxxhd video| 国产黄色免费在线视频| 亚洲综合精品二区| 人妻制服诱惑在线中文字幕| 男女国产视频网站| 亚洲av成人精品一区久久| 欧美日韩精品成人综合77777| 亚洲av免费高清在线观看| 国产欧美亚洲国产| 91久久精品国产一区二区三区| av在线app专区| 免费观看a级毛片全部| 久久国内精品自在自线图片| 色综合色国产| 最后的刺客免费高清国语| 在线天堂最新版资源| 亚洲av免费高清在线观看| 永久免费av网站大全| 国产精品99久久99久久久不卡 | av黄色大香蕉| 亚州av有码| 男女无遮挡免费网站观看| 国产成人福利小说| 国产伦理片在线播放av一区| 国产高清有码在线观看视频| 久久久久久久久久人人人人人人| 婷婷色综合www| av在线蜜桃| 国产黄色视频一区二区在线观看| 中文欧美无线码| 欧美日韩亚洲高清精品| 亚洲综合色惰| 男人添女人高潮全过程视频| 激情五月婷婷亚洲| 日本熟妇午夜| 能在线免费看毛片的网站| 午夜福利在线观看免费完整高清在| 麻豆成人午夜福利视频| 自拍偷自拍亚洲精品老妇| 国产v大片淫在线免费观看| 又大又黄又爽视频免费| 日本一本二区三区精品| a级毛片免费高清观看在线播放| 尾随美女入室| 色播亚洲综合网| 最近中文字幕2019免费版| 国内精品宾馆在线| 亚洲av中文av极速乱| 国产亚洲一区二区精品| 搡女人真爽免费视频火全软件| 国产综合懂色| 亚洲国产欧美人成| 久久久久久久久久成人| 国产精品久久久久久av不卡| 国内精品美女久久久久久| 少妇 在线观看| 91aial.com中文字幕在线观看| 亚洲精品国产av蜜桃| 七月丁香在线播放| 亚洲三级黄色毛片| 一级二级三级毛片免费看| 九草在线视频观看| 国产亚洲av嫩草精品影院| 国产永久视频网站| 免费看av在线观看网站| 久久久成人免费电影| 日韩视频在线欧美| 欧美一区二区亚洲| av福利片在线观看| 乱系列少妇在线播放| 国产精品偷伦视频观看了| 国产欧美日韩一区二区三区在线 | 亚洲精华国产精华液的使用体验| 久久97久久精品| 色网站视频免费| 中文乱码字字幕精品一区二区三区| 国产黄色免费在线视频| 精品99又大又爽又粗少妇毛片| 日韩大片免费观看网站| 国产精品国产av在线观看| 色吧在线观看| 久久精品熟女亚洲av麻豆精品| av在线天堂中文字幕| 99久久九九国产精品国产免费| 久久久久九九精品影院| 国内少妇人妻偷人精品xxx网站| 免费av毛片视频| 久久久久久久亚洲中文字幕| 狂野欧美激情性xxxx在线观看| 日韩,欧美,国产一区二区三区| 国模一区二区三区四区视频| 最近中文字幕2019免费版| 最后的刺客免费高清国语| 国产男女超爽视频在线观看| 一边亲一边摸免费视频| 精品午夜福利在线看| 新久久久久国产一级毛片| 国产精品av视频在线免费观看| 国产精品伦人一区二区| 午夜日本视频在线| 国产精品一区www在线观看| 国产熟女欧美一区二区| 欧美成人a在线观看| 少妇高潮的动态图| 人人妻人人澡人人爽人人夜夜| 亚洲成人中文字幕在线播放| 午夜精品国产一区二区电影 | 欧美日韩视频高清一区二区三区二| 99re6热这里在线精品视频| 久久人人爽av亚洲精品天堂 | 国产高清不卡午夜福利| 亚洲av电影在线观看一区二区三区 | h日本视频在线播放| 综合色丁香网| 欧美+日韩+精品| 偷拍熟女少妇极品色| 另类亚洲欧美激情| 日韩av免费高清视频| 日韩欧美一区视频在线观看 | 波野结衣二区三区在线| 王馨瑶露胸无遮挡在线观看| 成人亚洲精品一区在线观看 | 九色成人免费人妻av| 国产 一区 欧美 日韩| 一区二区av电影网| 乱码一卡2卡4卡精品| 国产男女内射视频| 精品久久久久久久人妻蜜臀av| 草草在线视频免费看| 国产在线一区二区三区精| 日日撸夜夜添| 欧美潮喷喷水| 中国国产av一级| 91狼人影院| 亚洲aⅴ乱码一区二区在线播放| 人妻一区二区av| 国产免费视频播放在线视频| 国产av码专区亚洲av| 欧美另类一区| 久久亚洲国产成人精品v| 亚洲怡红院男人天堂| 亚洲三级黄色毛片| 丰满人妻一区二区三区视频av| 亚洲人成网站高清观看| 精品久久国产蜜桃| 伦精品一区二区三区| 一个人观看的视频www高清免费观看| 国产白丝娇喘喷水9色精品| 能在线免费看毛片的网站| 国产精品一区二区性色av| 亚洲av免费高清在线观看| 亚洲精品视频女| 国产亚洲精品久久久com| 看十八女毛片水多多多| 国产亚洲精品久久久com| 亚洲精品aⅴ在线观看| 人妻系列 视频| 在线观看一区二区三区| 国产精品麻豆人妻色哟哟久久| 久久精品综合一区二区三区| 天天一区二区日本电影三级| 亚洲,一卡二卡三卡| 亚洲av二区三区四区| 亚洲高清免费不卡视频| 欧美日韩一区二区视频在线观看视频在线 | 啦啦啦中文免费视频观看日本| .国产精品久久| 久久久色成人| 神马国产精品三级电影在线观看| 亚洲精品456在线播放app| 欧美精品人与动牲交sv欧美| 国产淫片久久久久久久久| 街头女战士在线观看网站| 九九爱精品视频在线观看| 自拍欧美九色日韩亚洲蝌蚪91 | 国产老妇伦熟女老妇高清| 人妻制服诱惑在线中文字幕| 欧美性感艳星| 97在线人人人人妻| 自拍欧美九色日韩亚洲蝌蚪91 | 美女内射精品一级片tv| 日韩,欧美,国产一区二区三区| 毛片一级片免费看久久久久| 寂寞人妻少妇视频99o| 韩国av在线不卡| 精品人妻视频免费看| 国产亚洲av片在线观看秒播厂| 高清av免费在线| 国产免费又黄又爽又色| 五月天丁香电影| 日韩av不卡免费在线播放| 校园人妻丝袜中文字幕| 日日摸夜夜添夜夜添av毛片| 精品久久国产蜜桃| 国产成人一区二区在线| 国产高清有码在线观看视频| 免费看光身美女| 精品久久久久久久末码| 久久久久久九九精品二区国产| 国产v大片淫在线免费观看| 亚洲国产精品专区欧美| 日韩视频在线欧美| 色视频在线一区二区三区| 国产av码专区亚洲av| 久久久久国产精品人妻一区二区| 国产极品天堂在线| 免费看av在线观看网站| 看非洲黑人一级黄片| 国产 一区 欧美 日韩| a级毛片免费高清观看在线播放| 一个人看视频在线观看www免费| 精品久久久久久久末码| 永久免费av网站大全| 国产v大片淫在线免费观看| 草草在线视频免费看| 美女被艹到高潮喷水动态| 欧美国产精品一级二级三级 | 九九在线视频观看精品| 亚洲人与动物交配视频| 精品人妻视频免费看| 97在线人人人人妻| a级毛片免费高清观看在线播放| 少妇高潮的动态图| 国产淫片久久久久久久久| 成人黄色视频免费在线看| 亚洲精品一区蜜桃| a级毛片免费高清观看在线播放| 成人亚洲精品一区在线观看 | 午夜免费鲁丝| .国产精品久久| 黄色视频在线播放观看不卡| 成人黄色视频免费在线看|