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

        ?

        基于ZYNQ的卷積神經網絡加速器設計

        2022-06-23 11:11:14顧明劍曾長紊邵春沅范余茂
        計算機工程與設計 2022年6期
        關鍵詞:特征資源

        吳 健,顧明劍,曾長紊,邵春沅,范余茂

        (1.中國科學院 上海技術物理研究所,上海 200083;2.中國科學院 上海技術物理研究所 紅外成像與探測重點實驗室,上海 200083;3.中國科學院 上海技術物理研究所 蘇州研究院,江蘇 蘇州 215000;4.中國科學院大學,北京 100049)

        0 引 言

        隨著深度學習在人工智能領域的發(fā)展,已經展示出了它在解決復雜學習問題上的能力和有效性。然而卷積神經網絡(CNN)要求強大的CPU計算能力和內存帶寬,使得普通的嵌入式CPU無法滿足實際的需求。因此,專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)和圖形處理單元(GPU)的硬件加速器被用來提高卷積神經網絡計算的吞吐量[1]。但GPU和ASIC分別有著功耗大和不靈活的缺點[2-4],而FPGA卻能以較低功耗實現(xiàn)中等的性能[5],以合理的成本提供高吞吐量、低功耗和可重構性[6]。另外Xilinx提供的高層次綜合工具(HLS)進一步降低了設計的難度,縮短了基于FPGA硬件加速器的開發(fā)時間[7]。

        本文使用HLS工具對加速器進行設計,將浮點型參數轉換成16 bit動態(tài)定點型參數,利用FPGA中BRAM資源對特征及權重進行雙緩存,使用乒乓操作及流水線的形式對數據進行搬運,顯著減少了頻繁訪問片外內存所帶來的時間開銷。為了更好利用AXI總線的帶寬,采用多位寬并行傳輸和突發(fā)傳輸的方法,有效提高了總線傳輸效率。在卷積計算中對不同層多路特征并行計算,充分運用FPGA中DSP資源,提高運算效率。最終將CNN加速器部署到PYNQ-Z2上,并與之前的工作進行了比較,結果顯示該架構加速性能優(yōu)于其它設計。

        主要創(chuàng)新工作如下:①將相鄰特征層數據在內存中進行合并,增加數據傳輸并行度的同時節(jié)省了通道的使用;②改進輸入輸出模塊,采用多通道、相鄰層參數合并、參數重排序結合的方法提高了傳輸速率,提高總線帶寬利用率。

        1 卷積神經網絡基本概念

        (1)

        式中:bi為偏置,N為輸入特征層個數,M為輸出特征層個數。卷積計算可用偽代碼表示如下:

        I[N][(R-1)*S+Ky][(C-1)*S+Kx]//input features

        O[M][R][C]//output features

        W[M][N][Kx][Ky]//weights

        for(m=0;m

        for(n=0;n

        for(r=0;r

        for(c=0;c

        for(i=0;i

        for(j=0;j

        wx=W[m][n][i][j];

        ix=I[n][S*r+i][S*c+j];

        O[m][r][c]+=wx*ix;}}}}}}

        偽代碼中I、O、W分別代表存放在外部存儲器中的輸入特征圖、輸出特征圖和卷積核參數。其中R、C、S、Kx、Ky代表輸入特征圖高度、輸入特征圖寬度、步長、卷積核寬度、卷積核高度。

        池化層一般使用最大值池化對輸入特征進行降采樣,減少數據量同時增加魯棒性。偽代碼表示如下所示:

        for(r=0;r

        for(c=0;c

        for(m=0;m

        O[m][r][c]=max(I[n][r*S+Ky][c*S+Kx]);}}}

        全連接層對輸入進行特征空間的線性轉換,對輸入特征進行加權從而得到輸出,全連接層可由卷積操作實現(xiàn)

        (2)

        2 加速器優(yōu)化策略

        2.1 動態(tài)16位定點數量化

        由于訓練后的神經網絡參數對噪聲具有一定的魯棒性,因此將訓練后的特征及權重參數量化處理后,卷積神經網絡的前向推理仍然能夠得出一個準確的結果。將神經網絡中32位浮點數類型的參數量化成更少位寬的浮點數能夠減少前向推理的計算量,減少權重所占用的存儲空間,提高運算速度,能夠更方便部署在移動端內存有限的嵌入式設備中。

        在對精度較高的數據轉化成低精度數據時,如果使用固定精度進行定點量化,隨著量化后的數據精度的降低,結果的準確性也會降低。然而在相同位寬數據情況下,使用動態(tài)定點數量化的方法,數據的準確性更高。本設計希望能夠實現(xiàn)高性能的同時得到較好的數據精度,因此將32位特征數據和權重參數量化為16動態(tài)定點數,根據不同特征層數據的動態(tài)范圍對其進行量化。

        定點數可以表達為

        (3)

        式中:xfixed為補碼形式,最高位為符號位,bw代表定點數位寬長度,exp代表階碼。動態(tài)定點數量化就是希望找到最優(yōu)的階碼expb使得原始數據xfloat與定點化后數據絕對誤差和最小,即

        (4)

        式中:x(bw,expb) 表示在給定階碼和定點數位寬下由定點數轉換回浮點數的值。根據上式對每一層輸入輸出特征,權重參數和偏置參數找到對應的最優(yōu)階碼,量化成16位定點數后卷積的浮點數乘累加運算可使用定點數乘法加法和移位操作來實現(xiàn),顯著減少浮點數運算帶來的DSP資源的消耗。

        2.2 多通道并行傳輸

        ZYNQ系列FPGA的PS端包含4個AXI_HP接口,主要用于PL訪問PS上的外部存儲器。每個HP接口擁有獨立的讀寫通道,主從設備之間能夠同時進行雙向傳輸,AXI4協(xié)議數據傳輸最大突發(fā)長度為256。

        卷積計算中特征數據、權重數據、偏置數據相互獨立,數據的獲取可以同時進行。因此可以在加速器內部分別設置輸入模塊與HP接口讀通道相連接,能夠提高數據并行度。

        由于只需要將輸出特征寫入外部存儲器,因此HP接口的寫通道專門用于傳輸輸出特征數據。可將輸出特征層按M維度進行劃分,采用多個寫通道并行輸出的方法將輸出特征寫入外部存儲器。

        2.3 相鄰層多位寬合并

        因為FPGA內部資源的限制,輸入特征值、權重數據以及中間結果都需要保存至外部存儲器中。與片上內存訪問相比較,訪問外部DRAM的代價是更高的延遲和功耗。因此減少外部存儲器訪問的次數,對于提高整體計算性能和能量效率是很重要的。

        通過量化操作后,卷積計算所需要的特征數據和權重數據變?yōu)?6位定點數。加速器通過AXI_HP接口訪問外部存儲器通過突發(fā)傳輸的方式獲取數據,默認的數據位寬為64位。若只用來傳輸16位的數據并沒有完全利用AXI總線傳輸帶寬,因此對特征和權重數據進行處理,將相鄰TN層特征數據、權重數據合并為16×TNbit數據,儲存在外部存儲器中,如圖1所示。相較于用多通道同時傳輸不同特征層的方法,采用數據合并的方式在節(jié)省傳輸通道的同時增加了實際帶寬利用率。

        圖1 相鄰特征層數據合并

        2.4 權重數據重排列

        從外部存儲器讀取數據的帶寬還與數據的突發(fā)長度有關。對于獲取同樣大小的數據,突發(fā)長度越長,傳輸的時間越小。為了能夠使得數據以較大的突發(fā)長度進行傳輸,對權重數據在內存中進行了重新排布。

        權重參數是一個4維的數據,分別為卷積核個數M,卷積核層數N以及卷積核大小Kx,Ky。假設一次傳輸需要將TM個卷積核的TN層權重參數搬運至片上緩存中 (TM≤M,TN≤N)。 此時存在著兩種傳輸方案:①以Kx,Ky,N,M的優(yōu)先順序進行傳輸,突發(fā)次數為TM次,每次突發(fā)長度為TN×Kx×Ky。②以N,M,Kx,Ky的優(yōu)先順序進行傳輸,突發(fā)次數為Kx×Ky次,每次突發(fā)長度為TM×TN。

        一般情況下TM大于Kx×Ky,因此第二種方案可以以較少的突發(fā)次數,較大的突發(fā)長度傳輸權重數據。

        3 加速器架構設計

        本章主要介紹硬件加速器的基礎架構,它由特征輸入模塊、權重輸入模塊、運算模塊、特征輸出模塊組成。加速器通過AXI lite接口與PS端GP接口連接負責配置控制寄存器、狀態(tài)寄存器、讀寫地址等。輸入輸出模塊提供的AXI master接口與PS端DDR的HP接口連接進行特征、權重及偏置數據的傳輸。每個輸入模塊擁有一個獨立的AXI master讀通道,將外部存儲器中的數據讀入輸入內部緩存區(qū)中。特征輸出模塊同時使用3個AXI master寫通道將輸出緩存區(qū)的數據并行搬運至外部存儲器。

        卷積池化計算模塊從輸入內部緩存區(qū)中同時取出多通道數據,并行計算后將輸出特征寫入輸出內部緩存。如圖2所示為硬件加速器的內部架構。

        圖2 硬件加速器內部架構

        部分內部存儲區(qū)包含兩個大小相同的存儲塊,目的是為了對外部存儲器取出的數據進行乒乓緩存。由于偏置參數數據量較小,因此偏置參數緩存區(qū)只設置一個緩存塊,在每次計算前將所有的偏置參數搬運至偏置緩存區(qū)中。

        加速器的工作時序如圖3所示。將讀外部存儲器、運算和寫外部存儲器作為一個周期,以流水線的形式進行,Read DDR & Compute操作所消耗的時間與Write DDR操作所消耗的時間重疊,減少操作延時。進一步的將Read DDR & Compute操作展開為兩部分操作,第一部分是讀取外部數據至輸入片上緩存區(qū),第二部分是運算并將運算結果寫入輸出片上緩存,這兩部分同樣以流水線的形式進行操作。

        圖3 加速器工作時序

        以卷積計算為例,設計的卷積加速器對應偽代碼如下所示:

        I[N][(R-1)*S+Ky][(C-1)*S+Kx];//input features

        O[M][R][C];//output features

        W[M][N][Kx][Ky];//weights

        Ibuffer[TN][(Tr-1)*S+Ky][(Tc-1)*S+Kx];//input buffer

        Obuffer[TM][Tr][Tc];//output buffer

        Wbuffer[TM][TN][Kx][Ky];//weight buffer

        for(r=0;r

        for(c=0;c

        for(m=0;m

        /*************** Block compute **************/

        for(n=0;n

        //---------------------- Inner compute ----------------------

        for(ky=0;ky

        for(kx=0;kx

        for(tr=0;tr+r

        for(tc=0;tc+c

        for(tm=0;tm

        for(tn=0;tn

        //---------------

        /******************************************/

        Ibuffer、Obuffer、Wbuffer、Bias分別表示加速器內部輸入片上緩存、輸出片上緩存、輸入權重緩存和輸入偏置緩存。

        輸入特征子塊的寬度Tcol和高度Trow由輸出特征子塊的寬度Tc、高度Tr、卷積核大小Kx、Ky和步長S決定

        Tcol=(Tc-1)×S+Kx

        (5)

        Trow=(Tr-1)×S+Ky

        (6)

        將代碼中Block compute展開如圖4所示。每次讀取TN張輸入特征層的Trow×Tcol小的像素塊,循環(huán)N/TN次遍歷完輸入特征所有通道。每次讀取TM個TN×Ky×Kx大小的權重參數,循環(huán)N/TN次遍歷完對應輸入特征所有通道的權重參數。輸入特征存儲子塊乒乓讀取特征輸入數據,輸入權重存儲子塊乒乓讀取卷積核權重數據,每次計算完的結果累加到輸出特征存儲子塊中。每次計算都會得到TM張Tr×Tc大小的特征存入輸出特征緩存中,下一次的結果與這一次的累加,累加N/TN次后得到最終累加結果。這便完成圖3中一次Read DDR & Compute操作,輸出特征緩存中累加的數據在下一個時鐘的Write DDR操作寫入外部存儲。

        圖4 特征子塊運算

        下面分別對各個模塊的設計進行介紹。

        3.1 特征輸入模塊

        特征輸入模塊負責將DDR中的特征數據讀入片上緩存,采取相鄰特征層多位寬合并的傳輸策略,將TN個相鄰層的16 bit定點數特征值進行合并,如圖5(a)所示將特征在內存中重新排列后,數據長度變?yōu)?6×TNbit,這樣一次讀操作可以從DDR中同時讀取TN個特征值,減少訪存次數,充分利用AXI總線帶寬。但由于片上存儲空間的限制無法將輸入特征數據一次性全部讀入片上緩存中,只能對輸入特征分塊的方式進行讀取,即每次讀取TN張Tcol×Trow大小的特征子塊到片上緩存。

        為進一步減少數據讀寫所消耗的時間,使用兩個行緩存進行乒乓操作。將特征輸入過程分為兩個過程,第一步先計算出外部存儲起始地址、片上緩存地址,并將特征拷貝到行緩存中。第二步將行緩存中的特征數據拷貝到相應的片上內部緩存。如圖5(b)所示,雙緩存設計使得這兩部分操作延時相互重疊,減少數據的傳輸時延。

        因為行緩存占用的存儲空間較小,因此使用LUT RAM作為輸入特征數據行緩存。輸入行緩存使用LUT構成片上RAM,所消耗的片上存儲資源如下

        (7)

        其中行緩存大小需要滿足SizeIn≥Tcol,Bitwidth為單個數據寬度為16 bit。LUT支持一次性1 bit或2 bit讀寫,因此存儲一個16 bit數據需要消耗8個LUT,32為LUT深度。

        輸入特征緩存區(qū)所消耗的BRAM資源計算公式為

        (8)

        COneBRAM表示單個片上BRAM的存儲容量18 Kb。

        圖5 特征在內存中排布和讀取時序

        3.2 權重輸入模塊

        與特征輸入模塊設計相同,權重輸入模塊的工作是將DDR中的權重數據搬運到片上緩存。如圖6(a)所示權重數據也按照相鄰層位寬合并原則將相鄰層合并成為一個權重子塊,N為輸入特征通道數,M為卷積核個數,TM為片上緩存能儲存的最大卷積核個數。為了與輸入特征子塊對應需要先將0~TM-1卷積核的第一層特征子塊傳入片上緩存然后進行計算,再將0~TM-1卷積核的第二層特征子塊傳入片上緩存進行計算,直到0~TM-1卷積核所有層計算完成后再將TM~2×TM-1的卷積核讀入片上緩存,以此類推。

        圖6 權重在內存中的排布和讀取時序

        為了進一步增加AXI總線數據傳輸時的突發(fā)長度,減少突發(fā)次數,需要對權重在內存中進行重新排布,將Kx,Ky,N,M的優(yōu)先順序排布方式改為以N,M,Kx,Ky的優(yōu)先順序排布。以這樣的方式完成一次內部緩存數據的寫入總共需要Kx×Ky次突發(fā)傳輸,每次突發(fā)長度為TM。而排布前需要TM次突發(fā)傳輸,每次突發(fā)長度為Kx×Ky。以TM=24,Kx=Ky=3為例,排布后需要讀取9次長度為24的數據。而排布前需要讀取24次長度為9的數據。

        在權重輸入模塊中同樣也使用了乒乓操作,使用兩個行緩存交替的讀取DDR中數據,并交替的將行緩存中的數據存入片上權重緩存,使得從DDR中讀取數據寫入行緩存的時延與從行緩存中讀取數據寫入片上權重緩存的時延相重疊,如圖6(b)所示。

        權重輸入行緩存所消耗的片上LUT資源計算公式如下

        (9)

        其中行緩存大小需要滿足SizeWeight≥TM。

        輸入權重參數緩存區(qū)消耗的BRAM資源的計算公式為

        (10)

        由于偏置參數所占用內存較少,因此通過AXI接口將偏置參數一次性導入內部緩存中,不需要消耗行緩存資源。

        3.3 運算模塊

        運算模塊包含卷積計算和池化計算,卷積計算使用的乘累加運算需要消耗大量的DSP和LUT資源[8]。池化計算使用的比較器、多路選擇器等主要消耗的是LUT資源,且資源消耗較少。

        圖7 卷積運算

        本文設計中卷積計算中乘法器主要使用DSP資源實現(xiàn),加法器使用LUT資源來實現(xiàn)。在輸入特征通道數為TN,輸出特征通道數為TM,16bit數據精度情況下,實現(xiàn)卷積計算中加法器和乘法器所消耗的DSP、LUT資源計算公式如下

        NDSP=TM×TN×NMulDSP

        (11)

        NLUT=TM×TN×(NMulLUT+NAddLUT)+TM×NSelectLUT

        (12)

        其中,16 bit精度下單個乘法器消耗的資源NMulDSP=1、NMulLUT=101,單個加法器消耗的資源NAddLUT=47,2選1選擇器消耗的資源NSelectLUT=8。

        最大池化模塊功能是對每個輸入特征層以Kx×Ky大小的窗口進行滑動,取窗口中的最大值作為輸出特征層對應位置的特征值。圖8最大池化模塊采取TN個并行比較器,對輸入特征緩存中TN個輸入特征通道同時進行比較運算。每個時鐘周期輸入TN個特征值,分別與各自當前最大值進行比較,比較Kx×Ky次后得到的最大值作為輸出特征值寫到特征輸出緩存中。

        池化運算所使用的16 bit比較器需要消耗LUT資源NComLUT=16,寄存器需要消耗LUT資源NRegLUT=1。因此池化運算消耗的資源為

        NLUT=TN×(NComLUT+NRegLUT+NSelectLUT)

        (13)

        3.4 特征輸出模塊

        特征輸出模塊負責將片上緩存中的計算結果寫入外部存儲器DDR。與輸入模塊相同,對計算后的結果進行多位寬合并。且考慮到AXI接口的讀寫通道相互獨立,讀寫操作能夠同時進行,為充分利用寫通道,采用多通道并行傳輸的策略。將特征輸出片上緩存按照特征通道方向TM維度劃分為3個部分,分別通過3個AXI接口寫通道并行傳輸。

        圖8 池化運算

        如圖9所示,對每個AXI寫通道都配備2個行緩存進行乒乓操作,使得偏移地址的計算、特征讀入行緩存的時延與行緩存寫入外部DDR的時延相重疊。

        圖9 特征輸出時序

        輸出行緩存所消耗的片上LUT資源計算公式如下

        (14)

        其中行緩存大小需要滿足SizeOut≥Tc。

        輸出特征緩存區(qū)消耗的BRAM資源計算公式為

        (15)

        輸出特征緩存區(qū)需要保存卷積運算16 bit乘累加操作后的中間結果,因此輸出特征緩存區(qū)的位寬設置為40 bit,避免數據溢出,BitwidthInter表示40 bit。需要由兩塊36 bit位寬BRAM組成,因此公式中乘以2。

        4 實驗結果分析

        4.1 實驗環(huán)境

        實驗中使用的平臺為Xilinx PYNQ-Z2,內部資源包含650 MHz雙核Cortex-A9處理器和Artix-7系列可編程邏輯器件。片上擁有4個高性能AXI從端口DDR3內存控制器,630 KB的快速Block RAM,220個DSP資源,53 200個LUT單元。

        使用Vivado HLS 2018.3工具進行卷積神經網絡加速器的設計,完成軟硬件協(xié)同仿真后生成IP核,使用Vivado 2018.3添加約束進行綜合以及布局布線,得到資源使用情況和時序分析報告。

        所部署的CNN模型為YOLOv2和YOLO-Tiny(416*416)。在GPU平臺上進行訓練得到模型的權重參數。加速器中使用的具體參數如下:卷積層的輸出并行度TM=24,輸入并行度TN=8,輸出特征緩存的寬高Tr=Tc=13,S=2,Kx=Ky=3。

        4.2 實驗結果與分析

        根據具體參數和資源消耗計算公式,對資源消耗量進行估計。乘法器主要用于卷積模塊的運算,按照式(9)計算得到消耗192個DSP,與表1中實際消耗量對比,實際中還有部分DSP用于計算地址的偏移等運算。根據式(10)和式(11)可計算出運算模塊消耗LUT資源為28 808,根據式(7)、式(9)、式(14)可計算出行緩存消耗的LUT資源為640。其余LUT用于其它模塊的計算。BRAM資源主要用于的片上緩存以及AXI接口緩存的實現(xiàn)。根據式(8)、式(10)、式(15)計算可得輸入特征緩存消耗為(1×8×2),輸出特征緩存消耗為(2×24×2),輸入權重緩存為(1×24×2),偏置緩存為1,AXI接口緩存3×2。因此計算得共消耗177個BRAM_18K,即83.5個BRAM_36K接近實際消耗個數。

        表1 FPGA資源消耗

        加速器的資源消耗情況見表1,在使用相同Zynq7020平臺的條件下,相比于文獻[9],本文的方法更加充分的使用了片上的DSP資源,使用率達到94%,并且節(jié)省了HP接口的使用。

        本文使用的方法與之前的工作相比也取得了更好的性能。見表2,文獻[9]使用多個通道進行數據傳輸,但每個通道只傳輸16 bit數據,數據的傳輸受到通道數量的限制。文獻[10]中的時鐘頻率很高,但是運算模塊中卷積和全連接計算采用不同設計,資源利用率較低。由于本文采用了多位寬合并的方法,減少通道數的同時,增加了計算單元的并行度,因此提高了運算性能。

        表2 與其它FPGA平臺比較

        同時,對比YOLOv2在Xeon CPU上的計算性能4.11 GOP/s,和雙核ARM-A9上的性能0.27 GOP/s,本文的設計性能有很大的提升。與intel i5-2400 CPU性能相比是其3.4倍,是ARM-Cortex A9 CPU的147.5倍,且在計算功耗上占有很大的優(yōu)勢,能夠實現(xiàn)在低功耗場景下的高性能計算,具體性能參數見表3。

        表3 與其它CPU平臺比較

        使用測試集中的圖片進行檢測,得到的檢測效果如圖10所示。

        圖10 檢測效果

        5 結束語

        本文設計并實現(xiàn)了一種CNN硬件加速器,利用乒乓緩存、參數重排、相鄰層數據合并及多通道傳輸等策略減少數據傳輸時延。對卷積計算進行分解,利用并行計算、參數復用等策略減少計算時延。并對加速器的資源消耗進行分析和估計。在PYNQ-Z2平臺上進行部署,實現(xiàn)了94%的DSP資源利用率、計算性能達到39.39 GOP/s。通過與CPU平臺及相同F(xiàn)PGA平臺上的比較,本文的設計有著更低的功耗、更高的計算性能和FPGA資源利用率。

        猜你喜歡
        特征資源
        抓住特征巧觀察
        讓有限的“資源”更有效
        基礎教育資源展示
        新型冠狀病毒及其流行病學特征認識
        一樣的資源,不一樣的收獲
        如何表達“特征”
        不忠誠的四個特征
        當代陜西(2019年10期)2019-06-03 10:12:04
        資源回收
        抓住特征巧觀察
        資源再生 歡迎訂閱
        資源再生(2017年3期)2017-06-01 12:20:59
        国产亚洲精品第一综合另类| 日本一区二区三本视频在线观看| 一区=区三区国产视频| 人妻免费一区二区三区免费| 狠狠色婷婷久久综合频道日韩 | 日本高清色一区二区三区| 寂寞人妻渴望被中出中文字幕| 又粗又粗又黄又硬又深色的| 极品美女高潮喷白浆视频| 日本一区二区高清视频在线| 不卡的av网站在线观看| 亚洲色丰满少妇高潮18p| 中文字幕巨乱亚洲| 在线久草视频免费播放| 小雪好紧好滑好湿好爽视频| 色欲av亚洲一区无码少妇| 国产精品98福利小视频| 亚洲禁区一区二区三区天美| 极品白嫩的小少妇| 久久精品久久精品中文字幕| 亚洲精品一区二区三区av| 蜜桃视频在线观看免费亚洲| 午夜无码国产理论在线| 久久中文字幕久久久久| 亚洲熟女熟妇另类中文| 无码人妻丰满熟妇啪啪网站| 国产毛片网| 国产噜噜亚洲av一二三区| av无码精品一区二区三区| 国产无遮挡又黄又爽又色| 久久久精品2019免费观看| 狼人伊人影院在线观看国产| 无码国模国产在线观看| 久久久精品电影| 国产成人精品一区二区三区av | 激情五月开心五月啪啪| 精品久久久久久无码人妻蜜桃| 五月婷一本到五月天| 国产噜噜亚洲av一二三区| 噜噜综合亚洲av中文无码| 白嫩少妇激情无码|