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

    卷積神經(jīng)網(wǎng)絡(luò)并行化設(shè)計及FPGA實現(xiàn)

    2022-12-11 02:37:48劉華陶冠男楊文清
    制造業(yè)自動化 2022年11期
    關(guān)鍵詞:特征設(shè)計

    劉華,陶冠男,楊文清

    (廣東電網(wǎng)有限責(zé)任公司廣州供電局,廣州 510000)

    0 引言

    近年來,人工智能技術(shù)飛速發(fā)展,越來越多的智能化產(chǎn)品開始在日常生活中嶄露頭角,尤其是以卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[1]為基礎(chǔ)的深度學(xué)習(xí)技術(shù)。卷積神經(jīng)網(wǎng)絡(luò)以獨特的局部感知和權(quán)值共享結(jié)構(gòu)能夠更好地進(jìn)行特征提取,其所帶來的實際應(yīng)用價值不斷地凸顯,在圖像分類[2]、目標(biāo)檢測[3]、語義分割[4]以及語音識別[5]等領(lǐng)域都有著十分重要的應(yīng)用。

    GPU是專用的圖像處理單元,擁有大量的計算資源,隨著NVIDIA推出統(tǒng)一計算設(shè)備架構(gòu)(Compute Unified Device Architecture,CUDA),結(jié)合cuDNN[6]深度神經(jīng)網(wǎng)絡(luò)的GPU加速庫,GPU已經(jīng)成為主流的硬件計算平臺,但GPU功耗較高、體積較大,難以應(yīng)用到對體積與功耗要求較高的嵌入式移動與邊緣設(shè)備當(dāng)中。專用集成電路(Application Specific Integrated Circuit,ASIC)在嵌入式平臺的卷積神經(jīng)網(wǎng)絡(luò)硬件加速上具有絕對的優(yōu)勢,但ASIC需要較長的研發(fā)周期,一旦流片完成便不可進(jìn)行更改,難以應(yīng)對復(fù)雜多變的算法結(jié)構(gòu),成本高、靈活性差?,F(xiàn)場可編程門陣列(Field Programmable Gate Array,FPGA)是一種半定制、可重構(gòu)的專用集成電路,即彌補(bǔ)了ASIC靈活性差的不足又克服了GPU高功耗的缺點,使用FPGA作為卷積神經(jīng)網(wǎng)絡(luò)硬件加速平臺逐漸成為研究熱點[7]。

    使用FPGA進(jìn)行網(wǎng)絡(luò)相關(guān)模型的加速由來已久,早在1996年,Cloutier等[8]開始研究使用FPGA進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)的加速,其在FPGA上實現(xiàn)了手寫字母識別的相關(guān)設(shè)計,受制于當(dāng)時芯片的制造工藝,F(xiàn)PGA片上資源密度很低,其對卷積神經(jīng)網(wǎng)絡(luò)的并行性沒有充分展開設(shè)計。2015年,Zhang等[9]使用HLS的設(shè)計方法,針對CNN在FPGA上的部署,提出了基于Roofline的模型分析方法,通過對數(shù)據(jù)吞吐率以及系統(tǒng)存儲帶寬的量化分析,得到了模型部署的最小資源消耗與最佳性能方案,該方案消耗了較多的硬件資源,難以應(yīng)用在低成本的嵌入式場合。2016年,Qiu等[10]基于VGG網(wǎng)絡(luò),通過對卷積神經(jīng)網(wǎng)絡(luò)各層的計算資源消耗、內(nèi)存需求的分析,采用動態(tài)數(shù)據(jù)量化方法,實現(xiàn)了與浮點型數(shù)據(jù)十分接近的網(wǎng)絡(luò)分類精度。同年,Ghaffari等[11]提出一種通用卷積神經(jīng)網(wǎng)絡(luò)加速框架,該設(shè)計中對網(wǎng)絡(luò)中的每類網(wǎng)絡(luò)層設(shè)計專用的計算單元,并使用統(tǒng)一的邏輯控制單元進(jìn)行調(diào)度,使用LeNet5對設(shè)計架構(gòu)進(jìn)行測試。

    并行化設(shè)計是卷積神經(jīng)網(wǎng)絡(luò)加速方法的核心方法之一,網(wǎng)絡(luò)并行化的設(shè)計主要是針對卷積層,通常根據(jù)卷積層的計算特征,使用循環(huán)分塊、循環(huán)展開等方法進(jìn)行優(yōu)化。文獻(xiàn)[12]在特征圖的輸入與輸出層面進(jìn)行并行化設(shè)計,以此提升卷積層的計算速度,然而并未充分利用卷積計算的內(nèi)在并行性。文獻(xiàn)[13]則提出了一種5層并行化結(jié)構(gòu),詳細(xì)分析了卷積神經(jīng)網(wǎng)絡(luò)的內(nèi)部并行性,設(shè)計了一種可配置的CNN并行計算單元,但并未給出硬件資源受限情況下的卷積復(fù)用設(shè)計。

    基于以上分析,使用FPGA進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)硬件加速設(shè)計能夠在低功耗的同時滿足對高效性能與靈活性的要求,符合嵌入式應(yīng)用場景。本文使用設(shè)計一種卷積神經(jīng)網(wǎng)絡(luò)加速器,旨在為基于FPGA的卷積神經(jīng)網(wǎng)絡(luò)工程化實現(xiàn)提供一種設(shè)計方案,研究提出一種低功耗、可擴(kuò)展、高性能的卷積神經(jīng)網(wǎng)絡(luò)并行化框架,從而實現(xiàn)面向嵌入式場景的卷積神經(jīng)網(wǎng)絡(luò)部署。

    1 基本理論及設(shè)計方法

    1.1 神經(jīng)網(wǎng)絡(luò)基本模型

    神經(jīng)網(wǎng)絡(luò)的基本組成單位是神經(jīng)元,研究人員通過對人腦結(jié)構(gòu)的模擬,對神經(jīng)元進(jìn)行數(shù)學(xué)建模,構(gòu)成人工神經(jīng)網(wǎng)絡(luò)[14]。一個神經(jīng)元的組成結(jié)構(gòu)可用圖1表示。該神經(jīng)元接收上一級n個神經(jīng)元(x1,x2,...,xn)的輸出,并將其與對應(yīng)的權(quán)重w(w1,w2,...,wn)相乘,進(jìn)而決定不同輸入信號的作用強(qiáng)度,通過求和單元將n個輸入信號與偏置b混合,最終通過一個激活函數(shù)f將該節(jié)點的運算結(jié)果輸出。

    圖1 神經(jīng)元的組成結(jié)構(gòu)圖

    則單個神經(jīng)元的計算可用式(1)表示:

    偏置能夠使激活函數(shù)平移,進(jìn)而增強(qiáng)網(wǎng)絡(luò)的魯棒性。激活函數(shù)的作用在于對神經(jīng)元的輸出進(jìn)行非線性變換,使網(wǎng)絡(luò)模型具有良好的非線性模擬能力,并限定神經(jīng)元的輸出范圍,提高模型的表達(dá)能力。常見的激活函數(shù)有sigmoid、tanh以及relu等。

    1.2 卷積計算原理

    卷積層是卷積神經(jīng)網(wǎng)絡(luò)的主要組成部分,一個卷積層由多個特征面組成,每個特征面由多個神經(jīng)元組成,每個神經(jīng)元通過卷積核與上一層特征面的局部區(qū)域相連,卷積核是一個權(quán)值矩陣,卷積層通過卷積運算提取不同的特征。

    如圖2所示,一個5×5的輸入特征圖與一個3×3的卷積核進(jìn)行卷積計算,使用Xx,j表示輸入特征圖的第i行的第j個元素;使用wm,n表示卷積核第m行的第n個列權(quán)重,用wb示卷積核的偏置項;使用Yi,j表示輸出特征圖的第i行的第j個元素;用f(x)表示激活函數(shù)。則根據(jù)式(1)可得:

    圖2 單輸入通道卷積計算示意圖

    實際上卷積層通常是多輸入通道,圖3展示了多輸入通道卷積計算的過程,圖中M表示卷積核個數(shù),N表示輸入特征圖個數(shù),H和W分別表示特征圖尺寸,K表示卷積核尺寸。每組卷積核與對應(yīng)輸入通道的特征圖進(jìn)行單通道的卷積計算,然后將各個通道的計算結(jié)果進(jìn)行累加,再加上偏置wb就到了一個輸出特征圖上的結(jié)果輸出。

    圖3 多輸入通道卷積計算示意圖

    1.3 卷積層并行性分析

    文獻(xiàn)[13]對卷積神經(jīng)網(wǎng)絡(luò)中的并行性做了詳細(xì)介紹,本文在此基礎(chǔ)上對并行性進(jìn)行簡單分析。卷積神經(jīng)網(wǎng)絡(luò)的前向推理過程中具有不同維度的并行性,其中卷積的運算是網(wǎng)絡(luò)計算中的主要計算單元,因此對并行性的分析主要針對卷積計算單元。

    1)卷積核間并行性

    卷積核間并行是指每個卷積計算的卷積核是相互獨立的,所有的卷積核共享輸入特征圖,因此卷積核間的計算是不存在相互依賴的關(guān)系,我們可以通過圖4來描述這種卷積核間的并行性。

    圖4 卷積核間并行性

    可以發(fā)現(xiàn)M個卷積核的計算可以同時進(jìn)行,彼此相互獨立,可以將此過程展開,使得M個卷積核同時進(jìn)行計算,但要求系統(tǒng)加速器的設(shè)計有較高的數(shù)據(jù)吞吐量,對數(shù)據(jù)帶寬的要求極高。

    2)特征圖間并行性

    特征圖間的并行性是指對于N個輸入特征圖來說,每一組卷積核都有N卷積核與之對應(yīng)。當(dāng)進(jìn)行卷積計算時,每個卷積核與對應(yīng)的輸入特征圖進(jìn)行乘加計算。特征圖間并行性如圖5所示,實際計算時可將每個特征圖與對應(yīng)卷積核進(jìn)行并行計算,然后將計算得到的結(jié)果相加即可得到輸出特征圖。

    圖5 特征圖間并行性

    特征圖間并行性對系統(tǒng)帶寬與吞吐率的要求相對較小,可通過一定的設(shè)計充分利用特征圖間的并行,但對于大多數(shù)的片上嵌入式系統(tǒng)來說,資源需求量還是稍高,實際使用時可以使用循環(huán)分塊等方法降低系統(tǒng)對帶寬的要求。

    3)特征圖內(nèi)并行性

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

    圖6 特征圖內(nèi)并行性

    特征圖內(nèi)的并行性相對容易實現(xiàn),其對系統(tǒng)的帶寬與吞吐率要求不高,可以使用循環(huán)切片實現(xiàn)特征圖內(nèi)的并行性,但會消耗較多的片上存儲資源且數(shù)據(jù)復(fù)用度較低。

    4)卷積核內(nèi)并行性

    卷積核內(nèi)的并行性是整個卷積計算過程中最基本的計算單元。k*k的卷積核與特征圖上k*k的滑窗進(jìn)行卷積計算,通常需要進(jìn)行k*k次乘法運算與k*k-1次加法運算。以圖7中3*3的卷積核為例,整個計算過程需要進(jìn)行9次乘法與8次加法運算,如果使用串行計算共需要循環(huán)9次,每一次循環(huán)需要進(jìn)行一次乘法與加法運算;如果將卷積核與特征圖滑窗展開為圖7中的向量形式,可同時進(jìn)行9次乘法運算,然后在進(jìn)行1次加法運算即可完成整個計算,卷積核的并行性可通過循環(huán)展開的形式實現(xiàn)。

    圖7 卷積核并行性

    2 并行化設(shè)計

    卷積層的計算占據(jù)整個網(wǎng)絡(luò)中的大量計算資源,因此對卷積層的加速能夠大幅提高網(wǎng)絡(luò)的前向推理時間。通過對卷積層并行性的分析可知,卷積層存在大量的并行性,針對標(biāo)準(zhǔn)卷積并行性的分析,我們提出一種標(biāo)準(zhǔn)卷積加速器設(shè)計思路,加速器的設(shè)計核心內(nèi)容是以減少數(shù)據(jù)的重復(fù)傳輸為目的,在此基礎(chǔ)上盡可能地將標(biāo)準(zhǔn)卷積計算的并行度與數(shù)據(jù)復(fù)用度最大化。

    2.1 循環(huán)分塊

    卷積計算中的并行性貫穿于整個卷積層的計算過程。通常情況下,由于硬件計算資源的限制,難以將計算過程中的所有循環(huán)都展開。因此,在實際設(shè)計過程中,采取循環(huán)分塊技術(shù)以降低加速器對硬件資源的消耗。所謂循環(huán)分塊技術(shù)是指對于一個較大的循環(huán)體可以將其拆分為幾個較小的循環(huán)體,以此實現(xiàn)對代碼的優(yōu)化,降低循環(huán)體對硬件資源的消耗。

    如圖8所示,對于輸出通道來說,可將M個卷積核分割為M/p份,通過M/p次循環(huán)完成整個卷積核的并行計算,則此時卷積核的并行度為p,即一次進(jìn)行p個卷積核的計算。同樣,如圖9所示,對于輸入通道來說,可以將N個輸入通道分為N/q份,通過N/q次循環(huán)完成整個輸出通道數(shù)據(jù)的遍歷,則此時特征圖間的并行性為q,即一次進(jìn)行q個輸入特征圖的計算。每完成一次循環(huán),需要將本次循環(huán)的計算結(jié)果與之前所有的卷積計算結(jié)果相加,作為本次循環(huán)的最終輸出結(jié)果,當(dāng)進(jìn)行最后一次循環(huán)時,將本次循環(huán)的最終計算結(jié)果與偏置相加,然后通過激活函數(shù)輸出,得到一個卷積核的最終輸出特征圖。

    圖8 輸出通道遍歷循環(huán)分塊示意圖

    圖9 輸入通道遍歷循環(huán)分塊示意圖

    我們將輸出通道的p和輸入通道的q稱為循環(huán)分塊因子,可使用圖10中的代碼表示上述卷積計算過程。循環(huán)分塊因子的選擇對系統(tǒng)并行性的影響至關(guān)重要,如何確定循環(huán)分塊因子需要根據(jù)具體的網(wǎng)絡(luò)模型以及具體的硬件加速平臺,當(dāng)硬件加速平臺資源較多時,可以適當(dāng)?shù)脑龃笱h(huán)分塊因子,反之使用較小的循環(huán)分塊因子。此外,并不是分塊因子越大越好,當(dāng)系統(tǒng)的資源較為豐富時,循環(huán)分塊因子不再是限制系統(tǒng)性能的主要原因,此時系統(tǒng)的加速性能與系統(tǒng)數(shù)據(jù)傳輸帶寬有關(guān)。

    圖10 輸入、輸出通道遍歷循環(huán)分塊代碼

    2.2 循環(huán)展開及調(diào)整

    循環(huán)展開是一種最直接的并行化加速方法,采用循環(huán)展開的方法能夠大幅地提高并行運算的速度,當(dāng)硬件加速平臺的資源充足時,可將計算過程沒有依賴關(guān)系的循環(huán)進(jìn)行展開。對于整個卷積層的計算來說,僅對卷積計算過程中循環(huán)最內(nèi)層的計算單元進(jìn)行展開難以達(dá)到理想的加速效果,因此需要根據(jù)實際的硬件資源對其他的循環(huán)進(jìn)行展開。為了便于進(jìn)行循環(huán)展開的設(shè)計,我們將卷積層計算的代碼調(diào)整為圖11中的形式。

    圖11 改變循環(huán)次序的代碼

    對調(diào)整后的代碼進(jìn)行循環(huán)編號,從外層到內(nèi)層分別編號為1~8,此時循環(huán)1和循環(huán)2是對輸入、輸出通道的循環(huán)分塊,循環(huán)分塊的目的是為了減少加速器對硬件資源的要求,增大加速器的并行性,因此將循環(huán)分塊置于最外層。循環(huán)3和循環(huán)4是輸入對特征圖尺寸的遍歷,對于不同的卷積核其共用同一個輸入特征圖,因此對輸入特征圖的遍歷存在一定的數(shù)據(jù)復(fù)用度,可充分利用這一特點減少加速器對數(shù)據(jù)通信帶寬的要求,降低輸入數(shù)據(jù)的反復(fù)讀取。循環(huán)5和循環(huán)6是對輸入、輸出通道循環(huán)分塊因子的遍歷,為了能夠充分利用卷積計算的并行性,可在循環(huán)分塊因子的尺度進(jìn)行循環(huán)展開設(shè)計,能夠大幅提高對硬件資源的利用率以及卷積層計算的速度,使用循環(huán)展開技術(shù)能夠有效地增加卷積運算的并行性,并行計算的大小由循環(huán)分塊因子決定。

    2.3 片上存儲設(shè)計

    片上存儲設(shè)計是卷積層加速器的核心設(shè)計內(nèi)容之一,加速器性能的好壞和片上存儲設(shè)計有直接聯(lián)系,F(xiàn)PGA的片上存儲資源十分有限,因此難以進(jìn)行大規(guī)模的數(shù)據(jù)存儲。對于FPGA來說,塊隨機(jī)存取存儲器(Block Random Access Memory,BRAM)和觸發(fā)器(Flip Flop,FF)均可作為片上存儲器,通常使用FF構(gòu)成寄存器存儲需要進(jìn)行反復(fù)讀取的數(shù)據(jù),F(xiàn)F的讀取速度大于BRAM,但能存儲的數(shù)據(jù)量遠(yuǎn)小于BRAM。

    卷積加速器片上存儲的設(shè)計主要包括權(quán)重偏置數(shù)據(jù)緩存、特征圖輸入緩存以及卷積計算結(jié)果輸出緩存三個層面,下面分別對其進(jìn)行分析,并給出可行的設(shè)計方案。

    1)權(quán)重偏置數(shù)據(jù)緩存

    對于一個未進(jìn)行剪枝、壓縮等優(yōu)化的j卷積神經(jīng)網(wǎng)絡(luò)模型來說,模型的參數(shù)量遠(yuǎn)大于多數(shù)FPGA內(nèi)部的BRAM資源。因此,難以一次性將模型的全部參數(shù)部署到FPGA內(nèi)部,此時需要合理的設(shè)計片上存儲使加速器能夠具有較高的性能。對于一層卷積的計算,只需在卷積計算之前將本層的權(quán)重偏置數(shù)據(jù)傳輸?shù)紽PGA內(nèi)部的BRAM上,雖然會導(dǎo)致一定的數(shù)據(jù)傳輸與計算延時,但能夠大幅降低加速器對片上存儲資源的要求。

    從循環(huán)展開的設(shè)計中可知,加速器一次計算需要完成p個卷積核對q個的輸入特征圖的遍歷。因此,對于片上存儲設(shè)計來說只需在卷積計算之前將p*q*k*k個權(quán)重參數(shù)傳輸?shù)紽PGA內(nèi)部的BRAM上即可,這樣能夠進(jìn)一步降低對片上存儲資源的消耗,但會增加加速器的延時。

    2)特征圖輸入緩存

    卷積層的計算過程中通常難以將參與計算的輸入特征圖一次傳輸至加速器的片內(nèi)存儲。因此,需要設(shè)計輸入特征圖的緩存結(jié)構(gòu),使得加速器能夠滿足并行化計算。由卷積計算的原理可知,卷積的計算過程可描述為卷積核在特征圖上的滑動,不同的卷積核共享同一個輸入特征圖,可以將特征圖輸入緩存設(shè)計成行緩存的結(jié)構(gòu),需要緩存的行數(shù)與卷積核的尺寸k有關(guān)。

    為了兼顧卷積計算的并行性、數(shù)據(jù)復(fù)用度以及FPGA的片上資源,采用圖12所示的行緩存結(jié)構(gòu),交替地將特征圖的數(shù)據(jù)傳輸至FPGA內(nèi)部。該緩存結(jié)構(gòu)可以實現(xiàn)特征圖間的并行性以及卷積核間的并行性。當(dāng)進(jìn)行卷積計算時,q個不同的卷積核共享對應(yīng)的p個輸入特征圖行緩存,將p個輸入特征圖的卷積計算結(jié)果疊加即可得到一個卷積核的計算輸出。行緩存結(jié)構(gòu)相對復(fù)雜,但計算效率較高,能夠在有限的片上資源實現(xiàn)較大的并行性,此外引入多通道輸入特征圖的緩存能夠有效地降低臨時數(shù)據(jù)存儲。

    圖12 特征圖行緩存結(jié)構(gòu)圖

    當(dāng)進(jìn)行卷積計算時,特征圖的數(shù)據(jù)通過AXI[15]總線串行的傳輸至FPGA內(nèi)部,如圖13所示。以4*4的輸入特征圖和3*3的卷積核為例進(jìn)行行緩存內(nèi)部結(jié)構(gòu)的介紹(表示緩存器當(dāng)前位置),行緩存尺寸為3*4,一次緩存的最大尺寸為3行。

    圖13 行緩存器內(nèi)部結(jié)構(gòu)圖

    假設(shè)AXI總線每個時鐘周期傳輸一位輸入特征圖數(shù)據(jù),行緩存每個時鐘周期就能獲取一個數(shù)。每個時鐘周期下緩存器將當(dāng)前列的數(shù)據(jù)向上移動,然后將新的數(shù)據(jù)讀入緩存器的當(dāng)前位置。下一個時鐘周期到來時緩存器將當(dāng)前位置向右移動一個位置,然后將當(dāng)前列的數(shù)據(jù)向上移動,再將新的數(shù)據(jù)讀入緩存器的當(dāng)前位置,以此類推不斷重復(fù)這個過程,直到緩存器當(dāng)前位置移動到最后一列,在下個時鐘周期時再從第一列重復(fù)之前的過程。

    3)特征圖輸出緩存

    由卷積層的計算過程可知,一個完整的輸出特征圖與所有的輸入特征圖有關(guān)。因此,在引入循環(huán)分塊的加速器設(shè)計中,只有當(dāng)一組卷積核將所有的輸入通道遍歷完成后,才能得到對應(yīng)的輸出特征圖。無論是最終的輸出特征圖還是一組循環(huán)中的中間計算結(jié)果,都需要在完成q個卷積核對應(yīng)的p個輸入特征圖的卷積計算后,才將計算結(jié)果通過AXI總線傳輸至片外存儲。卷積層的計算中通常輸入特征圖的通道數(shù)小于輸出特征圖。因此,當(dāng)進(jìn)行卷積計算時,AXI總線對輸入特征圖的數(shù)據(jù)讀取次數(shù)就小于對輸出特征圖的數(shù)據(jù)寫入次數(shù),這樣會造成讀取與寫入數(shù)據(jù)的不平衡,影響系統(tǒng)的數(shù)據(jù)吞吐率。為了提高加速器的整體數(shù)據(jù)吞吐量,我們在卷積的計算中引入FIFO的輸出緩存設(shè)計,通過FIFO緩存卷積計算結(jié)果。

    假設(shè)卷積的計算有4個輸入通道和8個輸出通道,AXI總線一次能夠傳輸2個通道的數(shù)據(jù),因此對于輸入通道來說需要2個時鐘周期進(jìn)行數(shù)據(jù)的讀取,對于輸出通道來說需要4個時鐘周期進(jìn)行數(shù)據(jù)的輸出。

    圖14是無FIFO的輸出緩存結(jié)構(gòu)圖,從圖中可知,由于沒有引入FIFO的結(jié)構(gòu),當(dāng)完成兩個輸入通道的數(shù)據(jù)讀取后,卷積開始產(chǎn)生計算結(jié)果的輸出,此時需要將部分計算結(jié)果傳輸至片外存儲。當(dāng)完成整個輸入通道的讀取后,卷積計算完成,而輸出通道的數(shù)據(jù)大于輸入通道,因此還需額外的時鐘周期將剩下的輸出通道數(shù)據(jù)傳輸至片外存儲,整個數(shù)據(jù)傳輸需要消耗5個時鐘周期。

    圖14 無FIFO輸出緩存結(jié)構(gòu)圖

    圖15是有FIFO的輸出緩存結(jié)構(gòu)圖,F(xiàn)IFO的深度為2,每進(jìn)行一次輸入數(shù)據(jù)的讀取則進(jìn)行兩次輸出數(shù)據(jù)的寫入,完成卷積計算時需要進(jìn)行FIFO狀態(tài)的判斷,當(dāng)FIFO非滿狀態(tài)下進(jìn)行FIFO的數(shù)據(jù)寫入,將當(dāng)前的計算結(jié)果緩存至FIFO中。同樣當(dāng)進(jìn)行數(shù)據(jù)讀取時需要判斷FIFO是否為空,當(dāng)FIFO狀態(tài)非空時進(jìn)行數(shù)據(jù)的讀取,將卷積計算結(jié)果輸出至片外存儲器。從圖中可知,由于引入FIFO的結(jié)構(gòu)設(shè)計,當(dāng)完成兩個輸入通道的數(shù)據(jù)讀取后,卷積開始產(chǎn)生計算結(jié)果的輸出,此時需要將本次的計算結(jié)果寫入到片內(nèi)的FIFO緩存中,在進(jìn)行數(shù)據(jù)讀取的同時將上一次計算的結(jié)果從FIFO中讀取出來,通過AXI總線傳輸至片外存儲。

    圖15 有FIFO輸出緩存結(jié)構(gòu)圖

    兩種結(jié)構(gòu)對比可知,從單次計算的時鐘周期來說,沒有引入FIFO的結(jié)構(gòu)中完成一次完整的卷積計算所需要的時鐘周期是5,引入FIFO所需要的時鐘周期是4。從數(shù)據(jù)吞吐量來說,沒有引入FIFO的結(jié)構(gòu)中,12個時鐘周期內(nèi)完成了3次輸入數(shù)據(jù)的讀取與2次輸出數(shù)據(jù)的寫入,引入FIFO的設(shè)計中12個時鐘周期內(nèi)完成了4次輸入數(shù)據(jù)的讀取與2次輸出數(shù)據(jù)的寫入,一定程度上提高了數(shù)據(jù)的吞吐率。

    2.4 Padding控制器設(shè)計

    為了保證卷積計算前后特征圖的尺寸不發(fā)生變化,通常在卷積計算時引入補(bǔ)“0”技術(shù)。此外,補(bǔ)“0”后的特征圖在進(jìn)行卷積計算時,其邊緣的特征值也能多次參與卷積計算,從而達(dá)到減少特征圖邊緣信息丟失的作用。因此,補(bǔ)“0”對卷積計算十分重要。特征圖補(bǔ)“0”的方法有多種形式,本文僅以較為常用的邊緣均勻補(bǔ)“0”進(jìn)行具體設(shè)計的介紹。

    如圖16所示,輸入特征圖數(shù)據(jù)以數(shù)據(jù)流的形式傳輸至FPGA內(nèi)部,數(shù)據(jù)在進(jìn)入FPGA的片上行緩存之前需要經(jīng)過片內(nèi)的Padding控制器,Padding控制器根據(jù)特征圖當(dāng)前傳輸?shù)臄?shù)據(jù)狀態(tài)決定是否進(jìn)行補(bǔ)“0”。在進(jìn)行特征圖數(shù)據(jù)傳輸之前,首先將特征圖原本的行數(shù)與列數(shù)傳輸至Padding控制器內(nèi)部,以此作為行、列控制器判斷補(bǔ)“0”個數(shù)與位置的依據(jù)。每次將AXI總線上的數(shù)據(jù)傳輸至行緩存內(nèi)部之前,Padding控制器中的行、列控制器會記錄當(dāng)前數(shù)據(jù)所處的位置,并根據(jù)當(dāng)前位置對行緩存數(shù)據(jù)流進(jìn)行補(bǔ)“0”。具體的做法是:當(dāng)行控制器檢測到當(dāng)前行位于第一行或最后一行時,則在讀取特征圖數(shù)據(jù)之前將行緩存數(shù)據(jù)流中的所有列數(shù)據(jù)全部置為“0”。當(dāng)行控制器檢測到當(dāng)前行位于第一行與最后一行之間時,則在讀取特征圖數(shù)據(jù)之前將行緩存數(shù)據(jù)流中的第一列與最后一列數(shù)據(jù)全部置為“0”。當(dāng)列控制器檢測到當(dāng)前列為最后一列時則進(jìn)行換行,以此對數(shù)據(jù)流中的數(shù)據(jù)進(jìn)行分行處理。

    圖16 Padding 控制器結(jié)構(gòu)圖

    2.5 卷積復(fù)用

    網(wǎng)絡(luò)中的卷積核通常有3*3與1*1兩種尺寸,為了降低硬件資源的消耗,提升資源利用率,我們設(shè)計了一種卷積復(fù)用的方法。如圖17,我們首先對1*1的卷積核進(jìn)行擴(kuò)充,使其轉(zhuǎn)換為3*3的卷積計算,然后將其送入3*3的卷積計算單元,即可完成卷積計算。擴(kuò)充的方法是,將原始1*1卷積的權(quán)重放置3*3卷積核權(quán)重的第5位,3*3卷積核剩余8位權(quán)重均置0。根據(jù)圖17可知,擴(kuò)充前后1*1卷積的計算結(jié)果相同,無需對3*3卷積計算單元做出更改,因此復(fù)用設(shè)計正確。卷積計算單元的復(fù)用沒有使用額外的硬件資源,極大地提高了硬件的利用率,但會造成1*1卷積計算效率的下降以及一定的無效數(shù)據(jù)傳輸,每傳輸一個權(quán)重需傳輸8個無效的數(shù)據(jù),此外還會增加一定的片外存儲空間用以存放擴(kuò)充的“0”??偟膩碚f,當(dāng)硬件資源較為緊張時,計算復(fù)用帶來的優(yōu)勢遠(yuǎn)大于劣勢。

    圖17 卷積復(fù)用轉(zhuǎn)換示意圖

    2.6 設(shè)計優(yōu)化

    設(shè)計優(yōu)化主要是使用高層次綜合(High-level Synthesis,HLS)[16]工具的Directive指令對卷積計算單元的延時進(jìn)行優(yōu)化,優(yōu)化的目標(biāo)是以較小的資源消耗換取最大的計算效率,HLS工具會自動進(jìn)行設(shè)計優(yōu)化,但需指定采用何種優(yōu)化方法 。我們的優(yōu)化對象主要有兩個:循環(huán)以及片上存儲結(jié)構(gòu)即數(shù)組。

    1)循環(huán)優(yōu)化

    卷積的計算中存在多層循環(huán),我們使用“PIPELINE”對循環(huán)進(jìn)行優(yōu)化,多層循環(huán)嵌套的情況下,“PIPELINE”指令會對內(nèi)層循環(huán)進(jìn)行展開,因此僅需在外層循環(huán)應(yīng)用“PIPLINE”即可。卷積計算單元一個時鐘周期能夠傳輸64位數(shù)據(jù)即4個輸入通道的數(shù)據(jù),則輸入通道最大循環(huán)次數(shù)為q/4,一次數(shù)據(jù)傳輸需完成p個卷積的計算。通常卷積層的最小輸入通道數(shù)為3,最大輸入通道數(shù)為可達(dá)1024,我們將卷積輸入通道的并行度設(shè)置為可變值,最大為q,并在此循環(huán)上使用“PIPLINE”進(jìn)行優(yōu)化,由于循環(huán)次數(shù)q/4不固定,因此該循環(huán)并不被展開,該循環(huán)內(nèi)部即為卷積計算過程:行緩存、卷積滑窗、卷積計算、數(shù)據(jù)累加以及計算輸出,將該循環(huán)內(nèi)的循環(huán)均設(shè)為定值,則一次循環(huán)可完成p個輸出通道的計算,即輸出通道的并行度固定為p。

    2)數(shù)組優(yōu)化

    數(shù)組優(yōu)化的指令為“ARRAY_PARTITION”,通常是為了提升“PIPLINE”的性能。數(shù)組存儲在片上的BRAM中,BRAM的最大讀取端口數(shù)量為2,數(shù)據(jù)訪存速度較慢,為了提升吞吐量,通常將一個大的數(shù)組分割為幾個小的數(shù)組,這樣就能對數(shù)組進(jìn)行并行訪存,提高數(shù)據(jù)吞吐量。HLS提供block、cyclic、complete三種數(shù)組分割方法,如圖18所示。對于block和cyclic指令,可使用factor指定將原始數(shù)組分割為多少個小數(shù)組,圖中factor等于2。對于complete指令,其直接對數(shù)組中的每個存儲單元進(jìn)行完全分割,使其成為寄存器級接口,訪存速度最快。

    圖18 數(shù)組分割示意圖

    網(wǎng)絡(luò)模型中需要進(jìn)行數(shù)組優(yōu)化的有權(quán)重、偏置、輸入行緩存、數(shù)據(jù)累加緩存以及輸出數(shù)據(jù)緩存,可分別使用Weight[p][q][k2]、Bias[p]、LineBuffer[q]、AccumulationBuffer[p]、OutputBuffer[p]表示。權(quán)重數(shù)組Weight[p][q][k2]是一個三維數(shù)組,通過以上分析可知對于權(quán)重數(shù)組的第一維參數(shù)p與第三維參數(shù)k2需使用complete對其進(jìn)行優(yōu)化,而對于第二維參數(shù)q則將其分割為q/4個block。行緩存數(shù)組LineBuffer[q]一個時鐘周期只需進(jìn)行4個輸入通道數(shù)據(jù)的寫入,因此將其拆分為4個block即可。對于Bias[p]、AccumulationBuffer[p]和Output-Buffer[p],由于輸出通道并行度p為固定值,因此需使用complete對其進(jìn)行優(yōu)化。

    我們以3*3的卷積計算為例,并其在外層加上一個不定循環(huán),使用“PIPLINE”與“ARRAY_PARTITION”對計算進(jìn)行優(yōu)化。

    優(yōu)化前后的資源消耗及計算延時如圖19所示。從圖中可以看出,使用“PIPLINE”與“ARRAY_PARTITION”能夠大幅提高計算單元的速度,但會消耗一定的硬件資源。

    圖19 卷積運算優(yōu)化前后性能對比圖

    3 實驗結(jié)果分析

    實驗平臺使用Z-turn Board開發(fā)板,Z-turn Board是深圳市米爾科技有限公司推出的一款以Xilinx Zynq作為主處理器的嵌入式開發(fā)板,核心芯片為Zynq7020,板上配備兩片512MB的DDR3、一個16MB的SPI Flash、千兆以太網(wǎng)接口、USB接口等外部資源,這里我們不作出具體介紹。

    我們使用Vivado軟件對卷積計算單元的IP進(jìn)行綜合設(shè)計,生成比特流文件,然后在SDK環(huán)境下進(jìn)行實驗測試。實驗平臺的資源配置如表1所示,實驗設(shè)計分為兩部分,首先是對不引入加速器僅使用Z-turn Board的PS端進(jìn)行性能測試,然后是使用加速器的性能測試。測試所用的卷積層為YoloV3-tiny[17]網(wǎng)絡(luò)的第一層,輸入特征圖參數(shù)為416*416*3,輸出特征圖參數(shù)為416*416*16,使用16位定點數(shù)進(jìn)行計算。我們將從資源消耗、計算延時、功耗、三個角度對實驗結(jié)果進(jìn)行分析。

    表1 實驗平臺資源配置表

    實驗測試結(jié)果如表2所示。從表中可以看出,對于資源消耗,由于使用PS(ARM A9)端進(jìn)行模型推理不涉及到PL(FPGA)端的資源消耗,因此資源消耗為0,使用FPGA進(jìn)行計算加速,消耗量了一定的計算資源,其中主要消耗了大量的DSP48E與BRAM_18K。對于計算延時,使用并行加速的設(shè)計大幅提高了卷積的計算速度,相較于未并行化的方案加速比可達(dá)216.91,且功率僅增加0.569W。因此,本設(shè)計能夠在較小的資源消耗小取得較大的計算性能,能夠為面向嵌入式的卷積神經(jīng)網(wǎng)絡(luò)加速提供一定的設(shè)計參考。

    表2 加速前后資源消耗對比

    4 結(jié)語

    近些年來,人工智能技術(shù)快速發(fā)展,模型所需的算力不斷攀升。盡管服務(wù)器級CPU或GPU能夠提供強(qiáng)大的計算力,但其單位算力下的功耗,使其難以應(yīng)用在功耗敏感的嵌入式領(lǐng)域。FPGA能夠在保持低功耗的同時,提供強(qiáng)大的并行計算能力。本文通過對卷積神經(jīng)網(wǎng)絡(luò)計算特性的分析,使用循環(huán)分塊、循環(huán)展開等技術(shù),完成了一種具有通用性能的卷積神經(jīng)網(wǎng)絡(luò)加速器架構(gòu)設(shè)計。引入了輸入、輸出通道兩個維度的并行化因子,分別設(shè)計了可擴(kuò)展的卷積硬件計算單元以及資源受限情況下的卷積復(fù)用結(jié)構(gòu)。此外,針對片上硬件結(jié)構(gòu),分別設(shè)計了權(quán)重偏置存儲結(jié)構(gòu)、特征圖行緩存結(jié)構(gòu)、多級輸出緩存結(jié)構(gòu),并使用數(shù)組分割進(jìn)行設(shè)計優(yōu)化。

    猜你喜歡
    特征設(shè)計
    抓住特征巧觀察
    何為設(shè)計的守護(hù)之道?
    新型冠狀病毒及其流行病學(xué)特征認(rèn)識
    《豐收的喜悅展示設(shè)計》
    流行色(2020年1期)2020-04-28 11:16:38
    如何表達(dá)“特征”
    不忠誠的四個特征
    瞞天過?!律O(shè)計萌到家
    抓住特征巧觀察
    設(shè)計秀
    海峽姐妹(2017年7期)2017-07-31 19:08:17
    有種設(shè)計叫而專
    Coco薇(2017年5期)2017-06-05 08:53:16
    亚洲精品粉嫩美女一区| 十分钟在线观看高清视频www| 精品欧美一区二区三区在线| 国产激情欧美一区二区| 高清av免费在线| 黄色毛片三级朝国网站| 亚洲欧美精品综合一区二区三区| 在线观看66精品国产| 在线国产一区二区在线| 国产亚洲欧美98| 后天国语完整版免费观看| 亚洲av熟女| 在线天堂中文资源库| 男女床上黄色一级片免费看| 国产av一区二区精品久久| 国产一区在线观看成人免费| 一区二区三区国产精品乱码| 一级毛片高清免费大全| 美国免费a级毛片| 国产精品电影一区二区三区 | 亚洲全国av大片| 精品国产一区二区三区四区第35| 成在线人永久免费视频| 国产精品 国内视频| 国产精品秋霞免费鲁丝片| 国产激情久久老熟女| 色播在线永久视频| 伊人久久大香线蕉亚洲五| 日韩欧美一区二区三区在线观看 | 中文欧美无线码| 久久久久久亚洲精品国产蜜桃av| 99国产精品99久久久久| 悠悠久久av| 国产在视频线精品| 午夜91福利影院| 啦啦啦在线免费观看视频4| 亚洲精品久久午夜乱码| 午夜日韩欧美国产| 亚洲专区中文字幕在线| 老汉色av国产亚洲站长工具| 91国产中文字幕| 欧美成人免费av一区二区三区 | 精品国内亚洲2022精品成人 | 在线观看www视频免费| 亚洲伊人色综图| 免费看a级黄色片| 日韩欧美国产一区二区入口| 日韩欧美一区视频在线观看| 国产欧美日韩一区二区三| 免费女性裸体啪啪无遮挡网站| 国产精华一区二区三区| 亚洲欧美日韩高清在线视频| 建设人人有责人人尽责人人享有的| 久久国产精品男人的天堂亚洲| 视频区欧美日本亚洲| 亚洲五月天丁香| 一级片'在线观看视频| 午夜日韩欧美国产| 国产欧美日韩一区二区三区在线| 天堂√8在线中文| 1024视频免费在线观看| 美女扒开内裤让男人捅视频| 欧美激情久久久久久爽电影 | 精品久久久久久久久久免费视频 | √禁漫天堂资源中文www| 中文字幕高清在线视频| 三上悠亚av全集在线观看| 久久中文看片网| 亚洲aⅴ乱码一区二区在线播放 | 在线观看日韩欧美| 精品国产乱子伦一区二区三区| 精品福利观看| 午夜福利乱码中文字幕| 美女高潮到喷水免费观看| 免费女性裸体啪啪无遮挡网站| 视频区图区小说| 9色porny在线观看| 动漫黄色视频在线观看| 午夜福利,免费看| 69av精品久久久久久| 亚洲欧美激情综合另类| 日韩免费高清中文字幕av| 久久久久久人人人人人| 19禁男女啪啪无遮挡网站| 国产精品偷伦视频观看了| 亚洲国产中文字幕在线视频| 午夜激情av网站| 黑人巨大精品欧美一区二区蜜桃| 亚洲中文av在线| 久久精品成人免费网站| 欧美中文综合在线视频| 国产精品98久久久久久宅男小说| 他把我摸到了高潮在线观看| 亚洲人成电影观看| 男女高潮啪啪啪动态图| 亚洲欧美日韩另类电影网站| 精品一区二区三卡| 天天操日日干夜夜撸| 精品久久蜜臀av无| 免费一级毛片在线播放高清视频 | 欧美另类亚洲清纯唯美| 激情在线观看视频在线高清 | 欧美中文综合在线视频| 欧美不卡视频在线免费观看 | 两性午夜刺激爽爽歪歪视频在线观看 | 久久人妻av系列| 久热爱精品视频在线9| www.自偷自拍.com| 午夜亚洲福利在线播放| 777米奇影视久久| 亚洲欧美一区二区三区久久| av线在线观看网站| 极品教师在线免费播放| 少妇的丰满在线观看| 亚洲中文日韩欧美视频| 国产在线一区二区三区精| 午夜福利视频在线观看免费| 男女免费视频国产| 国产97色在线日韩免费| 国产成+人综合+亚洲专区| 女人高潮潮喷娇喘18禁视频| 国产精品av久久久久免费| 亚洲人成伊人成综合网2020| 无限看片的www在线观看| 婷婷精品国产亚洲av在线 | 欧美日韩国产mv在线观看视频| 亚洲熟女毛片儿| 亚洲国产毛片av蜜桃av| 国产欧美亚洲国产| 国产精品秋霞免费鲁丝片| 美国免费a级毛片| 成人黄色视频免费在线看| 免费av中文字幕在线| 美女国产高潮福利片在线看| 午夜福利欧美成人| www.999成人在线观看| 久久精品91无色码中文字幕| 黄色怎么调成土黄色| 久久久久久免费高清国产稀缺| 国产蜜桃级精品一区二区三区 | 国产激情久久老熟女| 色老头精品视频在线观看| 天天影视国产精品| 国产精品久久久久久人妻精品电影| 精品午夜福利视频在线观看一区| 黄色a级毛片大全视频| 国精品久久久久久国模美| 精品久久久久久久毛片微露脸| 每晚都被弄得嗷嗷叫到高潮| 少妇粗大呻吟视频| 麻豆成人av在线观看| 精品少妇一区二区三区视频日本电影| 又黄又粗又硬又大视频| 亚洲欧美日韩另类电影网站| 欧美成人午夜精品| 亚洲精品成人av观看孕妇| 国产亚洲一区二区精品| 建设人人有责人人尽责人人享有的| 婷婷成人精品国产| 国产精品久久久av美女十八| 国产欧美日韩一区二区三| 他把我摸到了高潮在线观看| 深夜精品福利| 国产av精品麻豆| 青草久久国产| 激情视频va一区二区三区| 精品视频人人做人人爽| 嫁个100分男人电影在线观看| 国产男女内射视频| 美女视频免费永久观看网站| 中文字幕人妻丝袜一区二区| 最新在线观看一区二区三区| 热99国产精品久久久久久7| 老汉色∧v一级毛片| 精品乱码久久久久久99久播| 国产欧美日韩综合在线一区二区| 高清欧美精品videossex| 无遮挡黄片免费观看| 一夜夜www| 欧美另类亚洲清纯唯美| 建设人人有责人人尽责人人享有的| 国产蜜桃级精品一区二区三区 | 国产单亲对白刺激| 国产精品99久久99久久久不卡| 日韩 欧美 亚洲 中文字幕| 母亲3免费完整高清在线观看| 欧美大码av| 免费在线观看影片大全网站| 久久国产精品大桥未久av| 亚洲成国产人片在线观看| 久久精品亚洲熟妇少妇任你| 亚洲视频免费观看视频| av福利片在线| 777米奇影视久久| 国产精品99久久99久久久不卡| 黄片小视频在线播放| 男人操女人黄网站| 丝袜美足系列| 波多野结衣av一区二区av| 国产成人精品久久二区二区91| 高清av免费在线| 欧美成人午夜精品| 极品教师在线免费播放| 成人18禁在线播放| 日韩免费av在线播放| 极品教师在线免费播放| 成人影院久久| 建设人人有责人人尽责人人享有的| 国产无遮挡羞羞视频在线观看| 老司机福利观看| 18禁国产床啪视频网站| 18禁国产床啪视频网站| 亚洲av第一区精品v没综合| 少妇被粗大的猛进出69影院| 亚洲视频免费观看视频| 国产男靠女视频免费网站| 咕卡用的链子| 9191精品国产免费久久| 久久精品国产综合久久久| 国产激情欧美一区二区| 亚洲国产欧美网| 国产在视频线精品| 97人妻天天添夜夜摸| 亚洲欧美日韩另类电影网站| 婷婷成人精品国产| 91成人精品电影| 日韩欧美一区二区三区在线观看 | 另类亚洲欧美激情| a在线观看视频网站| 久久久久久久久免费视频了| 在线观看舔阴道视频| 又黄又粗又硬又大视频| av免费在线观看网站| 国产精品1区2区在线观看. | 日韩免费av在线播放| 乱人伦中国视频| 国产精品久久久av美女十八| 国产精品免费一区二区三区在线 | 18禁美女被吸乳视频| 国产亚洲精品久久久久5区| 亚洲av电影在线进入| 国内毛片毛片毛片毛片毛片| 亚洲精品中文字幕一二三四区| 国产成人精品久久二区二区91| 最近最新免费中文字幕在线| 国产成人精品无人区| 超色免费av| 一进一出抽搐动态| 少妇的丰满在线观看| 黑人猛操日本美女一级片| 久久久国产一区二区| 校园春色视频在线观看| 国产人伦9x9x在线观看| 精品少妇久久久久久888优播| 精品国内亚洲2022精品成人 | 亚洲色图av天堂| 变态另类成人亚洲欧美熟女 | 亚洲熟妇熟女久久| 极品教师在线免费播放| 亚洲五月天丁香| 成人手机av| 视频区图区小说| 国产成人欧美在线观看 | 老汉色∧v一级毛片| 精品亚洲成a人片在线观看| 欧美在线黄色| 美女高潮喷水抽搐中文字幕| 岛国毛片在线播放| 99国产综合亚洲精品| 亚洲黑人精品在线| 成人手机av| 两人在一起打扑克的视频| 午夜成年电影在线免费观看| 亚洲精品国产色婷婷电影| 男男h啪啪无遮挡| 欧美激情久久久久久爽电影 | 欧美黄色片欧美黄色片| 亚洲精品美女久久av网站| 亚洲精品中文字幕一二三四区| 嫁个100分男人电影在线观看| av福利片在线| 老司机福利观看| 丰满迷人的少妇在线观看| 99国产精品99久久久久| 91成年电影在线观看| 国产免费现黄频在线看| 中文字幕另类日韩欧美亚洲嫩草| 一区二区三区精品91| 久久久精品国产亚洲av高清涩受| www.精华液| 久久国产亚洲av麻豆专区| 韩国av一区二区三区四区| 黄网站色视频无遮挡免费观看| 老司机靠b影院| 99re在线观看精品视频| 欧美日本中文国产一区发布| 大型av网站在线播放| 成人黄色视频免费在线看| 女人被狂操c到高潮| 91大片在线观看| 午夜91福利影院| 国产亚洲一区二区精品| 精品亚洲成国产av| 天堂√8在线中文| 亚洲av熟女| 久久久精品国产亚洲av高清涩受| 欧美精品av麻豆av| 亚洲国产欧美网| 999精品在线视频| 国产又色又爽无遮挡免费看| www.999成人在线观看| 亚洲一码二码三码区别大吗| 欧美日韩福利视频一区二区| www.精华液| 看黄色毛片网站| 亚洲欧美激情在线| 欧美+亚洲+日韩+国产| 免费在线观看完整版高清| 一夜夜www| 亚洲欧美激情综合另类| 国产精品一区二区免费欧美| 又黄又爽又免费观看的视频| 悠悠久久av| 国产不卡av网站在线观看| 中文字幕人妻丝袜制服| 国产国语露脸激情在线看| 最新美女视频免费是黄的| 亚洲一区二区三区不卡视频| 一进一出抽搐gif免费好疼 | 亚洲熟女毛片儿| 久久国产精品男人的天堂亚洲| 90打野战视频偷拍视频| 两性夫妻黄色片| 美女扒开内裤让男人捅视频| 女人爽到高潮嗷嗷叫在线视频| 亚洲国产欧美日韩在线播放| 国产一卡二卡三卡精品| 亚洲av第一区精品v没综合| 午夜老司机福利片| 91老司机精品| 欧美日韩精品网址| 亚洲少妇的诱惑av| 国产免费现黄频在线看| 欧美成狂野欧美在线观看| 欧美国产精品一级二级三级| 美国免费a级毛片| 成人国产一区最新在线观看| 深夜精品福利| 1024视频免费在线观看| 成熟少妇高潮喷水视频| 亚洲国产欧美网| 亚洲专区中文字幕在线| 亚洲视频免费观看视频| 欧美在线一区亚洲| 在线av久久热| 99国产精品99久久久久| 一区二区三区激情视频| 国产高清激情床上av| 亚洲欧美一区二区三区黑人| 国产97色在线日韩免费| 不卡av一区二区三区| 丰满的人妻完整版| 国产成人免费观看mmmm| 国产精品98久久久久久宅男小说| 日韩欧美国产一区二区入口| 老汉色av国产亚洲站长工具| 高清毛片免费观看视频网站 | 国产精品.久久久| 91国产中文字幕| 成人18禁在线播放| 下体分泌物呈黄色| 欧美在线黄色| 日本a在线网址| 亚洲成a人片在线一区二区| 男男h啪啪无遮挡| 国产欧美日韩一区二区三区在线| 99re6热这里在线精品视频| 一区二区三区精品91| av一本久久久久| av不卡在线播放| 亚洲国产精品sss在线观看 | 麻豆乱淫一区二区| 国产欧美日韩一区二区三| 亚洲黑人精品在线| 亚洲综合色网址| 岛国在线观看网站| 日韩免费av在线播放| 欧美日本中文国产一区发布| 国产精华一区二区三区| 久久国产精品人妻蜜桃| 亚洲中文字幕日韩| 在线免费观看的www视频| 亚洲一区二区三区欧美精品| 免费av中文字幕在线| 久热爱精品视频在线9| 在线永久观看黄色视频| 一边摸一边抽搐一进一小说 | 新久久久久国产一级毛片| 国产精品自产拍在线观看55亚洲 | 精品一区二区三区视频在线观看免费 | 最近最新中文字幕大全免费视频| 老司机午夜福利在线观看视频| 欧美 亚洲 国产 日韩一| 天天影视国产精品| 亚洲国产精品一区二区三区在线| 亚洲第一欧美日韩一区二区三区| 亚洲av片天天在线观看| 中文字幕制服av| 亚洲熟妇中文字幕五十中出 | 电影成人av| 久久ye,这里只有精品| 亚洲成人免费电影在线观看| 欧美黄色片欧美黄色片| 久久九九热精品免费| 夜夜躁狠狠躁天天躁| 久久久久久人人人人人| 90打野战视频偷拍视频| 最新在线观看一区二区三区| 亚洲va日本ⅴa欧美va伊人久久| 久久狼人影院| 亚洲国产欧美一区二区综合| 亚洲精品国产色婷婷电影| 亚洲精品在线美女| 国产精品九九99| 两人在一起打扑克的视频| av不卡在线播放| 久久久精品免费免费高清| 久久精品成人免费网站| 91老司机精品| 免费在线观看影片大全网站| 视频区欧美日本亚洲| 久久久国产成人免费| 精品卡一卡二卡四卡免费| 在线视频色国产色| 亚洲精品中文字幕一二三四区| 国产男女内射视频| 亚洲中文字幕日韩| 亚洲中文av在线| 亚洲精品乱久久久久久| 精品福利观看| 男女床上黄色一级片免费看| 国产成人一区二区三区免费视频网站| 韩国av一区二区三区四区| 精品国产一区二区三区四区第35| 久久精品成人免费网站| 夜夜躁狠狠躁天天躁| 老司机靠b影院| 国产不卡av网站在线观看| 国产精品 国内视频| 一级片免费观看大全| 色综合欧美亚洲国产小说| 欧美精品亚洲一区二区| 黄片小视频在线播放| 欧美人与性动交α欧美精品济南到| 一本大道久久a久久精品| 国产男靠女视频免费网站| tocl精华| 欧美乱码精品一区二区三区| 午夜福利在线免费观看网站| 久久 成人 亚洲| 欧美激情极品国产一区二区三区| 午夜久久久在线观看| 欧美日韩黄片免| 露出奶头的视频| 黄色怎么调成土黄色| 久久久久精品人妻al黑| 精品少妇久久久久久888优播| 国产欧美日韩一区二区三| 青草久久国产| 香蕉久久夜色| videos熟女内射| 亚洲人成电影观看| 亚洲精品av麻豆狂野| 搡老岳熟女国产| 丝袜人妻中文字幕| 黄色毛片三级朝国网站| 亚洲成人免费av在线播放| 69av精品久久久久久| 久久人人爽av亚洲精品天堂| 99国产极品粉嫩在线观看| 人成视频在线观看免费观看| 精品久久久久久久久久免费视频 | 看片在线看免费视频| 大型黄色视频在线免费观看| 老司机影院毛片| 亚洲精品久久午夜乱码| videos熟女内射| 日韩一卡2卡3卡4卡2021年| 少妇粗大呻吟视频| 99国产综合亚洲精品| 两个人看的免费小视频| 国产在线一区二区三区精| 天天添夜夜摸| 亚洲在线自拍视频| 99国产极品粉嫩在线观看| 亚洲一区二区三区欧美精品| 好看av亚洲va欧美ⅴa在| 99国产精品免费福利视频| 校园春色视频在线观看| 韩国精品一区二区三区| 桃红色精品国产亚洲av| 老司机亚洲免费影院| 久久久国产精品麻豆| 丰满迷人的少妇在线观看| 免费少妇av软件| 三级毛片av免费| 精品国产超薄肉色丝袜足j| 国产成人精品无人区| 黄色成人免费大全| 中国美女看黄片| 亚洲精品在线美女| 欧美日韩视频精品一区| 飞空精品影院首页| bbb黄色大片| 自线自在国产av| 免费不卡黄色视频| 午夜免费成人在线视频| 日本撒尿小便嘘嘘汇集6| 乱人伦中国视频| 色婷婷av一区二区三区视频| 韩国精品一区二区三区| 日本wwww免费看| 国产成人欧美| 两性夫妻黄色片| 建设人人有责人人尽责人人享有的| 中文字幕人妻丝袜制服| 又黄又粗又硬又大视频| 狠狠婷婷综合久久久久久88av| 欧美 亚洲 国产 日韩一| 久久国产精品大桥未久av| 9191精品国产免费久久| 国内毛片毛片毛片毛片毛片| 亚洲一区中文字幕在线| 欧美在线一区亚洲| 曰老女人黄片| 在线看a的网站| 欧美日韩国产mv在线观看视频| 亚洲久久久国产精品| svipshipincom国产片| 午夜福利视频在线观看免费| 日韩免费高清中文字幕av| 男女床上黄色一级片免费看| 亚洲精品国产一区二区精华液| 婷婷精品国产亚洲av在线 | 免费在线观看视频国产中文字幕亚洲| 日韩三级视频一区二区三区| 亚洲欧洲精品一区二区精品久久久| 亚洲国产毛片av蜜桃av| 热99re8久久精品国产| 国产精品久久久久久精品古装| cao死你这个sao货| 国产成+人综合+亚洲专区| 亚洲中文av在线| 高潮久久久久久久久久久不卡| 日本欧美视频一区| 性少妇av在线| 亚洲专区中文字幕在线| 成年人黄色毛片网站| 精品少妇一区二区三区视频日本电影| 亚洲国产精品一区二区三区在线| 亚洲午夜理论影院| 亚洲av成人av| 丝袜美足系列| 精品乱码久久久久久99久播| 国产成人av教育| 国产亚洲一区二区精品| 亚洲精品自拍成人| 欧美日韩av久久| 国产成人精品久久二区二区91| 无限看片的www在线观看| 老司机影院毛片| 中文字幕高清在线视频| 在线天堂中文资源库| 人人妻人人添人人爽欧美一区卜| 宅男免费午夜| 久久久久精品国产欧美久久久| 精品一品国产午夜福利视频| 精品欧美一区二区三区在线| 亚洲成人免费av在线播放| 日本vs欧美在线观看视频| 好男人电影高清在线观看| av福利片在线| 国产精品综合久久久久久久免费 | 久久影院123| 欧美午夜高清在线| 国产精品免费大片| 亚洲国产看品久久| 人妻久久中文字幕网| 久久国产精品男人的天堂亚洲| 成人国语在线视频| 亚洲成人免费av在线播放| 十分钟在线观看高清视频www| 国产男靠女视频免费网站| 免费在线观看亚洲国产| 乱人伦中国视频| aaaaa片日本免费| 欧美激情久久久久久爽电影 | 欧美激情极品国产一区二区三区| √禁漫天堂资源中文www| 女人高潮潮喷娇喘18禁视频| 久99久视频精品免费| 国产无遮挡羞羞视频在线观看| 1024视频免费在线观看| 手机成人av网站| 高清黄色对白视频在线免费看| 日韩免费高清中文字幕av| 国产精品.久久久| 亚洲情色 制服丝袜| 亚洲精品久久成人aⅴ小说| 女人精品久久久久毛片| 亚洲成人免费电影在线观看| 一级片免费观看大全| 在线十欧美十亚洲十日本专区| 亚洲精品久久成人aⅴ小说| 色婷婷av一区二区三区视频|