999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

規則壓縮模型和靈活架構的Transformer加速器設計

2024-04-11 07:29:54姜小波鄧晗珂莫志杰黎紅源
電子與信息學報 2024年3期
關鍵詞:模型

姜小波 鄧晗珂 莫志杰 黎紅源

①(華南理工大學電子與信息學院 廣州 510000)

②(廣東科學技術職業學院機器人學院 珠海 519090)

1 引言

自然語言處理(Natural Language Processing,NLP)技術在人工智能(Artificial Intelligence, AI)領域具有重要地位和作用,賦予機器從不同結構的文本中獲取和處理知識與信息的能力,并且能夠與人進行交互,被廣泛應用于機器翻譯、情感分析和聊天機器人等場景。隨著深度學習的發展,各種用于NLP的模型層出不窮,近期基于自注意力機制的Transformer[1]模型及其變體在各種NLP任務上顯示了優越的性能[2-6],遠超傳統的基于卷積神經網絡(Convolutional Neural Network, CNN)[7]和遞歸神經網絡(Recurrent Neural Network, RNN)[8]的模型。但硬件的發展遠遠落后于模型的發展,限制了Transformer自然語言處理模型的發展和應用。

Transformer卓越的性能是由復雜的模型帶來的。模型的復雜包括數量上的復雜和結構上的復雜。數量上的復雜性包括模型參數量與運算量的爆炸增長。參數和計算復雜度的指數級增長給Transformer的硬件設計帶來了巨大的挑戰。對硬件設計更大的挑戰是模型結構上的復雜性,表現為參數和計算分布上的不規則性。這種不規則性帶來了模型和硬件的不匹配,包括模型復雜運算和規則運算陣列的不匹配;模型分布式參數和硬件集中式存儲器的不匹配;復雜模型運算過程的參數不均衡性和硬件固定的不匹配。這些不匹配降低了Transformer模型映射到加速器的性能和效率。當前研究更多地集中在解決模型數量上的復雜性,對結構上的復雜性,研究得比較少。

Transformer模型具有數量上的復雜性,包含海量的參數和運算,而且具有很大的冗余性?,F有研究通過模型壓縮減少模型規模。Voita等人[9]使用頭部剪枝,計算每個注意頭的重要性分數,然后修剪分數較低的注意力頭。Lin等人[10]將模型中的殘差模塊懲罰到同一映射,通過閾值算子來識別和丟棄殘差連接中不重要的非線性映射。Peng等人[11]提出了一種列平衡塊權重修剪算法,在每個權重矩陣的列中進行分塊剪枝。這些研究有效地減少了參數和運算量。但對于模型結構方面的復雜性,研究得比較少。而這恰恰是Transformer模型加速器設計的關鍵。

由于模型中不同權重矩陣的稀疏性和計算模式不一致導致映射到規則的運算架構和集中式存儲架構時效率不高。如Peng等人[11]和Qi等人[12]使用的稀疏模型,其各行列非零元素的隨機性及剪枝率不同導致的計算量不一樣,映射到同一運算陣列造成的處理單元(Processing Unit, PE)停頓降低了PE利用率。Li等人[13]使用的異構運算陣列由于其運算單元的多樣化、固定的硬件資源分配及復雜性更高的傅里葉變換運算,PE利用率不高且增加了PE單位運算功耗和額外的控制開銷。Zhang等人[14]使用乘加分離的運算架構映射外積數據流,可以減少中間結果存儲但是乘加運算量不一致導致運算陣列停頓。Park等人[15]使用的不規則稀疏導致負載不均衡,并且復雜的索引匹配導致過多的存儲開銷和功耗。存儲架構的設計同樣影響著芯片的性能,文獻[11-14]的運算陣列與片上總緩存模塊直接交互,中間結果的移動距離較大導致單位數據移動功耗增加,集中式的片上緩存管理由于運算陣列與存儲單元的遠距離交互使得數據的單位讀寫功耗相對較高。目前的加速器架構一般采用集中式的存儲架構,而人腦中的神經元采用完全分布式的參數存儲模式,獲得了很高的運算效率和能效。

