国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

曠視MegEngine TensorCore 卷積算子實(shí)現(xiàn)原理

共 9124字,需瀏覽 19分鐘

 ·

2021-05-29 08:58

點(diǎn)擊下方卡片,關(guān)注“CVer”公眾號

AI/CV重磅干貨,第一時(shí)間送達(dá)

前言

2020年5月Nvidia發(fā)布了新一代的GPU架構(gòu)安培(Ampere)。其中和深度學(xué)習(xí)關(guān)系最密切的莫過于性能強(qiáng)勁的第三代的TensorCore,新一代的TensorCore支持了更為豐富的DL(Deep Learning)數(shù)據(jù)類型,包括了新的TesorFloat-32(TF32),Bfloat16(BF16)計(jì)算單元以及INT8,INT4和INT1的計(jì)算單元,這些計(jì)算單元為DL推理提供了全面的支持。


為了發(fā)揮這些計(jì)算單元的能力,以往會(huì)由資深的HPC工程師手寫GPU匯編實(shí)現(xiàn)的卷積、矩陣乘算子來挖掘硬件的能力。然而憑借人力手工優(yōu)化算子的方式已經(jīng)沒有辦法應(yīng)對如此多的數(shù)據(jù)類型,因此對于DL應(yīng)用的優(yōu)化漸漸地越來越依賴一些自動(dòng)化的工具,例如面向深度學(xué)習(xí)領(lǐng)域的編譯器。


在這樣的趨勢下,Nvidia開發(fā)了線性代數(shù)模板庫CUTLASS,抽象了一系列高性能的基本組件,可以用于生成各種數(shù)據(jù)類型,各種計(jì)算單元的卷積、矩陣乘算子。MegEngine在CUTLASS的基礎(chǔ)上進(jìn)行了二次開發(fā),可以高效地開發(fā)新的高性能的算子,快速地遷移到新的GPU架構(gòu)。


在上一篇文章中,我們已經(jīng)簡單介紹了MegEngine的底層卷積算子實(shí)現(xiàn)的使用方法,而本文將會(huì)深入介紹MegEngine CUDA平臺的底層卷積算子的實(shí)現(xiàn)原理,并將會(huì)對Nvidia CUTLASS的Implicit GEMM卷積文檔進(jìn)行解讀和補(bǔ)充。


因此,讀者在閱讀本文之前必須要了解的CUDA知識有:


?訪問全局存儲(chǔ)(Global Memory)時(shí),同一Warp中的相鄰線程訪問連續(xù)的地址,訪存請求會(huì)被合并,合并的訪存能夠最大化Global Memory的吞吐。


?訪問Global Memory時(shí),盡可能使用最寬的數(shù)據(jù)類型(float4)進(jìn)行訪問,這樣可以最大化訪存指令的利用率。


?CUDA的共享存儲(chǔ)(Shared Memory)按照每 4Bytes劃分為一個(gè)bank,共分為32個(gè)bank。當(dāng)同一 Warp中的線程訪問同一bank的不同地址時(shí)會(huì)發(fā)生沖突(bank conflict)。無bank conflict的訪存模式才能最大化 Shared Memory 的吞吐。


?GPU有顯存(Global Memory)、L2、L1(Shared Memory)、寄存器 4 個(gè)層次的存儲(chǔ),直接訪問顯存的延遲很高,在優(yōu)化GEMM、Convolution這樣的計(jì)算密集型算子時(shí),需要

–通過 L1 和寄存器的緩存來減少Global Memory的訪存請求。

–通過大量的計(jì)算來隱藏不可避免的Global Memory訪存延遲。


首先,我們需要了解CUTLASS引入的一些抽象概念


?TileIterator:用于訪問存儲(chǔ)中的一個(gè)Tile的數(shù)據(jù)。TileIterator實(shí)現(xiàn)了advance()方法,支持在Matrix、Tensor等數(shù)據(jù)類型上進(jìn)行遍歷。


?Fragment:數(shù)組類型,用于存放TileIterator讀取進(jìn)來的數(shù)據(jù)。Fragment的數(shù)據(jù)通常存放在寄存器中。


然后我們簡單回顧一下CUTLASS設(shè)計(jì)的高性能的GEMM算子的Pipeline,按照Pipeline實(shí)現(xiàn)的算子能夠在CUDA平臺上達(dá)到cublas的90%以上的性能。下圖演示了CUTLASS設(shè)計(jì)的Pipeline化的GEMM算子:



1.圖中第一行演示了由PredicatedTileIteratorSmemTileIterator配合完成從Global MemoryShared Memory的數(shù)據(jù)搬運(yùn)。


2.第二行演示了WarpTileIterator負(fù)責(zé)從Shared Memory搬運(yùn)數(shù)據(jù)到Fragment寄存器中。


3.第三行展示了WarpMmaOperatorFragment寄存器中的矩陣數(shù)據(jù)執(zhí)行矩陣乘加 (Matrix-Multiply-Add) 操作。


Implicit GEMM 算法


卷積映射為矩陣乘法


我們首先來看一下前向卷積算子的定義,假設(shè)輸入的feature map是x,卷積層的weight是w,輸出是y,其中x,y,w都是4維的Tensor,x的四個(gè)維度分別是NxICxIHxIW,w的四個(gè)維度分別是OCxICxFHxFW,y的四個(gè)維度分別是NxOCxOHxOW。那么輸出y和輸入x,w的數(shù)學(xué)關(guān)系式可以寫成

公式里的小寫字母代表了Tensor在每一維的坐標(biāo),其中ih,iw和oh,ow,fh,fw的關(guān)系式可以寫為


這里的stride_h, stride_w, pad_h, pad_w是卷積層的參數(shù)。根據(jù)im2col算法的原理,公式里定義的卷積運(yùn)算可以轉(zhuǎn)化為一個(gè)矩陣乘法,也即


其中

?矩陣A由weight轉(zhuǎn)化而來,是一個(gè)OC X IC·FH·FW的矩陣。


?矩陣B由feature map轉(zhuǎn)化而來,是一個(gè)IC·FH·FW X N·OH·OW的矩陣


?矩陣C代表了輸出的Tensor y,是一個(gè)OC X N·OH·OW的矩陣。


矩陣和Tensor在各個(gè)位置上的元素的對應(yīng)關(guān)系為

其中矩陣的下標(biāo)i,j,k和Tensor的坐標(biāo)之間的關(guān)系為


當(dāng)j已知時(shí),可以用下面的關(guān)系式推算出feature map的坐標(biāo)


