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

    針對(duì)SW26010眾核處理器的單精度矩陣乘算法

    2023-04-19 05:12:12錚,許樂,安虹,金旭,文
    關(guān)鍵詞:指令處理器精度

    武 錚,許 樂,安 虹,金 旭,文 可

    (中國(guó)科學(xué)技術(shù)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,合肥 230027) E-mail: zhengwu@mail.ustc.edu.cn

    1 引 言

    矩陣乘是許多關(guān)鍵科學(xué)計(jì)算算法的核心,包括線性方程組的求解、最小二乘問題、奇異和特征值計(jì)算[1],這一本質(zhì)使得它成為許多科學(xué)應(yīng)用領(lǐng)域的關(guān)鍵高性能kernel之一,包括深度學(xué)習(xí)、信號(hào)處理、天體物理學(xué)和先進(jìn)物理分析等諸多領(lǐng)域[2,3].除此之外,矩陣乘還經(jīng)常被用于評(píng)估針對(duì)科學(xué)計(jì)算的新型處理器架構(gòu)的性能和效率[4],以及探究如何在新架構(gòu)上進(jìn)行高性能優(yōu)化[5-7].矩陣乘的廣泛使用以及計(jì)算量稠密且巨大的本質(zhì),使得關(guān)于它的高性能計(jì)算研究一直是學(xué)術(shù)界和工業(yè)界的熱門話題之一.

    當(dāng)前矩陣乘性算法的研究主要可以分為兩個(gè)方面[8],一個(gè)是宏觀層次的分塊方案,基于存儲(chǔ)器層次結(jié)構(gòu),通過合適的矩陣分塊策略,探索數(shù)據(jù)局部性,協(xié)調(diào)計(jì)算和訪存的平衡;一個(gè)是微觀層次的計(jì)算kernel,基于高級(jí)語言(如:C,C++等)或者底層匯編,通過SIMD運(yùn)算、指令多發(fā)射和亂序執(zhí)行等微體系結(jié)構(gòu)技術(shù),力求最大化硬件執(zhí)行單元的計(jì)算性能.

    在學(xué)術(shù)界,K?gstr?等人[9]最早提出所有的三級(jí)BLAS(basic linear algebra subprograms)操作都可以在一個(gè)高性能矩陣乘的基礎(chǔ)上實(shí)現(xiàn),而現(xiàn)實(shí)中許多科學(xué)應(yīng)用都與頻繁的稠密線性操作緊密相關(guān),大算力的需求使得眾核處理器上的矩陣乘優(yōu)化一直備受國(guó)內(nèi)外研究學(xué)者的關(guān)注.Aberdeen等人[10]考慮到Intel Pentium等商用處理器在矩陣乘設(shè)計(jì)時(shí)多級(jí)緩存有效使用的困難,針對(duì)Intel Pentium III系列處理器詳細(xì)探究了矩陣乘實(shí)現(xiàn)時(shí)的寄存器分配以及L1、L2緩存的分塊策略,最終平均性能是先進(jìn)的公開矩陣乘例程的2.09倍.Nakasato[11]在Cypress GPU上優(yōu)化并實(shí)現(xiàn)了單精度和雙精度矩陣乘的kernel,分別可以達(dá)到理論峰值性能的73%和87%.同時(shí)證明了相比于共享內(nèi)存,紋理緩存對(duì)于Cypress架構(gòu)更有效.Kurzak等人[12]針對(duì)Fermi GPU提出了一種通過啟發(fā)式自動(dòng)調(diào)優(yōu)生成高效矩陣乘kernel的方法,其搜索空間的修剪機(jī)制,可以根據(jù)不同的需求很容易地將搜索空間調(diào)小或者調(diào)大.實(shí)驗(yàn)證明其自動(dòng)生成的kernel可以等同甚至超過cuBLAS和MAGMA,同時(shí)在雙精度復(fù)數(shù)的數(shù)據(jù)類型下有顯著的性能提升.Lim等人[13]在矩陣乘分塊優(yōu)化數(shù)據(jù)重用的基礎(chǔ)上,通過數(shù)據(jù)預(yù)取、循環(huán)展開和Intel AVX-512優(yōu)化分塊后的矩陣乘,實(shí)現(xiàn)了Intel KNL上的高效矩陣乘算法,性能可以與官方最優(yōu)庫(kù)Intel MKL相媲美.Lim等人[14]針對(duì)Intel KNL和Intel Skylake-SP處理器提出了一種啟發(fā)式自動(dòng)調(diào)校生成矩陣乘kernel的方法,調(diào)校參數(shù)包括寄存器級(jí)/緩存級(jí)的矩陣塊大小、預(yù)期距離和循環(huán)展開深度.結(jié)果顯示kernel性能優(yōu)于開源的BLAS庫(kù),矩陣乘性能同Intel MKL相當(dāng).Chen等人[15]針對(duì)GPU架構(gòu)提出了一種TSM2的矩陣乘算法,主要關(guān)注于不規(guī)則形狀的輸入矩陣.該算法在Kepler、Maxwell和Pascal 3種GPU架構(gòu)上,計(jì)算性能加速1.1x~3x,訪存帶寬提升8%~47.6%,算力利用率提升7%~37.3%.總體來說,學(xué)術(shù)界當(dāng)前對(duì)于矩陣乘的研究主要集中于通用眾核處理器Intel Xeon、Intel Xeon Phi和NVIDIA GPU展開.

    在工業(yè)界,許多眾核處理器廠商提供了便于用戶使用的高效BLAS庫(kù),比如:Intel的oneMKL[16],NVIDIA的cuBLAS[17],AMD的AOCL[18]等,這些數(shù)學(xué)庫(kù)對(duì)于使得各自的處理器平臺(tái)廣泛應(yīng)用于現(xiàn)實(shí)世界起到了巨大的推動(dòng)作用.

    申威眾核處理器SW26010是世界上第一臺(tái)峰值運(yùn)算性能超過100PFlops的超級(jí)計(jì)算機(jī)神威·太湖之光算力的主要貢獻(xiàn)者,也是當(dāng)前眾核處理器領(lǐng)域一顆冉冉升起的新星[19].不同于發(fā)展歷史悠久的通用眾核處理器,申威處理器上矩陣乘的研究仍處在初步階段,現(xiàn)有的研究工作[20-22]也僅僅是對(duì)雙精度矩陣乘算法設(shè)計(jì)進(jìn)行了討論.然而僅僅針對(duì)雙精度矩陣乘的研究工作是難以覆蓋現(xiàn)實(shí)中全部需求的,尤其是近些年迅速發(fā)展的人工智能領(lǐng)域,其使用的深度神經(jīng)網(wǎng)絡(luò)(deep neural networks,DNNs)技術(shù)中單精度矩陣乘是性能的核心[23].另一方面,申威處理器雙精度數(shù)據(jù)運(yùn)算和單精度數(shù)據(jù)運(yùn)算共用雙精度浮點(diǎn)運(yùn)算單元的微體系結(jié)構(gòu)特征,使得單精度矩陣乘算法設(shè)計(jì)無法直接依賴于雙精度矩陣乘的研究工作.

    綜上所述,為了滿足現(xiàn)實(shí)生活中人工智能等應(yīng)用領(lǐng)域的需求,彌補(bǔ)申威處理器SW26010上單精度矩陣乘性能不足的問題,本文主要貢獻(xiàn)如下所示:

    1) 面向國(guó)產(chǎn)申威眾核處理器的架構(gòu)特征,在先前研究工作[22]的基礎(chǔ)上,提出了3種基于不同存儲(chǔ)層次的并行單精度矩陣乘算法;

    2)對(duì)于國(guó)產(chǎn)申威處理器上的單精度計(jì)算過程中數(shù)據(jù)類型轉(zhuǎn)換的可能情況,從計(jì)算層面和訪存層面進(jìn)行了綜合討論,能夠?yàn)槲磥碓撎幚砥魃仙婕暗絾尉扔?jì)算的研究工作提供有意義的參考借鑒;

    3)從峰值性能和通用性兩個(gè)方面對(duì)本文工作進(jìn)行了綜合評(píng)估.實(shí)驗(yàn)證明,本文設(shè)計(jì)的算法能夠有效提升申威處理器上單精度矩陣乘的性能,其運(yùn)行時(shí)峰值性是理論峰值性能的86.17%,對(duì)比最先進(jìn)的官方庫(kù)xMath中的實(shí)現(xiàn),提升了6.8%.同時(shí)且重要的是,在通用性的實(shí)驗(yàn)分析中,相比xMath的實(shí)現(xiàn),在95.33%的場(chǎng)景中能夠獲得性能提升,最高性能加速比達(dá)到247.9%,平均性能加速比為61.66%.

    可見本文提出并實(shí)現(xiàn)的單精度矩陣乘算法,相比于當(dāng)前SW26010處理器上的最優(yōu)實(shí)現(xiàn),不僅能夠?qū)Σ煌仃嚦藞?chǎng)景起到更好的適應(yīng)性,而且性能提升顯著.

    2 背景介紹

    2.1 矩陣乘

    BLAS[24,25]有三級(jí)子程序,分別是一級(jí)的向量-向量操作、二級(jí)的矩陣-向量操作和三級(jí)的矩陣-矩陣操作.矩陣乘屬于三級(jí)BLAS,是一個(gè)二維數(shù)據(jù)乘累加的例行程序,如公式(1)所示:

    C=αop(A)op(B)+βC,op(X)=XorXT

    (1)

    其中A∈M×K和B∈K×N為輸入矩陣,有轉(zhuǎn)置和不轉(zhuǎn)置兩種情況,C=M×N為輸出矩陣;α和β是標(biāo)量,為矩陣乘的運(yùn)算系數(shù);M、N和K表示矩陣的維度大小.

    基礎(chǔ)的矩陣乘算法是一個(gè)關(guān)于M、N和K的三層循環(huán),如算法1所示.其是所有BLAS操作中最關(guān)鍵的部分[26],因?yàn)槠渌鄶?shù)操作可以依據(jù)矩陣乘實(shí)現(xiàn),同時(shí)也是最具優(yōu)化空間的部分,因?yàn)樗兄罡叩挠?jì)算復(fù)雜度O(n3).本文主要面向單精度矩陣乘在申威處理器上的并行算法進(jìn)行研究,主要目的在于彌補(bǔ)該處理器上單精度研究工作的不足,以及推動(dòng)其在人工智能領(lǐng)域的發(fā)展.

    算法1.基礎(chǔ)的矩陣乘算法

    輸入:矩陣A、B和C,矩陣乘系數(shù)α和β;

    輸出:矩陣C.

    1. form=0∶1∶Mdo

    2. forn=0∶1∶Ndo

    3.C[m,n]×=β

    4. fork=0∶1∶Kdo

    5.C[m,n]+=α(A[m,k]×B[k,n])

    6. end for

    7. end for

    8. end for

    2.2 SW26010眾核處理器

    SW26010處理器[27]是由我國(guó)自主研發(fā)的一款異構(gòu)眾核處理器,支持64位自主申威指令級(jí)系統(tǒng),采用分布式共享存儲(chǔ)和片上計(jì)算陣列的異構(gòu)眾核體系架構(gòu).

    如圖1所示,整個(gè)處理器包含4個(gè)核組(core-group,CG),每個(gè)核組由一個(gè)主要負(fù)責(zé)任務(wù)管理的主核(management processing element,MPE)和64個(gè)主要負(fù)責(zé)計(jì)算任務(wù)的從核(computing processing element,CPE)構(gòu)成,共計(jì)260個(gè)運(yùn)算核心.四個(gè)核組通過片上網(wǎng)絡(luò)(network on chip,NoC)互連,每個(gè)核組直連一塊8GB的DDR3主存,主核和從核通過主存控制器(memory controller,MC)進(jìn)行相應(yīng)的訪存操作.

    圖1 SW26010眾核處理器架構(gòu)Fig.1 Architecture of SW26010 many-core processor

    主核擁有L1、L2兩級(jí)緩存,L1分為32KB的指令緩存和32KB的數(shù)據(jù)緩存,L2緩存大小為256KB.每個(gè)從核配置有一塊16KB的L1指令緩存和一塊64KB用戶可控的局部設(shè)備內(nèi)存(local device memory,LDM).整個(gè)從核陣列共享一塊大小為64KB的L2指令緩存.

    該處理器為了能夠盡量簡(jiǎn)化微架構(gòu)設(shè)計(jì),從而使得有限的芯片面積能夠集成更多的計(jì)算核心,所以沒有采用通用處理器的傳統(tǒng)的多級(jí)緩存設(shè)計(jì)方案,而是為每個(gè)從核配置了一塊64KB的軟件控制的片上存儲(chǔ)空間LDM.基于此,該處理器支持兩種主從核間的數(shù)據(jù)訪問,一種是全局內(nèi)存訪問,也稱為gld/gst離散訪主存,即是從核直接對(duì)主存進(jìn)行讀寫操作,這種方式的好處是簡(jiǎn)單易用,缺陷是訪存延遲高達(dá)278個(gè)時(shí)鐘周期;一種是以LDM為橋梁進(jìn)行主存的訪問,也稱為DMA(direct memory access)批量式訪主存,整個(gè)過程的訪存延遲較低,大約29個(gè)時(shí)鐘周期.但由于LDM大小有限、DMA操作復(fù)雜多變等原因?qū)е滤惴ㄔO(shè)計(jì)難度大,要想獲取高性能對(duì)開發(fā)人員自身體系結(jié)構(gòu)基礎(chǔ)要求較高.盡管如此,后者仍是SW26010處理器上研究開發(fā)高性能工作的首選.

    為盡可能降低訪存頻率,SW26010處理器為用戶提供了單核組從核陣列上不同從核間的數(shù)據(jù)共享機(jī)制——寄存器通信.為了有效支持這一機(jī)制,每個(gè)從核上配備了發(fā)送緩沖區(qū)、行接收緩沖區(qū)和列接收緩沖區(qū).寄存器通信機(jī)制需要注意3點(diǎn):1) 通信數(shù)據(jù)的大小固定為256-bits;2) 只能行通信或者列通行;3) 通信的過程是匿名的,基于先到先得的策略接收消息.

    最后,SW26010處理器每個(gè)從核支持兩條硬件流水線P0和P1,其中P0流水支持浮點(diǎn)和整數(shù)的標(biāo)量/向量操作,P1流水支持?jǐn)?shù)據(jù)遷移、比較、跳轉(zhuǎn)和整數(shù)標(biāo)量操作.兩條流水共享一個(gè)指令解碼器(Instruction Decoder,ID)和一個(gè)指令隊(duì)列,每個(gè)時(shí)鐘周期ID對(duì)隊(duì)列中前兩條指令進(jìn)行檢測(cè),當(dāng)滿足這些情況時(shí),兩條指令可以同時(shí)被加載到兩條流水中:1) 兩條指令同已發(fā)射未完成的指令不存在沖突;2) 兩條指令間不存在(read after write)和(write after write)沖突;3) 兩條指令可以分別被兩條流水處理.如何混合交差程序中兩種類型的指令,使P0和P1兩條流水充分并行工作,對(duì)于SW26010處理器性能的發(fā)揮起著重要的作用.

    3 算法設(shè)計(jì)

    不同于通用眾核處理器,既支持雙精度浮點(diǎn)運(yùn)算單元,又支持單精度浮點(diǎn)運(yùn)算單元.申威處理器只具備雙精度浮點(diǎn)運(yùn)算單元,因此在進(jìn)行單精度運(yùn)算時(shí),需要顯式地或者隱式地進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,以間接完成雙精度浮點(diǎn)運(yùn)算單元計(jì)算單精度數(shù)據(jù)的任務(wù).

    基于上述硬件特征,如圖2所示,在申威處理器上進(jìn)行矩陣乘算法設(shè)計(jì)時(shí),單精度矩陣乘算法有必要在雙精度矩陣乘算法實(shí)現(xiàn)的基礎(chǔ)上,額外地增加一個(gè)數(shù)據(jù)類型轉(zhuǎn)換模塊的設(shè)計(jì).

    圖2 單精度矩陣乘算法設(shè)計(jì)的基本思想Fig.2 Base idea of single-precision matrix multiplication algorithm

    本文將在先前研究工作[22]的基礎(chǔ)上,對(duì)單精度矩陣乘算法進(jìn)行深入研究.依據(jù)申威處理器的存儲(chǔ)器層次結(jié)構(gòu)可以將雙精度矩陣乘劃分為3個(gè)層次,分別是寄存器級(jí)的矩陣乘、LDM級(jí)的矩陣乘和主存級(jí)的矩陣乘,具體實(shí)現(xiàn)細(xì)節(jié)可以參考[22].同理,數(shù)據(jù)類型轉(zhuǎn)換模塊也可以插入到上述3個(gè)不同的層次中,分別對(duì)應(yīng)寄存器級(jí)的數(shù)據(jù)類型轉(zhuǎn)換、LDM級(jí)的數(shù)據(jù)類型轉(zhuǎn)換和主存級(jí)的數(shù)據(jù)類型轉(zhuǎn)換,三者的核心區(qū)別在于轉(zhuǎn)換后數(shù)據(jù)的暫存存儲(chǔ)空間不同,也由此提出了本文的3種不同的單精度矩陣乘算法——基于寄存器級(jí)數(shù)據(jù)類型轉(zhuǎn)換的單精度矩陣乘,標(biāo)記為RSMM;基于LDM級(jí)數(shù)據(jù)類型轉(zhuǎn)換的單精度矩陣乘,標(biāo)記為L(zhǎng)SMM;基于主存級(jí)數(shù)據(jù)類型轉(zhuǎn)換的單精度矩陣乘,標(biāo)記為MSMM.

    表1 統(tǒng)一符號(hào)聲明Table 1 Descriptor of symbols

    為了方便后續(xù)敘述,本文對(duì)相關(guān)符號(hào)統(tǒng)一聲明,如表1所示.

    3.1 RSMM

    單精度矩陣乘算法最直接的設(shè)計(jì)方式就是將[22]中所有的雙精度操作全部替換為單精度操作,如算法2所示.

    算法2.基于寄存器級(jí)數(shù)據(jù)類型轉(zhuǎn)換的單精度矩陣乘算法

    輸入:矩陣ASM、BSM和CSM,矩陣乘系數(shù)α和β;

    輸出:矩陣CSM.

    1.loadAASM[0,0]toASL[cmpt]

    2.loadBBSM[0,0]toBSL[cmpt]

    3.end loadA

    4.end loadB

    5.form=0∶1∶mMdo

    6. forn=0∶1∶nMdo

    7. loadCCSM[m,n] toCSL

    8.CSL×=β

    9. fork=0∶1∶kMdo

    10. computem′,n′,k′of next memory access aboutASMandBSM

    11. loadAASM[m′,k′]toASL[ldst]

    12. loadBBSM[k′,n′]toBSL[ldst]

    13.ASL[cmpt]×=α

    14. kernel(ASL[cmpt],BSL[cmpt],CSL)

    15. end loadA

    16. end loadB

    17. exchange the value ofcmptandldst

    18. end for

    19. storeCCSLtoCSM[m,n]

    20. end storeC

    21. end for

    22.end for

    首先對(duì)主存上的單精度矩陣數(shù)據(jù)ASM、BSM和CSM進(jìn)行分塊,分別劃分mM×kM、kM×nM和mM×nM個(gè)矩陣塊.然后將劃分后的矩陣塊按計(jì)算需要依次加載到LDM的單精度矩陣空間ASL、BSL和CSL中,其中ASL又被分為ASL[cmpt]和ASL[ldst],BSL又被分為BSL[cmpt]和BSL[ldst],cmpt和ldst分別用于存放當(dāng)前計(jì)算需要的矩陣塊以及下一次計(jì)算需要的矩陣塊.通過對(duì)ASM和BSM矩陣塊的加載和核心計(jì)算kernel進(jìn)行一次循環(huán)的錯(cuò)開,實(shí)現(xiàn)了申威處理器上異步DMA訪存操作下的計(jì)算和訪存的并行.最后更新后的CSL會(huì)被寫回CSM中對(duì)應(yīng)的主存空間.

    因?yàn)樯晖幚砥鞑淮嬖趩尉雀↑c(diǎn)運(yùn)算單元的緣故,算法2中行14的初始實(shí)現(xiàn)如圖3左側(cè)所示,ldse和vlds指令包含單精度數(shù)據(jù)到雙精度數(shù)據(jù)類型的隱式轉(zhuǎn)換過程,前者加載轉(zhuǎn)換單精度ASL并向量擴(kuò)展到雙精度ADR,后者向量加載并轉(zhuǎn)換單精度BSL到雙精度BDR,整個(gè)計(jì)算過程由vmad指令運(yùn)行于雙精度浮點(diǎn)運(yùn)算單元.此處展示的是RSMM中kernel的最內(nèi)層循環(huán)部分的指令序列,也是指令重排的部分,該循環(huán)前的CSL到CDR的轉(zhuǎn)換和循環(huán)后的CDR到CSL的轉(zhuǎn)換不在指令重排的考慮范圍.

    初始情況下整條指令序列的執(zhí)行時(shí)間是60個(gè)時(shí)鐘周期,IPC(instruction per cycle)為0.65,遠(yuǎn)低于理論值2,造成這一糟糕結(jié)果的原因主要有兩點(diǎn)——1)P0和P1兩條流水線的運(yùn)行幾乎是串行的;2)訪存指令(ldse和vlds)和寄存器通信指令(putr和putc)間的數(shù)據(jù)依賴造成了大量的流水線氣泡.為此本文參考[28,29],通過手動(dòng)重排指令序列,解決上述問題,提升整個(gè)指令序列的并行度.整體的重排思想有兩點(diǎn)——1)循環(huán)交叉適用于P0和P1流水線的指令,盡可能地掩藏向量計(jì)算外的其他指令的開銷;2)ldse和vlds指令延遲是4個(gè)時(shí)鐘周期[27],通過使具有相關(guān)數(shù)據(jù)依賴的putr和putc指令的理論開始時(shí)間滯后至少4個(gè)時(shí)鐘周期,從而消除不必要的流水線氣泡.結(jié)果如圖3右側(cè)所示,重排后指令序列的執(zhí)行時(shí)間是23個(gè)時(shí)鐘周期,IPC約為1.7,性能是初始時(shí)的2.61倍.

    圖3 計(jì)算kernel的指令重排Fig.3 Reorder the instructions of the computational kernel

    3.2 LSMM

    RSMM雖然是最直觀的一種雙精度矩陣乘映射到單精度矩陣乘的算法,但其計(jì)算kernel最內(nèi)層循環(huán)指令重排后的開銷高達(dá)23個(gè)時(shí)鐘周期,相比于[22]的16個(gè)時(shí)鐘周期,計(jì)算性能下降了30.4%.針對(duì)這一問題,本文提出了LSMM算法,通過將數(shù)據(jù)類型轉(zhuǎn)換操作從寄存器轉(zhuǎn)移到片上存儲(chǔ)LDM上,從而實(shí)現(xiàn)雙精度矩陣乘計(jì)算kernel的無縫鏈接.

    圖4 優(yōu)化LDM空間使用Fig.4 Optimize the usage of the LDM

    如圖4左側(cè)所示,為每一個(gè)ASL、BSL和CSL分別匹配一個(gè)雙倍大小的ADL、BDL和CDL,用于暫存轉(zhuǎn)換后的雙精度數(shù)據(jù).此時(shí)LSMM相比于RSMM,雖然計(jì)算kernel的性能得到了極大的改善,但是卻需要額外兩倍的LDM開銷,這對(duì)于申威處理器64KB的有限片上存儲(chǔ)來說是難以接受的.為了提高LDM的使用效率,如圖4右側(cè)所示,分配一個(gè)CDL空間,通過嵌套CSL和CDL,實(shí)現(xiàn)兩者LDM空間物理上的共用和邏輯上的分離;分配一個(gè)ASL/BSL和一個(gè)ADL/BDL,固定前者被用于DMA讀主存數(shù)據(jù),固定后者被用于暫存類型轉(zhuǎn)換后的數(shù)據(jù).此時(shí),LSMM的額外LDM開銷下降至約60%,整體設(shè)計(jì)思路如算法3所示.

    算法3.基于LDM級(jí)數(shù)據(jù)類型轉(zhuǎn)換的單精度矩陣乘算法

    輸入:矩陣ASM、BSM和CSM,矩陣乘系數(shù)α和β;

    輸出:矩陣CSM.

    1.loadAASM[0,0]toASL

    2.loadBBSM[0,0]toBSL

    3.end loadA

    4.end loadB

    5.ADL=(double)(ASL×α)

    6.BDL=(double)(BSL)

    7.form=0∶1∶mMdo

    8. forn=0∶1∶nMdo

    9. loadCCSM[m,n]toCSL

    10.CDL=(double)(CSL×β)

    11. fork=0∶1∶kMdo

    12. computem′,n′,k′of next memory access aboutASMandBSM

    13. loadAASM[m′,k′]toASL

    14. loadBBSM[k′,n′]toCDL

    15. kernel(ADL,BDL,BDL)

    16. end loadA

    17. end loadB

    18.ADL=(double)(ASL×α)

    19.BDL=(double)(BSL)

    20. end for

    21.CSL=(float)(CDL)

    22. storeCCSLtoCSM[m,n]

    23. end storeC

    24. end for

    25.end for

    對(duì)于算法3可以概述如下:1)DMA讀主存數(shù)據(jù)和DMA寫主存數(shù)據(jù)都以單精度數(shù)據(jù)類型進(jìn)行;2)數(shù)據(jù)類型轉(zhuǎn)換操作緊鄰DMA實(shí)時(shí)進(jìn)行,轉(zhuǎn)換結(jié)果暫存于LDM;3)計(jì)算kernel直接使用轉(zhuǎn)換后的雙精度數(shù)據(jù).對(duì)于CSL和CDL的嵌套,物理上CDL的后半部分也是CSL,從而使得算法3的行10順序遍歷時(shí),不會(huì)造成轉(zhuǎn)換后的雙精度數(shù)據(jù)覆蓋后續(xù)轉(zhuǎn)換所需要的單精度數(shù)據(jù)的錯(cuò)誤.相應(yīng)的,算法3中行21則要逆序遍歷,以保證轉(zhuǎn)換數(shù)據(jù)的準(zhǔn)確性.同時(shí),對(duì)于ASL/BSL和ADL/BDL的轉(zhuǎn)換操作需要在DMA讀主存數(shù)據(jù)完成后立即進(jìn)行,從而閑置ASL/BSL,為下一次的DMA讀主存數(shù)據(jù)做準(zhǔn)備.

    3.3 MSMM

    LSMM雖然保證了計(jì)算kernel的高效運(yùn)行,但數(shù)據(jù)類型轉(zhuǎn)換的開銷仍是不可忽視的.其中,CSM的數(shù)據(jù)類型轉(zhuǎn)換僅進(jìn)行了一次,ASM和BSM卻分別重復(fù)轉(zhuǎn)換了nM次和mM次.由此可見,隨著矩陣規(guī)模逐漸增大,ASM和BSM的數(shù)據(jù)類型轉(zhuǎn)換對(duì)LSMM性能的影響將會(huì)越來越明顯.為了解決這一問題,本文提出了MSMM算法,通過消除不必要的數(shù)據(jù)類型轉(zhuǎn)化操作,進(jìn)一步提升大規(guī)模矩陣乘運(yùn)算時(shí)的性能.

    圖5 消除不必要的數(shù)據(jù)類型轉(zhuǎn)換開銷Fig.5 Eliminate the unnecessary cost of data type conversion

    如圖5所示,在主存上為ASM和BSM分別分配一個(gè)雙倍大小的ADM和BDM,用于暫存轉(zhuǎn)換后的雙精度數(shù)據(jù).此時(shí)MSMM執(zhí)行包含兩個(gè)階段:1)DMA讀主存數(shù)據(jù)ASM和BSM,轉(zhuǎn)換單精度數(shù)據(jù)到雙精度數(shù)據(jù),再DMA寫回主存ADM和BDM;2)基于ADM、BDM和CSM執(zhí)行矩陣乘運(yùn)算.

    通過用主存暫存轉(zhuǎn)換后的雙精度數(shù)據(jù),消除了LSMM中不必要的轉(zhuǎn)換開銷.但是此時(shí)也在轉(zhuǎn)換階段引入了新的DMA讀主存和DMA寫主存操作.為此,本文對(duì)MSMM算法進(jìn)一步優(yōu)化,如算法4所示.

    算法4.基于主存級(jí)數(shù)據(jù)類型轉(zhuǎn)換的單精度矩陣乘算法

    輸入:矩陣ASM、BSM和CSM,矩陣乘系數(shù)α和β;

    輸出:矩陣CSM.

    1.loadAASM[0,0]toASL[cmpt]

    2.loadBBSM[0,0]toBSL[cmpt]

    3.end loadA

    4.end loadB

    5.ADL[cmpt]=(double)(ASL[cmpt]×α)

    6.BDL[cmpt]=(double)(BSL[cmpt])

    7.form=0∶1∶mMdo

    8. forn=0∶1∶nMdo

    9. loadCCSM[m,n]toCSL

    10.CDL=(double)(CSL×β)

    11. fork=0∶1∶kMdo

    12. computem′,n′,k′of next memory access aboutASMandBSM(ADMandBDM)

    13. ifADM[m′,k′]未暫存轉(zhuǎn)換后的結(jié)果

    14. loadAASM[m′,k′]toASL[ldst]

    15. else

    16. loadAADM[m′,k′]toADL[ldst]

    17. end if

    18. ifASM[m,k]轉(zhuǎn)換后的數(shù)據(jù)未被寫回過主存

    19. storeAADL[cmpt]toADM[m,k]

    20. end if

    21. ifBDM[k′,n′]未暫存轉(zhuǎn)換后的結(jié)果

    22. loadABSM[k′,n′]toBSL[ldst]

    23. else

    24. loadABDM[k′,n′]toBDL[ldst]

    25. end if

    26. ifBSM[k,n]轉(zhuǎn)換后的數(shù)據(jù)未被寫回過主存

    27. storeBBDL[cmpt]toBDM[k,n]

    28. end if

    29. kernel(ADL[cmpt],BDL[cmpt],CDL)

    30. end loadA

    31. end loadB

    32. ifADM[m′,k′]未暫存轉(zhuǎn)換后的結(jié)果

    33.ADL[ldst]=(double)(ASL[ldst]×α)

    34. end if

    35. ifBDM[k′,n′]未暫存轉(zhuǎn)換后的結(jié)果

    36.BDL[ldst]=(double)(BSL[ldst])

    37. end if

    38. ifASM[m,k]轉(zhuǎn)換后的數(shù)據(jù)未被寫回過主存

    39. end storeA

    40. end if

    41. ifBSM[k,n]轉(zhuǎn)換后的數(shù)據(jù)未被寫回過主存

    42. end storeB

    43. end if

    44. exchange the value ofcmptandldst

    45. end for

    46.CSL=(float)(CDL)

    47. storeCCSLtoCSM[m,n]

    48. end storeC

    49. end for

    50.end for

    通過將MSMM的數(shù)據(jù)類型轉(zhuǎn)換階段和矩陣乘運(yùn)算階段融合到一起,雙緩沖消除了額外的DMA訪存操作.在算法4中,本文在LDM上分配雙精度矩陣空間ADL、BDL和CDL,同時(shí)將ASL、BSL和CSL分別嵌套在它們的后半部分,從而實(shí)現(xiàn)物理上的共用和邏輯上的分離.其中,ADL/BDL又被分為ADL[cmpt]/BDL[cmpt]和ADL[ldst]/BDL[ldst],分別用于存放當(dāng)前計(jì)算需要的矩陣塊以及下一次計(jì)算需要的矩陣塊.類似的,對(duì)應(yīng)的ASL/BSL也被分為ASL[cmpt]/BSL[cmpt]和ASL[ldst]/BSL[ldst].在每次DMA讀下一次kernel計(jì)算所需的矩陣塊ADM[m′,k′]和BDM[k′,n′]時(shí),判斷其主存空間中是否已經(jīng)存入轉(zhuǎn)換好的雙精度數(shù)據(jù).如果沒有,則DMA讀ASM[m′,k′]和BSM[k′,n′],并在加載之后轉(zhuǎn)換為雙精度數(shù)據(jù);如果有,則DMA直接讀ADM[m′,k′]和BDM[k′,n′].類似的,在每次計(jì)算kernel前,判斷當(dāng)前計(jì)算所對(duì)應(yīng)的矩陣塊ASM[m,k]和BSM[k,n]轉(zhuǎn)換后的數(shù)據(jù)是否已經(jīng)被寫回主存.如果沒有,則將ADL[cmpt]和BDL[cmpt]寫回對(duì)應(yīng)的主存空間ADM[m,k]和BDM[k,n].通過上述操作,本文利用DMA異步技術(shù)下計(jì)算和訪存的雙緩沖,盡可能地減少了不必要的訪存開銷.雖然該算法能夠最大化運(yùn)行時(shí)峰值性能,但是卻需要額外的雙倍ASM+BSM字節(jié)大小的主存空間開銷.因此,在使用該算法時(shí)應(yīng)考慮到SW26010單芯片主存容量32GB的架構(gòu)特性.

    4 實(shí)驗(yàn)結(jié)果及分析

    4.1 實(shí)驗(yàn)設(shè)置

    本文使用的申威眾核處理器SW26010,配置如表2所示.

    本文主要在SW26010處理器單核組實(shí)現(xiàn)了上述3種不同的單精度矩陣乘算法,因?yàn)榭绮煌私M的并行通常由更高編程級(jí)別的用戶自己處理.對(duì)比對(duì)象為該平臺(tái)上最先進(jìn)的官方數(shù)學(xué)庫(kù)xMath中的單精度矩陣乘,標(biāo)記為SWSMM.后續(xù)將針對(duì)兩個(gè)方面進(jìn)行實(shí)驗(yàn)設(shè)計(jì)和結(jié)果分析,一個(gè)是峰值性能,一個(gè)是通用性,前者反映了本文工作在硬件資源上發(fā)揮出的最大利用率,后者驗(yàn)證了本文工作能否更好地應(yīng)用于現(xiàn)實(shí)世界中多變的矩陣乘配置.

    表2 SW26010配置參數(shù)Table 2 Configure parameters for SW26010

    本文所有測(cè)試均是迭代10次,去掉一個(gè)最優(yōu)值和最差值,取剩余測(cè)試結(jié)果的平均值.

    4.2 峰值性能測(cè)試

    圖6 申威處理器上不同單精度矩陣乘實(shí)現(xiàn)的運(yùn)行時(shí)峰值性能比較Fig.6 Peak performance comparison of different single-precision matrix multiplication implementations on SW26010

    方陣(M=N=K)是矩陣乘運(yùn)行時(shí)峰值性能測(cè)試的最佳選擇,因此本文選取M=N=K=128X,其中X=1,2,…,100,共100組不同的矩陣乘配置測(cè)試.

    如圖6所示,用當(dāng)前最先進(jìn)的單精度矩陣乘實(shí)現(xiàn)SWSMM對(duì)比本文提出的3種算法RSMM、LSMM和MSMM.其中,SWSMM的最高性能可以達(dá)到598.85GFlops,而RSMM、LSMM和MSMM分別可以達(dá)到489.03GFlops、609.11GFlops和639.66GFlops.RSMM遠(yuǎn)低于SWSMM,主要原因是計(jì)算kernel指令執(zhí)行周期更長(zhǎng),限制了運(yùn)行時(shí)的峰值性能;LSMM與SWSMM較為接近,可以猜想兩者的實(shí)現(xiàn)原理大致相同;MSMM則明顯高于SWSMM,可見其極大地降低了大規(guī)模單精度矩陣乘中數(shù)據(jù)類型轉(zhuǎn)換的開銷.

    單獨(dú)對(duì)比本文提出的3種算法RSMM、LSMM和SWSMM,從圖6可以看出,當(dāng)方陣規(guī)模在896以內(nèi)時(shí),RSMM性能較高;隨著規(guī)模的增加,LSMM性能變得更為突出;最后當(dāng)規(guī)模達(dá)到4608之后,MSMM的性能基本最優(yōu).這是因?yàn)殡S著方陣規(guī)模的增加,訪存的影響逐漸減小,計(jì)算kernel的影響逐漸增大,這使得小規(guī)模時(shí)RSMM較優(yōu);反之,LSMM的性能更好,這是因?yàn)長(zhǎng)SMM是以額外的LDM占用來?yè)Q取更高的性能.LSMM和MSMM計(jì)算kernel相同,但是隨著方陣規(guī)模的再度增加,數(shù)據(jù)類型轉(zhuǎn)換的影響越發(fā)突出,這也使得MSMM的性能優(yōu)勢(shì)開始凸顯.

    圖7 不同矩陣乘配置的性能加速比Fig.7 Speedup of different matrix multiplication configurations

    最終本文工作最高可以發(fā)揮申威處理器單精度理論峰值性能的86.17%,相比于SWSMM的運(yùn)行時(shí)峰值性能提升了6.8%.同時(shí),從圖6性能的變化趨勢(shì)中,可以看出本文工作實(shí)現(xiàn)的單精度矩陣乘性能波動(dòng)較小,穩(wěn)定性更好.

    4.3 通用性測(cè)試

    矩陣形狀的不同使得矩陣乘在現(xiàn)實(shí)世界中也是多種多樣的,依據(jù)M、N和K相對(duì)大小的不同,可以分為8種不同的類型,標(biāo)記為BMBNBK、SMSNSK、SMBNBK、BMSNBK、BMBNSK、BMSNSK、SMBNSK和SMSNBK.‘B’表示相對(duì)值小,‘S’表示相對(duì)值大,舉例說明:SMBNBK就表示小M大N大K的矩陣乘.在3.2節(jié)中方陣的測(cè)試,代表著BMBNBK和SMSNSK兩種場(chǎng)景,但是比起方陣這種矩陣乘,剩余的6種長(zhǎng)條形矩陣乘場(chǎng)景更為普遍.本節(jié)以SWSMM為基準(zhǔn),SMBNBK等6種場(chǎng)景各取25例,測(cè)試并分析本文工作在各個(gè)矩陣乘配置下的最優(yōu)加速比.

    如圖7所示,從單類場(chǎng)景來看,BMSNBK、BMBNSK、BMSNSK和SMSNBK中,本文工作相比SWSMM在所有的矩陣乘測(cè)試中都具有明顯性能提升,最低提升分別為49.49%、154.53%、12.93%和12.1%,最高提升分別為67.73%、179.02%、247.9%和54.43.

    SMBNBK和SMBNSK是存在性能下降的兩類場(chǎng)景,而造成這一現(xiàn)象的主要原因很可能是由于在某些情況下本文算法的矩陣乘分塊方式不夠完善,沒有發(fā)揮算法的最大潛力,使得其性能略低于SWSMM.這兩種場(chǎng)景雖然都有性能下降的情況,但是無論在程度還是數(shù)量上都遠(yuǎn)遠(yuǎn)低于性能提升的情況,兩者最差時(shí)性能分別下降0.7%和23.5%,而性能最優(yōu)時(shí)分別提升18.6%和116%,且性能提升的情況在數(shù)量上分別占據(jù)92%和80%.所有場(chǎng)景來看,平均性能提升達(dá)到了61.66%,并在95.33%的情況下性能更高.由此可見,本文工作因既考慮了計(jì)算層面的優(yōu)化技術(shù)又兼顧了訪存層面的優(yōu)化技術(shù),從而相比SWSMM不僅性能提升顯著,而且通用性更強(qiáng).

    5 總 結(jié)

    隨著我國(guó)自主研發(fā)的申威眾核處理器SW26010在科學(xué)計(jì)算和人工智能領(lǐng)域的快速發(fā)展,對(duì)于該眾核處理器上高性能矩陣乘算法實(shí)現(xiàn)提出了更高的要求.而現(xiàn)有的關(guān)于矩陣乘的研究工作寥寥無幾,僅有的工作也僅僅是針對(duì)雙精度矩陣乘算法的討論.考慮到SW26010特有的架構(gòu)特征——雙精度數(shù)據(jù)運(yùn)算和單精度數(shù)據(jù)運(yùn)算共用雙精度浮點(diǎn)運(yùn)算單元,使得單精度矩陣乘算法直接套用雙精度矩陣乘算法難以充分發(fā)揮該處理器的硬件性能.本文針對(duì)上述問題,結(jié)合SW26010的體系結(jié)構(gòu)特征,提出了3種不同存儲(chǔ)層次的單精度矩陣乘并行算法,分別是RSMM、LSMM和MSMM.在進(jìn)行算法設(shè)計(jì)時(shí),綜合考慮了計(jì)算和訪存兩個(gè)核心因素,在計(jì)算方面,結(jié)合該處理器的從核雙流水,從匯編層面手動(dòng)控制核心計(jì)算任務(wù)的指令序列,保證了高效的指令級(jí)并行;在訪存方面,綜合考慮了有限片上存儲(chǔ)資源的有效使用,以及訪存任務(wù)和計(jì)算任務(wù)的交叉并行.在實(shí)驗(yàn)分析中,以當(dāng)前最先進(jìn)的官方庫(kù)xMath中的實(shí)現(xiàn)SWSMM作為基準(zhǔn),從峰值性能和通用性兩個(gè)方面進(jìn)行測(cè)試分析,最終證明本文工作不僅能夠不同程度上提升單精度矩陣乘運(yùn)算的性能,而且對(duì)于不同的矩陣乘場(chǎng)景也有著更好的適應(yīng)性.

    下一步將重點(diǎn)研究本文優(yōu)化算法同人工智能應(yīng)用的具體結(jié)合,從而探索申威眾核處理上的深度學(xué)習(xí)并行優(yōu)化技術(shù).

    猜你喜歡
    指令處理器精度
    聽我指令:大催眠術(shù)
    ARINC661顯控指令快速驗(yàn)證方法
    LED照明產(chǎn)品歐盟ErP指令要求解讀
    基于DSPIC33F微處理器的采集精度的提高
    電子制作(2018年11期)2018-08-04 03:25:38
    GPS/GLONASS/BDS組合PPP精度分析
    Imagination的ClearCallTM VoIP應(yīng)用現(xiàn)可支持Cavium的OCTEON? Ⅲ多核處理器
    改進(jìn)的Goldschmidt雙精度浮點(diǎn)除法器
    ADI推出新一代SigmaDSP處理器
    汽車零部件(2014年1期)2014-09-21 11:41:11
    呼嚕處理器
    坐標(biāo)系旋轉(zhuǎn)指令數(shù)控編程應(yīng)用
    人人妻,人人澡人人爽秒播| 中国美女看黄片| 亚洲国产精品成人久久小说 | 大又大粗又爽又黄少妇毛片口| 变态另类成人亚洲欧美熟女| 国产一区二区在线观看日韩| 超碰av人人做人人爽久久| 国产精品美女特级片免费视频播放器| 免费人成在线观看视频色| 中文亚洲av片在线观看爽| 久久精品夜夜夜夜夜久久蜜豆| 91久久精品国产一区二区三区| 国产片特级美女逼逼视频| 亚洲精品乱码久久久v下载方式| 一个人看视频在线观看www免费| 久久热精品热| 国产国拍精品亚洲av在线观看| 性色avwww在线观看| 蜜桃久久精品国产亚洲av| 免费看光身美女| 久久欧美精品欧美久久欧美| 国产一区二区三区在线臀色熟女| 亚洲成人久久爱视频| 午夜精品一区二区三区免费看| 女同久久另类99精品国产91| 色吧在线观看| 禁无遮挡网站| 天堂网av新在线| 你懂的网址亚洲精品在线观看 | 久久国产乱子免费精品| 一夜夜www| 成人鲁丝片一二三区免费| 97超碰精品成人国产| 日韩一本色道免费dvd| 少妇的逼好多水| 亚洲最大成人手机在线| 中文字幕久久专区| 午夜福利高清视频| 哪里可以看免费的av片| 亚洲欧美日韩卡通动漫| 国产麻豆成人av免费视频| 成年女人毛片免费观看观看9| 亚洲不卡免费看| 国产毛片a区久久久久| 美女免费视频网站| 卡戴珊不雅视频在线播放| 成熟少妇高潮喷水视频| 网址你懂的国产日韩在线| 最新中文字幕久久久久| 精品久久久久久久末码| 中文字幕精品亚洲无线码一区| 国产精品野战在线观看| 亚洲av中文av极速乱| 欧美一区二区国产精品久久精品| 精品无人区乱码1区二区| 看黄色毛片网站| 国内少妇人妻偷人精品xxx网站| 国产亚洲91精品色在线| 最近2019中文字幕mv第一页| 午夜视频国产福利| 欧美日本亚洲视频在线播放| 免费大片18禁| 日本黄色片子视频| 尾随美女入室| 亚洲精品成人久久久久久| 男女之事视频高清在线观看| 久久精品国产99精品国产亚洲性色| 国产精品亚洲美女久久久| 免费看a级黄色片| 18禁在线播放成人免费| 亚洲av电影不卡..在线观看| 国产高清不卡午夜福利| 日日撸夜夜添| 男人和女人高潮做爰伦理| 淫妇啪啪啪对白视频| 我的老师免费观看完整版| 亚洲国产欧洲综合997久久,| 国产美女午夜福利| 国产午夜精品论理片| 村上凉子中文字幕在线| 夜夜爽天天搞| 日本一本二区三区精品| 国产女主播在线喷水免费视频网站 | 久久九九热精品免费| 久久久精品大字幕| 国产爱豆传媒在线观看| 99九九线精品视频在线观看视频| 国产精品久久电影中文字幕| 国产高清不卡午夜福利| 免费不卡的大黄色大毛片视频在线观看 | 伊人久久精品亚洲午夜| 婷婷六月久久综合丁香| 日本一二三区视频观看| 国产精品野战在线观看| 成人三级黄色视频| 午夜免费激情av| 亚洲av成人精品一区久久| 日韩欧美 国产精品| 国产一区二区激情短视频| 国产麻豆成人av免费视频| 欧美日本视频| 草草在线视频免费看| 性色avwww在线观看| 精品久久久噜噜| 悠悠久久av| 久久精品综合一区二区三区| 国产v大片淫在线免费观看| 国产毛片a区久久久久| 久久99热这里只有精品18| 99久久精品国产国产毛片| 午夜精品一区二区三区免费看| 精品人妻偷拍中文字幕| 少妇的逼好多水| 18禁裸乳无遮挡免费网站照片| 精品久久久久久久末码| 色综合站精品国产| 国产精品精品国产色婷婷| 欧美xxxx黑人xx丫x性爽| 三级毛片av免费| 国产色爽女视频免费观看| 网址你懂的国产日韩在线| 久久亚洲精品不卡| 欧美成人a在线观看| 日本三级黄在线观看| 少妇熟女aⅴ在线视频| 蜜臀久久99精品久久宅男| 国产国拍精品亚洲av在线观看| 欧美色视频一区免费| 精品久久久久久久久久免费视频| 亚洲成人av在线免费| 男女做爰动态图高潮gif福利片| 一个人免费在线观看电影| 在线免费观看不下载黄p国产| 国产伦精品一区二区三区四那| 成人亚洲欧美一区二区av| av国产免费在线观看| av在线播放精品| 午夜激情欧美在线| 亚洲人成网站高清观看| 亚洲国产精品合色在线| 日韩一本色道免费dvd| 在线免费观看的www视频| 久久综合国产亚洲精品| 午夜精品在线福利| 国产日本99.免费观看| 丝袜喷水一区| 国产在线男女| 日本黄色视频三级网站网址| 神马国产精品三级电影在线观看| 日韩制服骚丝袜av| 97在线视频观看| 99久久无色码亚洲精品果冻| 夜夜夜夜夜久久久久| 亚洲人成网站在线播| 欧美日韩国产亚洲二区| www.色视频.com| 男人和女人高潮做爰伦理| 在线播放无遮挡| 热99在线观看视频| 中文字幕精品亚洲无线码一区| 亚洲最大成人中文| 久久久久久国产a免费观看| 如何舔出高潮| 日韩欧美 国产精品| 欧美日韩乱码在线| 黄色欧美视频在线观看| 久久国产乱子免费精品| 麻豆国产av国片精品| 国产伦一二天堂av在线观看| 亚洲综合色惰| 日本撒尿小便嘘嘘汇集6| 精品福利观看| 国产av不卡久久| 欧美3d第一页| 日本-黄色视频高清免费观看| 九九热线精品视视频播放| 亚洲av电影不卡..在线观看| 日韩一本色道免费dvd| 欧美zozozo另类| 久久久久久久亚洲中文字幕| 日韩中字成人| 熟女人妻精品中文字幕| 一级黄片播放器| 看片在线看免费视频| 黄片wwwwww| 一本一本综合久久| 国产精品99久久久久久久久| 国产欧美日韩精品亚洲av| 美女高潮的动态| 国产熟女欧美一区二区| 成人漫画全彩无遮挡| 国内久久婷婷六月综合欲色啪| 国产女主播在线喷水免费视频网站 | av女优亚洲男人天堂| 特级一级黄色大片| 长腿黑丝高跟| 国产乱人偷精品视频| 在线观看av片永久免费下载| 午夜老司机福利剧场| 成人精品一区二区免费| 97超视频在线观看视频| 人妻久久中文字幕网| 三级国产精品欧美在线观看| 性插视频无遮挡在线免费观看| 国内精品久久久久精免费| 午夜福利18| 午夜免费激情av| 91狼人影院| 色吧在线观看| 成熟少妇高潮喷水视频| 久久久午夜欧美精品| 欧美xxxx黑人xx丫x性爽| 97超碰精品成人国产| 亚洲av.av天堂| 国产日本99.免费观看| 欧美区成人在线视频| 听说在线观看完整版免费高清| 久久久久精品国产欧美久久久| 波多野结衣高清无吗| 久久天躁狠狠躁夜夜2o2o| 人人妻人人看人人澡| 精品一区二区免费观看| 精品无人区乱码1区二区| 在线观看免费视频日本深夜| 丝袜美腿在线中文| 91狼人影院| 亚洲国产欧洲综合997久久,| 亚洲国产精品国产精品| www日本黄色视频网| 国产亚洲精品久久久com| 内射极品少妇av片p| 亚洲18禁久久av| 晚上一个人看的免费电影| 麻豆久久精品国产亚洲av| 91在线精品国自产拍蜜月| 免费观看精品视频网站| 亚洲综合色惰| 精品久久久久久成人av| 欧美日本亚洲视频在线播放| 久久久色成人| 插逼视频在线观看| 亚洲av第一区精品v没综合| 国产精品电影一区二区三区| 国产精品,欧美在线| 成年女人毛片免费观看观看9| 日韩欧美 国产精品| 美女内射精品一级片tv| 天天一区二区日本电影三级| 黄色视频,在线免费观看| 日本一本二区三区精品| 国产精品久久久久久精品电影| 美女高潮的动态| 两个人的视频大全免费| 国产亚洲精品久久久com| 久久久久国产网址| 欧美日韩乱码在线| 亚洲无线观看免费| 日韩强制内射视频| 精品国内亚洲2022精品成人| 免费不卡的大黄色大毛片视频在线观看 | 老熟妇仑乱视频hdxx| 久久天躁狠狠躁夜夜2o2o| 国产伦一二天堂av在线观看| 噜噜噜噜噜久久久久久91| 国产又黄又爽又无遮挡在线| 国产精品av视频在线免费观看| 在线看三级毛片| 精品一区二区三区视频在线观看免费| 亚洲五月天丁香| 国产精品亚洲美女久久久| 国产一区二区激情短视频| 午夜久久久久精精品| 亚洲欧美日韩无卡精品| 夜夜夜夜夜久久久久| 日韩欧美 国产精品| 日韩欧美精品免费久久| 亚洲最大成人中文| 校园人妻丝袜中文字幕| 国产精品不卡视频一区二区| 淫秽高清视频在线观看| 国产精品野战在线观看| 麻豆国产97在线/欧美| 级片在线观看| 久久亚洲精品不卡| 成人亚洲精品av一区二区| av在线观看视频网站免费| 国产精品嫩草影院av在线观看| 婷婷亚洲欧美| 亚洲aⅴ乱码一区二区在线播放| 午夜日韩欧美国产| 久久精品综合一区二区三区| 日韩一区二区视频免费看| 国产精品一及| 精品久久久久久久久久久久久| 亚洲精品日韩av片在线观看| 久久精品国产亚洲网站| 午夜福利高清视频| 日本欧美国产在线视频| 欧美日韩综合久久久久久| av在线播放精品| 中国美白少妇内射xxxbb| 亚洲精品粉嫩美女一区| 国产在线精品亚洲第一网站| 国产精品一及| 观看免费一级毛片| 久久中文看片网| 亚洲久久久久久中文字幕| 亚洲国产精品sss在线观看| 狂野欧美白嫩少妇大欣赏| 成年女人看的毛片在线观看| 俺也久久电影网| 婷婷精品国产亚洲av| 岛国在线免费视频观看| 国产午夜精品论理片| 综合色av麻豆| 久久久欧美国产精品| 亚洲精品粉嫩美女一区| 99久久精品一区二区三区| 国产男人的电影天堂91| 联通29元200g的流量卡| 欧美精品国产亚洲| 亚洲三级黄色毛片| 久久精品影院6| 久久久a久久爽久久v久久| 精品一区二区免费观看| 级片在线观看| 97超视频在线观看视频| 亚洲在线观看片| 99热网站在线观看| 国产又黄又爽又无遮挡在线| 亚洲av免费在线观看| 色尼玛亚洲综合影院| 男人舔女人下体高潮全视频| 老司机午夜福利在线观看视频| 欧美又色又爽又黄视频| 夜夜夜夜夜久久久久| 神马国产精品三级电影在线观看| 日本撒尿小便嘘嘘汇集6| 亚洲精品日韩在线中文字幕 | 免费观看精品视频网站| 国产精品人妻久久久影院| 三级毛片av免费| 99视频精品全部免费 在线| 日韩av在线大香蕉| 日韩欧美在线乱码| 久久中文看片网| 午夜久久久久精精品| 精品一区二区免费观看| 观看免费一级毛片| 十八禁网站免费在线| 亚洲av成人精品一区久久| 丰满人妻一区二区三区视频av| 天堂影院成人在线观看| 高清日韩中文字幕在线| 成年女人看的毛片在线观看| 国产精品嫩草影院av在线观看| 欧美三级亚洲精品| 国产片特级美女逼逼视频| 国内精品美女久久久久久| 春色校园在线视频观看| 精品一区二区三区视频在线观看免费| 久久久国产成人免费| 色哟哟哟哟哟哟| 欧美色视频一区免费| av在线蜜桃| 99久国产av精品国产电影| 久久精品91蜜桃| 插阴视频在线观看视频| 精品一区二区三区人妻视频| 能在线免费观看的黄片| av中文乱码字幕在线| 国产精品一二三区在线看| 人妻夜夜爽99麻豆av| 最近在线观看免费完整版| 不卡一级毛片| 欧美xxxx性猛交bbbb| 日韩人妻高清精品专区| 97超级碰碰碰精品色视频在线观看| 日本五十路高清| 欧美色欧美亚洲另类二区| 国产三级在线视频| 成年女人毛片免费观看观看9| 美女免费视频网站| 久久精品国产亚洲av天美| 丰满的人妻完整版| 国产aⅴ精品一区二区三区波| 国产精品av视频在线免费观看| 蜜桃久久精品国产亚洲av| 国产伦精品一区二区三区视频9| 亚洲不卡免费看| 国产精品久久久久久精品电影| 中文在线观看免费www的网站| 99热网站在线观看| 国产色婷婷99| 97在线视频观看| 午夜免费男女啪啪视频观看 | 欧美日韩综合久久久久久| 午夜免费激情av| 亚洲中文字幕一区二区三区有码在线看| 久久九九热精品免费| 1000部很黄的大片| 人妻少妇偷人精品九色| 日产精品乱码卡一卡2卡三| 美女高潮的动态| av国产免费在线观看| 精品久久久久久成人av| 99热只有精品国产| 亚洲丝袜综合中文字幕| or卡值多少钱| 搞女人的毛片| 国产精品久久视频播放| 国产午夜福利久久久久久| 国产淫片久久久久久久久| 久久热精品热| 久久久国产成人精品二区| 婷婷色综合大香蕉| 国产精品永久免费网站| 亚洲国产欧洲综合997久久,| 久久久欧美国产精品| 超碰av人人做人人爽久久| 又黄又爽又免费观看的视频| 久久久久国内视频| 亚洲成人久久性| 亚洲成人久久爱视频| 日本五十路高清| 如何舔出高潮| 99久久中文字幕三级久久日本| 国产高清三级在线| 国产一区二区激情短视频| 久久亚洲国产成人精品v| 天美传媒精品一区二区| 三级男女做爰猛烈吃奶摸视频| 久久国内精品自在自线图片| 日韩人妻高清精品专区| 久久草成人影院| 国产伦精品一区二区三区视频9| 久久人妻av系列| 国产av不卡久久| 在线播放无遮挡| 亚洲av熟女| av福利片在线观看| 精品一区二区三区视频在线| 欧美日本亚洲视频在线播放| 国产久久久一区二区三区| av免费在线看不卡| 国产在线男女| 久久6这里有精品| 伦理电影大哥的女人| 一区二区三区免费毛片| 国产精品综合久久久久久久免费| 国产精品一二三区在线看| 在线观看一区二区三区| 精品一区二区三区av网在线观看| 舔av片在线| 亚洲欧美日韩东京热| 一边摸一边抽搐一进一小说| 精品人妻偷拍中文字幕| 如何舔出高潮| 亚洲av免费在线观看| 赤兔流量卡办理| 亚洲av第一区精品v没综合| 亚洲成人av在线免费| 久久久国产成人免费| 亚洲真实伦在线观看| 国产精品伦人一区二区| 国产精品av视频在线免费观看| 亚洲在线观看片| 噜噜噜噜噜久久久久久91| 欧美激情久久久久久爽电影| 亚洲四区av| 日本五十路高清| 成年av动漫网址| 日韩三级伦理在线观看| 18+在线观看网站| 欧美在线一区亚洲| 国产极品精品免费视频能看的| 在线免费观看不下载黄p国产| 亚洲精品成人久久久久久| 国产 一区 欧美 日韩| 国国产精品蜜臀av免费| 日韩精品中文字幕看吧| 好男人在线观看高清免费视频| 人人妻,人人澡人人爽秒播| 校园春色视频在线观看| 日本精品一区二区三区蜜桃| 免费av观看视频| 免费人成视频x8x8入口观看| 国产精品一区二区性色av| 99热这里只有是精品在线观看| 国产精品av视频在线免费观看| 大又大粗又爽又黄少妇毛片口| 免费看美女性在线毛片视频| 国产视频一区二区在线看| 亚洲人与动物交配视频| 欧美日韩精品成人综合77777| 男女那种视频在线观看| 中文字幕熟女人妻在线| 国产黄片美女视频| 在线免费十八禁| 国产一区二区三区av在线 | 成年女人看的毛片在线观看| 97超级碰碰碰精品色视频在线观看| 久久这里只有精品中国| 国产欧美日韩精品一区二区| 日本a在线网址| av.在线天堂| 久久精品国产亚洲网站| 99热网站在线观看| 亚洲成av人片在线播放无| 少妇猛男粗大的猛烈进出视频 | 丰满乱子伦码专区| 亚洲av五月六月丁香网| 国产真实乱freesex| 欧美日韩精品成人综合77777| 久久久久久久亚洲中文字幕| 免费观看人在逋| 欧美日韩一区二区视频在线观看视频在线 | 国产亚洲av嫩草精品影院| 亚洲精品一区av在线观看| 亚洲国产精品久久男人天堂| 国产一区二区在线av高清观看| 黄色配什么色好看| 欧美色视频一区免费| 日本色播在线视频| 成人美女网站在线观看视频| 校园人妻丝袜中文字幕| 精品一区二区三区人妻视频| 亚洲欧美精品综合久久99| 国产男人的电影天堂91| 成人高潮视频无遮挡免费网站| 美女cb高潮喷水在线观看| 午夜福利在线在线| 精品人妻一区二区三区麻豆 | 国产色婷婷99| 亚洲av熟女| 成人毛片a级毛片在线播放| 女的被弄到高潮叫床怎么办| 亚洲精品粉嫩美女一区| 网址你懂的国产日韩在线| 亚洲人与动物交配视频| 久久精品国产亚洲av香蕉五月| 午夜视频国产福利| videossex国产| 人人妻,人人澡人人爽秒播| 中文字幕人妻熟人妻熟丝袜美| 亚洲性夜色夜夜综合| 亚洲人成网站在线播放欧美日韩| 麻豆乱淫一区二区| 精品乱码久久久久久99久播| 内射极品少妇av片p| 精品欧美国产一区二区三| 婷婷色综合大香蕉| 国产精品野战在线观看| 久久天躁狠狠躁夜夜2o2o| 99国产极品粉嫩在线观看| 国产综合懂色| 嫩草影院新地址| 国产女主播在线喷水免费视频网站 | 99国产极品粉嫩在线观看| 日韩欧美国产在线观看| 嫩草影院精品99| 欧美日韩一区二区视频在线观看视频在线 | 成熟少妇高潮喷水视频| 国产一区二区在线av高清观看| 白带黄色成豆腐渣| 欧美xxxx性猛交bbbb| 一进一出好大好爽视频| 久久久久免费精品人妻一区二区| 国产精华一区二区三区| 日韩中字成人| 亚洲av中文字字幕乱码综合| 久久久久国内视频| 无遮挡黄片免费观看| 精品国内亚洲2022精品成人| 天天躁日日操中文字幕| 此物有八面人人有两片| 天堂影院成人在线观看| 国产黄色小视频在线观看| 日韩欧美 国产精品| 亚洲图色成人| 偷拍熟女少妇极品色| 色哟哟哟哟哟哟| 内地一区二区视频在线| 久久久精品欧美日韩精品| 日本-黄色视频高清免费观看| 女的被弄到高潮叫床怎么办| 久久久精品94久久精品| 你懂的网址亚洲精品在线观看 | 国产视频内射| 国产一区亚洲一区在线观看| 99久久九九国产精品国产免费| 秋霞在线观看毛片| 国产精品人妻久久久影院| 婷婷亚洲欧美| 麻豆精品久久久久久蜜桃| 国产精品人妻久久久影院| 亚洲av五月六月丁香网| 欧美色欧美亚洲另类二区| 国产高清视频在线观看网站| 欧美不卡视频在线免费观看| 中文字幕精品亚洲无线码一区| 日韩欧美三级三区| 国产精品一区二区三区四区免费观看 | 国产熟女欧美一区二区| 精品午夜福利视频在线观看一区| 久久久久久大精品| 日本黄色视频三级网站网址| 中文字幕免费在线视频6| 欧美性猛交╳xxx乱大交人| 悠悠久久av| 精品人妻一区二区三区麻豆 | 日韩一区二区视频免费看| 性色avwww在线观看| 久久精品国产自在天天线| 国产精品不卡视频一区二区|