本文通過降低模型結構上的復雜度,提高硬件的靈活性,從而降低模型和硬件上的失配,提高模型到硬件上的映射效率。本文提出一種規則的模型壓縮方法,采用規則的偏移對角矩陣的權重剪枝方案。同時提出一種靈活的脈動運算陣列,在獲得更高的數據復用率的同時減少普通脈動陣列具有的陣列間數據移動開銷。本運算陣列對提出的偏移對角矩陣能進行高效的映射,極大減少索引開銷的同時平衡了計算負載和提高了數據復用率。本文受人腦神經元完全分布式存儲參數啟發,提出一種準分布的存儲架構,提高存儲效率的同時大幅度降低了權重數據搬運。

2 模型壓縮

本文在Transformer模型壓縮領域首次提出基于偏移對角矩陣的權重剪枝方案,得到的權重從整體到局部都具有規則化特點,在高壓縮率的同時保持硬件實現時運算陣列層面的整體規則性以及運算單元的局部規則性高效映射,同時便于準分布存儲架構的數據存取,可以實現高資源利用和低索引開銷的高效部署。剪枝后的模型采用硬件友好的量化方法,簡化硬件量化推理邏輯,在硬件中通過移位操作代替浮點乘法。為了減少精度損失,提出一種針對Transformer模型量化系數聯合調整方法。模型壓縮包括剪枝和量化兩個步驟。

2.1 剪枝

偏移對角矩陣是一種非零值分布在對角線或者是偏移后的對角線上的結構化規則稀疏矩陣,如圖1所示。根據Deng等人[16]在CNN模型中的研究中得到了偏移對角矩陣神經網絡的存在性,并且證明了偏移對角矩陣神經網絡具有和普通神經網絡一樣的通用逼近性質,從理論上說明了使用偏移對角矩陣進行模型剪枝的可行性?;谝陨瞎ぷ?,本文將模型中的權重矩陣分為多個子矩陣并基于偏移對角矩陣進行結構化剪枝,可以得到整體和局部非零值規則分布的稀疏矩陣。鑒于Transformer模型參數的復雜性,為達成結構化剪枝的目的和減少模型精度損失,本文的方法盡可能維持了原權重參數分布特點,對訓練好的模型中的參數使用偏移對角矩陣進行剪枝,如圖2所示。

圖1 偏移對角矩陣

圖2 偏移對角剪枝

將總體的權重數據分為4類,包括:多頭注意力輸入線性層權重(Q,K,V)、多頭注意力輸出線性層權重(O)、前饋神經網絡第1層線性層權重(FFN1)和第2層線性層權重(FFN2)。隨后對分類的權重進行剪枝,遵循“訓練-剪枝-再訓練”和分批剪枝相結合的策略。在剪枝訓練過程中,每次分批剪枝只剪枝一類權重,并且每批權重剪枝后獲取下批權重的剪枝偏移量,這種策略可以更好地獲取最佳的偏移,避免一次性剪枝大量參數所帶來的性能大幅下降。剪枝流程如算法1所示,算法輸入為剪枝前的模型,輸出為剪枝后的模型,偽代碼第3行對模型進行訓練,第4行使用GetOffset算法獲取Q,K,V權重矩陣的偏移量,第5行使用Prune算法對Q,K,V權重矩陣進行剪枝,以此類推后續代碼中按順序依次獲取模型中權重矩陣O, FFN1, FFN2的偏移量,完成模型的偏移對角結構化稀疏剪枝。再訓練的目的是減少精度損失,使模型進行自適應微調。

算法1 單位偏移對角剪枝

在剪枝步驟中,GetOffset根據權重的數據分布特點和偏移對角矩陣的子矩陣大小獲取用于剪枝的偏移量,將權重矩陣分為多個子矩陣,每一個子矩陣單獨計算偏移量,如式(1)所示,其中p為偏移量,xi,j為子矩陣中的元素。Prune根據偏移量以及子矩陣大小將分布在非偏移后的對角線的權重進行屏蔽,將值設置為0且在訓練過程中不進行參數更新。為了避免剪枝后的多頭注意力層內部相似度計算差異度不明顯,導致注意力性能下降,本文在剪枝多注意力層的訓練微調過程中取消多頭注意力計算的縮放操作,以此擴大注意力計算結果的差異性,在實驗中發現這樣得到更高的BLEU分數。

2.2 量化