當(dāng)k已知時(shí),可以推算出weight的坐標(biāo)


同時(shí)結(jié)合oh,ow,fh,fw,就可以計(jì)算出ih和iw。


根據(jù)上面的討論,我們可以把卷積的運(yùn)算過程,寫成一個(gè)隱式矩陣乘法(Implicit GEMM)的形式:



上面的Implicit GEMM算法仍然是串行的形式,接下來我們要把它改造成CUDA上的并行算法。首先我們對整個(gè)計(jì)算任務(wù)進(jìn)行分塊,讓每個(gè)線程塊負(fù)責(zé)計(jì)算并輸出大小為TILE_MxTILE_N的矩陣。于是算法變成了下面的形式:



為了提高訪存的效率,我們可以在GEMM_K這一維上也進(jìn)行分塊,每次將TILE_MxTILE_K的矩陣A和TILE_KxTILE_N的矩陣B緩存到Shared Memory里,避免重復(fù)的Global Memory訪存。于是,算法就變成了如下形式:



因?yàn)槲覀兛梢灾苯訌?fù)用CUTLASS里已經(jīng)實(shí)現(xiàn)好了高性能的WarpMmaOperator,所以實(shí)現(xiàn)基于Implicit GEMM的卷積算子只需要


適配DeviceConvolution、KernelConvolution

和ThreadblockConvolution,支持傳入Tensor類型和Convolution Layer的參數(shù)。


? 添加PredicateTileIterator支持讀取Tensor的一個(gè) Tile 的數(shù)據(jù)到Shared Memory中,并隱式地將讀入的數(shù)據(jù)組織成矩陣的形式。


? 算法的main loop中直接調(diào)用WarpTileIterator從Shared Memory讀取數(shù)據(jù),然后由WarpGemmOperator完成Warp-level的GEMM運(yùn)算。


? EpilogueOperator適配卷積算子,將Accumulator的數(shù)據(jù)寫回Global Memory的Tensor中。


接下來我們會(huì)以INT8數(shù)據(jù)類型的TensorCore卷積算子來介紹MegEngine底層的卷積實(shí)現(xiàn),本文會(huì)重點(diǎn)介紹 2、3、4 是如何實(shí)現(xiàn)的,關(guān)于如何使用已經(jīng)寫好的卷積算子,可以參考之前的文章


Global Memory 數(shù)據(jù)布局(Layout)


為了最大化TensorCore類型的卷積算子的吞吐,MegEngine使用了128位的Global Memory訪存指令,因此在訪問Tensor的數(shù)據(jù)的時(shí)候要求地址滿足128位對齊。MegEngine使用了NCHW32的格式來存儲(chǔ)Tensor,NCHW32格式的特點(diǎn)為:


?Tensor的通道維度按照32個(gè)channel進(jìn)行分組,每 32個(gè)channel連續(xù)的存放在存儲(chǔ)中。


?Tensor的其余維度按照W、H、C、N的順序地址變化由快到慢的存放在存儲(chǔ)中。


由于采用了32個(gè)通道對齊的存儲(chǔ)格式,因此卷積layer要求輸入和輸出feature map的通道數(shù)都是32的倍數(shù)。


預(yù)處理訪存偏移量


MegEngine的卷積實(shí)現(xiàn)在GEMM_K的維度上是按照(IC/32)·FH·FW·32的順序累加,寫成偽代碼的形式如下:



如果寫成一層循環(huán),那么應(yīng)該寫成:



可以看到在迭代過程中,如果直接計(jì)算指針的偏移量的話,會(huì)引入很多除法和求余運(yùn)算。而在CUDA平臺上,整數(shù)的除法和求余的開銷是非常大的,因此我們將一些地址的偏移量在host端預(yù)先計(jì)算好,存到kernel param的buffer中,需要時(shí)從constant memory中直接讀取地址,避免除法和求余運(yùn)算。


對于每個(gè)線程來說,在主循環(huán)中指針移動(dòng)的offset如下圖所示:



如果地址的增量可以用delta來表示的話,那么delta是以FH*FW為周期的,即:



因此我們只需要大約O(FH·FW)的存儲(chǔ)空間。其中地址偏移量的計(jì)算邏輯可以參考代碼conv2d_tile_iterator_nt_src_fprop_precomp.h


由于kernel param buffer的大小為4KB,我們用了大約3KB來存儲(chǔ)地址的增量,所以MegEngine的卷積實(shí)現(xiàn)要求Convolution Layer的FH*FW的大小不能太大,但是一般情況下,3x3,5x5,7x7的卷積都可以處理。Nvidia官方實(shí)現(xiàn)的迭代順序與本文介紹的略有不同:


?官方實(shí)現(xiàn)需要將IC補(bǔ)齊為TILE_K的倍數(shù),這樣在通道數(shù)較小時(shí)會(huì)浪費(fèi)一些計(jì)算量。


?官方實(shí)現(xiàn)的線程塊在訪問輸入feature map的時(shí)候地址的跨度比較大,降低了訪存的局部性,對cache不夠友好。


因此在性能方面,MegEngine的實(shí)現(xiàn)會(huì)更有優(yōu)勢,而官方實(shí)現(xiàn)的優(yōu)點(diǎn)是對Convolution Layer的參數(shù)沒有太多限制,通用性更好。



Warp-level Mma(Matrix-multiply-add)指令


cuda10.2引入了新的Warp-level的mma和ldmatrix指令,用戶可以通過mma指令使用 TensorCore 來進(jìn)行高速的矩陣乘加運(yùn)算,通過ldmatrix精細(xì)地控制Warp給TensorCore喂數(shù)據(jù)。其中mma指令的用法如下:


這條指令的語義是由一個(gè)Warp的32個(gè)線程同步地完成8x8x16的矩陣乘加運(yùn)算,它有三個(gè)輸入操作數(shù),其中參與矩陣乘法運(yùn)算的分別是一個(gè)8x16的矩陣A 和一個(gè)16x8的矩陣B,這兩個(gè)輸入矩陣的數(shù)據(jù)分布在同一Warp的32個(gè)線程中。矩陣A的布局如下圖所示: 



? 同一Warp中的32個(gè)線程分為8組,每組四個(gè)線程,負(fù)責(zé)讀取8x16的矩陣中的一行。


? 每一組中的一個(gè)線程讀取每一行中相鄰的4個(gè)int8的數(shù)據(jù),恰好填滿一個(gè)32位的寄存器。


類似的矩陣B的布局如下圖所示:



