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

    面向國(guó)產(chǎn)加速器的CFD核心算法并行優(yōu)化

    2021-09-17 09:43:26曹義魁陸忠華張鑒劉夏真袁武梁姍
    關(guān)鍵詞:共享內(nèi)存加速器線程

    曹義魁,陸忠華,張鑒,劉夏真,袁武,梁姍

    1.中國(guó)科學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100190

    2.中國(guó)科學(xué)院大學(xué),北京 100049

    引言

    計(jì)算流體動(dòng)力學(xué)(Computational Fluid Dynamics,CFD)是一門新興的交叉型學(xué)科,它結(jié)合數(shù)學(xué)中的離散方法,利用計(jì)算機(jī)強(qiáng)大的算力對(duì)流體力學(xué)中復(fù)雜的微分方程進(jìn)行求解,在科研和工程領(lǐng)域都發(fā)揮著巨大的作用。目前的CFD 商業(yè)軟件、開(kāi)源CFD軟件等,大多數(shù)是基于CPU 開(kāi)發(fā)的。但隨著計(jì)算規(guī)模的不斷擴(kuò)大,CPU 的計(jì)算、訪存及通信性能已經(jīng)不能滿足人們的需要[1],所以尋求新的方法實(shí)現(xiàn)對(duì)大規(guī)模數(shù)據(jù)進(jìn)行并行處理已經(jīng)成為國(guó)產(chǎn)CFD 軟件發(fā)展的必要條件。

    CPU+加速器異構(gòu)架構(gòu)的出現(xiàn),為人們解決復(fù)雜的大規(guī)模計(jì)算提供了新的方法,它充分集合了CPU 和加速器的各自優(yōu)勢(shì)特點(diǎn),將具有并行性的計(jì)算密集部分放到加速器上進(jìn)行加速,極大的提高了程序的運(yùn)行速度,這也成為了目前高性能計(jì)算的主流方法[2]。為了能夠充分利用加速器的性能,需要針對(duì)程序中的算法特點(diǎn)設(shè)計(jì)具有高并行度、高訪存帶寬的并行方法。國(guó)內(nèi)外已有較多將CFD 應(yīng)用移植到CPU+加速器異構(gòu)平臺(tái)并進(jìn)行優(yōu)化的相關(guān)研究。

    Corrigan 等[3]基于CPU/GPU 異構(gòu)平臺(tái)對(duì)流體力學(xué)中的格子玻爾茲曼方法實(shí)現(xiàn)了并行加速,并采用多種方法實(shí)現(xiàn)了簡(jiǎn)單高效的數(shù)據(jù)訪存模式,使全局訪存帶寬利用率達(dá)到了86%,相應(yīng)程序也得到33.6 倍的加速效果。Jespersen[4]設(shè)計(jì)并實(shí)現(xiàn)了基于對(duì)稱逐次超松弛方法的CFD 軟件的GPU 并行方案,并對(duì)其中的Jacobi 迭代部分進(jìn)行了并行加速,單GPU 卡相對(duì)于單CPU 核心實(shí)現(xiàn)了大約3 倍的加速效果。李大力等[5]針對(duì)高階精度加權(quán)緊致非線性格式的CFD 軟件,實(shí)現(xiàn)并優(yōu)化了Jacobi 解法器的 GPU 并行計(jì)算,與單CPU 核心相比運(yùn)行時(shí)間加速了9.8 倍。董廷星等人[6]利用GPU 加速計(jì)算流體力學(xué)中經(jīng)典的N-S(Navier-Stokes)方程和歐拉(Euler)方程的求解,并采用3 個(gè)測(cè)試算例進(jìn)行實(shí)驗(yàn),單GPU 卡相對(duì)于單CPU 核心最高能得到33.2 倍的加速效果。鄧亮等人[7]基于ADI 解法器的有限體積CFD 應(yīng)用,設(shè)計(jì)了兩種GPU并行方案,并討論了若干性能優(yōu)化方法,使整個(gè)CFD 應(yīng)用得到了17.3 倍的加速效果。V.Emelyanov[8]在GPU 上開(kāi)發(fā)了基于有限體積法的非定??蓧嚎s的歐拉方程和N-S 方程求解器,并利用精簡(jiǎn)計(jì)算、訪存優(yōu)化等方法對(duì)GPU 程序進(jìn)行優(yōu)化,最終得到20 ~50 倍的加速效果。此外,他們還在GPU上對(duì)不同聲速下的翼型外流場(chǎng)進(jìn)行了數(shù)值模擬[9]。Lai 等[10]基于CPU/GPU 異構(gòu)平臺(tái),利用雷諾數(shù)為118 的雙橢球繞流問(wèn)題驗(yàn)證了可壓縮NS 方程求解器的計(jì)算能力,并從數(shù)據(jù)傳輸方面對(duì)程序進(jìn)行了優(yōu)化。隨后,他們又設(shè)計(jì)了高效的多GPU 并行算法對(duì)高超聲速流場(chǎng)進(jìn)行了研究,當(dāng)使用4 張GPU 加速卡時(shí),可以獲得147 倍的加速[11]。黨冠麟等[12]基于CPU/GPU 異構(gòu)系統(tǒng),利用自主開(kāi)發(fā)的高精度有限差分CFD 求解器,對(duì)鈍錐邊界層轉(zhuǎn)捩問(wèn)題進(jìn)行了數(shù)值模擬,并對(duì)核函數(shù)進(jìn)行了細(xì)致的優(yōu)化,單GPU 卡相對(duì)單CPU 核心獲得了60 倍的加速。

    以上工作都是在CPU+GPU 的異構(gòu)系統(tǒng)上完成。為了打破高性能行業(yè)的技術(shù)封鎖,近年來(lái)國(guó)家高度重視國(guó)產(chǎn)高性能計(jì)算機(jī)的發(fā)展,并取得了突出成就,多次斬獲超級(jí)計(jì)算TOP500 榜單首名,并且我國(guó)在E 級(jí)超級(jí)計(jì)算機(jī)系統(tǒng)的研發(fā)上也處于世界領(lǐng)先地位。使用國(guó)產(chǎn)加速器替代GPU 等加速器已經(jīng)成為一種必然趨勢(shì)[13]。本文利用CPU+國(guó)產(chǎn)加速器的異構(gòu)系統(tǒng)對(duì)國(guó)產(chǎn)自主CFD 軟件進(jìn)行加速,國(guó)產(chǎn)加速器采用類GPU體系架構(gòu),相關(guān)資料尚未被授權(quán)公開(kāi),此處對(duì)其架構(gòu)不展開(kāi)介紹。國(guó)產(chǎn)加速器可以完全兼容運(yùn)行在GPU上的CUDA 程序,其優(yōu)化思路也大致和GPU 相同。

    1 CFD 軟件介紹

    1.1 CFD 軟件計(jì)算流程

    本文中用于移植的CFD 軟件的初始版本是CCFD V3.0,此軟件全部用Fortran 語(yǔ)言編寫。CCFD系列軟件是國(guó)家“863 計(jì)劃”“十一五”和“十二五”連續(xù)支持的面向大型飛機(jī)設(shè)計(jì)的大規(guī)模流場(chǎng)數(shù)值模擬軟件[14],也是“863 計(jì)劃”中我國(guó)集中科研資源重點(diǎn)發(fā)展的高性能計(jì)算軟件之一[15]。課題組在CCFD V1.0 和V2.0 的基礎(chǔ)上,瞄準(zhǔn)國(guó)產(chǎn)高性能計(jì)算平臺(tái)發(fā)展V3.0 版本,并在神威-太湖之光等平臺(tái)上開(kāi)展了相關(guān)研究。CCFD V3.0 軟件的計(jì)算流程主要包括三個(gè)階段,如下圖1所示:

    圖1 CCFD V3.0 軟件定常計(jì)算流程圖Fig.1 CCFD V3.0 software steady state calculation flow chart

    (1)預(yù)處理階段。主要進(jìn)行網(wǎng)格劃分,設(shè)置計(jì)算參數(shù),進(jìn)行度量系數(shù)的計(jì)算。

    (2)初始化階段。進(jìn)行流場(chǎng)信息的初始化,處理初始邊界條件。

    (3)迭代計(jì)算階段。包括邊界更新、時(shí)間推進(jìn)、對(duì)流項(xiàng)的計(jì)算、方程求解等模塊。

    1.2 CFD 核心算法

    根據(jù)程序特點(diǎn),本文對(duì)CCFD V3.0 的定常求解器steady 部分做了移植。經(jīng)過(guò)測(cè)試發(fā)現(xiàn),flux 函數(shù)部分和lu_adi 函數(shù)部分約占整個(gè)程序運(yùn)行時(shí)間的90%,所以本文主要介紹有關(guān)對(duì)流項(xiàng)計(jì)算的flux 函數(shù)部分以及使用LU_ADI 算法求解的lu_adi 函數(shù)部分,這兩部分也是整個(gè)CFD 求解器的核心部分。

    對(duì)流項(xiàng)的空間離散方法在CFD 計(jì)算中至關(guān)重要,它不僅會(huì)影響計(jì)算的穩(wěn)定性,對(duì)計(jì)算結(jié)果在精度上也會(huì)有很大影響。CCFD V3.0 軟件集成了多種國(guó)際上評(píng)價(jià)較高的上風(fēng)格式(Roe’s FDS[16]、Van Leer’s FVS[17]、AUSM+[18])和Jameson 中心格式[19]。其中,本文研究是Roe’s FDS 格式,它是基于黎曼解的通量差分分裂格式,是目前使用最廣泛、評(píng)價(jià)最高的迎風(fēng)格式之一。

    時(shí)間推進(jìn)方法上,工程CFD 軟件普遍采用隱式算法,典型的隱式算法有對(duì)角化方法、交替隱式追趕方法(ADI)[20]和LU-SGS[21]方法等。其中,交替方向隱式追趕方法(ADI)對(duì)通過(guò)系數(shù)矩陣在三個(gè)方向上作近似因子(AF)分解,并基于LU 分裂將方程求解分為上下三角的兩個(gè)子過(guò)程,穩(wěn)定性好且計(jì)算效率高,在不要求時(shí)間精度的定常計(jì)算中應(yīng)用廣泛。

    flux 函數(shù)的對(duì)流項(xiàng)計(jì)算部分是典型的模版計(jì)算,lu_adi 函數(shù)中的LU_ADI 算法是典型的數(shù)據(jù)依賴方法,這兩部分是CFD 軟件基礎(chǔ)算法的主要部分。由于推導(dǎo)過(guò)程會(huì)占據(jù)大量篇幅,所以此處不再贅述,本文只在下文相應(yīng)章節(jié)處給出具體的相應(yīng)代碼,詳細(xì)的公式推導(dǎo)及具體算法介紹見(jiàn)參考文獻(xiàn)18。

    2 核心算法并行方案

    國(guó)產(chǎn)加速器架構(gòu)類似于GPU,都是通過(guò)將數(shù)據(jù)分散到成千上萬(wàn)個(gè)小的計(jì)算核心實(shí)現(xiàn)并行加速。本文的移植方案先將軟件移植到CPU+GPU 異構(gòu)系統(tǒng)得到基礎(chǔ)版本,之后再移植到國(guó)產(chǎn)加速器上進(jìn)行優(yōu)化。

    GPU 使用CUDA 編程模型[22],線程按照線程格(Grid)、線程塊(Block)、線程(Thread)的多層次模型進(jìn)行組織。其中,Block 以三維的形式組織在同一個(gè)Grid 內(nèi),Thread 以三維的形式組織在同一個(gè)Block 內(nèi),并分別通過(guò)內(nèi)置變量blockIdx(x,y,z)和threadIdx(x,y,z)進(jìn)行標(biāo)識(shí),從而可以對(duì)每個(gè)線程進(jìn)行索引。

    下面將分別介紹flux 函數(shù)和lu_adi 函數(shù)兩部分在GPU 上的并行方案。

    2.1 flux 函數(shù)的GPU 并行方案

    對(duì)流通量項(xiàng)計(jì)算函數(shù)(flux 函數(shù))是一個(gè)典型的模版計(jì)算函數(shù),每個(gè)網(wǎng)格數(shù)據(jù)點(diǎn)的計(jì)算都是獨(dú)立進(jìn)行的,僅需要將相應(yīng)網(wǎng)格點(diǎn)的數(shù)據(jù)映射到GPU 上的單個(gè)線程,可以實(shí)現(xiàn)高效的三維并行,具體的映射關(guān)系如圖2所示。根據(jù)flux 函數(shù)的計(jì)算流程,將每個(gè)方向的計(jì)算都拆分成了4 個(gè)核函數(shù),分別命名為flux_kernel1-flux_kernel4,拆分的作用是為了實(shí)現(xiàn)對(duì)內(nèi)點(diǎn)和邊界點(diǎn)的分別計(jì)算以及數(shù)據(jù)計(jì)算的最大并行。

    圖2 右端項(xiàng)計(jì)算的線程映射Fig.2 Thread mapping of right end item calculation

    2.2 lu_adi 函數(shù)的GPU 并行方案

    在CPU 版本中,lu_adi 函數(shù)分別在X、Y、Z三個(gè)方向利用LU_ADI 方法求解三維定常可壓縮N-S 方程。該算法最大的特點(diǎn)是在每個(gè)計(jì)算方向上都存在強(qiáng)數(shù)據(jù)依賴性,網(wǎng)格中任一內(nèi)點(diǎn)的更新都需要自身點(diǎn)和同一條網(wǎng)格線上鄰點(diǎn)參與計(jì)算,且需要往返各更新一次,具體的計(jì)算方式如下圖3所示。

    圖3 ADI 迭代計(jì)算Fig.3 ADI iterative computation

    針對(duì)上述ADI 算法特點(diǎn),對(duì)lu_adi 函數(shù)中沒(méi)有數(shù)據(jù)依賴的計(jì)算部分仍采用三維并行,網(wǎng)格數(shù)據(jù)與線程的映射和圖3 相同。而對(duì)lu_adi 函數(shù)中具有強(qiáng)數(shù)據(jù)依賴性的計(jì)算部分,只能在沒(méi)有數(shù)據(jù)依賴的另外兩個(gè)方向上實(shí)現(xiàn)兩維并行,有數(shù)據(jù)依賴的方向使用循環(huán)串行執(zhí)行,每個(gè)線程負(fù)責(zé)控制一條網(wǎng)格線上相關(guān)點(diǎn)的計(jì)算,具體的網(wǎng)格數(shù)據(jù)與線程的映射關(guān)系如圖4所示。本文根據(jù)lu_adi 函數(shù)特點(diǎn),將每個(gè)方向的計(jì)算都拆分成了5 個(gè)核函數(shù),分別命名為ADI_kernel1-ADI_kernel5,拆分的目的是為了實(shí)現(xiàn)數(shù)據(jù)計(jì)算的最大并行化。

    圖4 LU_ADI 迭代計(jì)算的線程映射Fig.4 Thread mapping of LU_ ADI iterative calculation

    3 基于國(guó)產(chǎn)加速器的性能優(yōu)化策略

    利用上述并行方案實(shí)現(xiàn)了GPU 的加速版本后,再通過(guò)國(guó)產(chǎn)加速器自帶的轉(zhuǎn)碼工具將程序移植到國(guó)產(chǎn)加速器,得到了移植后的基礎(chǔ)版本。使用128 立方的三維網(wǎng)格進(jìn)行測(cè)試,單加速卡相對(duì)于單CPU 核心,移植前后flux 函數(shù)部分的運(yùn)行時(shí)間從2231.21s 降為16.9s,加速了132 倍,lu_adi 函數(shù)部分的運(yùn)行實(shí)踐從1641.93s 降到83.1s,加速了19.7 倍。但此基礎(chǔ)版本仍有很大的優(yōu)化空間,后續(xù)本文會(huì)基于國(guó)產(chǎn)加速器架構(gòu)特點(diǎn),充分利用國(guó)產(chǎn)加速器上寄存器、共享內(nèi)存等內(nèi)存資源,采用核函數(shù)合并與分解、訪存合并、調(diào)整塊大小等方法對(duì)移植后的程序進(jìn)行優(yōu)化。

    3.1 核函數(shù)的分解與合并

    在對(duì)核函數(shù)進(jìn)行優(yōu)化時(shí),應(yīng)充分利用寄存器資源進(jìn)行計(jì)算。但是寄存器資源非常稀少,所以當(dāng)核函數(shù)過(guò)大,中間變量過(guò)多時(shí),可以采用拆分核函數(shù)的方法,減少同一個(gè)核函數(shù)內(nèi)寄存器的使用數(shù)量,從而增大線程塊并發(fā)的數(shù)量。當(dāng)核函數(shù)規(guī)模較小,中間變量較少,可以將相關(guān)核函數(shù)進(jìn)行合并,在保證線程塊具有較高并行性的情況下,充分利用寄存器資源。本課題中對(duì)lu_adi 函數(shù)進(jìn)行了相關(guān)優(yōu)化,lu_adi 函數(shù)共由五個(gè)核函數(shù)組成,前兩個(gè)核函數(shù)ADI_kernel1 和ADI_kernel2 的計(jì)算中有大量中間數(shù)組的重復(fù)使用。針對(duì)此特點(diǎn),可以將這些使用到的中間數(shù)組數(shù)據(jù)用寄存器存儲(chǔ)起來(lái),之后的相關(guān)計(jì)算也都在寄存器上進(jìn)行。此外,ADI_kernel2 核函數(shù)中的一些計(jì)算可以合并到ADI_kernel1 核函數(shù)中,并且不會(huì)對(duì)程序結(jié)果產(chǎn)生影響。通過(guò)測(cè)試發(fā)現(xiàn),將這兩種優(yōu)化方法結(jié)合起來(lái)使用,這兩個(gè)核函數(shù)的總時(shí)間從16.54 秒降到10.95 秒,速度提升了33.8%。

    3.2 全局訪存的合并與對(duì)齊

    通常情況下,計(jì)算數(shù)據(jù)都是存儲(chǔ)在加速器的全局內(nèi)存(Global Memory)上,并且內(nèi)存帶寬往往是影響程序性能的主要因素。因此,設(shè)計(jì)較好的訪存模式實(shí)現(xiàn)較高的訪存帶寬對(duì)程序的優(yōu)化至關(guān)重要。在GPU 上核函數(shù)的內(nèi)存訪問(wèn)是在物理設(shè)備內(nèi)存和片上內(nèi)存間以128 字節(jié)或32 字節(jié)內(nèi)存事物來(lái)實(shí)現(xiàn)的,在國(guó)產(chǎn)加速器上的訪存機(jī)制與GPU 類似。為了最大化帶寬利用率,我們可以對(duì)程序的訪存模式進(jìn)行設(shè)計(jì),將設(shè)備內(nèi)存事務(wù)的首地址設(shè)置為128 字節(jié)的偶數(shù)倍,并讓同一線程束內(nèi)連續(xù)的線程獲取連續(xù)的內(nèi)存數(shù)據(jù),從而實(shí)現(xiàn)訪存的合并與對(duì)齊,提高核函數(shù)的運(yùn)行速度。在我們的程序中,以ADI_kernel3_i 核函數(shù)為例,原程序中對(duì)殘差數(shù)組三個(gè)維度的計(jì)算都從第三個(gè)點(diǎn)開(kāi)始,其對(duì)數(shù)據(jù)的訪問(wèn)是非對(duì)齊的。為了實(shí)現(xiàn)合并對(duì)齊訪問(wèn),我們對(duì)x 方向的計(jì)算仍從第三個(gè)點(diǎn)開(kāi)始,另外兩個(gè)方向的計(jì)算都從第一個(gè)點(diǎn)開(kāi)始,這樣既不會(huì)影響程序的正確性,又可以實(shí)現(xiàn)對(duì)全局內(nèi)存的合并對(duì)齊訪問(wèn)。經(jīng)過(guò)這樣的優(yōu)化后,ADI_kernel3_i 核函數(shù)的運(yùn)行時(shí)間從1.86s 降為1.58s,性能提升了15%。

    3.3 共享內(nèi)存的使用

    共享內(nèi)存是國(guó)產(chǎn)加速器上的一塊具有固定大小的可編程緩存,與全局內(nèi)存相比,它具有較低的訪存延遲和較高的內(nèi)存帶寬。存儲(chǔ)在共享內(nèi)存上的數(shù)據(jù)可以被同一個(gè)線程塊內(nèi)的線程共享。國(guó)產(chǎn)加速器的一個(gè)計(jì)算卡上有64kB 的共享內(nèi)存,當(dāng)數(shù)據(jù)是雙精度浮點(diǎn)類型時(shí),一個(gè)核函數(shù)使用的共享內(nèi)存數(shù)組大小不能超過(guò)8192。根據(jù)程序特點(diǎn),使用共享內(nèi)存存儲(chǔ)全局內(nèi)存數(shù)據(jù),可以減少對(duì)Global Memory 不必要的頻繁訪問(wèn),提升程序的整體性能。特別是一些具有數(shù)據(jù)依賴的計(jì)算,使用共享內(nèi)存進(jìn)行優(yōu)化是優(yōu)先選擇。但是使用共享內(nèi)存時(shí)還要注意避免bank 沖突,通常解決bank 沖突的方法是對(duì)數(shù)據(jù)進(jìn)行內(nèi)存填充,改變數(shù)據(jù)到共享內(nèi)存存儲(chǔ)體的映射。此外,還可以利用共享內(nèi)存對(duì)內(nèi)存訪問(wèn)模式進(jìn)行設(shè)計(jì),以便實(shí)現(xiàn)訪存的合并。

    3.3.1 對(duì)lu_adi 函數(shù)使用共享內(nèi)存優(yōu)化

    在本課題中,lu_adi 函數(shù)的數(shù)據(jù)依賴部分主要集中在第四個(gè)核函數(shù)ADI_kernel4,并且對(duì)i 方向數(shù)據(jù)的訪問(wèn)是非合并的,具體的計(jì)算形式如下所示。

    Specific Code:do k = 2 ,kdim do j = 2 ,jdim do i = 3 ,idim res(i,j,k)=(res(i,j,k)- flmp(i,j,k)* res(i-1,j,k))/diag(i,j,k)end do do i = idim-1 ,2 res(i,j,k)= res(i,j,k)- flmn(i,j,k)* res(i+1,j,k)end do end do end do

    針對(duì)i 方向訪存不連續(xù)的問(wèn)題,本文使用共享內(nèi)存設(shè)計(jì)了一種實(shí)現(xiàn)合并的內(nèi)存訪問(wèn)模式。由于一個(gè)核函數(shù)的共享內(nèi)存大小不能超過(guò)64kB,所以沿i正向計(jì)算時(shí)使用三個(gè)大小為4*32*17 的共享內(nèi)存數(shù)組,分別存放res、flmp和diag數(shù)組,并且控制連續(xù)的16 個(gè)線程訪問(wèn)連續(xù)的16 個(gè)全局內(nèi)存數(shù)據(jù),將其存儲(chǔ)到共享內(nèi)存數(shù)組中,這樣便實(shí)現(xiàn)了合并訪存。i方向的每一條網(wǎng)格線分成n 次來(lái)計(jì)算,n 的大小由網(wǎng)格大小確定。每次循環(huán)沿i 方向取16 個(gè)數(shù)據(jù),并且在進(jìn)行下次計(jì)算之前將需要用到的數(shù)據(jù)提前存放到共享內(nèi)存數(shù)組中,這也是將共享內(nèi)存數(shù)組的最后一個(gè)維度聲明為17 的原因。n 次循環(huán)之后,一個(gè)線程實(shí)際負(fù)責(zé)了一條網(wǎng)格線上數(shù)據(jù)點(diǎn)的計(jì)算,反向計(jì)算原理相同。此外,n 次循環(huán)中,每次取數(shù)據(jù)之后要進(jìn)行同步,計(jì)算之后也要進(jìn)行同步,否則可能會(huì)出現(xiàn)未知錯(cuò)誤,同步的方法是使用syncthreads()函數(shù),此函數(shù)的作用是同步同一線程塊內(nèi)的線程操作。設(shè)計(jì)的具體訪存模式如圖5所示。

    圖5 ADI_kernel4 核函數(shù)i 方向訪存模式Fig.5 ADI_ Kernel4 kernel function i-direction memory access mode

    而對(duì)于j、k 方向數(shù)據(jù)的訪存本就是合并的,使用共享內(nèi)存僅僅只能減少對(duì)全局內(nèi)存的訪存次數(shù),而使用寄存器可以達(dá)到同樣的效果,并且比共享內(nèi)存更加方便,所以對(duì)j、k 方向使用寄存器進(jìn)行計(jì)算,每次沿相應(yīng)方向連續(xù)更新計(jì)算一條網(wǎng)格線上的所有點(diǎn)。使用此方法進(jìn)行優(yōu)化后,ADI_kernel4 部分實(shí)現(xiàn)了5.4 倍的加速。

    3.3.2 對(duì)flux 函數(shù)使用共享內(nèi)存優(yōu)化

    flux 函數(shù)中的第一個(gè)核函數(shù)flux_kernel1 的計(jì)算需要用到相同數(shù)組的相鄰兩點(diǎn),具體計(jì)算形式如下所示。

    Specific Code:do k = 2 ,kdim do j = 2 ,jdim do i = 3 ,idim du(i,j,k)= u(i,j,k)- u(i-1,j,k)end do end do end do

    并且數(shù)據(jù)的訪問(wèn)已經(jīng)實(shí)現(xiàn)了合并與對(duì)齊,利用共享內(nèi)存可以減少對(duì)全局內(nèi)存的訪問(wèn)次數(shù),從而減少程序的運(yùn)行時(shí)間。具體方案和對(duì)ADI_kernel4 的優(yōu)化思路大致相同,不同之處在于使用的共享內(nèi)存數(shù)組大小為4*8*33,并且沒(méi)有循環(huán)過(guò)程,也沒(méi)有數(shù)據(jù)依賴。使用共享內(nèi)存進(jìn)行優(yōu)化后,flux_kernel1 部分相比原來(lái)的版本實(shí)現(xiàn)了28%的加速。

    3.4 調(diào)整線程塊的大小

    線程塊大小會(huì)影響每個(gè)線程所能分配的內(nèi)核資源,從而影響整個(gè)程序的并發(fā)性。調(diào)整線程塊大小是比較基礎(chǔ)的優(yōu)化方法,當(dāng)已經(jīng)使用了其他優(yōu)化方法或者找不到更好的優(yōu)化方法時(shí),對(duì)線程塊大小進(jìn)行調(diào)整通??梢匀〉揭欢ǖ男Ч?。本課題對(duì)lu_adi 函數(shù)中有關(guān)i 方向計(jì)算的兩個(gè)比較簡(jiǎn)單的核函數(shù)ADI_kernel1_i 和ADI_kernel5_i 采用此方法進(jìn)行優(yōu)化,并取得了一定的加速效果。具體的線程塊配置如表1所示。

    表1 ADI_kernel1_i 和ADI_kernel5_i 在不同線程塊大小下的運(yùn)行時(shí)間Table 1 The running time of ADI_kernel1_i and ADI_kernel5_i under different thread block sizes

    從圖中可以看到,相同的線程塊大小配置對(duì)于不同的核函數(shù)影響是不同的。ADI_kernel1_i 核函數(shù)中計(jì)算操作較多,用到了較多的寄存器,使用32*8*2 的線程網(wǎng)格大小既可以增大每個(gè)線程分配的寄存器的資源,又可以得到最大的并行性,所以其加速效果也最好。而ADI_kernel3_i 核函數(shù)中計(jì)算較少,主要是讀寫內(nèi)存操作,使用32*8*4 的線程網(wǎng)格可以保證其最大并行性。所以,對(duì)每個(gè)核函數(shù)應(yīng)根據(jù)自身特點(diǎn),合理設(shè)計(jì)線程塊大小,設(shè)計(jì)相應(yīng)核函數(shù)的最佳線程塊配置,而不應(yīng)該采用統(tǒng)一的線程網(wǎng)格大小。

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

    4.1 實(shí)驗(yàn)平臺(tái)

    在CPU+國(guó)產(chǎn)加速器異構(gòu)平臺(tái)進(jìn)行測(cè)試,系統(tǒng)環(huán)境配置:國(guó)產(chǎn)x86 處理器(32 核心),內(nèi)存容量為128GB DDR4,國(guó)產(chǎn)加速器具有16GB HBM2 顯存,帶寬1TB/s。本文采用Intel 編譯器編譯Fortran 程序,使用國(guó)產(chǎn)加速器自帶的編譯器編譯移植后的程序,并且使用“-O2”優(yōu)化,最終將編譯后的文件用ifort 命令進(jìn)行鏈接生成可執(zhí)行文件。在CPU 上所進(jìn)行的運(yùn)算只使用單核,國(guó)產(chǎn)加速器上使用單張加速卡進(jìn)行加速。

    4.2 正確性驗(yàn)證

    本文的算例是求解三維方腔流問(wèn)題,使用了128*128*128 和256*256*128 兩種規(guī)模的網(wǎng)格模型進(jìn)行測(cè)試,其中網(wǎng)格的最外面兩層為虛網(wǎng)格點(diǎn),其作用是用來(lái)更新內(nèi)點(diǎn),網(wǎng)格數(shù)據(jù)全部為雙精度,設(shè)置定常迭代步數(shù)為2000。通過(guò)打印輸出原CPU 程序和移植優(yōu)化后的最終全部流場(chǎng)信息,驗(yàn)證移植與優(yōu)化的正確性。兩種測(cè)試結(jié)果表明,移植前后全部流場(chǎng)信息的絕對(duì)誤差的最大值都控制在小數(shù)點(diǎn)后15 位,完全滿足工程上的精度要求。

    4.3 實(shí)驗(yàn)結(jié)果

    本文采用兩套不同網(wǎng)格規(guī)模進(jìn)行測(cè)試,圖6 和圖7 給出了兩種網(wǎng)格移植前后CCFD V3.0 程序各部分的運(yùn)行時(shí)間對(duì)比。通過(guò)對(duì)測(cè)試結(jié)果的初步分析,發(fā)現(xiàn)128 立方大小的網(wǎng)格和256*256*128 大小的網(wǎng)格的優(yōu)化效果基本一致。限于篇幅,本文只給出128 立方大小網(wǎng)格詳細(xì)的優(yōu)化結(jié)果。表2 是對(duì)ADI_kernel1 和ADI_kernel2 采用核函數(shù)的合并與分解方法的具體優(yōu)化效果,表3、表4 分別是對(duì)ADI_kernel4、flux_kernel1 核函數(shù)使用共享內(nèi)存方法優(yōu)化的三個(gè)方向優(yōu)化效果。圖8 和圖9 分別給出了移植的初始版本和綜合使用上述幾種優(yōu)化方法后,flux 函數(shù)和lu_adi 函數(shù)各個(gè)方向計(jì)算的最終時(shí)間對(duì)比。

    圖8 flux 函數(shù)優(yōu)化前后時(shí)間對(duì)比Fig.8 Comparison of time before and after optimization of flux function

    圖9 lu_adi 函數(shù)優(yōu)化前后時(shí)間對(duì)比Fig.9 Comparison of time before and after optimization of lu_adi function

    表2 ADI_kernel1 和ADI_kernel2 優(yōu)化效果Table 2 The optimization effect of ADI_ Kernel1 and ADI_kernel2

    表3 ADI_kernel4 核函數(shù)三個(gè)方向優(yōu)化效果Table 3 The optimization effect of ADI_kernel4 kernel function in three directions

    表4 flux_kernel1 核函數(shù)三個(gè)方向優(yōu)化效果Table 4 The optimization effect of flux_kernel1 kernel function in three directions

    圖6 CCFD V3.0 三個(gè)版本程序時(shí)間對(duì)比,網(wǎng)格規(guī)模:128*128*128Fig.6 Time comparison of three versions of CCFD V3.0,grid size:128*128*128

    圖7 CCFD V3.0 三個(gè)版本程序時(shí)間對(duì)比,網(wǎng)格規(guī)模:256*256*128Fig.7 Time comparison of three versions of CCFD V3.0,grid size:256*256*128

    從上述圖表可以看出將移植到國(guó)產(chǎn)異構(gòu)系統(tǒng)可以對(duì)程序的性能有明顯的提升,并且采用上述優(yōu)化方法進(jìn)行優(yōu)化后,程序性能會(huì)進(jìn)一步得到提升。其中,對(duì)lu_adi 函數(shù)i 方向的相關(guān)計(jì)算在優(yōu)化后的性能提升最明顯,這是因?yàn)閕 方向的數(shù)據(jù)在初步移植后的訪存是非合并的,優(yōu)化后實(shí)現(xiàn)了訪存的合并,性能得到了很好的提升。

    5 實(shí)驗(yàn)結(jié)果與分析

    本文將CCFD V3.0 軟件的定常求解器部分移植到國(guó)產(chǎn)異構(gòu)平臺(tái),并針對(duì)CFD 軟件的主要核心算法,對(duì)flux 函數(shù)部分和lu_adi 函數(shù)部分實(shí)現(xiàn)了在國(guó)產(chǎn)異構(gòu)平臺(tái)上的并行優(yōu)化。根據(jù)異構(gòu)平臺(tái)特點(diǎn),使用了寄存器、共享內(nèi)存、對(duì)核函數(shù)進(jìn)行合并與分解、實(shí)現(xiàn)訪存的合并與對(duì)齊、調(diào)整線程塊大小等優(yōu)化方法,對(duì)移植后的程序進(jìn)行優(yōu)化,最終取得了很好的加速效果,flux 函數(shù)部分實(shí)現(xiàn)了166 倍的加速,lu_adi 函數(shù)部分實(shí)現(xiàn)了59 倍的加速,整個(gè)CCFD V3.0 程序?qū)崿F(xiàn)了90 倍的加速(國(guó)產(chǎn)加速器上的單個(gè)加速卡相對(duì)于單個(gè)CPU 核心)。

    下一步將整個(gè)CCFD V3.0 程序移植到CPU+國(guó)產(chǎn)加速器的異構(gòu)平臺(tái),并將上述優(yōu)化方法應(yīng)用到軟件的其它模塊中,從而對(duì)整個(gè)CCFD V3.0 應(yīng)用程序?qū)崿F(xiàn)更好的加速效果。

    利益沖突聲明

    所有作者聲明不存在利益沖突關(guān)系。

    猜你喜歡
    共享內(nèi)存加速器線程
    輪滑加速器
    化學(xué)工業(yè)的“加速器”
    全民小康路上的“加速器”
    通過(guò)QT實(shí)現(xiàn)進(jìn)程間的通信
    基于PCI總線的多處理器協(xié)同機(jī)制研究
    淺談linux多線程協(xié)作
    等待“加速器”
    QNX下PEX8311多路實(shí)時(shí)數(shù)據(jù)采集的驅(qū)動(dòng)設(shè)計(jì)
    電子世界(2014年21期)2014-04-29 06:41:36
    一種高效RTAI 共享內(nèi)存管理層的研究與實(shí)現(xiàn)*
    Linux線程實(shí)現(xiàn)技術(shù)研究
    国产片内射在线| 亚洲欧美中文字幕日韩二区| 2018国产大陆天天弄谢| videosex国产| 欧美黑人欧美精品刺激| 十八禁网站网址无遮挡| 国产亚洲精品第一综合不卡| 国产精品麻豆人妻色哟哟久久| 成人午夜精彩视频在线观看| 亚洲,欧美,日韩| 国产成人精品在线电影| 亚洲第一区二区三区不卡| 欧美日韩综合久久久久久| 人成视频在线观看免费观看| 青草久久国产| 最黄视频免费看| e午夜精品久久久久久久| 爱豆传媒免费全集在线观看| 免费在线观看黄色视频的| 亚洲av成人精品一二三区| 中国三级夫妇交换| 可以免费在线观看a视频的电影网站 | 欧美日韩综合久久久久久| 午夜福利免费观看在线| 国产熟女欧美一区二区| 亚洲国产精品一区二区三区在线| a级毛片在线看网站| 天天添夜夜摸| 亚洲av欧美aⅴ国产| 丝袜美腿诱惑在线| 叶爱在线成人免费视频播放| 国产成人精品久久二区二区91 | 男女边吃奶边做爰视频| 国产人伦9x9x在线观看| 久久精品久久精品一区二区三区| 男男h啪啪无遮挡| 亚洲欧美一区二区三区黑人| 男女边摸边吃奶| 日本午夜av视频| 桃花免费在线播放| 中国国产av一级| av在线播放精品| 亚洲精品国产av成人精品| 久久久久精品性色| 男女国产视频网站| 成年女人毛片免费观看观看9 | 老熟女久久久| 狠狠精品人妻久久久久久综合| 中文欧美无线码| 一区在线观看完整版| 精品一区二区免费观看| 最新在线观看一区二区三区 | 国产成人精品无人区| 亚洲av国产av综合av卡| 中文字幕人妻熟女乱码| 国产麻豆69| 久久久久人妻精品一区果冻| 观看美女的网站| 天天躁日日躁夜夜躁夜夜| 亚洲精品第二区| 亚洲国产精品国产精品| 精品国产一区二区三区四区第35| 国产av一区二区精品久久| 尾随美女入室| 两个人看的免费小视频| 日本一区二区免费在线视频| 精品午夜福利在线看| www.精华液| 丁香六月欧美| 亚洲精品日本国产第一区| 老汉色∧v一级毛片| 免费黄频网站在线观看国产| 久久精品国产a三级三级三级| 18禁动态无遮挡网站| 你懂的网址亚洲精品在线观看| 亚洲精品aⅴ在线观看| 免费高清在线观看视频在线观看| 最黄视频免费看| 在线观看三级黄色| 日本av手机在线免费观看| 99九九在线精品视频| 不卡av一区二区三区| 国产乱来视频区| 蜜桃国产av成人99| 新久久久久国产一级毛片| 亚洲成av片中文字幕在线观看| 大话2 男鬼变身卡| 哪个播放器可以免费观看大片| 视频区图区小说| 国产精品成人在线| 日韩av不卡免费在线播放| 久久狼人影院| 欧美黄色片欧美黄色片| 欧美黑人精品巨大| 啦啦啦 在线观看视频| 热99国产精品久久久久久7| 国产日韩一区二区三区精品不卡| 日韩欧美精品免费久久| 国产亚洲一区二区精品| 亚洲国产看品久久| 国产一区二区三区综合在线观看| 男女之事视频高清在线观看 | 日韩视频在线欧美| 久久久久久久久久久免费av| av网站免费在线观看视频| 亚洲av男天堂| 国产一区二区 视频在线| 亚洲精品国产av成人精品| 欧美成人精品欧美一级黄| 日韩电影二区| 看免费成人av毛片| 亚洲av中文av极速乱| 最新在线观看一区二区三区 | 精品久久久久久电影网| 亚洲国产欧美在线一区| 大片免费播放器 马上看| 九色亚洲精品在线播放| 国产野战对白在线观看| 亚洲中文av在线| 亚洲精品视频女| 亚洲免费av在线视频| xxx大片免费视频| 日日摸夜夜添夜夜爱| 国产精品99久久99久久久不卡 | 在线天堂最新版资源| 午夜av观看不卡| 夫妻午夜视频| 老司机亚洲免费影院| 亚洲图色成人| 中文字幕人妻丝袜一区二区 | 久久这里只有精品19| 日本wwww免费看| 看免费av毛片| 国产一级毛片在线| av在线老鸭窝| 99re6热这里在线精品视频| 国产福利在线免费观看视频| 久久久精品国产亚洲av高清涩受| 人人澡人人妻人| 女人爽到高潮嗷嗷叫在线视频| 亚洲成人一二三区av| 日本黄色日本黄色录像| 国产又爽黄色视频| 蜜桃在线观看..| 最近最新中文字幕大全免费视频 | 最黄视频免费看| 国产亚洲最大av| 天天躁日日躁夜夜躁夜夜| 亚洲精品国产区一区二| 久久狼人影院| 捣出白浆h1v1| 国产成人精品无人区| 性少妇av在线| 亚洲av电影在线观看一区二区三区| 欧美 亚洲 国产 日韩一| 欧美成人精品欧美一级黄| 午夜免费男女啪啪视频观看| 中文字幕另类日韩欧美亚洲嫩草| 日本午夜av视频| 久久影院123| 久久精品亚洲熟妇少妇任你| 三上悠亚av全集在线观看| 人妻 亚洲 视频| 男女下面插进去视频免费观看| 最新在线观看一区二区三区 | 少妇人妻 视频| 久久人人爽av亚洲精品天堂| 久久久久网色| 亚洲av在线观看美女高潮| 人人妻人人爽人人添夜夜欢视频| 欧美精品人与动牲交sv欧美| 在线观看免费午夜福利视频| 男女边吃奶边做爰视频| 国产1区2区3区精品| 少妇 在线观看| 亚洲欧美色中文字幕在线| 国产日韩欧美在线精品| www.av在线官网国产| 亚洲av中文av极速乱| 中文精品一卡2卡3卡4更新| 精品国产国语对白av| 亚洲熟女毛片儿| 午夜福利一区二区在线看| 不卡视频在线观看欧美| 最新的欧美精品一区二区| 国产精品 欧美亚洲| 高清欧美精品videossex| 国产野战对白在线观看| 亚洲人成77777在线视频| 日本wwww免费看| 国产1区2区3区精品| 999精品在线视频| 亚洲久久久国产精品| 少妇被粗大猛烈的视频| 日本爱情动作片www.在线观看| 超碰97精品在线观看| 深夜精品福利| 亚洲美女黄色视频免费看| 亚洲欧洲精品一区二区精品久久久 | 亚洲欧洲精品一区二区精品久久久 | 男人爽女人下面视频在线观看| 天天躁夜夜躁狠狠躁躁| 两个人免费观看高清视频| 亚洲第一区二区三区不卡| 免费在线观看黄色视频的| 少妇人妻久久综合中文| 午夜免费鲁丝| 免费黄色在线免费观看| 青春草视频在线免费观看| 纵有疾风起免费观看全集完整版| 日日撸夜夜添| 丁香六月欧美| 麻豆乱淫一区二区| 久久精品aⅴ一区二区三区四区| 国产成人精品无人区| 亚洲欧洲日产国产| 五月天丁香电影| 日本欧美视频一区| 欧美xxⅹ黑人| 日日撸夜夜添| 亚洲欧美一区二区三区久久| av线在线观看网站| 亚洲成色77777| 免费观看a级毛片全部| 91老司机精品| 日韩一区二区三区影片| 日韩电影二区| 亚洲七黄色美女视频| 在线观看三级黄色| 水蜜桃什么品种好| 日韩精品免费视频一区二区三区| 午夜福利网站1000一区二区三区| 久久久久国产一级毛片高清牌| 日韩免费高清中文字幕av| 日日啪夜夜爽| 欧美日韩综合久久久久久| 亚洲伊人久久精品综合| 无限看片的www在线观看| tube8黄色片| 男女免费视频国产| 亚洲国产欧美在线一区| 99久国产av精品国产电影| 国产成人系列免费观看| 成年美女黄网站色视频大全免费| 国产成人精品久久久久久| 99香蕉大伊视频| 9色porny在线观看| 侵犯人妻中文字幕一二三四区| 久热这里只有精品99| 天堂中文最新版在线下载| 亚洲av福利一区| 在线 av 中文字幕| 国产又爽黄色视频| 欧美在线一区亚洲| 大码成人一级视频| 777久久人妻少妇嫩草av网站| 国产又爽黄色视频| 国产精品久久久久久人妻精品电影 | 美女大奶头黄色视频| 国产精品 欧美亚洲| 777久久人妻少妇嫩草av网站| 日韩精品免费视频一区二区三区| 国产精品久久久久久人妻精品电影 | 国产一区亚洲一区在线观看| 国产精品一区二区精品视频观看| 高清视频免费观看一区二区| 欧美日韩一级在线毛片| 大片免费播放器 马上看| 美女中出高潮动态图| av网站免费在线观看视频| 欧美精品av麻豆av| 国产亚洲一区二区精品| 黄色一级大片看看| 菩萨蛮人人尽说江南好唐韦庄| 五月天丁香电影| 宅男免费午夜| 国产极品粉嫩免费观看在线| 欧美人与性动交α欧美软件| 人妻 亚洲 视频| 免费人妻精品一区二区三区视频| 啦啦啦中文免费视频观看日本| 人人妻,人人澡人人爽秒播 | 午夜福利一区二区在线看| 制服诱惑二区| av在线播放精品| 999精品在线视频| 老司机影院毛片| 国产一区亚洲一区在线观看| 9热在线视频观看99| 国产午夜精品一二区理论片| 久久性视频一级片| 中文字幕最新亚洲高清| 日韩一本色道免费dvd| 中国三级夫妇交换| 色婷婷久久久亚洲欧美| 久久午夜综合久久蜜桃| 国产日韩欧美视频二区| 国产欧美日韩一区二区三区在线| 亚洲视频免费观看视频| 国产 一区精品| 大片免费播放器 马上看| 在线观看免费视频网站a站| 亚洲色图 男人天堂 中文字幕| 亚洲成人手机| 久热这里只有精品99| 两性夫妻黄色片| 9191精品国产免费久久| 国产成人系列免费观看| 又大又爽又粗| 中文字幕av电影在线播放| 国产日韩欧美亚洲二区| 欧美日韩一区二区视频在线观看视频在线| 午夜久久久在线观看| 日韩中文字幕欧美一区二区 | 亚洲av电影在线进入| 看非洲黑人一级黄片| 国产免费一区二区三区四区乱码| 一个人免费看片子| 日韩大码丰满熟妇| 国产免费视频播放在线视频| 午夜影院在线不卡| 亚洲色图 男人天堂 中文字幕| 99久久99久久久精品蜜桃| 国产淫语在线视频| 国产精品无大码| 亚洲婷婷狠狠爱综合网| 国产淫语在线视频| 波多野结衣一区麻豆| 99九九在线精品视频| 日韩欧美一区视频在线观看| 日本av免费视频播放| 毛片一级片免费看久久久久| 国产精品麻豆人妻色哟哟久久| 日韩av不卡免费在线播放| 亚洲,一卡二卡三卡| 国产精品麻豆人妻色哟哟久久| av网站免费在线观看视频| 啦啦啦中文免费视频观看日本| 国产日韩欧美在线精品| 国产精品偷伦视频观看了| 午夜91福利影院| 午夜免费男女啪啪视频观看| 国产一区二区在线观看av| 水蜜桃什么品种好| 国产成人精品福利久久| 日韩中文字幕视频在线看片| 一边摸一边做爽爽视频免费| 久久精品人人爽人人爽视色| 欧美中文综合在线视频| 女人被躁到高潮嗷嗷叫费观| 欧美日韩一区二区视频在线观看视频在线| 欧美日韩亚洲国产一区二区在线观看 | 国产xxxxx性猛交| 汤姆久久久久久久影院中文字幕| 少妇猛男粗大的猛烈进出视频| 亚洲国产看品久久| 亚洲人成电影观看| 美女福利国产在线| 秋霞伦理黄片| 看非洲黑人一级黄片| av不卡在线播放| kizo精华| 又大又黄又爽视频免费| 女性被躁到高潮视频| 高清视频免费观看一区二区| 亚洲一级一片aⅴ在线观看| 丰满饥渴人妻一区二区三| 亚洲欧美日韩另类电影网站| 91老司机精品| 老汉色∧v一级毛片| 欧美日韩亚洲综合一区二区三区_| 男女边吃奶边做爰视频| 狠狠精品人妻久久久久久综合| 午夜福利网站1000一区二区三区| 天堂8中文在线网| 亚洲成人免费av在线播放| 电影成人av| 色播在线永久视频| 欧美精品高潮呻吟av久久| 午夜av观看不卡| 又黄又粗又硬又大视频| 亚洲,欧美精品.| 爱豆传媒免费全集在线观看| 韩国av在线不卡| 满18在线观看网站| 久久久久久久精品精品| 亚洲国产看品久久| 日韩精品有码人妻一区| 国产亚洲av高清不卡| 香蕉丝袜av| 9色porny在线观看| 青春草视频在线免费观看| 日韩不卡一区二区三区视频在线| 国产精品一区二区精品视频观看| 看十八女毛片水多多多| 成人18禁高潮啪啪吃奶动态图| 免费黄频网站在线观看国产| 99精品久久久久人妻精品| 亚洲欧美精品综合一区二区三区| 午夜福利免费观看在线| 大片电影免费在线观看免费| 中文字幕制服av| 成年av动漫网址| 久久久亚洲精品成人影院| 天美传媒精品一区二区| 在线观看一区二区三区激情| 欧美日韩一级在线毛片| 9热在线视频观看99| 久久久久久久久久久免费av| √禁漫天堂资源中文www| 91成人精品电影| 亚洲一卡2卡3卡4卡5卡精品中文| 在线 av 中文字幕| 人人妻人人澡人人爽人人夜夜| 一级毛片电影观看| 亚洲成人免费av在线播放| 午夜老司机福利片| 久久久久久人人人人人| 麻豆av在线久日| 又黄又粗又硬又大视频| 国产精品一区二区在线观看99| 两个人看的免费小视频| 精品人妻在线不人妻| 日韩中文字幕视频在线看片| 国产爽快片一区二区三区| 男女边摸边吃奶| av不卡在线播放| 99国产综合亚洲精品| 精品少妇久久久久久888优播| 一区福利在线观看| 菩萨蛮人人尽说江南好唐韦庄| 秋霞在线观看毛片| 久久人妻熟女aⅴ| 中文字幕av电影在线播放| 一区二区日韩欧美中文字幕| 色婷婷av一区二区三区视频| 亚洲精品中文字幕在线视频| 午夜福利网站1000一区二区三区| 9191精品国产免费久久| 捣出白浆h1v1| 久久ye,这里只有精品| 国产精品久久久av美女十八| 一区在线观看完整版| 777久久人妻少妇嫩草av网站| 欧美日韩综合久久久久久| 校园人妻丝袜中文字幕| 在线观看一区二区三区激情| 成人国产麻豆网| 亚洲成人一二三区av| 天天躁夜夜躁狠狠久久av| 午夜日韩欧美国产| 99re6热这里在线精品视频| 夫妻午夜视频| 搡老岳熟女国产| 国产一区二区在线观看av| 精品国产超薄肉色丝袜足j| 高清黄色对白视频在线免费看| 美女福利国产在线| 深夜精品福利| 丰满乱子伦码专区| 国产免费又黄又爽又色| bbb黄色大片| 亚洲国产成人一精品久久久| 亚洲av国产av综合av卡| 在现免费观看毛片| 老司机影院毛片| 国产高清不卡午夜福利| 99精国产麻豆久久婷婷| 校园人妻丝袜中文字幕| 午夜福利,免费看| 99热国产这里只有精品6| 青春草国产在线视频| 亚洲欧美精品自产自拍| 国产免费一区二区三区四区乱码| 欧美黑人欧美精品刺激| 国产片内射在线| 成年动漫av网址| 中文字幕色久视频| 99热全是精品| 在线看a的网站| av国产久精品久网站免费入址| 99国产精品免费福利视频| 久久ye,这里只有精品| 欧美黑人精品巨大| 亚洲精品国产一区二区精华液| 亚洲少妇的诱惑av| 精品国产乱码久久久久久小说| 婷婷成人精品国产| 亚洲精品,欧美精品| 亚洲五月色婷婷综合| 欧美精品人与动牲交sv欧美| 亚洲婷婷狠狠爱综合网| 国产在线免费精品| 国产精品女同一区二区软件| 少妇被粗大的猛进出69影院| 一边亲一边摸免费视频| 日韩 欧美 亚洲 中文字幕| 国产精品亚洲av一区麻豆 | 久久久精品区二区三区| 亚洲欧美一区二区三区黑人| 婷婷色综合www| 中文字幕另类日韩欧美亚洲嫩草| 亚洲国产最新在线播放| 人体艺术视频欧美日本| 亚洲欧美一区二区三区久久| 五月开心婷婷网| 卡戴珊不雅视频在线播放| 久久av网站| 人人澡人人妻人| 国产精品国产av在线观看| 亚洲精品国产色婷婷电影| 80岁老熟妇乱子伦牲交| 777米奇影视久久| 国产xxxxx性猛交| 2018国产大陆天天弄谢| 午夜福利一区二区在线看| 男女高潮啪啪啪动态图| 日韩精品免费视频一区二区三区| 午夜激情久久久久久久| 亚洲国产看品久久| 亚洲伊人久久精品综合| 伊人久久国产一区二区| 免费不卡黄色视频| 国产日韩欧美亚洲二区| 亚洲av男天堂| 涩涩av久久男人的天堂| 女人精品久久久久毛片| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲成国产人片在线观看| 欧美在线黄色| 色综合欧美亚洲国产小说| 国产日韩欧美在线精品| 成人国语在线视频| 性色av一级| 久久免费观看电影| 男人添女人高潮全过程视频| 成人国产av品久久久| 国产精品一区二区精品视频观看| 亚洲精品aⅴ在线观看| 欧美精品亚洲一区二区| 亚洲七黄色美女视频| 我要看黄色一级片免费的| 国产福利在线免费观看视频| 色婷婷久久久亚洲欧美| 成人毛片60女人毛片免费| 国产精品99久久99久久久不卡 | 亚洲国产精品成人久久小说| 久久精品国产亚洲av高清一级| 国产精品久久久久久精品电影小说| 男的添女的下面高潮视频| 亚洲五月色婷婷综合| 久久性视频一级片| 18禁动态无遮挡网站| 成人国产麻豆网| 丁香六月天网| 亚洲av福利一区| 一区二区日韩欧美中文字幕| 制服人妻中文乱码| 久久久久精品人妻al黑| 国产1区2区3区精品| 夫妻性生交免费视频一级片| 又黄又粗又硬又大视频| 美女大奶头黄色视频| 韩国av在线不卡| 国产精品无大码| 伊人久久大香线蕉亚洲五| 免费不卡黄色视频| 波多野结衣av一区二区av| 精品午夜福利在线看| 欧美黑人精品巨大| 久久午夜综合久久蜜桃| 亚洲第一av免费看| 高清av免费在线| 国产av一区二区精品久久| 精品午夜福利在线看| 日韩欧美一区视频在线观看| 久久热在线av| 啦啦啦 在线观看视频| 亚洲婷婷狠狠爱综合网| 免费女性裸体啪啪无遮挡网站| 国产片特级美女逼逼视频| 日韩av不卡免费在线播放| 热re99久久精品国产66热6| 中文字幕人妻熟女乱码| 日日啪夜夜爽| 亚洲综合色网址| 亚洲欧美成人精品一区二区| 9色porny在线观看| 看十八女毛片水多多多| 夜夜骑夜夜射夜夜干| 肉色欧美久久久久久久蜜桃| 欧美人与性动交α欧美软件| 国产精品 国内视频| 亚洲成人一二三区av| 极品人妻少妇av视频| 国产色婷婷99| 中国国产av一级| 国产在线免费精品| 我要看黄色一级片免费的| 久久精品国产亚洲av高清一级| 久久久久国产精品人妻一区二区| 两性夫妻黄色片| 黑人巨大精品欧美一区二区蜜桃| 最新在线观看一区二区三区 | 国产乱来视频区| 日本午夜av视频| 丁香六月天网| 啦啦啦 在线观看视频| av卡一久久| 男女下面插进去视频免费观看| 丰满饥渴人妻一区二区三| 亚洲国产av影院在线观看| 午夜影院在线不卡| 亚洲av电影在线观看一区二区三区| 看免费成人av毛片|