由于訓練后的模型參數數據分布大致以0對稱,本文使用了均勻對稱量化對訓練后的模型進行了8 bit量化。為了減少量化和去量化操作帶來的額外的硬件資源和硬件功耗,本文將這些量化系數簡化為2-n的形式,在硬件中通過移位操作代替浮點乘法。為了減少精度損失,提出一種針對Transformer模型量化系數聯合調整方法。以注意力層為例,注意力層的第1部分包含查詢向量的線性層計算、鍵向量的線性層計算和兩個線性層結果的點積計算。為了保持softmax函數的輸入數據的原始度,通過對線性層的參數進行聯合調整

其中,q表示查詢向量,k表示鍵向量,Q和K分別表示查詢向量線性層的輸出和鍵向量線性層的輸出,Wq和Wk分別表示查詢向量線性層和鍵向量線性層的權重,bq和bk分別表示查詢向量線性層和鍵向量線性層的偏置。γ表示縮放系數,γ的值取決于量化帶來的量化誤差最小。

為了計算層歸一化,在推理過程中需要計算輸入樣本數據的均值和標準差。在非通用計算平臺的實現這些計算是復雜的,可能會成為硬件實現的延遲瓶頸。Wu等人[17]提出使用更加簡化的L1范數來代替批量歸一化中L2范數,本文將其運用到Transformer模型中的層歸一化計算,實驗證明不會對模型性能產生影響,如式(5)所示

其中,μd對應輸入所在詞向量維度的均值,CL1是一個歸一化常數,取值√(π/2),xi是輸入所在詞向量,n在這里表示詞向量的維度,α和β是與L2范數的層歸一化相同的可訓練參數??梢钥闯觯琇1范數消除了平方和運算和開平方運算,降低了計算復雜度。

3 硬件架構設計

3.1 加速器整體架構設計模型

本文通過模型壓縮大大減少了模型的儲存消耗,但是壓縮后的模型無法直接全部存儲在片上緩存中,所以需要與片外動態隨機存儲器 (Dynamic RAM, DRAM)進行數據交互。如圖3所示,總體硬件架構包括控制模塊、片上緩存、運算陣列和非線性計算模塊。片上緩存包括了輸入緩存、權重緩存和中間結果/輸出緩存,片上緩存采用乒乓操作用于支持數據的連續處理。加速器的整體數據流如圖4所示,一個注意力子層或一層前饋神經網絡的權重數據為單批讀取權重大小,在計算過程中同步加載下一批權重數據。通過網絡層順序加載權重數據,并且將層間計算結果存儲在片上用于下一子層計算,這樣可以減少與片外DRAM交互次數。本文對注意力層的計算順序進行了優化,讓Softmax函數計算與矩陣乘加計算同步進行,可以減少計算等待時間。通過這種任務級調度,整個系統更高效地加速Transformer模型中的所有網絡層計算。

圖3 所提出的加速器總體硬件架構

圖4 加速器整體數據流

3.2 準分布式存儲架構

為了減少運算單元與存儲單元的數據傳輸成本,包括了長距離傳輸導致的功耗和復雜的地址生成讀寫成本,本文使用了準分布式存儲架構。在人腦神經元中,每個神經元都可以對電信號進行處理和存儲,并將處理結果傳遞給與之相連的神經元,每個神經元分別對數據進行存和算,神經元之間以分布式方式相連,通過這種分布式互聯完成神經元間的數據交互,是完全分布式架構。本文參考人腦神經元的分布式結構,以PE和本地寄存器(RF)模擬每個神經元的存儲和計算,PE之間以分布式進行連接模擬神經元之間的分布式連接,PE陣列外使用FIFO, BRAM, DRAM等多級存儲降低數據傳輸開銷,總體架構為準分布式存儲架構。

如圖5所示,整個存儲架構包括了PE本地寄存器、運算陣列內部緩存(FIFO)、片上全局緩存(BRAM)和片外DRAM等具有不同訪問代價的多級存儲層次。訪問代價最低的PE內部的RF作為一個基本單元點,數據可以在各個基本單元點之間進行橫向以及縱向的傳遞,從而將計算過程中數據固有的移動次數最大比例地放在訪問開銷最小的RF存儲層級,最大限度消耗由上級存儲寫入的數據,降低移動功耗。從BRAM中讀入運算數據時,將整個運算陣列看作一個整體進行數據輸入,運算陣列內的基本單元點以分布式方式進行數據交互,輸入數據在基本單元點中進行點與點之間的傳遞,實現輸入、權重以及輸出3個維度的數據復用。整個存儲架構以準分布式的方式進行數據交互。