? 每4個(gè)線程一組,共分為8組,每組負(fù)責(zé)讀取16x8的矩陣中的一列。


? 每一組中的一個(gè)線程負(fù)責(zé)讀取一列中相鄰的4個(gè)數(shù)據(jù)。


參與累加運(yùn)算的矩陣C和輸出矩陣D的數(shù)據(jù)也同樣分布在32個(gè)線程中,它們的布局如下圖所示:



? 同樣每4個(gè)線程一組,每組負(fù)責(zé)讀入/輸出一行的數(shù)據(jù)。


? 每個(gè)線程負(fù)責(zé)輸出一行中的相鄰兩個(gè)int32類型的數(shù)據(jù),恰好構(gòu)成一個(gè)64位的寄存器。


通過對mma指令的分析,如果Global Memory/Shared Memor中的數(shù)據(jù)是以行優(yōu)先 (RowMajor) 或者列優(yōu)先 (ColumnMajor) 的格式存儲(chǔ)的,那么當(dāng)同一Warp執(zhí)行空間上連續(xù)的兩個(gè)8x8x16的矩陣乘加運(yùn)算時(shí),每個(gè)線程讀取的數(shù)據(jù)將會(huì)是跳躍的,執(zhí)行每次乘法都只能讀取32位寬的數(shù)據(jù)到寄存器中,而低位寬的Load指令通常沒有辦法最大化利用存儲(chǔ)的帶寬。因此Nvidia提供了ldmatrix的指令,可以讓同一Warp一次性讀取4個(gè)8x16的矩陣到寄存器中,這樣恰好可以讓W(xué)arp中的每個(gè)線程一次讀取128位的數(shù)據(jù),最大化帶寬的利用率。 


ldmarix的用法如下所示:



上述這條指令恰好讀取了4個(gè)8x16的矩陣,每個(gè)線程恰好負(fù)責(zé)讀取矩陣的一行數(shù)據(jù),讀取完成后,線程之間會(huì)進(jìn)行數(shù)據(jù)交換,將矩陣的數(shù)據(jù)重新分布到各個(gè)線程,讀取的過程如下圖所示:



這一節(jié)介紹了TensorCore相關(guān)的mma和ldmatrix指令,有了這兩條高性能的指令,我們還需要為數(shù)據(jù)設(shè)計(jì)巧妙的Shared Memory存儲(chǔ)格式,消除從Shared Memory讀取數(shù)據(jù)的bank conflict,從而提升Shared Memory的讀取效率。


Shared Memory的數(shù)據(jù)布局 


在介紹Shared Memory中的數(shù)據(jù)布局之前,我們需要了解Shared Memory的訪存特點(diǎn)。Shared Memory按照每4個(gè)字節(jié)組成一個(gè)bank,共劃分成了32個(gè)bank,同一Warp的線程訪問了相同bank的不同地址時(shí)會(huì)發(fā)生conflict,導(dǎo)致訪存的效率變慢。在同一Warp的線程訪問不同位寬的數(shù)據(jù)時(shí),會(huì)有不同的行為:


? 每個(gè)線程訪問Shared Memory中32位的數(shù)據(jù),訪存將在一個(gè)階段內(nèi)完成。


? 每個(gè)線程訪問Shared Memory中64位的數(shù)據(jù),訪存會(huì)在兩個(gè)階段內(nèi)完成:

– 第一個(gè)階段:前16個(gè)線程訪存128字節(jié)的數(shù)據(jù)。

– 第二個(gè)階段:后16個(gè)線程訪存128字節(jié)的數(shù)據(jù)。


? 每個(gè)線程訪問Shared Memory中的128位的數(shù)據(jù),訪存會(huì)在四個(gè)階段內(nèi)完成:

– 每個(gè)階段由8個(gè)線程完成128字節(jié)的數(shù)據(jù)的訪存。


如果上述過程中每個(gè)階段都沒有bank conflict,則能夠達(dá)到最大的Shared Memory訪存效率。 


通常為了避免Shared Memory的bank conflict,我們會(huì)對Shared Memory的數(shù)據(jù)進(jìn)行padding,讓線程訪問的數(shù)據(jù)錯(cuò)開,避免落在同一bank中。但是這樣做的問題是會(huì)使得kernel需要Shared Memory的Size變大,但是SM上的L1 cache(Shared Memory)又是有限的,所以padding會(huì)降低kernel的occupancy,進(jìn)而就會(huì)降低kernel的性能。 


因此CUTLASS設(shè)計(jì)了一種Shared Memory的交錯(cuò)布局方式,它能夠在不進(jìn)行padding的前提下,使得線程訪存的地址沒有bank conflict。接下來,我們以64x64的矩陣為例來詳細(xì)介紹數(shù)據(jù)在Shared Memory中的布局。


首先,線程讀取數(shù)據(jù)的粒度都是128位,也即16個(gè)INT8類型的數(shù)據(jù),因此我們在演示數(shù)據(jù)的布局時(shí)總是以16個(gè)數(shù)據(jù)為一組。如果矩陣是以行優(yōu)先(RowMajor)的格式來組織的,那么在邏輯上的布局如下圖所示:



從圖中可以看到

? 每16個(gè)元素分為一組,被稱為一個(gè)Vector,被染上了不同的顏色。


? 每行相鄰的32個(gè)元素被稱為一個(gè)Crosswise,恰好是NCHW32格式中的一組channel的數(shù)據(jù)。


Shared Memory的物理存儲(chǔ)中,矩陣的數(shù)據(jù)進(jìn)行了重新排列,如下圖所示:



我們可以看到Shared Memory的物理布局有以下特點(diǎn):


? 每4行的一個(gè)Crosswise的數(shù)據(jù)作為一組,連續(xù)存放在Shared Memory中,緊接著會(huì)存放這4行的下一個(gè)Crosswise的數(shù)據(jù)。


? 每組數(shù)據(jù)包含了8個(gè)Vector,占據(jù)了128個(gè)字節(jié),恰好是Shared Memory中的32個(gè)不同的bank。


?每組數(shù)據(jù)在排列是進(jìn)行了交錯(cuò),保證了ldmatrix時(shí)不會(huì)發(fā)生bank conflict。


顯存 -> Shared Memory 的數(shù)據(jù)搬運(yùn)


這一節(jié)我們會(huì)介紹從顯存(Global Memory)到Shared Memory的數(shù)據(jù)搬運(yùn)。顯存到Shared Memory的數(shù)據(jù)搬運(yùn)是由Conv2dTileSrcIteratorFpropPrecomp來完成的,本文并不會(huì)詳細(xì)地解讀代碼的實(shí)現(xiàn),而是描述線程搬運(yùn)數(shù)據(jù)的過程,幫助大家建立直觀的印象,更好地理解代碼。


