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

    非靜壓海洋數(shù)值模式加速計(jì)算的CUDA實(shí)現(xiàn)*

    2013-10-16 07:21:18王春暉苗春葆
    關(guān)鍵詞:程序方法

    王春暉,苗春葆,沈 飆**

    (1.中國(guó)海洋大學(xué)物理海洋實(shí)驗(yàn)室,山東 青島266100;2.國(guó)家海洋局北海環(huán)境監(jiān)測(cè)中心海洋溢油監(jiān)別與損害評(píng)估技術(shù)重點(diǎn)實(shí)驗(yàn)室,山東 青島266033)

    自從NVIDIA提出CUDA框架以后,使用GPU進(jìn)行通用計(jì)算變得相當(dāng)簡(jiǎn)單[1]。CUDA以擴(kuò)展的C語(yǔ)言為基礎(chǔ),取代了以前基于GPU的程序設(shè)計(jì)模式,采用CUDA技術(shù),程序員不需要將計(jì)算轉(zhuǎn)化成圖形函數(shù),提高了程序開(kāi)發(fā)的靈活性[2]。在CUDA編程模型中,GPU被視為1個(gè)協(xié)處理器,通過(guò)大量線(xiàn)程的并行執(zhí)行來(lái)加快計(jì)算速度。在CUDA架構(gòu)下,1個(gè)程序分為兩部分:主機(jī)(Host)端和設(shè)備(Device)端。主機(jī)端是指在CPU上執(zhí)行的部分,而設(shè)備端是在GPU上執(zhí)行的部分,在GPU端執(zhí)行的程序稱(chēng)為“核”(Kernel)。CUDA程序執(zhí)行時(shí),驅(qū)動(dòng)程序會(huì)將GPU端代碼編譯成可執(zhí)行程序,并傳送到GPU運(yùn)行。在GPU上會(huì)產(chǎn)生大量的線(xiàn)程,每一個(gè)線(xiàn)程都會(huì)去執(zhí)行核程序,雖然程序有同一份,但由于每個(gè)線(xiàn)程的索引值不同,因而各個(gè)線(xiàn)程就能對(duì)不同的數(shù)據(jù)進(jìn)行計(jì)算[3]。

    在自然界發(fā)生的很多流體運(yùn)動(dòng)中,表面水波是最容易被觀察到的,由于地球表面大約三分之二的面積被水覆蓋,因此對(duì)水波的研究就具有重要的實(shí)際意義。對(duì)淺水波進(jìn)行數(shù)值模擬時(shí),若垂向壓力一直滿(mǎn)足靜壓假設(shè),則Navier-Stokes方程可以得到簡(jiǎn)化,不用求解泊松方程。但在自由表面有較大變化、地形突變、或垂向摻混比較嚴(yán)重的區(qū)域,采用這種假設(shè)的模擬結(jié)果會(huì)有很大誤差;若使用非靜壓模式進(jìn)行模擬,計(jì)算量會(huì)有明顯的增加,難以在較短的時(shí)間內(nèi)完成計(jì)算任務(wù)。因此,本項(xiàng)目使用CUDA實(shí)現(xiàn)對(duì)表面水波數(shù)值模擬的GPU加速,實(shí)現(xiàn)非靜壓表面水波的較快的數(shù)值模擬。

    與CPU串行程序相比,可以在不犧牲模擬精度的前提下(相對(duì)誤差不超過(guò)2×10-3)大大提高計(jì)算效率;計(jì)算速度的顯著提高展現(xiàn)了海洋數(shù)值模式應(yīng)用GPU進(jìn)行加速的廣闊前景。

    1 數(shù)值模型

    1.1 基本方程

    流體作為物質(zhì)的一種形態(tài),遵循自然界中關(guān)于物質(zhì)運(yùn)動(dòng)的普遍規(guī)律,例如質(zhì)量守恒、動(dòng)量守恒和能量守恒等。為簡(jiǎn)單起見(jiàn),本項(xiàng)目采用描述海水運(yùn)動(dòng)的二維垂向切片模型[4],其控制方程為:

    其中:u代表水平方向的流速;w代表垂向流速;ρo代表海水密度;P代表壓強(qiáng);η表示海面水位起伏。

    1.2 差分格式

    參 考 Jochen Kampf[4], 對(duì) 上 述 控 制 方 程 在Arakawa C網(wǎng)格上進(jìn)行差分計(jì)算(見(jiàn)圖1),垂向采用z坐標(biāo)。

    動(dòng)壓強(qiáng)P可以分為兩部分:

    圖1 Arakawa C網(wǎng)格中各變量位置分布Fig.1 Arakawa C-grid for a vertical ocean slice

    其中:p代表平靜海平面的靜壓強(qiáng);q由兩部分組成,一部分是海平面傾斜造成的壓強(qiáng)變化,第二部分是非靜壓效應(yīng)造成的壓強(qiáng)變化。若海水密度是一個(gè)常量,方程(5)可以簡(jiǎn)寫(xiě)為:P=q。把q分解為當(dāng)前時(shí)刻n的壓強(qiáng)加上下一時(shí)刻n+1的變化值,即:

    相應(yīng)的,方程(1)~(4)的求解過(guò)程可以分為2步:第一步,在時(shí)刻n顯式求出初始猜測(cè)流速u(mài)*跟w*;第二步,隱式求出Δq。

    流速的初始猜測(cè)值可以由時(shí)間前差方案獲得,即:

    其中:i跟k分別代表網(wǎng)格的水平和垂向索引。動(dòng)量方程的有限差分格式為:

    將方程(8)、(9)代入方程(3),兩邊同時(shí)乘以ΔzΔx,可以得到:

    該方程在數(shù)學(xué)上被稱(chēng)為泊松方程,其中:

    圖2給出了這些系數(shù)在Arakawa-C網(wǎng)格中的位置關(guān)系。方程右邊包含了初始猜測(cè)流速場(chǎng)(u*,w*)的散度,即:

    方程(10)的解意味著流場(chǎng)沒(méi)有散度,即滿(mǎn)足流場(chǎng)的不可壓縮條件,新的壓強(qiáng)場(chǎng)則可以表示為:

    圖2 ae,aw,at,ab 的位置關(guān)系圖Fig.2 Location used to define the coefficients ae,aw ,atand ab.

    1.3 泊松方程的求解算法

    方程(10)可以采用高斯 -賽德?tīng)柕℅auss-Seidel,簡(jiǎn)稱(chēng) G-S方法)或超松弛迭代法(Successive Over-Relaxation,簡(jiǎn)稱(chēng)SOR方法)進(jìn)行求解[4]。用方程表示如下:

    其中:r=0,1,2,…代表迭代次數(shù);上標(biāo)l由Δq是否更新決定,即l=r+1或l=r;ω的取值與采用哪種方法有關(guān):若采用G-S方法,則ω取值為1,若采用SOR方法,則ω的典型取值范圍為1.2~1.4。SOR方法與G-S方法相比其優(yōu)勢(shì)在于:通過(guò)選擇松弛因子ω,可以使得迭代過(guò)程收斂較快。

    G-S方法及SOR方法中Δq的初始值可以設(shè)置為0,但是如果初始值采取前一步的取值,會(huì)使計(jì)算迭代次數(shù)明顯減少,提高計(jì)算效率。即:

    海表面壓力在每次進(jìn)行迭代時(shí)都需要進(jìn)行計(jì)算。具體計(jì)算過(guò)程如下所

    (1)對(duì)流速進(jìn)行更新

    (2)在垂向上積分水平流速

    (3)忽略海平面變化引起的水體厚度的輕微變化,海表壓強(qiáng)的變化可用下面公式表示:

    重復(fù)G-S方法或SOR方法,直到相鄰2次迭代的差滿(mǎn)足要求,即:

    其中:ε是2次迭代之間壓強(qiáng)的允許誤差。根據(jù)方程(11)可知,此時(shí)意味著:

    其中:上標(biāo)為r+1的值即為G-S方法或SOR方法的解。圖3給出了G-S/SOR方法計(jì)算流程圖。雖然SOR方法收斂速度更快,但其各個(gè)網(wǎng)格的計(jì)算具有嚴(yán)格的順序性,無(wú)法實(shí)現(xiàn)并行計(jì)算,因此這里采用G-S算法對(duì)方程(10)進(jìn)行求解。

    圖3 G-S/SOR方法計(jì)算流程圖Fig.3 Flow chart of the G-S/SOR method

    1.4 串行程序的實(shí)現(xiàn)

    用C語(yǔ)言實(shí)現(xiàn)以上求解算法,計(jì)算流程圖如下:

    計(jì)算過(guò)程中所用到的主要函數(shù)及其功能為:

    (1)init函數(shù):初始化變量的值,為變量賦初值;

    (2)dyn函數(shù):動(dòng)力過(guò)程的計(jì)算,計(jì)算下一個(gè)時(shí)間步各變量的值;

    (3)store_surf_dp函數(shù):將海表面壓強(qiáng)變化保存到另一個(gè)數(shù)組;

    圖4 C語(yǔ)言程序計(jì)算流程圖Fig.4 Flow chart of the C language procedure code

    2 基于CUDA的并行程序的實(shí)現(xiàn)與優(yōu)化

    通過(guò)對(duì)各子程序進(jìn)行并發(fā)性(concurrency)分析可知,每個(gè)子程序均可以采用并行算法進(jìn)行計(jì)算加速,但由于init函數(shù)計(jì)算量較小,且僅調(diào)用一次,因此不需要采用GPU進(jìn)行加速;但對(duì)于動(dòng)力方程計(jì)算dyn的7個(gè)函數(shù),計(jì)算量均較大,因而可以將這些程序改為kernel函數(shù),用GPU進(jìn)行計(jì)算。程序的優(yōu)化可以分為以下5個(gè)部分:

    2.1 全局存儲(chǔ)訪(fǎng)問(wèn)的程序優(yōu)化

    全局存儲(chǔ)器(global memory)即普通的顯存,GPU與CPU都可以進(jìn)行讀寫(xiě)訪(fǎng)問(wèn),網(wǎng)格中的任意線(xiàn)程都可以對(duì)全局存儲(chǔ)器的任意位置進(jìn)行讀寫(xiě)。全局存儲(chǔ)器具有較高的訪(fǎng)問(wèn)延遲,比較容易成為性能瓶頸[3]。能否滿(mǎn)足合并訪(fǎng)問(wèn)在很多情況下會(huì)使CUDA程序的速度產(chǎn)生高達(dá)一個(gè)數(shù)量級(jí)的差異。CUDA中實(shí)際執(zhí)行單元是以warp為單位的,在Fermi架構(gòu)中,1個(gè)warp由32個(gè)線(xiàn)程組成,每次GPU調(diào)度1個(gè)warp里的32個(gè)線(xiàn)程執(zhí)行同一命令,同在1個(gè)warp的線(xiàn)程以不同數(shù)據(jù)資源執(zhí)行相同的指令。如果同一個(gè)warp中的線(xiàn)程對(duì)全局存儲(chǔ)的訪(fǎng)問(wèn)滿(mǎn)足合并訪(fǎng)問(wèn)條件,則可以達(dá)到對(duì)存儲(chǔ)帶寬的完全充分利用[5]。

    C語(yǔ)言的二維數(shù)組是行序存放的,使用CUDA訪(fǎng)問(wèn)global memory時(shí),要使訪(fǎng)問(wèn)效率最高,應(yīng)該從256字節(jié)對(duì)齊的地址(即addr=0,256,512…)開(kāi)始進(jìn)行連續(xù)訪(fǎng)問(wèn),因此,為提高內(nèi)存訪(fǎng)問(wèn)的效率,有2種方法:第1種是使用cudaMallocPitch函數(shù)進(jìn)行自動(dòng)對(duì)齊,該函數(shù)分配的內(nèi)存中,數(shù)組每一行中第1個(gè)元素開(kāi)始的地址都保證是對(duì)齊的。由于每行有多少個(gè)數(shù)據(jù)并不確定,即每行的元素不一定是256的倍數(shù),因此,為了保證數(shù)組每一行中第1個(gè)元素開(kāi)始的地址是對(duì)齊的,cudaMallocPitch函數(shù)在分配內(nèi)存時(shí),每行都會(huì)多分配出一些字節(jié),從而保證每行中的元素加上多分配的字節(jié)恰好是256的倍數(shù)(對(duì)齊);第2種方法是手動(dòng)對(duì)齊,即定義數(shù)組時(shí)保證是數(shù)組第二維是256的倍數(shù),在本項(xiàng)目中作者采用第二種方法,保證數(shù)組的第二維,即nx+2為256的倍數(shù),此時(shí)有效帶寬達(dá)到最大。

    2.2 使用共享存儲(chǔ)器進(jìn)行程序優(yōu)化

    共享存儲(chǔ)器(shared memory)位于GPU片內(nèi),是一塊可讀寫(xiě)高速存儲(chǔ)器,能被同一block中的所有線(xiàn)程訪(fǎng)問(wèn)。對(duì)共享存儲(chǔ)器變量的聲明通過(guò)__shared__來(lái)實(shí)現(xiàn)。在并行訪(fǎng)問(wèn)時(shí)為了能夠獲得高帶寬,其被劃分為能被同時(shí)訪(fǎng)問(wèn)且大小相等的存儲(chǔ)器模塊(bank)。不同的bank可以互不干擾的同時(shí)進(jìn)行工作,因此可以同時(shí)訪(fǎng)問(wèn)位于n個(gè)bank上的n個(gè)地址,有效帶寬為僅有一個(gè)bank時(shí)的n倍。但假如warp請(qǐng)求訪(fǎng)問(wèn)的很多個(gè)地址位于同一個(gè)bank中,此時(shí)bank在1個(gè)時(shí)刻不能響應(yīng)多個(gè)請(qǐng)求,因此這些請(qǐng)求就必須被串行地完成,即出現(xiàn)存儲(chǔ)器沖突,這時(shí)硬件會(huì)將造成存儲(chǔ)器沖突的訪(fǎng)存請(qǐng)求進(jìn)行劃分,分成幾次不存在沖突的獨(dú)立請(qǐng)求,同時(shí)有效帶寬會(huì)降低數(shù)倍,降低的倍數(shù)即拆分后得到的不存在沖突情況的請(qǐng)求個(gè)數(shù)請(qǐng)求[6]。

    計(jì)算核函數(shù)void calc_dp和calc_u_w時(shí)多次用到Δq,因此可以在程序中將數(shù)組Δq加載到共享存儲(chǔ)器,提高有效帶寬,但由于程序中用到的頻率并不是太高,有效帶寬提高不大,計(jì)算時(shí)間只是略有減少。

    2.3 使用常數(shù)存儲(chǔ)器進(jìn)行程序優(yōu)化

    常數(shù)存儲(chǔ)器(constant memory)是只讀的地址空間,其數(shù)據(jù)位于顯存,且擁有緩存機(jī)制,用以節(jié)約帶寬,加快訪(fǎng)問(wèn)速度[7]。常數(shù)存儲(chǔ)器與全局存儲(chǔ)器相比,在讀取或者存入數(shù)據(jù)時(shí)都具有很小的延遲、很高的速度。聲明常數(shù)存儲(chǔ)器通過(guò)__constant__來(lái)實(shí)現(xiàn)。

    在本項(xiàng)目中,除邊界處外,方程(11)中的ae,aw,at,ab在大多數(shù)網(wǎng)格中都是相同的,因此將其由數(shù)組改為常數(shù),然后使用常數(shù)存儲(chǔ)器進(jìn)行優(yōu)化。該方法有效減少了對(duì)全局存儲(chǔ)的訪(fǎng)問(wèn),大大提高了計(jì)算效率。

    2.4 使用多個(gè)流進(jìn)行程序優(yōu)化

    程序管理并發(fā)需要通過(guò)流(stream)來(lái)實(shí)現(xiàn),流是按順序執(zhí)行的一系列命令,但不同流之間則沒(méi)有這一順序性,在支持多個(gè)流并行的設(shè)備上是并行執(zhí)行的。這樣,可以使一個(gè)流的計(jì)算與另一個(gè)流的數(shù)據(jù)傳輸同時(shí)進(jìn)行,從而提高GPU中資源的利用率。

    流的定義方法是創(chuàng)建一個(gè)cudaStream_t對(duì)象,并在啟動(dòng)內(nèi)核和進(jìn)行memcpy時(shí)將該對(duì)象作為參數(shù)傳入,參數(shù)相同的屬于同一個(gè)流,參數(shù)不同的屬于不同的流。執(zhí)行參數(shù)沒(méi)有流參數(shù),或使用0作為流參數(shù)時(shí),則使用默認(rèn)的流。當(dāng)使用默認(rèn)的流進(jìn)行任何內(nèi)核啟動(dòng)、內(nèi)存設(shè)置或拷貝函數(shù)時(shí),只有在之前設(shè)備上所有的操作均已完成后才會(huì)開(kāi)始。

    在本項(xiàng)目中,設(shè)置參數(shù)isconverge作為判斷循環(huán)是否終止的條件,若滿(mǎn)足方程(16),則isconverge=1,迭代終止;相反,若不滿(mǎn)足方程(16),則isconverge=0,迭代過(guò)程繼續(xù)。由于每次迭代是否收斂的判斷需要在設(shè)備端進(jìn)行,而是否退出整個(gè)迭代循環(huán)的操作需要在主機(jī)端進(jìn)行,所以在每次迭代時(shí)都會(huì)把isconverge的值由設(shè)備端拷貝到主機(jī)端,這會(huì)花費(fèi)一定的時(shí)間。而isconverge的拷貝是可以與核函數(shù)執(zhí)行同時(shí)進(jìn)行的,因此,這里創(chuàng)建2個(gè)流,將核函數(shù)調(diào)用放在stream0中,而設(shè)備端到主機(jī)端的數(shù)據(jù)拷貝放在stream1中,從而使用計(jì)算時(shí)間掩蓋了主機(jī)設(shè)備通信時(shí)間,顯著提高了程序的效率。

    2.5 網(wǎng)格及線(xiàn)程塊的維度設(shè)計(jì)

    CUDA在執(zhí)行內(nèi)核函數(shù)時(shí),block會(huì)被分配到SM(流多處理器)中執(zhí)行。對(duì)于block的尺寸應(yīng)該優(yōu)先考慮,而對(duì)于grid的尺寸,應(yīng)該根據(jù)問(wèn)題的規(guī)模予以分配。

    block的尺寸與數(shù)據(jù)劃分緊密相關(guān)。較小的block使用資源較少,一般在1個(gè)SM中能夠有更多的active block;而block較大時(shí),意味著可以進(jìn)行通信的線(xiàn)程更多,此時(shí)指令流效率也更高。為了有效利用執(zhí)行單元,應(yīng)該讓每個(gè)block中的線(xiàn)程數(shù)量是32的整數(shù)倍,且最好為128~256之間,因此在本項(xiàng)目核函數(shù)中block的維度,均取為256。

    為了提高訪(fǎng)問(wèn)全局存儲(chǔ)器和共享存儲(chǔ)器的效率,blockDim.x在Telsa架構(gòu)中應(yīng)設(shè)計(jì)為16的整數(shù)倍,在Fermi架構(gòu)中,blockDim.x 應(yīng)為32的整數(shù)倍[8]。在block的尺寸及維度確定以后,就可以按照實(shí)際問(wèn)題的規(guī)模對(duì)grid中各個(gè)維度的block數(shù)量進(jìn)行確定。一般的,grid在某個(gè)維度上的block數(shù)量為:

    grid在某方向的block數(shù)量=(問(wèn)題在該方向上的尺寸-1)/每個(gè)block在該方向的尺寸+1。

    因?yàn)檎麛?shù)除法只會(huì)取結(jié)果的整數(shù)部分,這樣可能使問(wèn)題的邊界得不到處理,引起錯(cuò)誤,因此需要在后面加上1,以保證block數(shù)量滿(mǎn)足實(shí)際要求;若問(wèn)題在某方向的尺寸恰好為每個(gè)block在該方向尺寸的整數(shù)倍,此時(shí)后面+1反而會(huì)導(dǎo)致block數(shù)量多于實(shí)際要求的數(shù)量,因此需要在前面的括號(hào)內(nèi)減去1。

    3 模擬結(jié)果及性能分析

    3.1 測(cè)試平臺(tái)

    進(jìn)行測(cè)試時(shí),所有不必要程序全部關(guān)閉,測(cè)試的軟硬件環(huán)境配置如下:

    出自《圣經(jīng)》。上帝對(duì)人類(lèi)所犯下的罪孽非常憂(yōu)傷,決定用洪水消滅人類(lèi)。諾亞是個(gè)正直的人,上帝吩咐他造船避災(zāi)。經(jīng)過(guò)40個(gè)晝夜的洪水,除諾亞一家和部分動(dòng)物外,其他生物都被洪水吞沒(méi)。

    CPU AMD Phenom(tm)II x4 965 內(nèi)存:4G

    GPU NVIDIA Geforce GTX 560Ti 顯存:1G

    主板 技嘉GA-MA790GP-UD3H

    主板芯片組 AMD 790GX

    總線(xiàn)接口標(biāo)準(zhǔn) PCI-Expressx16 2.0

    操作系統(tǒng) Windows HPC Server 2008R2 64位

    3.2 模擬結(jié)果

    模式中水平網(wǎng)格大小為5m,垂向網(wǎng)格大小為2m,時(shí)間步長(zhǎng)為0.05s。圖5為模擬的各時(shí)刻的水位起伏,可以看到,隨著時(shí)間的推移,重力波從左逐漸向右傳播,重力波造成的水位起伏在海面處最大,隨著深度的增加逐漸減小,到海底處為0。

    下面對(duì)摸擬結(jié)果進(jìn)行誤差分析,保留計(jì)算結(jié)果中每個(gè)時(shí)刻、每個(gè)網(wǎng)格dp的值,僅對(duì)dp不為0的點(diǎn)進(jìn)行統(tǒng)計(jì)誤差分析,CUDA程序與CPU串行程序的相對(duì)誤差計(jì)算公式為:

    其中:dpcuda代表CUDA程序計(jì)算結(jié)果;dpc代表CPU串行程序的計(jì)算結(jié)果;M代表結(jié)果不為0的網(wǎng)格點(diǎn)總數(shù)。統(tǒng)計(jì)結(jié)果見(jiàn)表1。由表1可以看出,網(wǎng)格數(shù)較小時(shí),CUDA程序與CPU串行程序計(jì)算結(jié)果的相對(duì)誤差較小,隨著網(wǎng)格數(shù)的增大,相對(duì)誤差也隨之增大,并逐漸趨向穩(wěn)定;不管是采用單精度計(jì)算,還是采用雙精度計(jì)算,相對(duì)誤差均未超過(guò)2×10-3,這說(shuō)明模擬結(jié)果穩(wěn)定,可靠。

    表1 不同網(wǎng)格數(shù)CUDA程序模擬誤差Table 1 Simulation errors of CUDA code with different grids

    3.3 性能分析

    C語(yǔ)言的time庫(kù)函數(shù)中包含很多時(shí)間函數(shù),其中的clock函數(shù)可以對(duì)程序運(yùn)行時(shí)間進(jìn)行檢測(cè)。為盡可能減小誤差,對(duì)每個(gè)程序運(yùn)行10次,將平均值作為最終結(jié)果。單精度的計(jì)算時(shí)間對(duì)比及加速比見(jiàn)圖6和7。

    圖6 單精度計(jì)算時(shí)間對(duì)比Fig.6 Comparison of computation times of GPU code and CPU code with single precision

    圖7 單精度計(jì)算加速比Fig.7 Speedup of the GPU code relative to the serial CPU code with single precision

    圖8 雙精度計(jì)算時(shí)間對(duì)比Fig.8 Comparison of computation times of GPU code and CPU code with double precision

    由于網(wǎng)格點(diǎn)數(shù)較少時(shí)計(jì)算時(shí)間較少,所以將y軸采用對(duì)數(shù)坐標(biāo),從圖7中可以看出,當(dāng)網(wǎng)格點(diǎn)數(shù)較少(256×16)時(shí),GPU運(yùn)行速度與CPU運(yùn)行速度相當(dāng),加速比僅為1.82,這是由于數(shù)據(jù)傳入或傳出設(shè)備(GPU)、啟動(dòng)kernel等都需要浪費(fèi)一定的時(shí)間,當(dāng)網(wǎng)格數(shù)較少時(shí),這部分所占時(shí)間比重較大,因此總的計(jì)算時(shí)間相差不大;隨著網(wǎng)格數(shù)的增加,CPU計(jì)算時(shí)間均急劇上升,而GPU計(jì)算時(shí)間上升較慢,即此時(shí)加速比(CPU計(jì)算時(shí)間/GPU計(jì)算時(shí)間)也急劇增大,但當(dāng)網(wǎng)格數(shù)增大到2 048×128以后,加速比增速明顯放緩,當(dāng)網(wǎng)格數(shù)為8 192×512時(shí),加速比可以達(dá)到231.8倍。這說(shuō)明問(wèn)題規(guī)模越大,加速比也越大,越適合應(yīng)用CUDA程序進(jìn)行GPU并行加速計(jì)算,而問(wèn)題規(guī)模較小時(shí),加速比較小,使用CUDA程序進(jìn)行計(jì)算意義不大。

    當(dāng)采用雙精度計(jì)算時(shí),可以得到與采用單精度計(jì)算時(shí)大致相同的結(jié)論(見(jiàn)圖8和9),只是加速比比用單精度計(jì)算要小,網(wǎng)格數(shù)為8 192×512時(shí)的加速比為141.7??梢钥闯霰M管Fermi架構(gòu)相對(duì)Tesla架構(gòu)雙精度浮點(diǎn)處理能力已有很大的提升,但仍有很大的改進(jìn)余地。

    圖9 雙精度計(jì)算加速比Fig.9 Speedup of the GPU code relative to the serial CPU code with double precision

    4 結(jié)論

    自從CUDA在2007年首次出現(xiàn)以來(lái),已在醫(yī)學(xué)圖像、視頻播放、信號(hào)處理、生物計(jì)算等領(lǐng)域獲得了廣泛的應(yīng)用。這是因?yàn)镚PU相對(duì)CPU擁有更高帶寬的獨(dú)立顯存、適合處理并行計(jì)算任務(wù)且能夠大幅降低系統(tǒng)成本,從而為這些問(wèn)題提供了新的解決方案。

    在物理海洋研究中,數(shù)值模擬是一個(gè)非常重要的研究手段。而高分辨率海洋數(shù)值模擬的計(jì)算量是很大的,為了盡快取得模擬結(jié)果,需要借助高性能計(jì)算機(jī)來(lái)減少程序的運(yùn)行時(shí)間。而CPU的計(jì)算能力無(wú)法滿(mǎn)足海洋數(shù)值模擬對(duì)計(jì)算能力的要求。海洋數(shù)值模式具有非常高的計(jì)算密度,非常適合使用GPU來(lái)進(jìn)行加速計(jì)算,而目前大部分海洋數(shù)值模式的計(jì)算都基于CPU為核心,還沒(méi)有移植到GPU平臺(tái),因而無(wú)法利用GPU強(qiáng)大的計(jì)算能力。本項(xiàng)目使用CUDA實(shí)現(xiàn)了一個(gè)非靜壓海洋數(shù)值模式的GPU加速計(jì)算,在海洋數(shù)值模式的GPU加速方面進(jìn)行了初步的嘗試。與CPU串行程序相比,基于GPU的程序可以在不犧牲模擬精度的前提下(相對(duì)誤差不超過(guò)2×10-3)大大提高計(jì)算效率;單精度計(jì)算的加速比最高可以達(dá)到232,雙精度計(jì)算的加速比最高可以達(dá)到142。本項(xiàng)目為海洋數(shù)值模式向GPU平臺(tái)的移植積累了豐富的經(jīng)驗(yàn),計(jì)算速度的顯著提高展現(xiàn)了海洋數(shù)值模式應(yīng)用GPU進(jìn)行加速的廣闊前景。

    同時(shí)值得注意的是,CUDA中GPU的編程模型和CPU有很大的差別。數(shù)據(jù)的輸入輸出以及很多初始化工作需要由CPU完成,高密度的計(jì)算部分需要在GPU上完成,而CPU和GPU能訪(fǎng)問(wèn)的存儲(chǔ)空間是隔離的,這樣需要在主機(jī)端和設(shè)備端進(jìn)行數(shù)據(jù)的顯式傳輸,而且主機(jī)端代碼和設(shè)備端代碼有明顯的區(qū)分,因而將傳統(tǒng)的大量的海洋數(shù)值模式完全移植到GPU平臺(tái)是非常耗時(shí)的。除了直接使用CUDA外,還可以使用OpenACC或者一些GPU函數(shù)庫(kù)來(lái)實(shí)現(xiàn)GPU上的加速計(jì)算,但這些方式是否能夠既方便地將海洋數(shù)值模式移植到GPU平臺(tái),又充分發(fā)揮GPU的計(jì)算能力,還需要進(jìn)行實(shí)際的使用和檢驗(yàn)。

    [1] Folkert B,Rob H B,Henk A D.Accelerating a barotropic ocean model using a GPU[J].Ocean Modelling,2012,41:16-21.

    [2] 周 洪,樊曉椏,趙麗麗.基于CUDA的稀疏矩陣與矢量乘法的優(yōu)化[J].計(jì)算機(jī)測(cè)量與控制,2010,18(8):1906-1908.

    [3] 張 舒,褚艷利,趙開(kāi)勇,等.GPU高性能運(yùn)算之CUDA[M].北京:中國(guó)水利水電出版社,2009:14-81.

    [4] Jochen K.Advanced Ocean Modelling:Using Open-Source Software[M].Berlin:Germany Springer,2010:21-35.

    [5] CUDA C Best Practices Guide Version 4.1[EB/OL].[2012-01-11],[2012-12-03].http://nvidia.com.

    [6] NVIDIA CUDA C Programming Guide Version 4.2[EB/OL].[2012-04-16],[2012-12-03].http://nvidia.com.

    [7] Jason S,Edward K.CUDA by Example:An Introduction to General-Purpose GPU Programming[M].USA:Addison-Wesley,2010:37-57.

    [8] Tuning CUDA Applications for Fermi Version 1.5[EB/OL].[2011-05-03],[2012-12-03].http://nvidia.com.

    猜你喜歡
    程序方法
    學(xué)習(xí)方法
    試論我國(guó)未決羈押程序的立法完善
    失能的信仰——走向衰亡的民事訴訟程序
    “程序猿”的生活什么樣
    英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
    可能是方法不對(duì)
    用對(duì)方法才能瘦
    Coco薇(2016年2期)2016-03-22 02:42:52
    創(chuàng)衛(wèi)暗訪(fǎng)程序有待改進(jìn)
    四大方法 教你不再“坐以待病”!
    Coco薇(2015年1期)2015-08-13 02:47:34
    賺錢(qián)方法
    熟妇人妻不卡中文字幕| 又粗又硬又长又爽又黄的视频| 大陆偷拍与自拍| 免费少妇av软件| 一二三四在线观看免费中文在| 欧美日韩亚洲国产一区二区在线观看 | 黑人巨大精品欧美一区二区蜜桃| 亚洲精品,欧美精品| 老司机影院毛片| 国产又爽黄色视频| 欧美精品高潮呻吟av久久| 麻豆乱淫一区二区| 日韩免费高清中文字幕av| 亚洲av福利一区| 最黄视频免费看| 久久国产精品大桥未久av| 国产精品国产av在线观看| 性色av一级| 欧美日韩精品网址| 国产日韩一区二区三区精品不卡| 男人操女人黄网站| 免费女性裸体啪啪无遮挡网站| 国产又色又爽无遮挡免| 热re99久久精品国产66热6| 午夜日韩欧美国产| 国产男人的电影天堂91| 欧美亚洲 丝袜 人妻 在线| 日韩精品免费视频一区二区三区| 中文字幕制服av| 国产日韩欧美视频二区| 日日摸夜夜添夜夜爱| 久久久久视频综合| 婷婷色麻豆天堂久久| 性高湖久久久久久久久免费观看| 亚洲第一av免费看| 热re99久久精品国产66热6| 美国免费a级毛片| av国产精品久久久久影院| 国产成人啪精品午夜网站| 国产国语露脸激情在线看| 成人手机av| 国产av码专区亚洲av| 精品人妻熟女毛片av久久网站| 国产又爽黄色视频| 天天躁夜夜躁狠狠躁躁| 国产精品一二三区在线看| 国语对白做爰xxxⅹ性视频网站| 男女国产视频网站| 国产精品欧美亚洲77777| 各种免费的搞黄视频| 久久精品久久久久久噜噜老黄| 久久天躁狠狠躁夜夜2o2o | 日韩制服丝袜自拍偷拍| 丝袜在线中文字幕| 黄色 视频免费看| 麻豆精品久久久久久蜜桃| 最近手机中文字幕大全| 亚洲国产欧美网| 大片免费播放器 马上看| av电影中文网址| 午夜免费鲁丝| 久久热在线av| 亚洲欧洲日产国产| 在线观看三级黄色| 精品久久蜜臀av无| 2018国产大陆天天弄谢| 国产激情久久老熟女| 国产成人免费观看mmmm| 精品一区二区三区四区五区乱码 | 毛片一级片免费看久久久久| 电影成人av| 51午夜福利影视在线观看| av有码第一页| 国产在线免费精品| 欧美日韩亚洲综合一区二区三区_| 成人亚洲精品一区在线观看| 夫妻性生交免费视频一级片| 国产探花极品一区二区| 亚洲成人国产一区在线观看 | 老司机靠b影院| 久久久精品区二区三区| 久久久精品区二区三区| 三上悠亚av全集在线观看| 国产乱人偷精品视频| 在线观看人妻少妇| 黑人巨大精品欧美一区二区蜜桃| 高清在线视频一区二区三区| 新久久久久国产一级毛片| 亚洲国产成人一精品久久久| 18禁动态无遮挡网站| 18禁观看日本| 丝瓜视频免费看黄片| 免费黄网站久久成人精品| 亚洲伊人色综图| 巨乳人妻的诱惑在线观看| 在线观看免费视频网站a站| 亚洲av成人不卡在线观看播放网 | 欧美激情高清一区二区三区 | 综合色丁香网| 一二三四中文在线观看免费高清| 女人爽到高潮嗷嗷叫在线视频| 国产黄色视频一区二区在线观看| 乱人伦中国视频| 国产av一区二区精品久久| 国产男女超爽视频在线观看| 日本午夜av视频| 亚洲国产av影院在线观看| 亚洲欧洲国产日韩| 最新在线观看一区二区三区 | 看十八女毛片水多多多| 一级毛片黄色毛片免费观看视频| 亚洲一码二码三码区别大吗| 男的添女的下面高潮视频| av在线观看视频网站免费| 最黄视频免费看| 少妇的丰满在线观看| 亚洲av福利一区| 青春草亚洲视频在线观看| 久久青草综合色| netflix在线观看网站| 色婷婷久久久亚洲欧美| 麻豆乱淫一区二区| 精品亚洲成a人片在线观看| 飞空精品影院首页| 亚洲精品av麻豆狂野| 欧美人与性动交α欧美软件| 日韩一区二区三区影片| 国产xxxxx性猛交| 天天躁日日躁夜夜躁夜夜| 国产精品女同一区二区软件| 校园人妻丝袜中文字幕| 一级毛片我不卡| 97人妻天天添夜夜摸| 精品少妇一区二区三区视频日本电影 | 精品福利永久在线观看| av免费观看日本| 人人妻人人澡人人看| av片东京热男人的天堂| xxx大片免费视频| 久久热在线av| av国产久精品久网站免费入址| 9热在线视频观看99| 日韩中文字幕欧美一区二区 | 国产精品久久久久久精品电影小说| 日韩 亚洲 欧美在线| 国产欧美日韩一区二区三区在线| 丁香六月天网| 热99久久久久精品小说推荐| 看免费成人av毛片| 成人亚洲欧美一区二区av| 日韩av不卡免费在线播放| 99精品久久久久人妻精品| 精品午夜福利在线看| 久久午夜综合久久蜜桃| 国产成人免费无遮挡视频| 高清不卡的av网站| 美国免费a级毛片| 日韩一区二区三区影片| 狠狠精品人妻久久久久久综合| 女人高潮潮喷娇喘18禁视频| 80岁老熟妇乱子伦牲交| 人人妻人人澡人人爽人人夜夜| 亚洲av日韩在线播放| 欧美亚洲 丝袜 人妻 在线| 男男h啪啪无遮挡| 亚洲色图综合在线观看| 嫩草影院入口| 侵犯人妻中文字幕一二三四区| 久久久久久久国产电影| 在线观看一区二区三区激情| 日韩精品免费视频一区二区三区| 一区二区日韩欧美中文字幕| 久久av网站| 成人亚洲精品一区在线观看| 交换朋友夫妻互换小说| 街头女战士在线观看网站| 日韩制服骚丝袜av| 久久久国产一区二区| 精品卡一卡二卡四卡免费| 欧美国产精品va在线观看不卡| 亚洲av综合色区一区| 久久狼人影院| www.av在线官网国产| av.在线天堂| 国产精品成人在线| 日本vs欧美在线观看视频| 激情五月婷婷亚洲| netflix在线观看网站| 久久人人爽人人片av| 黑人巨大精品欧美一区二区蜜桃| 日韩 欧美 亚洲 中文字幕| 90打野战视频偷拍视频| 国产精品av久久久久免费| 汤姆久久久久久久影院中文字幕| 成人国产麻豆网| 免费av中文字幕在线| 亚洲精品av麻豆狂野| 久久久久网色| 久久久久久久大尺度免费视频| 精品亚洲乱码少妇综合久久| 日韩欧美一区视频在线观看| 亚洲av日韩精品久久久久久密 | 亚洲精品在线美女| 九九爱精品视频在线观看| 赤兔流量卡办理| 在线天堂中文资源库| 日韩人妻精品一区2区三区| 国产麻豆69| 丰满迷人的少妇在线观看| 午夜福利视频精品| 国产亚洲一区二区精品| tube8黄色片| 亚洲第一青青草原| 欧美日韩亚洲综合一区二区三区_| 亚洲一区二区三区欧美精品| 色婷婷av一区二区三区视频| 国产成人av激情在线播放| 国产精品久久久久成人av| 国产爽快片一区二区三区| 精品视频人人做人人爽| 在线天堂最新版资源| 男人操女人黄网站| 久久ye,这里只有精品| 2021少妇久久久久久久久久久| 韩国高清视频一区二区三区| 久久婷婷青草| 你懂的网址亚洲精品在线观看| 99热国产这里只有精品6| 青春草亚洲视频在线观看| 日韩欧美精品免费久久| 国产精品蜜桃在线观看| 成人午夜精彩视频在线观看| 人人妻人人澡人人爽人人夜夜| 中文欧美无线码| 亚洲精品国产色婷婷电影| 一本大道久久a久久精品| 久久精品国产a三级三级三级| 男女床上黄色一级片免费看| 美女大奶头黄色视频| 国产成人欧美在线观看 | 性高湖久久久久久久久免费观看| 国产精品国产三级专区第一集| 少妇的丰满在线观看| 午夜91福利影院| 自线自在国产av| 亚洲,欧美,日韩| 亚洲国产欧美一区二区综合| e午夜精品久久久久久久| 高清不卡的av网站| 老汉色∧v一级毛片| 亚洲视频免费观看视频| 亚洲精品aⅴ在线观看| 精品久久久久久电影网| 国产av国产精品国产| 妹子高潮喷水视频| 另类亚洲欧美激情| 男女下面插进去视频免费观看| 国产 一区精品| 大片电影免费在线观看免费| netflix在线观看网站| 另类精品久久| 91精品三级在线观看| 这个男人来自地球电影免费观看 | 久久久久久久大尺度免费视频| 久久亚洲国产成人精品v| 亚洲av国产av综合av卡| 熟女少妇亚洲综合色aaa.| 不卡av一区二区三区| 国产深夜福利视频在线观看| 亚洲av日韩精品久久久久久密 | 美女中出高潮动态图| 最近中文字幕2019免费版| 观看av在线不卡| 天堂8中文在线网| 天堂俺去俺来也www色官网| 精品视频人人做人人爽| 狂野欧美激情性bbbbbb| 九九爱精品视频在线观看| 18禁国产床啪视频网站| 黄频高清免费视频| 久久久国产一区二区| 男男h啪啪无遮挡| 麻豆乱淫一区二区| 国产精品国产av在线观看| 国产免费福利视频在线观看| 成人国语在线视频| 丝袜美足系列| 日韩制服丝袜自拍偷拍| 久久鲁丝午夜福利片| 婷婷色麻豆天堂久久| 日韩大片免费观看网站| 欧美日韩国产mv在线观看视频| 妹子高潮喷水视频| 不卡视频在线观看欧美| 大香蕉久久成人网| 欧美中文综合在线视频| 免费日韩欧美在线观看| 在线观看免费视频网站a站| 亚洲av欧美aⅴ国产| 777米奇影视久久| 国产精品熟女久久久久浪| 国产免费又黄又爽又色| 美女大奶头黄色视频| 久久久国产一区二区| 成年人午夜在线观看视频| 国产淫语在线视频| 久久人妻熟女aⅴ| 一本—道久久a久久精品蜜桃钙片| 精品国产国语对白av| 九九爱精品视频在线观看| 在线天堂中文资源库| 操出白浆在线播放| 王馨瑶露胸无遮挡在线观看| 黑人巨大精品欧美一区二区蜜桃| 黄色视频不卡| 欧美日韩福利视频一区二区| 一二三四中文在线观看免费高清| 嫩草影视91久久| 精品国产一区二区三区久久久樱花| 桃花免费在线播放| 9191精品国产免费久久| tube8黄色片| 亚洲精品aⅴ在线观看| 多毛熟女@视频| 麻豆精品久久久久久蜜桃| 国产精品久久久人人做人人爽| 天天躁夜夜躁狠狠久久av| 亚洲av电影在线观看一区二区三区| 国产亚洲一区二区精品| 亚洲精品美女久久久久99蜜臀 | 日韩av在线免费看完整版不卡| 国产亚洲午夜精品一区二区久久| 久久精品亚洲熟妇少妇任你| tube8黄色片| 久久久久久久久久久久大奶| 欧美另类一区| 日韩中文字幕欧美一区二区 | 宅男免费午夜| 欧美亚洲 丝袜 人妻 在线| 校园人妻丝袜中文字幕| 国产精品久久久久久久久免| 19禁男女啪啪无遮挡网站| 99久久精品国产亚洲精品| 天天躁日日躁夜夜躁夜夜| 亚洲精品久久成人aⅴ小说| 汤姆久久久久久久影院中文字幕| 黑人猛操日本美女一级片| 亚洲精品成人av观看孕妇| 午夜福利,免费看| av福利片在线| 午夜91福利影院| 久久精品熟女亚洲av麻豆精品| 老鸭窝网址在线观看| 中国国产av一级| 国产爽快片一区二区三区| 亚洲av电影在线进入| 国产成人欧美在线观看 | 午夜福利在线免费观看网站| 成人国语在线视频| 在线 av 中文字幕| 宅男免费午夜| 免费观看a级毛片全部| 99久久综合免费| 乱人伦中国视频| 中文字幕人妻丝袜制服| av网站在线播放免费| 欧美日韩av久久| 黄片小视频在线播放| 欧美日韩福利视频一区二区| 国产免费一区二区三区四区乱码| 乱人伦中国视频| 纵有疾风起免费观看全集完整版| 大片电影免费在线观看免费| 在线免费观看不下载黄p国产| 亚洲精品一二三| 亚洲美女黄色视频免费看| 日本av手机在线免费观看| 国产一级毛片在线| 免费观看人在逋| 夫妻午夜视频| 久久精品久久久久久久性| 老司机影院毛片| 2018国产大陆天天弄谢| 建设人人有责人人尽责人人享有的| 不卡视频在线观看欧美| 国产极品粉嫩免费观看在线| 丰满少妇做爰视频| 亚洲精品久久成人aⅴ小说| 十八禁人妻一区二区| 久久国产亚洲av麻豆专区| 国产xxxxx性猛交| 免费人妻精品一区二区三区视频| 久久99热这里只频精品6学生| 国产深夜福利视频在线观看| 天堂中文最新版在线下载| 亚洲欧洲精品一区二区精品久久久 | 七月丁香在线播放| 超碰成人久久| 亚洲第一青青草原| 亚洲国产av影院在线观看| 欧美精品亚洲一区二区| 十八禁网站网址无遮挡| 亚洲av国产av综合av卡| 激情五月婷婷亚洲| 飞空精品影院首页| 午夜福利在线免费观看网站| 99香蕉大伊视频| 又黄又粗又硬又大视频| 午夜福利,免费看| 亚洲成国产人片在线观看| 国产乱来视频区| 在线天堂中文资源库| 亚洲国产av新网站| 一级a爱视频在线免费观看| 成人午夜精彩视频在线观看| 国产精品无大码| 亚洲婷婷狠狠爱综合网| 欧美变态另类bdsm刘玥| 免费在线观看黄色视频的| 老司机亚洲免费影院| 老汉色av国产亚洲站长工具| 国产97色在线日韩免费| 激情视频va一区二区三区| 免费观看av网站的网址| 久久午夜综合久久蜜桃| 免费黄网站久久成人精品| 最近最新中文字幕大全免费视频 | 日本午夜av视频| 2021少妇久久久久久久久久久| 蜜桃在线观看..| 久久久精品国产亚洲av高清涩受| 国产老妇伦熟女老妇高清| 国产毛片在线视频| 一本—道久久a久久精品蜜桃钙片| 最近的中文字幕免费完整| 夫妻性生交免费视频一级片| 久久久久精品国产欧美久久久 | 日本黄色日本黄色录像| 一区二区av电影网| 老司机亚洲免费影院| 久久鲁丝午夜福利片| 777米奇影视久久| 日韩制服丝袜自拍偷拍| 成人毛片60女人毛片免费| 久久久久久久精品精品| 久久国产精品男人的天堂亚洲| 婷婷色麻豆天堂久久| 熟妇人妻不卡中文字幕| 国产精品麻豆人妻色哟哟久久| 18在线观看网站| 亚洲,一卡二卡三卡| 在线观看免费视频网站a站| 亚洲美女视频黄频| 婷婷成人精品国产| 精品福利永久在线观看| netflix在线观看网站| 亚洲成人国产一区在线观看 | 日韩不卡一区二区三区视频在线| 老司机在亚洲福利影院| 亚洲av电影在线进入| 两个人看的免费小视频| 亚洲第一av免费看| 国产国语露脸激情在线看| 秋霞在线观看毛片| 国产熟女欧美一区二区| 校园人妻丝袜中文字幕| 久久精品aⅴ一区二区三区四区| 少妇人妻久久综合中文| 亚洲成人一二三区av| 成人毛片60女人毛片免费| 日日摸夜夜添夜夜爱| av视频免费观看在线观看| 操美女的视频在线观看| 一级黄片播放器| 狠狠婷婷综合久久久久久88av| 午夜免费鲁丝| 考比视频在线观看| 中文字幕色久视频| 国产深夜福利视频在线观看| 91aial.com中文字幕在线观看| 在线 av 中文字幕| 久久国产精品大桥未久av| 看免费av毛片| 久热这里只有精品99| 一本—道久久a久久精品蜜桃钙片| 国产精品久久久久久精品古装| 永久免费av网站大全| 中文字幕高清在线视频| 高清视频免费观看一区二区| 黑人猛操日本美女一级片| 97在线人人人人妻| 别揉我奶头~嗯~啊~动态视频 | 国产伦人伦偷精品视频| 美女福利国产在线| 一本一本久久a久久精品综合妖精| 成人三级做爰电影| 伊人久久国产一区二区| 69精品国产乱码久久久| 国产精品一区二区精品视频观看| 人体艺术视频欧美日本| 黑人欧美特级aaaaaa片| 人妻 亚洲 视频| 亚洲一级一片aⅴ在线观看| 亚洲国产成人一精品久久久| 欧美亚洲 丝袜 人妻 在线| 久久久久精品性色| 黄频高清免费视频| 美女福利国产在线| 欧美日本中文国产一区发布| 久久ye,这里只有精品| 日韩 欧美 亚洲 中文字幕| 精品一区二区三区四区五区乱码 | 成人18禁高潮啪啪吃奶动态图| 一区二区三区激情视频| 亚洲精品美女久久av网站| 男人操女人黄网站| 亚洲 欧美一区二区三区| 飞空精品影院首页| 巨乳人妻的诱惑在线观看| 亚洲,欧美精品.| 中文字幕另类日韩欧美亚洲嫩草| 国产精品偷伦视频观看了| 好男人视频免费观看在线| 99re6热这里在线精品视频| 欧美国产精品一级二级三级| 一个人免费看片子| 亚洲美女视频黄频| 国产欧美日韩一区二区三区在线| 日韩一本色道免费dvd| 久久精品亚洲熟妇少妇任你| 午夜福利在线免费观看网站| 黄色怎么调成土黄色| 亚洲在久久综合| 黄片播放在线免费| 久久天堂一区二区三区四区| 亚洲欧洲日产国产| 一区福利在线观看| xxx大片免费视频| 搡老岳熟女国产| 成人国产av品久久久| 黑人巨大精品欧美一区二区蜜桃| 国产精品成人在线| 一边摸一边做爽爽视频免费| 日韩av在线免费看完整版不卡| 国产老妇伦熟女老妇高清| 熟女av电影| 久久午夜综合久久蜜桃| 少妇被粗大的猛进出69影院| 国产激情久久老熟女| 少妇精品久久久久久久| 色吧在线观看| 午夜福利视频在线观看免费| 亚洲免费av在线视频| 久久久国产欧美日韩av| 一本色道久久久久久精品综合| 在线亚洲精品国产二区图片欧美| 老鸭窝网址在线观看| 最近2019中文字幕mv第一页| 色精品久久人妻99蜜桃| 亚洲欧美一区二区三区国产| 国产成人精品久久久久久| 国产精品熟女久久久久浪| 国产免费福利视频在线观看| 久久精品亚洲熟妇少妇任你| 男女免费视频国产| 久久久久网色| 交换朋友夫妻互换小说| 热99国产精品久久久久久7| 精品国产露脸久久av麻豆| 国语对白做爰xxxⅹ性视频网站| 夫妻性生交免费视频一级片| 美国免费a级毛片| 大陆偷拍与自拍| 中文字幕精品免费在线观看视频| 看十八女毛片水多多多| 午夜福利视频精品| 免费高清在线观看日韩| netflix在线观看网站| 久久久久久久久久久免费av| 少妇猛男粗大的猛烈进出视频| 国产在线视频一区二区| 中文字幕av电影在线播放| 黄色视频不卡| 中文字幕高清在线视频| 最近中文字幕2019免费版| 99久久99久久久精品蜜桃| 99国产综合亚洲精品| 亚洲自偷自拍图片 自拍| 久久精品国产亚洲av高清一级| 国产老妇伦熟女老妇高清| 亚洲一码二码三码区别大吗| 国产精品嫩草影院av在线观看| 免费女性裸体啪啪无遮挡网站| 国产精品嫩草影院av在线观看| 男女之事视频高清在线观看 | 精品久久蜜臀av无| 日韩视频在线欧美| 丰满乱子伦码专区| 一本一本久久a久久精品综合妖精| 观看美女的网站| 九草在线视频观看| 亚洲国产欧美网| 天堂中文最新版在线下载| 五月天丁香电影| 母亲3免费完整高清在线观看| 免费日韩欧美在线观看| 男的添女的下面高潮视频| 国产精品嫩草影院av在线观看| 永久免费av网站大全| 亚洲五月色婷婷综合| 亚洲一区二区三区欧美精品| 免费看av在线观看网站| 亚洲欧美成人综合另类久久久| 日日啪夜夜爽| 少妇的丰满在线观看|