圖5 準分布式存儲架構示意圖

相對于運算陣列來說,本地緩存可以存儲矩陣計算的部分和結果,相比于將其存儲在全局緩存,加法單元可以更快和更近獲取部分和結果。另外,在計算非線性函數時,這種準分布存儲架構還可以避免中間結果數據的重復讀取以及減少重復計算,有利于加快推理速度。

3.3 運算陣列設計

如圖3,運算陣列由PE和加法單元組成,每列PE共用一個加法單元。PE用于處理矩陣乘法,加法單元用于處理PE的結果相加以及部分和累加,可以根據實際推理需求進行拓展。剪枝后的偏移對角矩陣在整體上的規則性,即子矩陣的大小與排列都是規則的,可以100%高效映射到規則的運算陣列中。運算陣列內部采用權重固定的數據流方案,如圖6所示,輸入和權重分別以行形式和稀疏塊形式送入運算單元,這樣能夠減少由于不同輸入句子長度以及編解碼器不同計算模式帶來的運算陣列計算效率低下的問題。輸入數據每個周期向右傳輸,實現輸入復用,而數據規模最大的權重數據只需從運算陣列外讀取1次。輸出每個周期在加法單元內部進行逐周期累加,實現輸出復用。

圖6 運算單元數據流動方案

3.4 計算單元設計

計算單元包括PE和加法單元,每個PE包括乘法單元和RF存儲單元,作為規則的分布式基本點,可以100%高效映射偏移對角矩陣的局部性,即單個子矩陣的行列維度以及非零值的規則分布。每個PE中包括16個乘法器和1個數據分配器,如圖7所示,數據分配器的作用是根據偏移量對輸入數據進行重新排列,保證輸入數據和所對應的非零值權重數據相乘。無需在PE外進行稀疏解碼,同時不用對部分和輸出或計算結果進行地址索引,如圖8所示。加法單元負責將所在列PE產生的部分和結果或者偏置數據進行加法運算,如圖9所示,每個加法單元內部配備用于緩存部分和結果的本地緩存,縮短了部分和的數據移動距離,dense_en信號通過控制加法單元的數據源進行密集和稀疏數據通路的切換,加法單元支持激活函數ReLU。

圖7 PE內部結構

圖8 運算單元內數據

圖9 加法單元

3.5 高效權重數據存儲格式

為了進一步減少存儲成本,本文對硬件中的權重數據存儲格式進行了優化。根據前文分析,運算陣列采取權重固定的數據復用模式,所以將偏移量索引與權重數據進行同步存取,可以減少偏移量索引的讀取次數。如圖10所示,對偏移對角權重矩陣進行向上壓縮,保留了非零數據的列索引信息,根據偏移量可以得到行索引。另外,每個子矩陣塊共用1個偏移量,可以大幅降低索引成本。這種強規則性的存儲格式在準分布式存儲架構上實現了存儲資源的最大化利用,避免了數據存儲長度的不同映射到規則的存儲單元中帶來存儲資源浪費的問題。表1對比了現有稀疏矩陣存儲格式的存儲代價,其中稀疏矩陣大小為[800,800],稀疏度為50%??梢钥闯?,本文的稀疏權重數據存儲代價最低,具有最高的存儲效率。因為每個偏移對角子矩陣中每列只有一個非零數據,這樣保證了硬件加速器中的運算單元處理相同數量的非零數據,避免了稀疏剪枝可能帶來的運算單元負載不均衡問題。

表1 稀疏矩陣格式存儲代價對比

圖10 偏移對角矩陣稀疏權重存儲方案

4 實驗與討論

4.1 模型壓縮實驗

4.1.1 模型壓縮實驗結果

在本節實驗中,使用的數據集為IWSLT-2014英語(En)-德語(De)互譯數據集,以BLEU分數作為性能指標。BLEU是一種用于自動評估機器翻譯結果質量的指標,通過比較機器翻譯結果與參考答案之間的相似度來度量翻譯質量,是機器翻譯領域最常用的評估指標之一。Transformer模型的參數設置見表2,剪枝實驗基于前文中提出的偏移對角矩陣剪枝方法,對Transformer模型中的權重數據分類后進行分批剪枝。

表2 Transformer參數設置