如果以上一節(jié)中Shared Memory的邏輯布局為例,同一Warp中每個(gè)線程讀取的數(shù)據(jù)的邏輯布局如下圖所示,每個(gè)線程讀取16個(gè)INT8類型的數(shù)據(jù),恰好構(gòu)成一個(gè)Vector。



而在實(shí)際的物理顯存中,線程訪問的數(shù)據(jù)分布如下圖所示:



? 我們可以看到每個(gè)線程讀取了128位的數(shù)據(jù)。


? 相鄰的線程讀取的數(shù)據(jù)在物理上是連續(xù)的。


因此線程從Global Memory讀取數(shù)據(jù)的pattern可以滿足合并訪存的要求,同時(shí)以最大的數(shù)據(jù)位寬進(jìn)行訪存,最大化了顯存帶寬的利用率。 


然后如果將線程讀取的數(shù)據(jù)映射到Shared Memory的物理地址,我們可以看到 


? 每8個(gè)線程向Shared Memory寫入128字節(jié)的數(shù)據(jù),恰好落在Shared Memory的32個(gè)不同的bank中。

 

? 同一Warp的訪存分為四個(gè)階段完成,每個(gè)階段都沒有bank conflict。


下圖演示了一個(gè)Warp寫入Shared Memory的過程:



Shared Memory -> 寄存器的數(shù)據(jù)搬運(yùn)


Shared Memory到寄存器的數(shù)據(jù)搬運(yùn)是由MmaTensorOpMultiplicandTileIterator完成的。同一 Warp 在每一輪迭代過程會(huì)讀取4個(gè)8x16的矩陣到寄存器中,每個(gè)線程會(huì)讀取一行的數(shù)據(jù)。例如第一輪迭代時(shí),線程讀取的數(shù)據(jù)在邏輯上的布局如下圖所示: 



而實(shí)際上數(shù)據(jù)在Shared Memory里的物理布局如下圖:



可以看到:

? 每個(gè)線程讀取了128位的數(shù)據(jù),因此訪存分為四個(gè)階段來進(jìn)行。


? 每一階段的8個(gè)線程讀取的數(shù)據(jù)恰好落在了Shared Memory的32個(gè)bank中,并且線程訪存的數(shù)據(jù)之間不存在沖突。


當(dāng)進(jìn)行到第二輪迭代時(shí),每個(gè)線程訪問的數(shù)據(jù)的物理布局如下圖:



同樣的訪存的每一個(gè)階段都不存在bank conflict。


Accumulator 寫回全局存儲(chǔ)


在int8的情況下,同一Warp負(fù)責(zé)輸出64x64的結(jié)果,kernel會(huì)分成8次寫回Global Memory,每次寫回32x8的矩陣。這樣保證了每次將Tensor按照 NCHW32格式寫回顯存時(shí),同一Warp的32個(gè)線程恰好寫了物理上連續(xù)的256字節(jié)的數(shù)據(jù),而每個(gè)線程寫回8個(gè)字節(jié),保證了可以使用64位寬的數(shù)據(jù)類型進(jìn)行顯存的寫操作,盡可能提高帶寬的利用率。 


由于mma指令的特點(diǎn),輸出矩陣的數(shù)據(jù)分布在各個(gè)線程上,而為了能夠合并訪存,即:讓相鄰線程寫回的地址是連續(xù)的,我們利用Shared Memory對同一Warp中32個(gè)線程的數(shù)據(jù)進(jìn)行了交換。數(shù)據(jù)交換后,每個(gè)線程擁有連續(xù)的8個(gè)通道的數(shù)據(jù),且線程寫的地址是連續(xù)的,保證了寫回Global Memory滿足合并訪存的要求。線程交換數(shù)據(jù)的過程如下圖所示: 



每一輪迭代,Warp中的32個(gè)線程將32x16的矩陣數(shù)據(jù)寫入到Shared Memory中。接著如下圖所示,每個(gè)線程會(huì)把連續(xù)的8個(gè)channel的數(shù)據(jù)讀到寄存器中。



Shared Memory的數(shù)據(jù)交換是由以下兩個(gè)Iterator完成的


?InterleavedTileIteratorTensorOp完成了每一輪迭代將32x8的數(shù)據(jù)寫入到Shared Memory中。


?InterleavedSharedLoadIteratorTensorOp負(fù)責(zé)將連續(xù)的8個(gè)channel的數(shù)據(jù)讀到Fragment寄存器中。


當(dāng)線程將交換后的數(shù)據(jù)讀到Fragment寄存器之后,會(huì)由EpilogueOp,在卷積的基礎(chǔ)上完成BiasAdd的運(yùn)算。


BiasAddLinearCombinationRelu為例,它實(shí)際上完成了下面的運(yùn)算:



其中bias是一個(gè)PerChannel的Tensor,代表了每個(gè)輸出通道的偏置,z是一個(gè)和卷積輸出大小一致的Tensor,用于Convolution和ElemwiseAdd的融合。


最后EpilogueOp的輸出會(huì)由TensorPredicatedTileIteratorTensorOp真正地寫回到 Global Memory中。每個(gè)線程寫回的數(shù)據(jù)如下圖所示:



可以看到線程寫回的pattern滿足合并訪存的要求,因此能最大化Global Memory寫的效率。


總結(jié)


本文介紹了MegEngine底層的卷積算子實(shí)現(xiàn)原理,算子性能可以達(dá)到cudnn的80%以上,測速結(jié)果可以參見文章


MegEngine會(huì)對卷積實(shí)現(xiàn)進(jìn)行持續(xù)優(yōu)化,進(jìn)一步提升算子的性能,目前來看有以下兩點(diǎn)可做的優(yōu)化:


? 借鑒Nvidia官方CUTLASS ImplicitGEMM Convolution實(shí)現(xiàn)對mask的處理,提高TileIterator對于mask判斷的效率。


? 現(xiàn)在的卷積實(shí)現(xiàn)在寫回顯存時(shí)利用Shared Memory進(jìn)行數(shù)據(jù)交換是存在bank conflict的。后續(xù)會(huì)考慮兩點(diǎn)優(yōu)化:

–對Shared Memory的數(shù)據(jù)布局進(jìn)行探索,消除 bank conflict,優(yōu)化Shared Memory數(shù)據(jù)交換的效率。

