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

    復(fù)雜異構(gòu)計(jì)算系統(tǒng)HPL 的優(yōu)化?

    2021-11-09 02:45:16黎雷生楊文浩馬文靜趙海濤李會(huì)元孫家昶
    軟件學(xué)報(bào) 2021年8期
    關(guān)鍵詞:進(jìn)程內(nèi)存廣播

    黎雷生 ,楊文浩 ,馬文靜 ,張 婭 ,趙 慧 ,趙海濤 ,李會(huì)元,孫家昶

    1(中國科學(xué)院 軟件研究所 并行軟件與計(jì)算科學(xué)實(shí)驗(yàn)室,北京 100190)

    2(計(jì)算機(jī)科學(xué)國家重點(diǎn)實(shí)驗(yàn)室(中國科學(xué)院 軟件研究所),北京 100190)

    HPL(high performance Linpack)是評(píng)測計(jì)算系統(tǒng)性能的程序,是早期Linpack 評(píng)測程序的并行版本,支持大規(guī)模并行超級(jí)計(jì)算系統(tǒng)[1],其報(bào)告的每秒浮點(diǎn)運(yùn)算次數(shù)(floating-point operations per second,簡稱FLOPS)是世界超級(jí)計(jì)算機(jī)Top500 列表排名的依據(jù).

    基于Linpack 的Top500 排名開始于1993 年,每年發(fā)表兩次.2007 年11 月及之前的列表,排名前10 位的超級(jí)計(jì)算機(jī)的計(jì)算能力全部由同構(gòu)CPU提供.2008年6月Top500首臺(tái)性能超過1 PFLOPS 的超計(jì)算機(jī)Roadrunner使用異構(gòu)CPU 結(jié)構(gòu),通用CPU 執(zhí)行調(diào)度、管理等任務(wù),加速CPU 主要負(fù)責(zé)計(jì)算密集任務(wù).2009 年11 月排名第5 位的Tianhe-1 使用了CPU+GPU 的異構(gòu)架構(gòu).此后榜單上排名前10 的系統(tǒng)CPU+加速器的架構(gòu)成為趨勢.2019年6 月最新的排名顯示,前10 位中有7 臺(tái)系統(tǒng)使用CPU+加速器架構(gòu),其中使用GPU 加速器的5 臺(tái),使用XEON Phi 的1 臺(tái),使用Matrix-2000 的1 臺(tái)[2].

    HPL 浮點(diǎn)計(jì)算集中在BLAS 函數(shù),特別是DGEMM.對(duì)于同構(gòu)CPU 架構(gòu),優(yōu)化BLAS 函數(shù)特別是DGEMM性能是提高HPL 的浮點(diǎn)效率的關(guān)鍵.Dongarra 等人[1]總結(jié)了2002 年之前Linpack 發(fā)展歷史和BLAS 函數(shù)的優(yōu)化方法.

    對(duì)于CPU+加速器架構(gòu),優(yōu)化方向集中于CPU端BLAS 函數(shù)、加速器端BLAS 函數(shù)、CPU 與加速器之間負(fù)載分配和數(shù)據(jù)傳輸?shù)?Kurzak 等人[3]優(yōu)化多核CPU 多GPU 的HPL,其4 個(gè)GPU 的DGEMM 浮點(diǎn)性能達(dá)到1 200 GFLOPS.Bach 等人[4]面向AMD CPU 與Cypress GPU 架構(gòu)優(yōu)化了DGEMM 和HPL,HPL 效率達(dá)到70%.Wang 等人[5]采用自適應(yīng)負(fù)載分配方法優(yōu)化CPU 與GPU 混合系統(tǒng)HPL 性能,并調(diào)優(yōu)HPL 參數(shù),目標(biāo)系統(tǒng)Tianhe1A 浮點(diǎn)性能達(dá)到0.563 PFLOPS.Heinecke 等人[6]基于Intel Xeon Phi Knights Corner 優(yōu)化了DGEMM,使用動(dòng)態(tài)調(diào)度和改進(jìn)的look-ahead 優(yōu)化HPL,100 節(jié)點(diǎn)集群HPL 效率達(dá)到76%.Gan 等人[7]優(yōu)化基于加速器的DGEMM,并應(yīng)用于Tianhe-2 HPL 評(píng)測.

    隨著以GPU 為代表的加速器技術(shù)的發(fā)展,加速器浮點(diǎn)性能越來越高,CPU 與加速器的浮點(diǎn)性能差距越來越大.2019 年6 月,Top500 排名第一的Summit 系統(tǒng)[8]的1 個(gè)節(jié)點(diǎn)裝備2 個(gè)CPU,理論浮點(diǎn)性能1 TFLOPS,裝備6個(gè)GPU,理論浮點(diǎn)性能42 TFLOPS.本文研究的目標(biāo)系統(tǒng)使用CPU+GPU 異構(gòu)架構(gòu),每個(gè)節(jié)點(diǎn)裝備1 個(gè)32 核CPU,4 個(gè)GPU,CPU 浮點(diǎn)計(jì)算性能約是GPU 的1/61.同時(shí)加速器本身的結(jié)構(gòu)也變得越來越復(fù)雜,通過增加特定的硬件滿足特定領(lǐng)域的需求,如Nvidia GPU 的Tensor Core 等.已有研究使用Tensor Core 的強(qiáng)大的半精度運(yùn)算能力混合雙精度計(jì)算開發(fā)了HPL-AI[9],報(bào)告Summit 的HPL-AI 性能是全雙精度HPL 的2.9 倍.并且已有應(yīng)用采用混合精度算法加速計(jì)算,從HPL 和應(yīng)用角度來看,混合精度都是值得研究的方向.面對(duì)這種新的計(jì)算架構(gòu),內(nèi)存、總線、網(wǎng)絡(luò)以及系統(tǒng)設(shè)計(jì)都要與之相適應(yīng),形成復(fù)雜的異構(gòu)計(jì)算系統(tǒng),這為HPL 評(píng)測帶來很多機(jī)遇與挑戰(zhàn).

    本文在基礎(chǔ)HPL 代碼之上,針對(duì)目標(biāo)系統(tǒng)實(shí)現(xiàn)HPL 并研究其優(yōu)化方法.第1 節(jié)簡要介紹基礎(chǔ)算法.第2 節(jié)介紹目標(biāo)系統(tǒng)基本情況.第3 節(jié)描述復(fù)雜異構(gòu)系統(tǒng)HPL 平衡點(diǎn)理論.第4 節(jié)介紹復(fù)雜異構(gòu)系統(tǒng)HPL 高效并行算法.第5 節(jié)介紹基礎(chǔ)模塊的性能優(yōu)化,包括panel 分解優(yōu)化和行交換long算法的優(yōu)化.第6 節(jié)介紹目標(biāo)系統(tǒng)HPL實(shí)驗(yàn)和結(jié)果分析.第7 節(jié)總結(jié)并展望未來的工作.

    1 基礎(chǔ)算法

    HPL算法使用64 位浮點(diǎn)精度矩陣行偏主元LU 分解加回代求解線性系統(tǒng).矩陣是稠密實(shí)矩陣,矩陣單元由偽隨機(jī)數(shù)生成器產(chǎn)生,符合正態(tài)分布.

    線性系統(tǒng)定義為:

    行偏主元LU 分解N×(N+1)系數(shù)矩陣[A,b]:

    其中,Pr表示行主元交換矩陣,分解過程中下三角矩陣因子L已經(jīng)作用于b,解x通過求解上三角矩陣系統(tǒng)得到:

    HPL 采用分塊LU算法,每個(gè)分塊是一個(gè)NB列的細(xì)長矩陣,稱為panel.LU 分解主循環(huán)采用right-looking算法,單步循環(huán)計(jì)算panel 的LU 分解和更新剩余矩陣.基本算法如圖1 所示,其中A1,1和A2,1表示panel 數(shù)據(jù).需要特別說明的是,圖示矩陣是行主順序,HPL 代碼中矩陣是列主存儲(chǔ)的.

    Fig.1 Block LU algorithm圖1 分塊LU算法

    計(jì)算公式如下:

    第1 個(gè)公式表示panel 的LU 分解,第2 個(gè)公式表示求解U,一般使用DTRSM 函數(shù),第3 個(gè)公式表示矩陣更新,一般使用DGEMM 函數(shù).

    對(duì)于分布式內(nèi)存計(jì)算系統(tǒng),HPL 并行計(jì)算模式基于MPI,每個(gè)進(jìn)程是基本計(jì)算單元.進(jìn)程組織成二維網(wǎng)格.矩陣A被劃分為NB×NB的邏輯塊,以Block-Cycle 方式分配到二維進(jìn)程網(wǎng)格,數(shù)據(jù)布局示例如圖2 所示.

    Fig.2 Block-Cycle algorithm圖2 Block-Cycle算法

    對(duì)于具有多列的進(jìn)程網(wǎng)格,單步循環(huán)只有一列進(jìn)程執(zhí)行panel 分解計(jì)算,panel 分解過程中每一列執(zhí)行一次panel 的行交換算法選擇并通信最大主元行.Panel 分解計(jì)算完成后,把已分解數(shù)據(jù)廣播到其他進(jìn)程列.HPL 基礎(chǔ)代碼包含6 類廣播算法,可以通過測試選擇較優(yōu)的算法.

    HPL 采用行主元算法,單步矩陣更新之前,要把panel 分解時(shí)選出的最大主元行交換到U矩陣中,需要執(zhí)行未更新矩陣的主元行交換和廣播.主元行交換和廣播后,每個(gè)進(jìn)程獲得完整的主元行數(shù)據(jù).

    矩陣更新包括兩部分計(jì)算,一是使用DTRSM 求解U,二是使用DGEMM 更新矩陣數(shù)據(jù).

    LU 分解完成后,HPL 使用回代求解x,并驗(yàn)證解的正確性.

    2 系統(tǒng)介紹

    2.1 系統(tǒng)硬件

    優(yōu)化HPL 的目標(biāo)系統(tǒng)是典型的復(fù)雜異構(gòu)系統(tǒng),計(jì)算部件由通用CPU 和計(jì)算加速器GPU 組成,網(wǎng)絡(luò)接口和互聯(lián)系統(tǒng)是高速Infiniband 網(wǎng)絡(luò).

    2.2 基礎(chǔ)軟件

    目標(biāo)CPU 兼容x86 指令集.編譯器使用gcc,MPI 使用OpenMPI.

    HPL 基礎(chǔ)代碼使用2.3 版本.HPL 會(huì)調(diào)用多個(gè)BLAS 函數(shù).CPU端BLAS 使用針對(duì)目標(biāo)CPU 優(yōu)化的OpenBLIS,支持OpenMP 實(shí)現(xiàn)多核并行.GPU端BLAS 使用針對(duì)目標(biāo)GPU 優(yōu)化的BLAS.

    3 復(fù)雜異構(gòu)系統(tǒng)HPL 平衡點(diǎn)理論

    從硬件的角度來看,CPU 的每個(gè)Die 與對(duì)應(yīng)的內(nèi)存系統(tǒng)、GPU 和網(wǎng)絡(luò)接口組成相對(duì)獨(dú)立的系統(tǒng).因此,在選擇并行方案時(shí),采用1 個(gè)進(jìn)程使用1 個(gè)Die,并且與相應(yīng)的內(nèi)存、GPU 和網(wǎng)絡(luò)接口綁定的架構(gòu).HPL 基礎(chǔ)代碼中只有1 列或1 行進(jìn)程時(shí)執(zhí)行流程不同,較大規(guī)模并行一般是多行多列進(jìn)程,因此使用1 個(gè)節(jié)點(diǎn)4 進(jìn)程作為研究對(duì)象,覆蓋多行多列進(jìn)程執(zhí)行流程.

    對(duì)于復(fù)雜異構(gòu)系統(tǒng)HPL 計(jì)算,需要協(xié)同調(diào)度CPU、GPU、PCIe 和通信網(wǎng)絡(luò)等資源.首先研究CPU 與GPU計(jì)算任務(wù)分配方式,進(jìn)程內(nèi)CPU 與GPU 以及進(jìn)程間的數(shù)據(jù)傳輸,并且建立線程模型控制CPU、GPU 和網(wǎng)絡(luò)接口協(xié)同計(jì)算.然后分析HPL 各部分的性能,提出復(fù)雜異構(gòu)系統(tǒng)的平衡點(diǎn)理論指導(dǎo)性能優(yōu)化.

    3.1 計(jì)算任務(wù)分配

    文獻(xiàn)[4,6]等研究的異構(gòu)系統(tǒng)中,CPU 執(zhí)行panel 分解計(jì)算,加速器執(zhí)行矩陣更新的DTRSM 和DGEMM 計(jì)算.CPU 計(jì)算能力可以達(dá)到加速器計(jì)算能力的10%或更高,除了panel 分解,CPU 還可以計(jì)算部分矩陣更新.并且由于加速器內(nèi)存限制,矩陣不能完全存儲(chǔ)在加速器,矩陣更新一般采用流水的方式.

    經(jīng)過分析和實(shí)驗(yàn)對(duì)比,由于panel 分解控制流程復(fù)雜,并且大量調(diào)用GPU 計(jì)算效率較低的DGEMV、DSCAL等函數(shù),不適合在GPU端實(shí)現(xiàn),因此,仍然采用CPU 計(jì)算panel 分解的方案.

    對(duì)于矩陣更新來說,目標(biāo)系統(tǒng)CPU 和GPU 之間的數(shù)據(jù)傳輸成為瓶頸,導(dǎo)致矩陣更新流水線方法不再適用.針對(duì)單個(gè)GPU 分析,假設(shè)矩陣規(guī)模N=58368(占用約80%的系統(tǒng)內(nèi)存),NB=384,矩陣更新的DGEMM 效率為85%.可以計(jì)算出矩陣更新計(jì)算時(shí)間0.52s.PCIe 單向傳輸矩陣數(shù)據(jù)的理論時(shí)間1.70s.數(shù)據(jù)傳輸時(shí)間超過GPU 的計(jì)算時(shí)間,導(dǎo)致GPU 超過2/3 處于空閑狀態(tài),GPU 計(jì)算能力不能充分利用.

    因此,采用矩陣數(shù)據(jù)常駐GPU 內(nèi)存的方式,矩陣更新時(shí)避免傳輸整個(gè)剩余矩陣.這種模式下,矩陣的規(guī)模受限于GPU 設(shè)備內(nèi)存的容量.為了運(yùn)算方便,CPU端內(nèi)存保留GPU端數(shù)據(jù)存儲(chǔ)的鏡像.

    3.2 數(shù)據(jù)傳輸

    數(shù)據(jù)傳輸包括進(jìn)程內(nèi)主機(jī)內(nèi)存與GPU 設(shè)備內(nèi)存之間數(shù)據(jù)傳輸和進(jìn)程間數(shù)據(jù)傳輸.主機(jī)內(nèi)存與GPU 設(shè)備內(nèi)存數(shù)據(jù)傳輸使用PCIe 總線,一般采用DMA 異步模式,數(shù)據(jù)傳輸?shù)耐瑫r(shí)CPU 和GPU 可以執(zhí)行計(jì)算任務(wù).進(jìn)程間數(shù)據(jù)傳輸使用MPI.如果數(shù)據(jù)傳輸?shù)倪M(jìn)程位于同一個(gè)節(jié)點(diǎn),MPI 使用共享內(nèi)存等技術(shù)提高數(shù)據(jù)傳輸性能.節(jié)點(diǎn)之間的數(shù)據(jù)傳輸通過網(wǎng)絡(luò)接口.

    由于矩陣數(shù)據(jù)常駐GPU 內(nèi)存,panel 分解前把當(dāng)前的panel 數(shù)據(jù)從GPU 傳輸?shù)紺PU.Panel 分解在CPU端執(zhí)行panel 的主元選取與廣播,使用基礎(chǔ)代碼的算法.已完成panel 分解的數(shù)據(jù),進(jìn)程內(nèi)部通過PCIe 傳輸?shù)紾PU.進(jìn)程之間通過MPI 傳輸,非當(dāng)前panel 分解進(jìn)程接收到panel 數(shù)據(jù)后,再通過PCIe 傳輸?shù)紾PU.

    相比于基礎(chǔ)代碼,矩陣更新行交換和廣播增加了CPU 與GPU 數(shù)據(jù)傳輸過程.矩陣的行在GPU 內(nèi)存不連續(xù),數(shù)據(jù)傳輸前后需要執(zhí)行封裝和重排.數(shù)據(jù)傳輸關(guān)系如圖3 所示.

    Fig.3 Data transmisson圖3 數(shù)據(jù)傳輸

    3.3 多線程模型

    在1 個(gè)節(jié)點(diǎn)4 個(gè)進(jìn)程的架構(gòu)下,每個(gè)進(jìn)程使用8 個(gè)CPU 核心,使用多線程管理和調(diào)度這些核心.Panel 分解和panel 廣播共享數(shù)據(jù),執(zhí)行順序存在依賴關(guān)系,放在同一個(gè)線程.矩陣行交換和矩陣更新共享數(shù)據(jù),執(zhí)行順序存在依賴關(guān)系,放在同一個(gè)線程.兩組操作之間相對(duì)獨(dú)立,分別綁定到特定核心.兩個(gè)線程之間通過信號(hào)量同步.

    Panel 分解線程調(diào)用和管理OpenBLIS 函數(shù),OpenBLIS 使用OpenMP 線程模型.Panel 分解調(diào)用OpenBLIS函數(shù)時(shí),與panel 分解的其他過程沒有資源共享和沖突,OpenBLIS 的OpenMP 線程綁定的核心可以包括panel分解主線程的核心,也就是最多可綁定7 個(gè)核心.

    3.4 復(fù)雜異構(gòu)系統(tǒng)協(xié)同計(jì)算平衡點(diǎn)理論

    目標(biāo)系統(tǒng)是復(fù)雜異構(gòu)系統(tǒng),涉及CPU、GPU、PCIe 和網(wǎng)絡(luò)接口等部件的協(xié)同計(jì)算.為了更好分析和評(píng)測各部分對(duì)HPL 性能的影響,指導(dǎo)性能優(yōu)化,提出平衡點(diǎn)理論.

    HPL算法中,矩陣更新的浮點(diǎn)計(jì)算占據(jù)絕大部分,這部分計(jì)算由GPU 完成.性能分析過程中,矩陣更新被認(rèn)為是有效計(jì)算,其他功能模塊包括panel 分解和矩陣行交換的目標(biāo)是為矩陣更新提供數(shù)據(jù)準(zhǔn)備.為了獲得較高的效率,要盡可能保證GPU 處于工作狀態(tài),發(fā)揮GPU 浮點(diǎn)計(jì)算能力.對(duì)于panel 分解和矩陣行交換,盡可能讓它們與GPU 計(jì)算并行,使用GPU 計(jì)算隱藏panel 分解和矩陣行交換.

    研究沒有使用特殊優(yōu)化、單步循環(huán)各部分時(shí)間以及串行執(zhí)行的總時(shí)間,如圖4 所示.采用2×2 進(jìn)程布局,圖中是進(jìn)程0 的時(shí)間曲線.進(jìn)程0 在計(jì)算過程中處于不同的位置,包括當(dāng)前列-當(dāng)前行和非當(dāng)前行-非當(dāng)前列兩種情況,圖中”A”代表當(dāng)前列-當(dāng)前行,”B”代表非當(dāng)前行-非當(dāng)前列.兩種情況下執(zhí)行的計(jì)算有差異,每種運(yùn)算有兩條時(shí)間曲線.panel 分解時(shí)間在不同規(guī)模下稍有波動(dòng).可以看出,單步循環(huán)串行執(zhí)行時(shí)間遠(yuǎn)大于GPU 執(zhí)行有效計(jì)算的時(shí)間.那么首先必須做好矩陣更新與panel 分解和行交換的并行,GPU 計(jì)算時(shí)間隱藏panel 分解與和行交換時(shí)間.

    Fig.4 Time of panel factorization,row swap,matrix update and each loop圖4 Panel 分解、行交換、矩陣更新和三部分串行執(zhí)行累加時(shí)間

    另一方面,HPL 的LU 分解過程分為兩個(gè)階段,矩陣更新時(shí)間大于panel 分解和行交換的時(shí)間的階段和矩陣更新時(shí)間小于panel 分解直至小于行交換時(shí)間的階段.在panel 分解與矩陣行交換并行的情況下,兩個(gè)階段的分界點(diǎn)即矩陣更新與panel 分解時(shí)間曲線的交點(diǎn)就是CPU 與GPU 協(xié)同計(jì)算的平衡點(diǎn).

    針對(duì)1 節(jié)點(diǎn)4 進(jìn)程進(jìn)行分析,N=88320 情況下,從計(jì)算規(guī)模來看,平衡點(diǎn)在37.82%,LU 計(jì)算量占76.00%,之后GPU 不能充分發(fā)揮性能.有必要繼續(xù)優(yōu)化panel 分解和行交換,減少執(zhí)行時(shí)間,平衡點(diǎn)后移,延長GPU 高效率計(jì)算時(shí)間,進(jìn)而提高整體的計(jì)算效率.平衡點(diǎn)理論可以很好地指導(dǎo)HPL 的優(yōu)化工作.

    4 復(fù)雜異構(gòu)系統(tǒng)HPL 高效并行算法

    根據(jù)第3.4 節(jié)的分析,首先做好GPU 計(jì)算與panel 分解和行交換的并行算法,實(shí)現(xiàn)GPU 計(jì)算重疊其他部分的時(shí)間.

    4.1 GPU參與計(jì)算的look-ahead算法

    基礎(chǔ)代碼用look-ahead算法實(shí)現(xiàn)panel 分解與panel 廣播重疊執(zhí)行.計(jì)算過程中保存兩個(gè)panel 的數(shù)據(jù)結(jié)構(gòu).執(zhí)行當(dāng)前panel 分解的進(jìn)程列,優(yōu)先執(zhí)行當(dāng)前panel 列數(shù)據(jù)的行交換和矩陣更新,然后執(zhí)行panel 分解計(jì)算并發(fā)起panel 廣播,廣播數(shù)據(jù)傳輸?shù)耐瑫r(shí)更新剩余矩陣.對(duì)于當(dāng)前不計(jì)算panel 分解的進(jìn)程列,執(zhí)行上一次循環(huán)的行交換和矩陣更新,行交換和矩陣更新計(jì)算過程中監(jiān)測本次panel 廣播數(shù)據(jù)通信,數(shù)據(jù)到達(dá)后,執(zhí)行廣播通信流程.

    由于加入了GPU 計(jì)算資源,look-ahead算法相比于基礎(chǔ)版本有所改變.按照第3.3 節(jié)的線程模型,在執(zhí)行當(dāng)前panel 分解計(jì)算的進(jìn)程中,panel 分解線程CPU 優(yōu)先執(zhí)行panel 列的行交換,然后GPU 優(yōu)先更新panel 分解的列.CPU 等待panel 數(shù)據(jù)更新后,發(fā)起panel 數(shù)據(jù)從GPU 內(nèi)存到CPU 內(nèi)存的傳輸,傳輸結(jié)束后執(zhí)行panel 分解計(jì)算,最后發(fā)起panel 廣播.矩陣更新線程在panel 分解列行交換完成后發(fā)起剩余矩陣的行交換,然后調(diào)用GPU 矩陣更新計(jì)算.對(duì)于非當(dāng)前panel 分解計(jì)算進(jìn)程,矩陣更新線程執(zhí)行行交換和調(diào)用GPU 矩陣更新.Panel 分解線程只負(fù)責(zé)處理panel 廣播的操作.

    4.2 行交換連續(xù)流水線算法

    矩陣行交換的前提是已接收panel 分解計(jì)算的行交換索引數(shù)據(jù)(包含在panel 廣播數(shù)據(jù)中),并且上一次迭代矩陣更新已完成.HPL 基礎(chǔ)代碼中,行交換完成后啟動(dòng)矩陣更新計(jì)算,如果采用這種算法,GPU 在行交換執(zhí)行的過程是空閑的.文獻(xiàn)[6]提出行交換流水線算法優(yōu)化行交換流程.在使用GPU 的環(huán)境,也可以采用這一算法.使用行交換流水線算法,對(duì)矩陣更新的行分段,首先執(zhí)行第1 段的行交換,然后GPU 執(zhí)行第1 段的矩陣更新,同時(shí)執(zhí)行第2 段的行交換,依次類推.采用這種算法,GPU 計(jì)算與行交換數(shù)據(jù)傳輸重疊執(zhí)行,減少了GPU 的空閑時(shí)間.但是,單步循環(huán)執(zhí)行第1 段行交換的這段時(shí)間內(nèi)GPU 是空閑的.

    為了避免GPU 等待,提出了連續(xù)流水線算法.算法中,第1 個(gè)分段完成上一次循環(huán)矩陣更新和當(dāng)前進(jìn)程接收到下一次循環(huán)的行交換信息之后,不需要等待上一次循環(huán)矩陣更新全部完成,就執(zhí)行第1 分段的下一次循環(huán)的行交換.采用這種算法,下一次循環(huán)第1 分段的行交換被上一次循環(huán)矩陣更新隱藏,下一次循環(huán)第1 分段的矩陣更新隱藏第2 分段的行交換,后續(xù)分段繼續(xù)流水.

    使用連續(xù)流水算法避免單步循環(huán)的流水線啟動(dòng)過程,如果接收到行交換信息早于矩陣更新,則GPU 可以一直處于工作狀態(tài).從第3.4 節(jié)可以看出,行交換信息在平衡點(diǎn)之前是早于矩陣更新的,而這一階段正是浮點(diǎn)運(yùn)算量較大的情況,在這一階段充分發(fā)揮GPU 計(jì)算能力,可以提高整體的計(jì)算效率.

    行交換分段方法選擇倍數(shù)遞增,也就是第2 段列數(shù)是第1 段列數(shù)的倍數(shù),依次類推,增長因子可調(diào).連續(xù)行交換流水算法下實(shí)現(xiàn)look-ahead算法,對(duì)于當(dāng)前panel 分解,增加panel 分解數(shù)據(jù)提前行交換和矩陣更新的分段.

    5 基礎(chǔ)模塊性能優(yōu)化

    從平衡點(diǎn)理論來看,平衡點(diǎn)之前的部分GPU 計(jì)算時(shí)間可以隱藏panel 分解和行交換時(shí)間.隨著計(jì)算的推進(jìn),panel 分解和行交換成為系統(tǒng)性能的瓶頸.為了進(jìn)一步提高效率,需要針對(duì)panel 分解和行交換進(jìn)行優(yōu)化.

    5.1 Panel分解優(yōu)化

    5.1.1 基本參數(shù)調(diào)優(yōu)

    Panel 分解浮點(diǎn)計(jì)算集中在BLAS 函數(shù),使用針對(duì)目標(biāo)系統(tǒng)優(yōu)化的Hygon OpenBLIS庫.Panel 分解使用遞歸算法,中間遞歸層次的浮點(diǎn)運(yùn)算集中在BLAS 的DTRSM 和DGEMM 兩個(gè)函數(shù).當(dāng)遞歸層次包含的列數(shù)小于等于閾值時(shí),使用非遞歸算法,浮點(diǎn)運(yùn)算集中在BLAS 的DGEMV、DTRSV、DSCAL、IDAMAX 等函數(shù).對(duì)于每一列的LU 分解,需要通過交換和廣播通信主元所在的panel 行,并記錄主元行交換信息.交換和廣播通信使用binary-exchange算法.

    Panel 分解計(jì)算有關(guān)參數(shù)有NB、NBMIN、PFACT、RFACT、DIV等.NB取決于GPU 執(zhí)行矩陣更新的效率,同時(shí)考慮CPU 與GPU 計(jì)算的平衡.當(dāng)節(jié)點(diǎn)規(guī)模較小時(shí),NB=384;當(dāng)節(jié)點(diǎn)規(guī)模較大時(shí),NB=256.通過參數(shù)調(diào)優(yōu),選擇優(yōu)化的參數(shù)組合,見表1.

    Table 1 Parameters of panel factorization表1 Panel 分解參數(shù)

    進(jìn)一步分析panel 分解各部分時(shí)間,0 號(hào)進(jìn)程主要計(jì)算函數(shù)時(shí)間見表2.

    Table 2 Time of BLAS functions in panel factorization表2 Panel 分解BLAS 函數(shù)時(shí)間

    5.1.2 GPU 加速panel 分解DGEMM

    從第5.1.1 節(jié)可以看出,panel 分解中,DGEMM 時(shí)間占有最大比例,需要進(jìn)一步優(yōu)化.DGEMM 在panel 分解遞歸層次調(diào)用.根據(jù)panel 分解的left-looking算法,從左到右執(zhí)行LU 分解,左側(cè)的subpanel 完成分解之后,執(zhí)行DGEMM,更新相同層次的右側(cè)的subpanel,GPU 可以加速這部分DGEMM.

    GPU 加速DGEMM 的算法過程,首先把左側(cè)subpanel 和相應(yīng)的U數(shù)據(jù)傳輸?shù)紾PU 設(shè)備內(nèi)存,然后執(zhí)行DGEMM 更新GPU 內(nèi)存的右側(cè)subpanel,更新后數(shù)據(jù)傳輸?shù)紺PU端內(nèi)存,繼續(xù)執(zhí)行后續(xù)的panel 分解.算法增加了CPU 和GPU 之間的數(shù)據(jù)傳輸,但由于GPU 執(zhí)行DGEMM 的速度遠(yuǎn)高于CPU,在一定規(guī)模DGEMM 的情況下,這一過程總的執(zhí)行時(shí)間少于CPU端執(zhí)行DGEMM 時(shí)間,整體性能提高.

    并不是所有的panel 分解DGEMM 都可以使用GPU 加速,如果傳輸?shù)臅r(shí)間開銷大于DGEMM 加速的效果,就不能采用這種方式.實(shí)際計(jì)算中,使用參數(shù)控制采用GPU 加速DGEMM 的閾值,通過調(diào)優(yōu)獲得最佳的性能.

    5.1.3 Panel 廣播優(yōu)化

    5.1.3.1 避免數(shù)據(jù)封裝

    基礎(chǔ)代碼中,panel 分解數(shù)據(jù)使用CPU端矩陣A的內(nèi)存,A是列存儲(chǔ),panel 分解的列是分段連續(xù)的.使用MPI傳輸panel 數(shù)據(jù)之前,需要執(zhí)行數(shù)據(jù)封裝,把數(shù)據(jù)復(fù)制到發(fā)送緩沖區(qū),而復(fù)制操作會(huì)帶來一定的時(shí)間開銷.

    為此提出一種避免數(shù)據(jù)封裝的方法.待分解的panel 數(shù)據(jù)是從GPU 內(nèi)存復(fù)制的,通過使用二維復(fù)制接口把panel 數(shù)據(jù)復(fù)制到連續(xù)存儲(chǔ)區(qū)域.Panel 分解計(jì)算完成后,MPI 接口直接使用緩沖區(qū)數(shù)據(jù),避免了數(shù)據(jù)封裝.

    5.1.3.2 Panel 廣播流水

    基礎(chǔ)代碼中,panel 分解完成后才會(huì)執(zhí)行panel 廣播,計(jì)算與數(shù)據(jù)傳輸串行,并且一次性數(shù)據(jù)傳輸較大,傳輸時(shí)間較長.通過觀察可以看出,left-looking算法中,左側(cè)subpanel計(jì)算完成后,主體部分不再變化,后續(xù)只有發(fā)生行交換的數(shù)據(jù)變化.

    因此,提出一種廣播流水算法,對(duì)已分解的subpanel 數(shù)據(jù)提前發(fā)起廣播,這種情況下,panel 數(shù)據(jù)廣播與后續(xù)panel 分解計(jì)算并行.采用廣播流水算法,panel 計(jì)算完成后,只需要傳輸最后的subpanel 和行交換發(fā)生變化的數(shù)據(jù),相比于傳輸整個(gè)panel 數(shù)據(jù),縮短了傳輸時(shí)間.

    廣播流水算法與GPU 加速panel 分解DGEMM 協(xié)同使用,subpanel 的數(shù)據(jù)廣播與panel 加速DGEMM 過程中的CPU 與GPU 之間數(shù)據(jù)傳輸、GPU 執(zhí)行DGEMM 計(jì)算并行,充分利用系統(tǒng)的CPU、GPU、PCIe 和網(wǎng)絡(luò)接口資源.

    HPL 包含的6 種廣播算法都可以使用廣播流水優(yōu)化.

    第5.1.2 節(jié)描述的GPU 加速panel 分解DGEMM 和panel 廣播流程緊密耦合,表3 給出了優(yōu)化前后偽代碼對(duì)比.

    Table 3 Pseudocode of accelerated panel DGEMM and broadcast pipeline表3 Panel DGEMM 加速和廣播流水偽代碼

    5.2 行交換long算法優(yōu)化

    矩陣更新行交換有兩種算法可選,bianary-exchange算法和long算法,經(jīng)過分析和評(píng)測選擇long算法[10].第4.2 節(jié)從行交換與GPU 并行計(jì)算的角度針對(duì)行交換流程做了優(yōu)化,本節(jié)優(yōu)化具體的行交換算法.

    Long算法包括兩個(gè)步驟,spread 和roll.基礎(chǔ)代碼中,首先是spread 過程,當(dāng)前行進(jìn)程將需要換出的行分發(fā)給其他所有進(jìn)程.然后,非當(dāng)前行進(jìn)程把接收的數(shù)據(jù)與本地需要換出的數(shù)據(jù)交換.接著是roll 過程,總共需要進(jìn)行P–1 次傳輸.每次傳輸所有的進(jìn)程都要參與,每個(gè)進(jìn)程只與自己的鄰居交換.第1 步,先把自己所擁有的一部分與左(右)鄰居交換,然后,把自己剛剛得到的數(shù)據(jù)與右(左)鄰居交換.這樣左右交替,直到所有的數(shù)據(jù)都交換完畢,每個(gè)進(jìn)程都擁有了全部的U.最后所有進(jìn)程還需要把所有的數(shù)據(jù)進(jìn)行重排,放置到矩陣A相應(yīng)的位置.

    基礎(chǔ)代碼中,spread 和roll 使用同一塊數(shù)據(jù)緩沖區(qū),為了避免數(shù)據(jù)沖突,spread 和roll 是嚴(yán)格串行的.通過觀察發(fā)現(xiàn),spread 的接收數(shù)據(jù)與roll 的發(fā)送數(shù)據(jù)并沒有依賴關(guān)系,spread 和roll算法上是可并行性.基于以上觀察與分析,將spread 的接收緩沖與roll 的發(fā)送緩沖分離.這樣,非當(dāng)前進(jìn)程行在等待接收spread 數(shù)據(jù)時(shí),就可以執(zhí)行roll數(shù)據(jù)封裝,并把數(shù)據(jù)傳輸?shù)桨l(fā)送緩沖區(qū),這部分時(shí)間就可以被隱藏.

    在使用上述的緩沖區(qū)分離算法之后,spread 和roll 已經(jīng)沒有依賴關(guān)系,因此提出了一種新的行交換方法,即交換spread 和roll 的執(zhí)行順序,如圖5(b)所示.對(duì)當(dāng)前行進(jìn)程來說,在roll 操作之前,只需將本地需要交換的數(shù)據(jù)拷貝到發(fā)送緩沖區(qū)即可,也就是減少了行交換的啟動(dòng)時(shí)間.在roll 執(zhí)行網(wǎng)絡(luò)傳輸?shù)耐瑫r(shí),當(dāng)前行進(jìn)程可以將spread 所需的數(shù)據(jù)封裝,并異步傳輸?shù)桨l(fā)送緩沖區(qū).roll 執(zhí)行完成后,開啟執(zhí)行spread.同時(shí),把roll 過程接收的數(shù)據(jù)異步傳輸?shù)紾PU,并執(zhí)行數(shù)據(jù)交換.在spread 過程結(jié)束后,非當(dāng)前行進(jìn)程再將換入的數(shù)據(jù)傳輸?shù)紾PU,并交換到相應(yīng)位置,當(dāng)前行進(jìn)程對(duì)需要進(jìn)行內(nèi)部交換的數(shù)據(jù)執(zhí)行GPU 上的本地交換.這種算法可以實(shí)現(xiàn)網(wǎng)絡(luò)通信傳輸、GPU 數(shù)據(jù)封裝和數(shù)據(jù)交換計(jì)算以及CPU 與GPU 數(shù)據(jù)傳輸相互重疊,減少行交換執(zhí)行時(shí)間.

    Fig.5 Original row swap algorithm (a),and modified row swap procedure (b)圖5 原始行交換算法(a)及新的行交換算法(b)

    6 實(shí)驗(yàn)與分析

    6.1 單節(jié)點(diǎn)性能分析

    首先針對(duì)單節(jié)點(diǎn)實(shí)驗(yàn),分析評(píng)估各種優(yōu)化方法的效果.根據(jù)平衡點(diǎn)理論,優(yōu)化的目標(biāo)是GPU 盡可能地處于高效工作狀態(tài),執(zhí)行有效的計(jì)算,也即GPU 盡可能地連續(xù)執(zhí)行矩陣更新.圖6 對(duì)比了優(yōu)化后單步循環(huán)的時(shí)間和GPU 矩陣更新時(shí)間.圖6 給出了1 個(gè)節(jié)點(diǎn)內(nèi)0 號(hào)進(jìn)程的時(shí)間曲線.”A”表示當(dāng)前行-當(dāng)前列,”B”表示非當(dāng)前行-非當(dāng)前列.可以看出,N=88320 情況下,LU 分解矩陣規(guī)模56.09%之前單步循環(huán)時(shí)間接近GPU 矩陣更新時(shí)間.56.09%之后,當(dāng)前進(jìn)程執(zhí)行panel 分解,單步循環(huán)時(shí)間仍然接近GPU 矩陣更新時(shí)間,GPU 大部分時(shí)間處于工作狀態(tài),說明算法優(yōu)化已經(jīng)達(dá)到較好的效果.對(duì)于非當(dāng)前panel 分解進(jìn)程,增加了等待panel 廣播數(shù)據(jù)的時(shí)間開銷,GPU 有一段時(shí)間處于空閑狀態(tài).

    Fig.6 GPU time vs.total time of each loop圖6 GPU 時(shí)間與單步循環(huán)總時(shí)間

    可以看出,圖6 優(yōu)化版本的平衡點(diǎn)是56.09%,圖4 未優(yōu)化版本版本是37.82%.從LU 分解的計(jì)算量來看,前56.09%占總的LU 分解計(jì)算量的91.53%,大部分時(shí)間充分發(fā)揮了GPU 的計(jì)算能力.優(yōu)化后單節(jié)點(diǎn)HPL 效率達(dá)到了79.51%.

    和優(yōu)化有關(guān)的參數(shù)主要是GPU 加速DGEMM 和panel 廣播流水的層次,這里都是3.行交換非當(dāng)前列第1段列數(shù)是待更新列數(shù)的1/8,增長因子是2.Panel 分解參數(shù)和表1 一致.

    6.2 可擴(kuò)展分析

    多節(jié)點(diǎn)HPL 較大規(guī)??蓴U(kuò)展,目前最大規(guī)模4 096 個(gè)節(jié)點(diǎn).HPL 較大規(guī)模并行有關(guān)的參數(shù)和效率見表4,表中列出了針對(duì)相應(yīng)節(jié)點(diǎn)數(shù)執(zhí)行的實(shí)驗(yàn)中效率最高的配置.

    Table 4 Parameters and efficiency of multi-nodes HPL表4 多節(jié)點(diǎn)HPL 參數(shù)和效率

    參數(shù)N是較大規(guī)模節(jié)點(diǎn)HPL 評(píng)測中比較重要的參數(shù),每個(gè)節(jié)點(diǎn)計(jì)算的矩陣列數(shù)一般是NB的倍數(shù),多節(jié)點(diǎn)的N正比于節(jié)點(diǎn)數(shù)平方根.N值越大,計(jì)算效率較高的矩陣更新占比越大,一般來說HPL 效率越高,但N受限于GPU 的內(nèi)存容量,同時(shí)還要考慮系統(tǒng)的負(fù)載.NB使用384 或256.P和Q確定二維進(jìn)程網(wǎng)格的組織方式,經(jīng)過驗(yàn)證,P=Q時(shí)目標(biāo)系統(tǒng)性能最優(yōu).Panel 廣播和矩陣行交換分別使用優(yōu)化的long算法和廣播流水算法.

    從HPL 效率來看,4 節(jié)點(diǎn)效率高于單節(jié)點(diǎn)效率,原因在于4 節(jié)點(diǎn)矩陣規(guī)模大于單節(jié)點(diǎn),效率較高的計(jì)算占比較大,并且可以抵消4 節(jié)點(diǎn)規(guī)模下網(wǎng)絡(luò)傳輸路徑增加帶來的性能損失.隨著規(guī)模的擴(kuò)大,網(wǎng)絡(luò)傳輸對(duì)性能的影響增大,HPL 效率逐步降低,但降低的趨勢比較平緩.

    7 結(jié)論與未來的工作

    針對(duì)復(fù)雜異構(gòu)系統(tǒng),分析HPL算法的特點(diǎn),提出CPU 與GPU 協(xié)同計(jì)算方法,提出平衡點(diǎn)理論指導(dǎo)各方面優(yōu)化.實(shí)現(xiàn)CPU 與GPU 協(xié)同計(jì)算的look-ahead、行交換連續(xù)流水線算法隱藏panel 分解和行交換時(shí)間,并優(yōu)化panel 分解和行交換算法,延長GPU 計(jì)算占優(yōu)的時(shí)間,最終提高整個(gè)系統(tǒng)的HPL 效率,單節(jié)點(diǎn)效率79.51%.

    當(dāng)前的超級(jí)計(jì)算機(jī)正向百億億級(jí)邁進(jìn),目標(biāo)系統(tǒng)采用的節(jié)點(diǎn)內(nèi)通用CPU 裝備加速器,配合高速的節(jié)點(diǎn)內(nèi)總線被認(rèn)為是較有潛力的一種架構(gòu).未來工作主要是針對(duì)百億億級(jí)計(jì)算架構(gòu),開展加速器DGEMM 優(yōu)化、CPU 與加速器協(xié)同計(jì)算和混合精度等相關(guān)研究.同時(shí),百億億級(jí)超級(jí)計(jì)算機(jī)節(jié)點(diǎn)規(guī)模繼續(xù)增加,節(jié)點(diǎn)數(shù)量有可能達(dá)到數(shù)萬甚至更多,節(jié)點(diǎn)間的互連也更加重要.需要進(jìn)一步研究HPL 大規(guī)??蓴U(kuò)展能力,評(píng)測行交換算法和廣播算法的性能,并進(jìn)行相應(yīng)的優(yōu)化.

    猜你喜歡
    進(jìn)程內(nèi)存廣播
    STK及IGS廣播星歷在BDS仿真中的應(yīng)用
    航天控制(2020年5期)2020-03-29 02:10:28
    債券市場對(duì)外開放的進(jìn)程與展望
    中國外匯(2019年20期)2019-11-25 09:54:58
    “春夏秋冬”的內(nèi)存
    廣播發(fā)射設(shè)備中平衡輸入與不平衡輸入的轉(zhuǎn)換
    電子制作(2018年10期)2018-08-04 03:24:48
    網(wǎng)絡(luò)在現(xiàn)代廣播中的應(yīng)用
    最早的無線電廣播
    河北遙感(2014年4期)2014-07-10 13:54:59
    社會(huì)進(jìn)程中的新聞學(xué)探尋
    基于內(nèi)存的地理信息訪問技術(shù)
    我國高等教育改革進(jìn)程與反思
    Linux僵死進(jìn)程的產(chǎn)生與避免
    日韩人妻高清精品专区| x7x7x7水蜜桃| 国产精品一区二区免费欧美| 国产精品98久久久久久宅男小说| 日本免费一区二区三区高清不卡| 国产一区二区在线av高清观看| 国产精品久久久久久人妻精品电影| 亚洲人与动物交配视频| 成人一区二区视频在线观看| 99久久久亚洲精品蜜臀av| 搡女人真爽免费视频火全软件 | 亚洲国产色片| 亚洲精品乱码久久久v下载方式 | 精品一区二区三区视频在线 | 久久精品综合一区二区三区| 一级作爱视频免费观看| 夜夜躁狠狠躁天天躁| 麻豆成人av在线观看| 日韩 欧美 亚洲 中文字幕| 最近视频中文字幕2019在线8| 99在线视频只有这里精品首页| 久久久久精品国产欧美久久久| 日本熟妇午夜| 欧美bdsm另类| 狠狠狠狠99中文字幕| 热99re8久久精品国产| 人妻丰满熟妇av一区二区三区| 国产高清视频在线播放一区| 国产高清视频在线观看网站| 一级作爱视频免费观看| netflix在线观看网站| 老熟妇仑乱视频hdxx| 99精品欧美一区二区三区四区| 中国美女看黄片| 精品久久久久久成人av| 在线a可以看的网站| 久久精品国产亚洲av香蕉五月| 狠狠狠狠99中文字幕| 欧美中文日本在线观看视频| 香蕉久久夜色| 欧美在线黄色| 欧美激情在线99| 老司机午夜福利在线观看视频| 欧美乱码精品一区二区三区| 成人三级黄色视频| 日本免费a在线| 两人在一起打扑克的视频| 波多野结衣巨乳人妻| 久久久久久九九精品二区国产| 波多野结衣高清作品| 国产亚洲av嫩草精品影院| 国产高清videossex| 波野结衣二区三区在线 | 久久久久性生活片| 内射极品少妇av片p| 成人三级黄色视频| 一个人观看的视频www高清免费观看| 亚洲欧美精品综合久久99| 久久精品亚洲精品国产色婷小说| 亚洲自拍偷在线| 最近视频中文字幕2019在线8| 在线免费观看不下载黄p国产 | bbb黄色大片| 亚洲在线观看片| 国产一级毛片七仙女欲春2| 黄色女人牲交| 俺也久久电影网| 国产久久久一区二区三区| 成人高潮视频无遮挡免费网站| 午夜影院日韩av| 俄罗斯特黄特色一大片| 欧美成人免费av一区二区三区| 成人永久免费在线观看视频| 人人妻人人澡欧美一区二区| 在线观看美女被高潮喷水网站 | 非洲黑人性xxxx精品又粗又长| 一级毛片女人18水好多| 亚洲 国产 在线| 亚洲内射少妇av| 真人一进一出gif抽搐免费| 国产色婷婷99| 久久久久久九九精品二区国产| 亚洲熟妇熟女久久| 国产麻豆成人av免费视频| 看免费av毛片| 亚洲精品亚洲一区二区| 欧美日韩中文字幕国产精品一区二区三区| 精品无人区乱码1区二区| 亚洲中文日韩欧美视频| 日韩欧美精品v在线| 深爱激情五月婷婷| 99热这里只有精品一区| 亚洲人成网站在线播放欧美日韩| 有码 亚洲区| 欧美日韩福利视频一区二区| 国产精品99久久久久久久久| 在线视频色国产色| 母亲3免费完整高清在线观看| 成人鲁丝片一二三区免费| 国产精品永久免费网站| 91九色精品人成在线观看| 精品人妻1区二区| 深爱激情五月婷婷| 亚洲国产精品久久男人天堂| 亚洲中文字幕日韩| 国产男靠女视频免费网站| 国产免费av片在线观看野外av| 亚洲精品影视一区二区三区av| 欧美中文日本在线观看视频| 丁香六月欧美| 国产一区二区三区视频了| 国产精品三级大全| 无人区码免费观看不卡| 少妇的逼水好多| 欧美+亚洲+日韩+国产| 国产一区二区在线av高清观看| 在线免费观看不下载黄p国产 | 国产aⅴ精品一区二区三区波| 99视频精品全部免费 在线| 88av欧美| 麻豆成人午夜福利视频| 看片在线看免费视频| 神马国产精品三级电影在线观看| 舔av片在线| 女人被狂操c到高潮| 亚洲色图av天堂| 国产主播在线观看一区二区| 男插女下体视频免费在线播放| 国产精品电影一区二区三区| 亚洲av成人不卡在线观看播放网| 一二三四社区在线视频社区8| 亚洲精品久久国产高清桃花| 九色国产91popny在线| 精品国产亚洲在线| 国产黄a三级三级三级人| 在线免费观看不下载黄p国产 | 国产精品 欧美亚洲| 人妻久久中文字幕网| 国内毛片毛片毛片毛片毛片| 久久久国产成人免费| 亚洲欧美精品综合久久99| 亚洲中文日韩欧美视频| 午夜福利在线观看免费完整高清在 | 午夜福利在线在线| 热99在线观看视频| 久久久久久久久大av| 久久久久久久精品吃奶| a级一级毛片免费在线观看| 国产精品久久久久久久电影 | 国产成人欧美在线观看| 国产av麻豆久久久久久久| 中文亚洲av片在线观看爽| 十八禁网站免费在线| 黄色片一级片一级黄色片| 波多野结衣巨乳人妻| 在线天堂最新版资源| 国产真人三级小视频在线观看| 国产精品久久久久久人妻精品电影| 亚洲天堂国产精品一区在线| 亚洲 国产 在线| 91在线精品国自产拍蜜月 | 亚洲精品粉嫩美女一区| 桃色一区二区三区在线观看| 国语自产精品视频在线第100页| 亚洲av美国av| 国产成人av教育| 久久精品国产亚洲av涩爱 | www.www免费av| 日日摸夜夜添夜夜添小说| 91av网一区二区| 亚洲精品久久国产高清桃花| 国产伦精品一区二区三区四那| 亚洲美女黄片视频| 一区二区三区免费毛片| 国产av麻豆久久久久久久| 一级a爱片免费观看的视频| 中国美女看黄片| 午夜视频国产福利| 午夜免费成人在线视频| 19禁男女啪啪无遮挡网站| 成年人黄色毛片网站| 老司机福利观看| 中文亚洲av片在线观看爽| 90打野战视频偷拍视频| 内地一区二区视频在线| 身体一侧抽搐| 99国产综合亚洲精品| 亚洲精品乱码久久久v下载方式 | 国产精品 国内视频| av片东京热男人的天堂| 久久人妻av系列| 国产精品一区二区三区四区免费观看 | 国产成人aa在线观看| 老司机深夜福利视频在线观看| 国产蜜桃级精品一区二区三区| av女优亚洲男人天堂| 亚洲欧美日韩东京热| 亚洲,欧美精品.| 国产视频内射| 久久香蕉精品热| 听说在线观看完整版免费高清| 日韩欧美在线二视频| 日本免费一区二区三区高清不卡| 成人午夜高清在线视频| 国产成人a区在线观看| 色在线成人网| 日韩高清综合在线| 中文字幕高清在线视频| 草草在线视频免费看| 51国产日韩欧美| 欧美不卡视频在线免费观看| 免费高清视频大片| 首页视频小说图片口味搜索| 99视频精品全部免费 在线| 乱人视频在线观看| 午夜久久久久精精品| 国产精品影院久久| 国产精品 国内视频| 少妇的逼水好多| 日韩欧美一区二区三区在线观看| 国产中年淑女户外野战色| 老熟妇乱子伦视频在线观看| 国产午夜精品久久久久久一区二区三区 | 欧美性猛交╳xxx乱大交人| 亚洲天堂国产精品一区在线| 免费看a级黄色片| 久久久久国内视频| 国产亚洲精品av在线| 色综合亚洲欧美另类图片| 狂野欧美白嫩少妇大欣赏| 成年版毛片免费区| 99在线人妻在线中文字幕| 人妻久久中文字幕网| 欧美一区二区精品小视频在线| 国产精品久久久久久人妻精品电影| 真人做人爱边吃奶动态| 国产精品久久久久久精品电影| 在线免费观看不下载黄p国产 | 欧美激情久久久久久爽电影| 国产av不卡久久| 欧美成人免费av一区二区三区| 91久久精品电影网| 丝袜美腿在线中文| 中文字幕高清在线视频| 国产91精品成人一区二区三区| av片东京热男人的天堂| 999久久久精品免费观看国产| 性色av乱码一区二区三区2| 欧美一级a爱片免费观看看| 91av网一区二区| 成人性生交大片免费视频hd| 欧美最新免费一区二区三区 | 国产精品 国内视频| 91在线观看av| 色吧在线观看| 久久精品国产99精品国产亚洲性色| 午夜福利在线观看免费完整高清在 | 中国美女看黄片| 欧美日韩国产亚洲二区| 五月玫瑰六月丁香| 亚洲久久久久久中文字幕| 人人妻,人人澡人人爽秒播| 午夜福利视频1000在线观看| 岛国在线观看网站| 成年女人永久免费观看视频| 天堂影院成人在线观看| 久久欧美精品欧美久久欧美| 久久九九热精品免费| 免费无遮挡裸体视频| 少妇的逼好多水| 亚洲国产中文字幕在线视频| 婷婷精品国产亚洲av在线| 国产精品 国内视频| 国产伦一二天堂av在线观看| 色吧在线观看| 亚洲av电影不卡..在线观看| ponron亚洲| 国产成人影院久久av| 亚洲国产精品合色在线| 午夜福利免费观看在线| 国产又黄又爽又无遮挡在线| 日韩欧美精品v在线| 国产美女午夜福利| 国产黄片美女视频| 少妇裸体淫交视频免费看高清| 国产三级黄色录像| 蜜桃久久精品国产亚洲av| 波多野结衣高清无吗| 午夜福利在线观看吧| 国产伦在线观看视频一区| 久久香蕉国产精品| 国产精品一区二区免费欧美| 国产主播在线观看一区二区| 首页视频小说图片口味搜索| 成人国产一区最新在线观看| 精品欧美国产一区二区三| 三级男女做爰猛烈吃奶摸视频| 免费看美女性在线毛片视频| 天堂av国产一区二区熟女人妻| 久久精品国产清高在天天线| 99久国产av精品| 在线观看66精品国产| 亚洲国产精品999在线| 亚洲成人免费电影在线观看| 国产不卡一卡二| 国模一区二区三区四区视频| 免费人成在线观看视频色| 国产男靠女视频免费网站| 亚洲五月天丁香| 成人18禁在线播放| 久久香蕉精品热| 最近视频中文字幕2019在线8| 日韩欧美在线二视频| 欧美一区二区精品小视频在线| 噜噜噜噜噜久久久久久91| 老司机午夜福利在线观看视频| 麻豆成人av在线观看| 91麻豆精品激情在线观看国产| 日本一二三区视频观看| 国产 一区 欧美 日韩| 亚洲中文字幕一区二区三区有码在线看| 88av欧美| 在线观看日韩欧美| 久久久久久久久中文| 日本五十路高清| 国产精品女同一区二区软件 | 午夜两性在线视频| 男女床上黄色一级片免费看| 一进一出抽搐动态| 啦啦啦韩国在线观看视频| 午夜免费成人在线视频| 噜噜噜噜噜久久久久久91| 国产精品久久久久久久久免 | 亚洲午夜理论影院| 国产精品香港三级国产av潘金莲| 毛片女人毛片| 9191精品国产免费久久| 国产蜜桃级精品一区二区三区| 日韩有码中文字幕| 亚洲色图av天堂| 久久久久久国产a免费观看| 熟女少妇亚洲综合色aaa.| 国内少妇人妻偷人精品xxx网站| 天美传媒精品一区二区| 国产av一区在线观看免费| 嫩草影视91久久| 日韩欧美精品免费久久 | 黄色成人免费大全| 老汉色av国产亚洲站长工具| 最新在线观看一区二区三区| 一个人看的www免费观看视频| 国产精品免费一区二区三区在线| www.www免费av| 久久精品亚洲精品国产色婷小说| 中文字幕人妻丝袜一区二区| 99久久综合精品五月天人人| 中文亚洲av片在线观看爽| 一个人免费在线观看电影| 久久精品综合一区二区三区| 美女cb高潮喷水在线观看| 首页视频小说图片口味搜索| 国产午夜福利久久久久久| 精品久久久久久久毛片微露脸| 亚洲精品乱码久久久v下载方式 | 色播亚洲综合网| 亚洲天堂国产精品一区在线| 午夜福利高清视频| 中文字幕熟女人妻在线| 成熟少妇高潮喷水视频| 中文亚洲av片在线观看爽| 99热只有精品国产| xxxwww97欧美| 少妇高潮的动态图| 亚洲国产欧洲综合997久久,| 中文字幕精品亚洲无线码一区| 久久精品国产亚洲av涩爱 | 久久久精品大字幕| 大型黄色视频在线免费观看| 久久久国产精品麻豆| 婷婷丁香在线五月| 亚洲国产高清在线一区二区三| 国产黄a三级三级三级人| 亚洲人与动物交配视频| 午夜日韩欧美国产| 国产高清激情床上av| 国产精品美女特级片免费视频播放器| 又黄又粗又硬又大视频| 久久这里只有精品中国| 青草久久国产| 国产亚洲精品综合一区在线观看| 久久婷婷人人爽人人干人人爱| 18禁黄网站禁片午夜丰满| 亚洲最大成人中文| 国产精品免费一区二区三区在线| 在线看三级毛片| 亚洲中文字幕日韩| 俄罗斯特黄特色一大片| 一本精品99久久精品77| 国产三级中文精品| 亚洲精品影视一区二区三区av| 人妻丰满熟妇av一区二区三区| 一级a爱片免费观看的视频| a在线观看视频网站| 欧美乱码精品一区二区三区| 免费电影在线观看免费观看| 国产日本99.免费观看| 精品不卡国产一区二区三区| 精品久久久久久久毛片微露脸| 校园春色视频在线观看| 亚洲精品亚洲一区二区| 日日干狠狠操夜夜爽| 国产探花在线观看一区二区| 亚洲自拍偷在线| 别揉我奶头~嗯~啊~动态视频| 757午夜福利合集在线观看| 国产一区二区亚洲精品在线观看| 精品久久久久久久久久久久久| 中文亚洲av片在线观看爽| 五月玫瑰六月丁香| 精品日产1卡2卡| 国产毛片a区久久久久| 久久久久久久久大av| 亚洲av不卡在线观看| 91字幕亚洲| 中国美女看黄片| 欧美精品啪啪一区二区三区| 大型黄色视频在线免费观看| 中国美女看黄片| 国产精品乱码一区二三区的特点| 亚洲熟妇中文字幕五十中出| 亚洲精品456在线播放app | 国产免费男女视频| 少妇人妻一区二区三区视频| 成人av在线播放网站| 黄色成人免费大全| 久久久精品欧美日韩精品| 亚洲av成人精品一区久久| 亚洲精品日韩av片在线观看 | 免费看光身美女| 久久精品综合一区二区三区| 中文字幕人妻熟人妻熟丝袜美 | 99热6这里只有精品| 每晚都被弄得嗷嗷叫到高潮| 欧美xxxx黑人xx丫x性爽| 少妇熟女aⅴ在线视频| 俄罗斯特黄特色一大片| 可以在线观看毛片的网站| 亚洲片人在线观看| 首页视频小说图片口味搜索| 伊人久久大香线蕉亚洲五| 久久久久九九精品影院| 国内精品一区二区在线观看| 国产亚洲欧美在线一区二区| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | 怎么达到女性高潮| 亚洲美女视频黄频| 日本撒尿小便嘘嘘汇集6| 老熟妇仑乱视频hdxx| 午夜福利在线观看吧| 欧美绝顶高潮抽搐喷水| 国产一区二区亚洲精品在线观看| 成人18禁在线播放| 精品人妻1区二区| 日韩亚洲欧美综合| 九九在线视频观看精品| 最近最新中文字幕大全免费视频| 国产精品亚洲美女久久久| 波多野结衣高清作品| 欧洲精品卡2卡3卡4卡5卡区| 男女午夜视频在线观看| 操出白浆在线播放| 亚洲电影在线观看av| 亚洲欧美日韩卡通动漫| 波多野结衣巨乳人妻| 宅男免费午夜| 成年女人毛片免费观看观看9| 精品人妻偷拍中文字幕| 欧美乱妇无乱码| www日本在线高清视频| 一个人免费在线观看电影| 日韩欧美在线乱码| 免费高清视频大片| 制服人妻中文乱码| 日韩成人在线观看一区二区三区| 三级毛片av免费| 九九在线视频观看精品| 免费人成视频x8x8入口观看| 久久久久免费精品人妻一区二区| 亚洲av成人av| 久久国产精品人妻蜜桃| 神马国产精品三级电影在线观看| 99精品久久久久人妻精品| 精品福利观看| 欧美激情在线99| 婷婷亚洲欧美| av视频在线观看入口| 国产精品99久久久久久久久| 哪里可以看免费的av片| 中文在线观看免费www的网站| 久久精品夜夜夜夜夜久久蜜豆| 又爽又黄无遮挡网站| 免费看a级黄色片| 美女 人体艺术 gogo| 日韩免费av在线播放| 无人区码免费观看不卡| 国语自产精品视频在线第100页| 成人午夜高清在线视频| 一个人看视频在线观看www免费 | 国产成人av激情在线播放| 丰满的人妻完整版| 特大巨黑吊av在线直播| 村上凉子中文字幕在线| 免费在线观看亚洲国产| 久久精品人妻少妇| 日韩亚洲欧美综合| 精品一区二区三区人妻视频| 一个人免费在线观看电影| 欧美绝顶高潮抽搐喷水| 51午夜福利影视在线观看| 美女被艹到高潮喷水动态| 九色成人免费人妻av| 欧美一级a爱片免费观看看| АⅤ资源中文在线天堂| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | 亚洲午夜理论影院| 久久久国产精品麻豆| 中文字幕久久专区| 婷婷六月久久综合丁香| 亚洲不卡免费看| 国产主播在线观看一区二区| 亚洲avbb在线观看| 亚洲片人在线观看| 在线播放国产精品三级| 男女做爰动态图高潮gif福利片| www.熟女人妻精品国产| 18禁国产床啪视频网站| 日本黄色片子视频| 午夜福利在线在线| 美女 人体艺术 gogo| 日韩欧美精品v在线| 狂野欧美激情性xxxx| 欧美av亚洲av综合av国产av| 成熟少妇高潮喷水视频| 亚洲美女视频黄频| 老司机福利观看| 国内揄拍国产精品人妻在线| 精品久久久久久久久久久久久| 久久精品国产清高在天天线| 一本精品99久久精品77| 国产精品,欧美在线| 99热6这里只有精品| 美女免费视频网站| 日本在线视频免费播放| 亚洲av免费在线观看| 熟女少妇亚洲综合色aaa.| 18禁黄网站禁片免费观看直播| 亚洲avbb在线观看| 国产精品av视频在线免费观看| 日韩欧美国产在线观看| 亚洲18禁久久av| 麻豆一二三区av精品| 嫩草影院精品99| 成人高潮视频无遮挡免费网站| 色播亚洲综合网| 女同久久另类99精品国产91| 国产欧美日韩一区二区精品| 成人av一区二区三区在线看| av女优亚洲男人天堂| 女人高潮潮喷娇喘18禁视频| 三级毛片av免费| 日韩成人在线观看一区二区三区| 欧美极品一区二区三区四区| 国产欧美日韩一区二区三| 亚洲在线观看片| 国产一区二区三区在线臀色熟女| 欧美绝顶高潮抽搐喷水| 嫩草影院入口| 亚洲中文字幕日韩| 久99久视频精品免费| 又粗又爽又猛毛片免费看| 欧美黄色淫秽网站| 午夜福利18| 成熟少妇高潮喷水视频| 国产蜜桃级精品一区二区三区| 亚洲欧美日韩高清在线视频| 天堂√8在线中文| 啦啦啦观看免费观看视频高清| 国产精品一区二区免费欧美| 一二三四社区在线视频社区8| 久久久久久久久中文| 国产精品自产拍在线观看55亚洲| 国产精品99久久久久久久久| 欧美激情在线99| 亚洲成人免费电影在线观看| 国产亚洲精品久久久com| 日韩人妻高清精品专区| 99热6这里只有精品| 精华霜和精华液先用哪个| 精品人妻一区二区三区麻豆 | 我的老师免费观看完整版| 狂野欧美白嫩少妇大欣赏| 日韩欧美精品v在线| 精品人妻一区二区三区麻豆 | 五月玫瑰六月丁香| 国产亚洲精品av在线| 欧美成人性av电影在线观看| 亚洲av二区三区四区| 国产精华一区二区三区| 久久久久久人人人人人| 久久久国产成人精品二区| 久久久成人免费电影| 一本精品99久久精品77| 琪琪午夜伦伦电影理论片6080| 欧美绝顶高潮抽搐喷水| www.www免费av|