子矩陣大小的倒數為壓縮后的參數量與壓縮前的參數量之比,如子矩陣為4時壓縮后的參數量為壓縮前的1/4,此時壓縮率為75%。在實際應用中,模型壓縮率通常在50%以上且盡可能大,才能保證模型的輕量化以便降低實際應用中的推理功耗和延遲,但模型壓縮率增大的同時其推理性能也在下降,需要找到一個最佳的平衡,本文從實際應用角度以及易于硬件實現的角度出發,使用大小分別為4和8的子矩陣進行剪枝實驗,即壓縮率分別為75%和87.5%,子矩陣大小為2的指數便于硬件設計的規則化實現,實驗結果如表3-表5所示。首先對Transformer進行訓練獲取了基準模型以及BLEU分數(En-De為28.5,De-En為34.5)。在IWSLT-2014數據集的德英翻譯任務中,子矩陣大小為4時,結合硬件友好的量化推理方法,將原始模型參數的32 bit浮點表示量化為8 bit整型表示,即在剪枝完成了75%的模型壓縮基礎上將模型再量化壓縮75%,最終的參數量壓縮率可以達到93.75%,精度損失小于1%,如表5所示。精度損失會造成翻譯質量的下降,如語法語義等表達變差,BLEU分數表征的是翻譯結果與參考答案的相似度,精度損失多少對翻譯任務來說是可接受的并沒有一個具體數值定義,但原始Transformer模型的BELU分數較優,翻譯質量好,壓縮后的模型相比原模型損失1%以內的精度可以認為是對翻譯質量沒有影響。

表3 Transformer模型(base)實驗結果

表4 Transformer模型剪枝實驗結果

表5 剪枝后的Transformer模型量化實驗結果

4.1.2 分批剪枝討論

IWSLT-2014的En-De和De-En翻譯任務的分批剪枝過程如圖11所示。對于該任務,采取算法1中的分批剪枝方案,可以發現注意力層的剪枝后的精度下降小于前饋神經網絡,說明在塊大小較小情況下采用偏移對角權重矩陣不會對注意力層的性能造成較大影響。而采用塊大小為8的子矩陣會導致每類權重剪枝后的精度損失更明顯,尤其是前饋神經網絡的第2層線性層。

圖11 分批剪枝過程的精度下降趨勢

4.1.3 與現有工作對比分析

本文的模型壓縮方法與現有研究工作的性能對比如表6所示,可以看出,在相同任務和數據集條件下,本文的壓縮率遠比文獻[24]高;與文獻[13,14,23]對比,在模型壓縮率相近的情況下本文的壓縮方法性能損失較小。

表6 算法結果對比(%)

4.2 加速器性能評估

4.2.1 加速器硬件資源消耗

本實驗的加速器設置輸入最大長度為64,執行批量大小為1的推理,在ZC706開發版上評估所提出的加速器。時鐘頻率為200 MHz,功率為14.0 W,資源利用率報告如表7所示。

表7 資源利用報告

4.2.2 加速器單層推理效率

由于進行翻譯任務時,模型的翻譯性能以及實際翻譯的目標語言的內容影響翻譯句子長度,這會改變解碼器的迭代時間。為了對比加速器的加速效果,對模型中編碼器和解碼器的子層計算延遲進行對比,如表8所示。其中,GPU為NVIDIA V100,MHA-RL包括多頭注意層、殘差連接和層歸一化,FFN-RL包括前饋神經網絡層、殘差連接和層歸一化。與GPU相比,本方案在計算MHA-RL和FFNRL時可以實現13.5倍和4.2倍的加速。與文獻[26]相比,本文實現的加速器在計算MHA-RL時的加速比例有所降低,但是在計算FFN-RL時的推理速度是文獻的1.24。另外,文獻[26]的運算陣列使用了4 096個乘法器,而本文僅使用了1 024個乘法器,所以本文的加速器具有更高的硬件資源效率。

表8 與其他計算平臺計算時間對比

4.2.3 加速器總體硬件性能對比

本文提出的Transformer加速器與現有研究工作的硬件性能對比如表9所示。其中傳統平臺性能對比中 CPU為Intel i7-8700K, GPU為NVIDIA 1080Ti,在計算過程中執行單批量推理,權重參數壓縮率為75%,計算性能為單批量執行句子長度為64的德英翻譯所得。與CPU相比,本文在FPGA實現的硬件加速器在計算性能、功耗和能效方面均有優勢,其中能效比為CPU的12.45倍。與GPU相比,計算性能略低于GPU,但是在功耗和能效方面都有優勢,其中能效比為GPU的4.17倍。