–對Global Memory中的Weight Tensor的布局進(jìn)行探索,提高每個(gè)Thread上accumulator的局部性,避免在Shared Memory中進(jìn)行數(shù)據(jù)交換。


參考資料


? Warp-level Matrix Fragment Mma PTX文檔

? CUTLASS Implicit GEMM Convolution官方文檔

? Volta architecture and performance optimization

? Developing CUDA kernels to push Tensor Cores to the absolute limit on Nvidia A100


▲點(diǎn)擊上方卡片,關(guān)注CVer公眾號

整理不易,請點(diǎn)贊和在看

瀏覽 81
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評論
圖片
表情
推薦
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 国产成人无码免费看片| 国产日韩在线播放| 国产91久久婷婷一区二区| 日韩色在线| 无码AⅤ一区二区三区| 99热8| 777性爱| 欧美天天撸| 日韩激情AV| 日韩欧美成人电影| 日韩视频一二三| 波多野结衣在线无码视频| 黄色A片电影| 亚洲操片| 亚洲操逼无码| 伊人成人在线视频观看| 欧美日逼网站| 欧美黄色电影在线观看| 日韩av成人| 国产主播中文字幕| 久草综合视频| 亚洲女人被黑人巨大的原因| 成人性生交片无码免费看人| 处破女初破全过免费看| 久久精品视频在线观看| 久久久久久一区| 你懂的视频在线播放| 51毛片| 女人18特级毛片。| 大鸡吧操视频| 中文在线高清字幕| 日韩欧美性爱| 亚洲日韩精品在线视频| 成人电影无码| 亚洲福利电影| 日皮视频| 亚洲人成无码| 激情av天堂| 国产1级a毛a毛1级a毛1级| 性满足BBWBBWBBW| 三级片在线看片AV| www.199麻豆在线观看网站| 不卡无码在线观看| 久久911| 在线观看免费视频黄| 日韩一级免费视频| 日日騒av无码| 国产91精品探花一区二区| 亚洲精品无码在线观看| 黄色香蕉视频| 黄色成人视频在线免费观看| 怡春院日韩| 中国免费XXXX18| 色天堂影院| 国产精品无码不卡| 人妻超碰| 91九色麻豆| 一区二区在线看| 人妻人人爽| 日韩一区二区无码视频| 久久久国产91桃色一区二区三区 | 免费在线无码视频| 亲子伦一区二区三区| 在线一级A片| 色欲欲www成人网站| 99精品久久| 国产AV剧情| 四川乱子伦95视频国产| 777偷窥盗摄00000| 思思热在线观看视频| 青青草东路热vv| 亚洲精品国产AV婷婷| 操逼视频在线免费观看| 成人18视频| 欧美日韩在线一区| 五月丁香亚洲综合| 国内老熟妇对白HDXXXX| AV青青草原| 91蜜桃精品| 日本高清视频网站| 亚洲日韩中文在线| 久久人操| 免费一级A片在线播放| 中文字幕系列| 美女自慰网站免费| 人人操人人操人人操人人操人人操| 国产亚洲91| 日本三级片视频不卡| 2021天天操| 91绿帽人妻-ThePorn| 无码人妻丰满熟妇区17水蜜桃| 国产最新视频| 国产成人久久精品麻豆二区| 好吊看视频| 亚洲AV无码成人精品区www| 亚洲色情在线| 69乱伦视频| 这里都是精品| 精品视频网站| 五月丁香六月激情| 国色天香网站| 国精产品秘一区二区| 九九精品视频在线观看| 操美女嫩逼| 大香蕉老师| 巨い巨乳の少妇あジed2k| 中文字幕成人无码| 大香蕉伊人成人网| 欧美亚洲日本| 8050午夜一级| 久久久五月天| 亚洲秘av无码一区二区| 日韩无码砖区| 日韩无码www| 精品中文视频| 青青草成人网| 日韩一级毛| 91人妻人人澡人人爽人人精品 | 无码精品人妻一区二区三区漫画| 日韩欧美在线免费| 黄色日逼视频| 伊人影院在线观看| 国产精品偷拍视频| 国产十八岁在线观看| 天天干天天天天| 麻豆传媒视频观看| 一本一道伊人99久久综| 伊人视频网| 91中文字幕在线| 国产黄色视频免费在线观看| 做爱视频网站18| 91天天射| 4438黄色| 98在线++传媒麻豆的视频| 欧美色操| 夜夜撸天天操| 青草碰| 午夜成人无码| 在线观看亚| 亚洲一区二区黄色电影视频网站| 国产主播在线播放| 亚洲精品成人AV| 欧美黄色大香蕉| 超碰天天| www.99在线| 亚洲日韩乱码在线| 大色网小色网| 丁香乱伦| 北条麻妃二区三区| 玩弄小怮女在线观看| 操少妇逼| 欧美日韩国产91| 国产剧情一区二区av在线观看| 一本一道无码免费看视频| 天天日天天干美女| 蜜桃av秘无码一区二区三| 少妇在线| 五月丁香激情婷婷| 嫩草视频在线播放| AV在线资源| 中文字幕黄色电影| jizz日韩| 插逼免费视频| 黄色视频免费看| 一区二区三区四区免费观看| 特级西西444WWW无码视频兔费看 | 日本精品视频一区二区| 狠狠躁婷婷天天爽综合| 欧美青青草| 91精品无码视频| 人妻丰满精品一区二区| 99艹艹| 搡BBBB搡BBB搡五十| 欧美高清无码视频| 国产精品人妻无码久久久郑州天气网 | 中国黄色A片| 成人精品一区日本无码网站suv/| 亚洲日韩精品无码| 亚洲成人怡红院| 国产高清无码视频在线观看| 免费观看成人| av女人的天堂| 婷婷在线影院| 日本一节片在线播放| 免费看黄色视频| 蜜臀av在线观看| 国产熟睡乱子伦午夜视频_第1集| 狼友视频免费观看| 浪潮在线观看完整版| 水蜜桃一区| 色色视频在线观看| A天堂视频| ww成人| 欧美性爱高清| 亚洲视频在线观看| 最近中文字幕免费| 久大香蕉| 国产视频一区二区在线观看| 四川少妇搡bbw搡bbbb| 黄色一级片免费在线观看| 91视频在线| 日韩A视频| 大鸡吧视频在线观看| 亚洲码无| 黄色免费一级片| 黄色国产视频在线观看| 欧美一区电影| 久久久久久国际四虎免费精品视频 | 欧美一级黃色A片免费看蜜桃熟了| 国产精品不卡| 婷婷色色五月天| 日韩高清中文字幕| 日韩精品免费观看| 国产精品黄色片| 91大神shunv| 大香蕉大香蕉大香蕉| 久久久无码精品亚洲| 在线观看污网站| 久久中文字幕视频| yw尤物视频| 伊人久久AV| 国产一区二区免费在线观看| 手机AV网站| 亚洲一级片| 色婷婷激情AV| 东京热精品视频| 91插逼| 欧美日韩操逼视频| 国产灬性灬淫灬欲水灬| 中文字幕日本在线| 97免费| 欧美综合第一页| 东京热无码一区| 91成人网站| 欧美色色视频| 日韩亚洲精品中文字幕| 天天舔天天操| 99欧美精品| 嫩BBB搡BBB搡BBB四川| jizz18日本| 欧美性生活视频| 三级av网站| 亚洲无吗在线播放| 日本乱码视频| 亚洲色图一区二区| 久久成人在线视频| 国产无码乱伦内射| 久久九九国产精品怡红院| AA精品| 久月婷婷| 国产1区在线观看| 亚洲中文字幕人妻。| 国产一级片免费看| 蜜桃AV无码一区二区三区| 亚洲国产成人一区二区| 色婷婷五月天激情| 五月丁香婷婷基地| 在线观看视频国产| 天天爽天天摸| 影音先锋久久久| 精品国产重口乱子伦| www.婷婷色| 免费在线黄色视频| www.婷婷六月天| 欧美日韩国产中文字幕| yw视频在线观看| 五月天久久久久| 大奶AV| 婷婷性爱五月天| 国产色视频一区二区三区QQ号| 亚洲视频a| 久久精品中文| 无码精品人妻一区二区三区漫画| 高清免费无码视频| 狠狠操网| 91麻豆视频| 99性视频| 精品成人Av一区二区三区 | 欧美成人精品一区二区| 国产高清毛片| 欧洲成人免费视频| 另类罕见稀奇videos| 一区二区三区四区视频在线| 一区二区三区四区在线看| 囯产精品一区二区三区线一牛影视1| www.99av| 日韩午夜剧场| 欧美你懂的| 在线观看无码| 99国产在线| 国产性交网站| 青青草婷婷| 黄色片亚洲| 日本国产在线视频| 大香蕉伊人综合网| 京熱大亂交无碼大亂交| 黄色片视频在线观看| 亚洲无码A片在线观看| 国产第一页在线观看| 国产无码一区二区| 久久无码成人| 成人操b视频| 91蜜桃视频在线观看| 免费观看AV| 亚洲成人AV在线观看| 大香蕉一级片| 色天堂在线观看| 国产无码一| 国产无限资源| 亚洲无码色色| 色婷婷在线无码精品秘人口传媒| 五月激情网站| 色婷婷在线视频| 久久精品视频在线免费观看| 99热播在线| 亚洲码无| 国产色情在线| 日韩福利在线| 天天日天天干天天操| 精品视频久久久久久| 国产精品人妻无码久久久郑州天气网 | 搡bbb| 日韩欧美网站| 水果派解说A∨无码区| 亚洲精品美女视频| 婷婷丁香六月天| 人人干人人操人人摸| 成人视频免费在线观看| 国产亚洲99久久精品| 黄色AV免费观看| 围产精品久久久久久久| 肏屄在线视频| 成人先锋AV| 日韩黄色电影网| 一级片a片| 久久99久久99| 欧美另类激情| 青吴乐大香蕉| 蜜芽成人精品久久久视频| 欧美日逼网| 最新一区二区三区| 1024国产在线| 日韩欧美一区二区在线观看| AV色站| 夜夜骚精品人妻av一区| 97色色视频| 久久久久亚洲精品| AV无码在线免费观看| 欧美艹逼| JIZZJIZZ国产精品喷水| 色悠悠久久综合| 国产综合精品久久久久成人AV| 超碰在线免费| 特级西西WWW无码| 日本天堂在线| 黄色成人在线观看| A片黄色毛片| 三级午夜在线无码| 尤物视频网址| 五月天黄色电影网站| 亚洲国产久久| 中日韩欧美一级A片免费| 91人妻一区二区三区无不码超满 | 大香蕉伊人久久| 爱爱高清视频| 一级特黄录像免费播放下载软件| 青青草原AV| 国产无码内射视频| av在线免费观看网址| www国产亚洲精品久久网站| 激情黄色毛片| 大香蕉1024| 天天爽日日澡AAAA片| 91人人妻人人做人人爽| 91视频网站在线| 北条麻妃在线无码| 黄色视频网站观看| 精品久久ai| 国产非洲欧美在线| 手机AV在线播放| 东京热这里只有精品| 岛国免费视频| 天天夜夜人人| 激情人妻在线| 日韩无码高清一区| 免费一级黄色电影| 久久久人妻无码精品蜜桃| 久久久久麻豆V国产精华液好用吗 色噜噜狠狠一区二区三区牛牛影视 | 亚洲AV无码专区在线播放中文| 先锋影音av资源网| 亚洲91无码精品一区在线播放| 婷婷色六月| 久久一道本| 黄色av网| 欧美大香蕉在线视频| 欧美久久一区二区三区四区视频 | 91在线无码精品秘入口三人| 天天躁狠狠躁av| 九九精品在线视频| 久久精品99| 国产AV美女| 91导航| 成人免费福利| 91啦丨露脸丨熟女色啦| 亚洲精品成人片在线观看精品字幕 | 伊大香蕉| 99re视频在线观看| 蜜桃人妻无码| 尤物视频网址| 边添小泬边狠狠躁视频| 免费看一级无码成人片| 国产精品成| 白浆av| 先锋AV资源在线| 国产日皮视频| AV在线资源观看| jiujiuav| 男人的天堂一区| 欧美色图在线播放| 狠狠操婷婷| 午夜熟睡乱子伦视频| 亚洲理论| 91久久爽久久爽爽久久片| 久热免费视频在线观看| 污网站在线观看| 成人网址大全| 香蕉漫画在线观看18| 亚洲美女操| 日韩肏屄网| 久久久综合| 黄色免费福利视频| 国产熟妇婬乱A片免费看牛牛| 亚洲网站在线免费观看| 欧美黄片免费观看| 欧美一级a视频免费放| 影音先锋成人AV| 刘玥一区二区| 香蕉国产AV| 天天拍天天操| 99在线小视频| 一级女婬片A片AAAA片| 中文字幕第23页| 色色网站| 久久久人妻熟妇精品无码蜜桃| 91人妻日韩人妻无码专区精品| 国产日韩视频| 无码AA| 麻豆乱婬一区二区三区| 天堂a在线| 日本少妇久久| 人人妻人人爽人人澡人人精品| 人人摸人人爱人人操| 久久久久成人电影| 日韩不卡AV| 边吃奶边做爱| 日日摸日日碰| 久久国产乱子伦精品免费午夜... 国产毛片精品一区二区色欲黄A片 | 日韩高清无码毛片| 久色婷婷在线| 99er热精品视频| 成人免费看A片| 草久精品| 无码一区三区| 俺去啦俺去啦| 午夜福利手机在线| 免费一级无码成人片| 亚洲黄色视频在线观看网站| 天天干天天干天天干| 三级av无码| 一级黄色AV片| 免费AV片| 欧洲一区在线观看| 欧美日本一区二区三区| 尻屄视频在线观看| 国产一级a一片成人AV| 亚洲国产精品一区二区三区| 撸一撸在线视频| av中文无码| 国产成人视频在线播放| 午夜性爱网| 黑人巨粗进入疼哭A片| 免费v在线观看| 国产成人精品AV在线观| 免费无码在线| 超碰蜜桃| 亚洲精品字幕久久久久| 自拍偷拍视频网址| wwwsesese| 人人摸人人摸人人| 日韩码线观看视频| 香蕉久久网| 无码秘蜜桃吴梦梦| AV无码人妻| 天天射天天干| 九九九在线| yw在线播放| 午夜性爱福利视频| 大香蕉综合网| 日产毛片| 日韩成年视频| 91精品视频在线免费观看| 91鸡巴| 99操逼| AAAAA毛片| 日日99| 精品久久三级片| 亚洲小电影| 日韩中文字幕有码| 91高清在线| 高清无码片| 日本精品视频| 嫩草在线观看| 特大妓女BBwBBWBBw| 五月天黄色片| 日本一区二区三区四区在线观看| 高清中字无码| 麻豆乱码国产一区二区三区| 国产成人a亚洲精品无码| 久久久久久久久久久国产| 免费在线无码视频| 亚洲人妻性爱| 丁香六月婷婷综合| 大香蕉伊人av| 怮交小拗女小嫩苞视频| 丰满人妻一区二区三区四区54| 日韩av综合| 女生操网站| 日鸡吧链接| 亚洲综合日韩在线| av无码中文字幕| 久久久久久久久久久成人| 欧美成人中文字幕在线| 亚洲天堂一区在线观看| 国产人妻人伦精品1国产丝袜| 狼人色影院| 五月婷婷丁香五月| 午夜成人在线| 欧美淫乱视频| 北条麻妃在线中文字幕| www污| 看一级黄色视频| 亚洲乱码在线| 吴梦梦一区二区在线观看| 亚洲中文字幕在线观看视频网站 | 激情网婷婷| 日韩在线中文字幕亚洲| 欧美一级片| 色播五月丁香| 影音先锋成人资源站| 亚洲欧美视频在线| 婷婷色在线播放| 69国产精品成人无码视频色| 不卡无线在一区| 人妻无码久久精品| 青娱乐精品在线视频| 午夜福利无码电影| 特级西西444www| 国产精品欧美性爱| 日韩毛片在线视频x| 逼特逼视频网站| 国产熟女一区二区视频网站| 日韩大香蕉| 午夜性爱福利| 中文字幕三区| 91在线精品无码秘入口苹果| 国产中文字幕在线播放| 99热精品在线播放| 狠狠干在线视频| 青草视频在线免费观看| 激情综合婷婷久久| 99在线国产| 欧美国产日韩在线观看| 五月天婷婷导航| 日本久久精品18| www.日本黄色视频| 无码AV免费观看| 天天爽天天日| 日韩成人性爱| 日韩精品一区二区三区中文在线| 再深点好爽灬轻点久久国产| 欧美第二页| 99热5| 久久99久久99精品免视看婷婷| 国产高清无码一区二区| 欧美一级免费观看| 亚洲无码小电影| 欧美成人性爱视频| 成人做爰黄A片免费看陈冠| 中文字幕1区| 天天干天天日天天干| 国产人人干| 国内无码| 色图在线观看| 亚洲欧美日韩无码| 国产地址| 高圆圆一区二区三区| 色综合久久88色综合| 亚洲在线中文| 熟妇人妻中文| 亚洲AV无码精品成人| 亚洲国产精品成人久久蜜臀| 一级黄色电影在线观看| 亚洲AV在线免费观看| 三级视频在线播放| 亚洲中文字幕在线观看视频网站 | 亚洲日韩一级| 爱爱爱爱视频| 欧美性BBB槡BBB槡BBB| 天天综合网久久综合网| 国产又粗又长的视频| 无码人妻一区二区三区精品不付款 | 婷婷五月中文字幕| 黄片免费视频| 中文字幕无码一区二区| 黄页免费无码| 久久无码专区| 婷婷精品在线视频| 18禁一区| 亚洲一区中文字幕| 影音先锋资源| 四季AV一区二区凹凸懂色桃花 | 成人黄色网| 久热婷婷| 天天日天天日天天操| 一区二区三区在线观看免费| 中文解说AⅤ水果派| 亚洲视频免费完整版在线播放| 午夜性爱网| 正在播放李彩斐被洋老外| 五月天激情综合| 啊啊啊啊av| 色欲影音| 日本熟妇一区二区三区| 中文字幕在线观看视频www| 亚洲草逼视频| 91乱了伦国产乱子伦| 91大神在线观看入口| 一级全黄120分钟免费| 国产免费黄色电影| 欧美18禁黄免费网站| 超碰91人人操| а中文在线天堂精品| 亚洲日逼视频| 嫩BBB槡BBBB槡BBB3i| 五月天激情网址| 中文字幕一级A片高清免| 日韩高清无码毛片| 欧美一级婬片A片免费软件| 亚洲午夜福利视频| 北条麻妃精品视频| 成人免费网站在线| 六月丁香网| 精品第一页| 91麻豆国产在线| 开心激情网五月天| 国产又色又爽又黄又免费| 黄色在线| 亚洲免费观看高清完整| 伊人精品在线| 99成人国产精品视频| 在线观看日韩三级片av| 国产无遮挡又黄又爽又色视频软件 | 免费超碰在线| 五月丁香在线视频| 午夜成人免费福利| 国产农村妇女精品一二区| 91探花国产综合在线精品| 欧美黄色站| 在线久操| 日韩无码www| 欧美日韩在线观看视频| 996热re视频精品视频这里| 国产一级a毛一级a毛视频在线网站)| 国产在线拍揄自揄拍无码福利| 大香蕉福利视频导航| 色视频免费在线观看| 婷婷色网站| 熊猫AⅤ| 你懂得视频| 俺也去网| 天堂资源地址在线| 亚洲狼人综合网| 九九视频在线观看| 欧美色一级| 成年人免费视频在线观看| 韩国无码免费| 国内免费毛片| 熟女少妇一区二区三区| 久久久黄色| 北条麻妃九九九在线视频| 热的无码| 国产一级片| 日韩人妻在线播放| www.人人操| 亚洲日韩中文字幕无码| 亚洲视频在线免费看| 午夜成人福利电影| 久久久久女人精品毛片九一| 人成视频在线免费观看| 天天操嫩逼无套视频| 天天操比| 亚洲97| 韩国成人免费无码免费视频| 日韩激情AV| 日韩美女免费性爱视频| 无码人妻一区二区三区在线视频不卡| 日韩黄色AV| 大香蕉尹人在线视频| 国产精品1区2区| 精品无码一| 玖玖爱在线精品视频| 夜夜嗨老熟女AV一区二区三区 | AV中文在线| www.啪啪啪| 中文字幕在线网站| 日韩国产成人在线| AV黄色在线观看| 欧美特级黄片| 国产成人免费做爰视频| 欧美夜夜草视频| 五月天婷婷激情视频| 久青草视频| 国产白丝精品91爽爽久久| 久久婷婷秘精品日产538| h视频免费看| 伊人网在线视频观看| 欧美精品成人网站| 久久久久免费视频| 久久老女人| 国产精品一区二区在线| 狠狠艹狠狠干| 肏屄免费视频| 亚洲精品白浆高清久久久久久| 国产成人精品无码免费| 亚洲精品美女视频| 亚洲精品三级片| 中文字幕一级A片高清免| 成人一级电影| 国产成人69| 国产成人99久久亚洲综合精品| 亚洲欧洲高清无码| 一本大道东京热av无码| 国产美女福利| 五月天激情网站| 三级片视频在线观看| 亚洲小说图片AV在线| 在线欧美亚洲| 欧洲肥胖BBBBBBBBBB| 自拍视频在线观看| www.777熟女人妻| 成人特级毛片| 九九re精品视频在线观看| 免费激情| 青青色综合| 国产操B| 国产无套内射视频| 亚洲精品鲁一鲁一区二区三区 | 偷拍三区| 97AV人妻无码视频二区| 亚洲AV无码久| 日本親子亂子倫XXXX50路| 亚洲精品18在线观看| 亚洲欧美成人网| 欧美狠狠插| 亚洲一级黄片| 岛国无码av| 国产无遮挡又黄又爽又| 国产成人91| 亚洲三级电影在线观看| 雾水情缘电影港片| 最新三级网站| sm视频网站| 好叼操| 无码精品一区二区在线| 国产真人一级a爱做片| 成人特级毛片| 亲子伦一区二区三区观看方式| 嫩BBB嗓BBBB榛BBBB| 91导航| 五月丁香六月久久| 中文字幕麻豆| 久久久久久久久久成人| 青草伊人av| 免费高潮视频| 亚洲中文字幕有码| 少妇人妻偷人精品无码视频新浪 | 九九色色| 国产在线第一页| 99精品全国免费观看| 性爱无码AV| 婷婷国产AV| 丁香五月综合啪啪| 悠悠AV导航| 午夜无码av| 国产美女一区| 亚洲中文字幕日韩在线| 成人一级视频| 337P人体美鮑高清| 97人妻一区二区精品免费视频| 中文字幕亚洲有码| 亚洲免费观看高清完整版在线| 免费在线观看黄色网址| 国产做爱导航| 成片免费观看视频大全| 婷婷五月天影视| 久久婷婷无码视频| 成人网在线观看| 亚洲最大视频| 亚洲天堂在线观看免费视频| 色色视频免费看| 青娱乐AV在线| 日韩高清成人无码| 毛片69| 97在线超碰| 丁香欧美| 性色在线| 久久午夜无码鲁丝午夜精品| 黄色精品视频| 国产精品久久毛片A片| 国产一区一区| 在线免费亚洲视频| 国产小视频在线| 操B网址| 精品无码人妻一区二区媚黑| 超碰碰人人| 最新精品视频| 黄色毛片在线观看| 俺也去视频| 成人免费视频在线| 五月丁香亚洲综合| 日韩23岁观看| 亚洲日韩国产AV无码无码精品| 熟妇综合| 日本午夜无码| 国产精品色婷婷| 一级调教看片| 亚洲免费三级片| 日本翔田千里奶水| 免费黄色视频网站大全| 久久久久久黄| 高清无码1区| 亚洲成人三级| 日韩无码精品一区二区三区| 91色| 亚洲日韩精品欧美一区二区yw| 欧美日韩群交| 一级黄色片免费看| 黄色一级片视频| 北条麻妃99精品| 日本电影一区二区三区| 丁香五月综合啪啪| 久草中文在线视频| 精品AV无码一区二区三区| 日韩无码视频一区| 黄色一级片网站| 黄色大片免费在线观看| 亚洲天堂在线观看免费视频| 国产三级图片| 91人妻一区二区三区无不码超满| 国产精品视频一区二区三| 久久大香| 久久久国产91桃色一区二区三区 | 操东北女人逼| 97在线精品| 韩国人妻无码| 成人午夜啪免费视频在线观看软件 | 成人777777免费视频色| 青娱乐成人在线视频| 天天操天天干麻豆| 成人区123| 成人无码免费毛片A片| 欧美黄色性爱视频| 狠狠干影院| 无码狠狠躁久久久久久久91| 国产又爽又黄免费网站在线| 久久黄色视频免费观看| 国产中文字幕波多| 久艹综合| 免费三级片网址| 天堂v视频| 人人爽人人爽人人| 欧美日韩在线视频免费播放| 大香蕉伊人电影| 国产精品毛片一区视频播| 欧美日韩A片欧美日| 亚洲蜜桃av一区| 色骚爽大香蕉91| 韩国高清无码60.70.80| 国产精品123| 日韩免费高清| 激情婷婷| 大香蕉综合| 91在线观看视频| 中文字幕永久在线| 欧美三级片在线观看| 无码22p| 亚洲AVwww| 中国乱伦视频| 久久久亚洲AV| 天堂黄片|