表9 加速器總體硬件性能對比

在與現有工作對比中,使用本文的加速器在75%壓縮率下處理了標準Transformer模型的推理,實現了8.4 ms的推理延遲,具體性能見表9。表中列出了現有先進工作中FPGA加速器的性能,其中文獻[26]采用的模型是6層編碼器,文獻[13]采用的模型是1層編碼器和1層解碼器,文獻[14,25,23]采用的模型是標準Transformer(6層編碼器和6層解碼器)。通過吞吐量與功耗之比計算FPGA的功耗效率來進行性能對比,以CPU的推理能效作為基準,由表9可以看出,本文的加速器表現出了較好的效率。如果文獻[13]采用標準Transformer進行推理,其等效能量效率為7.43,低于本文的12.5。因此,本文加速器的功耗效率明顯高于現有研究工作。

5 結論

針對Transformer模型在數量和結構上的復雜性帶來的加速器設計的困難,本文研究提高模型和規則硬件匹配度,提高模型和硬件的映射效率的方法。本文研究規則模型壓縮和靈活硬件架構,設計了高性能低功耗的Transformer加速器。本文提出的規則的模型壓縮算法,采用偏移矩陣剪枝算法和簡化硬件量化推理邏輯的全局量化方法,可以在精度損失小于1%的情況下將模型壓縮93.75%,并具有良好的規則性。本文提出了一個靈活的硬件架構,包括一種以塊為單元的權重固定的脈動運算陣列,同時參考人腦神經元結構提出一種準分布的存儲架構。獲得了100%的算法映射效率,提高了參數存儲效率,大幅度降低了數據移動功耗。在FPGA上實現的加速器,相比于CPU和GPU能效分別提高了12.45倍和4.17倍。

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 精品无码一区二区三区电影| 久久香蕉欧美精品| 欧美成人一级| 亚洲欧美国产高清va在线播放| 亚洲乱强伦| 色偷偷av男人的天堂不卡| 久久美女精品国产精品亚洲| 欧美专区日韩专区| 国产精品福利一区二区久久| 国产成人欧美| 欧美性色综合网| 亚洲成人精品在线| 男人天堂伊人网| 另类专区亚洲| 一级毛片中文字幕| 色综合热无码热国产| 尤物在线观看乱码| 日本91在线| 尤物视频一区| 中文字幕免费在线视频| 免费在线一区| 欧洲亚洲一区| 欧美午夜在线观看| 黄色网址免费在线| 国产成人喷潮在线观看| 欧美日本在线观看| 国产美女无遮挡免费视频网站| 久夜色精品国产噜噜| 无码区日韩专区免费系列 | 中文无码伦av中文字幕| 欧美成在线视频| 极品私人尤物在线精品首页| 国产真实自在自线免费精品| 日韩二区三区无| 夜夜拍夜夜爽| 成人午夜天| 播五月综合| 国产成本人片免费a∨短片| 国产视频自拍一区| 亚洲成人精品| 40岁成熟女人牲交片免费| 亚洲高清无码久久久| 亚洲欧美h| 欧美啪啪网| 午夜爽爽视频| 国产导航在线| 国模极品一区二区三区| 国产日韩AV高潮在线| 日本人妻一区二区三区不卡影院| 欧美亚洲综合免费精品高清在线观看| 中文字幕1区2区| 欧美黑人欧美精品刺激| 一本大道东京热无码av| 精品国产污污免费网站| 2019年国产精品自拍不卡| 99成人在线观看| 久久精品中文字幕免费| 韩国福利一区| 欧美国产日产一区二区| 91视频青青草| 韩国福利一区| 狠狠色成人综合首页| jizz在线观看| a级免费视频| 色悠久久久| 伊人久热这里只有精品视频99| 国产美女无遮挡免费视频网站| 亚洲色图综合在线| 日韩一级二级三级| 日韩av资源在线| 人妻无码一区二区视频| 亚洲人成在线精品| 国产精品亚洲天堂| 日韩精品欧美国产在线| 亚洲欧美色中文字幕| 亚洲精品桃花岛av在线| 国产午夜精品一区二区三区软件| 久久综合一个色综合网| 91蜜芽尤物福利在线观看| 日韩欧美网址| 找国产毛片看| 欧美日韩国产成人在线观看|