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

    基于圖形處理器的STM研究與實(shí)現(xiàn)

    2013-11-30 07:57:16胡大裟蒲亦非
    關(guān)鍵詞:檢測(cè)

    梁 飛,胡大裟,蒲亦非

    (四川大學(xué) 計(jì)算機(jī)學(xué)院,成都 610065)

    胡大裟(1976- ),男(漢族),四川瀘州人,講師,博士,研究方向:并行計(jì)算、編程語(yǔ)言、軟件工程。

    基于圖形處理器的STM研究與實(shí)現(xiàn)

    梁 飛,胡大裟,蒲亦非

    (四川大學(xué) 計(jì)算機(jī)學(xué)院,成都 610065)

    多核處理器和基于圖形處理器通用計(jì)算(GPGPU)的發(fā)展,提出了簡(jiǎn)化并行編程的需求,而軟件事務(wù)存儲(chǔ)(STM)通過(guò)標(biāo)記代碼段并保證其執(zhí)行的原子性為簡(jiǎn)化并行編程提供了很好的選擇。為降低圖形處理器(GPU)并行編程的復(fù)雜性,在分析GPU編程中存在的同步問(wèn)題,結(jié)合統(tǒng)一計(jì)算設(shè)備架構(gòu)(CUDA)的特點(diǎn)以及影響STM重要因素的基礎(chǔ)上,提出在編程環(huán)境中引入STM模型的編程方法,測(cè)試結(jié)果表明相對(duì)基于CPU的計(jì)算依然具有良好的加速比。

    圖形處理器;軟件事務(wù)存儲(chǔ);通用計(jì)算;統(tǒng)一計(jì)算設(shè)備架構(gòu)

    圖形處理器(Graphics Processing Unit,GPU)具有高帶寬、強(qiáng)大的浮點(diǎn)處理能力,適合高密度的科學(xué)計(jì)算[1]。隨著GPU可編程性的不斷提高,利用GPU進(jìn)行通用計(jì)算的研究越來(lái)越多,但目前對(duì)GPGPU(General-purpose computing on graphics processing units)的研究大多集中在GPU應(yīng)用程序的開(kāi)發(fā)與優(yōu)化上,對(duì)GPU編程、調(diào)試、容錯(cuò)方面的研究較少,基于GPU編程面臨著開(kāi)發(fā)移植困難、維護(hù)成本高等問(wèn)題,如何開(kāi)發(fā)并行可擴(kuò)展應(yīng)用以充分利用GPU的計(jì)算能力成為一大挑戰(zhàn)[2]。這其中的一個(gè)關(guān)鍵問(wèn)題在于如何簡(jiǎn)化多核平臺(tái)下的開(kāi)發(fā)模型,如何降低復(fù)雜的同步邏輯。

    近年來(lái),事務(wù)存儲(chǔ)[3](Transactional Memory, TM)在多核并行程序開(kāi)發(fā)方面的研究越來(lái)越多,它相對(duì)于鎖機(jī)制的優(yōu)勢(shì)得到更多認(rèn)識(shí)。TM允許開(kāi)發(fā)人員只需標(biāo)記并行代碼段而不用關(guān)注同步邏輯,代碼段并行執(zhí)行的原子性由TM來(lái)保證。本文在GPU編程模型中引入TM以降低并行應(yīng)用開(kāi)發(fā)中的同步邏輯復(fù)雜性,提高基于GPU的通用計(jì)算的可編程性。

    1 研究現(xiàn)狀

    最初針對(duì)GPU的編程局限于頂點(diǎn)處理器(vertex processor)和像素處理器(fragment processor)提供的有限功能,必須通過(guò)圖形學(xué)的API進(jìn)行調(diào)用。隨后出現(xiàn)了完全可編程像素處理器,并提供偽匯編語(yǔ)言[4]。隨著GPU硬件單元可編程性的不斷提高以及DirectX 9的推出,出現(xiàn)了類C的高級(jí)繪制語(yǔ)言(High-level shading language, HLSL[5])、NVIDIA Cg[6]等,但是依然需要開(kāi)發(fā)人員將計(jì)算任務(wù)映射為對(duì)紋理的渲染過(guò)程,然后通過(guò)編程調(diào)用圖形學(xué)API執(zhí)行計(jì)算。這些編程方式不僅要求開(kāi)發(fā)人員熟悉需要實(shí)現(xiàn)的計(jì)算和并行算法,而且要對(duì)圖形學(xué)硬件和編程接口有深入的了解,難以在普通開(kāi)發(fā)人員中推廣。

    為解決繪制語(yǔ)言存在的問(wèn)題,使開(kāi)發(fā)人員在利用GPU計(jì)算的同時(shí)不必考慮GPU的圖形結(jié)構(gòu),研究人員將GPU的結(jié)構(gòu)納入流處理機(jī)的模型,進(jìn)而實(shí)現(xiàn)以高級(jí)語(yǔ)言編程。BrookGPU[7]是較早致力于將GPU抽象為流處理器,進(jìn)而隱藏圖形學(xué)API實(shí)現(xiàn)細(xì)節(jié),推動(dòng)基于GPU通用計(jì)算的科研項(xiàng)目。BrookGPU通過(guò)流數(shù)據(jù)類型定義數(shù)據(jù)流,開(kāi)發(fā)人員只關(guān)注計(jì)算數(shù)據(jù)及其上的操作,由BrookGPU編譯器完成從源程序到Cg的編譯工作,然后由GPU廠家提供的Shader程序翻譯為匯編代碼,從而使開(kāi)發(fā)人員從圖形API中脫離出來(lái)。隨后NVIDIA公司借鑒BrookGPU項(xiàng)目理念推出了GPU編程平臺(tái)CUDA(Compute Unified Device Architecture)[8],NVIDIA CUDA采用類C語(yǔ)言進(jìn)行開(kāi)發(fā),提供了更高層次的抽象接口,利用CUDA進(jìn)行通用計(jì)算開(kāi)發(fā)完全不需要借助圖形學(xué)API。同時(shí)支持CUDA的GPU采用了統(tǒng)一處理架構(gòu),并引入片內(nèi)共享存儲(chǔ)器,支持隨機(jī)寫入和線程塊內(nèi)通信,更有利于開(kāi)發(fā)基于GPU的通用計(jì)算應(yīng)用。

    為了運(yùn)用CUDA進(jìn)行計(jì)算仍然需要分配管理存儲(chǔ)器、建立啟動(dòng)核運(yùn)算,研究人員設(shè)計(jì)了更抽象的編程語(yǔ)言如PyCUDA[9]、JCUDA[10]等。在PyCUDA中,開(kāi)發(fā)人員使用Python編程,然后由編譯器負(fù)責(zé)生成在GPU上執(zhí)行的CUDA代碼。而JCUDA利用JNI技術(shù)建立Java與CUDA的接口,開(kāi)發(fā)人員可以在Java程序中嵌入CUDA代碼實(shí)現(xiàn)應(yīng)用加速。這些建立在CUDA之上的編程語(yǔ)言,降低了基于CUDA編程的復(fù)雜性,但是并沒(méi)有考慮解決CUDA計(jì)算中的數(shù)據(jù)同步問(wèn)題。

    CUDA能夠勝任高度并行的大數(shù)據(jù)量計(jì)算任務(wù),在線程同步通信方面提供了原子操作和內(nèi)存柵欄,以及線程塊內(nèi)的共享內(nèi)存[11]。在CUDA的編程模型中,線程塊內(nèi)的線程可以使用共享內(nèi)存通信,并由synchronize實(shí)現(xiàn)內(nèi)存柵欄同步,而線程塊之間并不能進(jìn)行通信,只能在全局內(nèi)存中使用原子操作,而對(duì)全局內(nèi)存的同步操作將嚴(yán)重影響計(jì)算性能[12]。在線程塊內(nèi),基于線程束(wrap)的執(zhí)行機(jī)制也增加了同步的復(fù)雜性,線程束內(nèi)的所有線程執(zhí)行同一個(gè)指令,如果某個(gè)線程因?yàn)橥絾?wèn)題產(chǎn)生等待,就會(huì)導(dǎo)致整個(gè)線程塊陷入忙等狀態(tài)。而基于流的計(jì)算模式在實(shí)現(xiàn)復(fù)雜計(jì)算時(shí)需要多個(gè)流執(zhí)行多個(gè)核(kernel)函數(shù),以及核函數(shù)的并行,更是給數(shù)據(jù)同步帶來(lái)了難以想象的復(fù)雜性[13]。

    2 系統(tǒng)模型及設(shè)計(jì)

    為了降低并行編程中同步邏輯的復(fù)雜性,本文在GPU編程模型中引入軟件事務(wù)存儲(chǔ)[14](Software Transactional Memory, STM),由STM來(lái)保證事務(wù)執(zhí)行的原子性,從而使開(kāi)發(fā)人員從復(fù)雜的同步邏輯中解脫出來(lái)。而CUDA已經(jīng)在各行業(yè)應(yīng)用中表現(xiàn)出優(yōu)異的加速效果,同時(shí)兼容CUDA并且計(jì)算能力2.0以上的GPU已經(jīng)可以支持浮點(diǎn)數(shù)的原子操作,比如CAS(Compare And Swap)操作,可以用來(lái)實(shí)現(xiàn)鎖互斥以及無(wú)鎖(lock free)的數(shù)據(jù)結(jié)構(gòu)[15],進(jìn)而為在CUDA平臺(tái)上實(shí)現(xiàn)STM提供了基本保障,為此本文選擇在CUDA平臺(tái)基礎(chǔ)上實(shí)現(xiàn)STM。

    2.1 CUDA平臺(tái)計(jì)算特點(diǎn)

    CUDA是目前基于GPU通用計(jì)算平臺(tái)的杰出代表,由于GPU強(qiáng)大的并行計(jì)算和浮點(diǎn)計(jì)算能力,使得利用CUDA解決以往的復(fù)雜任務(wù)成為可能。從任務(wù)劃分編程來(lái)看,執(zhí)行計(jì)算任務(wù)的內(nèi)核(kernel)被組織成線程塊(block),線程塊又被組成網(wǎng)格(grid)。同一個(gè)內(nèi)核程序可以并行運(yùn)行在網(wǎng)格中所有線程塊中的線程上,線程塊負(fù)責(zé)執(zhí)行粗粒度的并行任務(wù),而線程塊內(nèi)的線程可以通過(guò)線程塊內(nèi)的共享內(nèi)存及同步操作協(xié)作完成細(xì)粒度的任務(wù)。從硬件架構(gòu)上來(lái)看,兼容CUDA的GPU采用統(tǒng)一的計(jì)算架構(gòu),最基本的處理單元是流處理器(Streaming Processor, SP),多個(gè)SP和寄存器、共享內(nèi)存等組成流多核處理器(Streaming Multiprocessor, SM),幾個(gè)SM又組成計(jì)算陣列,進(jìn)而從硬件上支持并行任務(wù)的劃分及調(diào)度。從CUDA程序單指令多線程的執(zhí)行模式來(lái)看,每個(gè)SP對(duì)應(yīng)一個(gè)線程,每個(gè)SM對(duì)應(yīng)一個(gè)或多個(gè)線程塊,但SM執(zhí)行計(jì)算時(shí)卻是以wrap為單位而非線程塊,因?yàn)榫€程塊中分配的線程數(shù)可能遠(yuǎn)遠(yuǎn)高于SM中包含的SP數(shù)目,通常wrap由ID連續(xù)的32個(gè)線程組成,執(zhí)行指令時(shí)由調(diào)度器選擇一個(gè)準(zhǔn)備好的wrap執(zhí)行,如果某指令需要等待,SM會(huì)自動(dòng)切換到下一個(gè)wrap塊來(lái)執(zhí)行,以此隱藏線程的延遲和等待達(dá)到大量并行的目的。

    無(wú)論從GPU的硬件架構(gòu)還是CUDA程序的執(zhí)行模式來(lái)看,都是為了達(dá)到大量并行計(jì)算的目的,因而GPU通常具有相對(duì)CPU更大的內(nèi)存帶寬,更多的計(jì)算執(zhí)行單元,這是GPU具備大量并行能力及強(qiáng)大的浮點(diǎn)計(jì)算能力的根本,但也同時(shí)帶來(lái)CUDA計(jì)算的缺點(diǎn),比如對(duì)并行程度不高、具有高度分支的程序運(yùn)行效率較低,即便是對(duì)線程塊內(nèi)共享內(nèi)存的操作,也有可能因?yàn)樵L問(wèn)位置沖突而造成性能的嚴(yán)重下降,同時(shí)只提供了線程同步功能,并不能完全滿足開(kāi)發(fā)人員對(duì)并行編程數(shù)據(jù)同步的需要。

    2.2 CUDA STM的策略選擇

    從開(kāi)發(fā)人員的角度來(lái)看,STM需要提供以下幾個(gè)基本操作?!癰egin”用來(lái)標(biāo)記一個(gè)事務(wù)的開(kāi)始,“read”從全局內(nèi)存中讀取數(shù)據(jù),“write”記錄更新的數(shù)據(jù),最后如果事務(wù)沒(méi)有發(fā)生沖突“commit”操作負(fù)責(zé)將更新的數(shù)據(jù)寫回,否則事務(wù)中斷并伺機(jī)重新執(zhí)行。然而具體到如何實(shí)現(xiàn)這些操作,就必須根據(jù)STM的使用環(huán)境選擇合適的實(shí)現(xiàn)策略,以下將結(jié)合CUDA平臺(tái)架構(gòu)及高并行高密度計(jì)算環(huán)境的特點(diǎn),從演進(jìn)性、沖突檢測(cè)粒度、沖突檢測(cè)時(shí)間、直寫/回寫方面分析CUDA環(huán)境下STM的設(shè)計(jì)需要關(guān)注的因素。

    2.2.1 演進(jìn)性

    并發(fā)事務(wù)的演進(jìn)性(Progress Guarantee)分為2種:阻塞和非阻塞[14]。在阻塞方式下,事務(wù)首先要獲取共享對(duì)象的訪問(wèn)權(quán)才能訪問(wèn)共享對(duì)象,而非阻塞方式下檢測(cè)到?jīng)_突的事務(wù)必須有一方放棄。非阻塞方式又分為3種:最嚴(yán)格的是無(wú)等待(wait-freedom)[15-16],它要求一個(gè)事務(wù)必須在有限的步驟中完成,通常用于實(shí)時(shí)系統(tǒng)中,實(shí)現(xiàn)較為復(fù)雜而且性能偏低;較弱的是無(wú)鎖(lock-freedom)[17],在此條件下至少有一個(gè)事務(wù)必須在有限的步驟中完成,采用無(wú)鎖方式系統(tǒng)不會(huì)產(chǎn)生死鎖但是有可能出現(xiàn)饑餓現(xiàn)象;要求最弱的是無(wú)干擾[18](obstruction-freedom),無(wú)干擾環(huán)境下要求沒(méi)有發(fā)生沖突的事務(wù)能夠執(zhí)行成功,而產(chǎn)生沖突的事務(wù)可能會(huì)彼此放棄而導(dǎo)致饑餓,通常依賴沖突管理器來(lái)決定哪個(gè)沖突事務(wù)需要回退。而阻塞方式是基于鎖的實(shí)現(xiàn),不提供任務(wù)演進(jìn)保證。

    鑒于鎖機(jī)制產(chǎn)生的種種問(wèn)題,目前大多數(shù)STM實(shí)現(xiàn)方式是非阻塞的。在3種非阻塞方式中,文獻(xiàn)[19-20]證實(shí)基于無(wú)干擾的實(shí)現(xiàn)方式相對(duì)無(wú)鎖更簡(jiǎn)單,同時(shí)能夠提供更好的并發(fā)性能。而CUDA平臺(tái)的定位是高度并行計(jì)算,對(duì)復(fù)雜的邏輯控制要求較低,因而在CUDA平臺(tái)上構(gòu)建STM時(shí)選擇無(wú)干擾的實(shí)現(xiàn)方式。

    2.2.2 沖突檢測(cè)粒度

    STM的沖突檢測(cè)粒度分為對(duì)象[20]和字2種?;谧值臋z測(cè)粒度在事務(wù)更新內(nèi)存單元前,首先要通過(guò)原子操作進(jìn)行聲明,告知其他事務(wù),成功獲取更新內(nèi)存的所有權(quán)后才能進(jìn)行內(nèi)存更新操作,完成后再以原子操作消除聲明,如果獲取所有權(quán)失敗,當(dāng)前事務(wù)就要中斷并消除聲明。而基于對(duì)象的檢測(cè)粒度要求事務(wù)在更新對(duì)象前,由事務(wù)生成對(duì)象的副本,事務(wù)的更新操作在副本上進(jìn)行,在提交階段校驗(yàn)對(duì)象及副本的一致性,獲取對(duì)象的訪問(wèn)權(quán),然后將副本拷貝到對(duì)象位置。

    結(jié)合CUDA的計(jì)算環(huán)境,對(duì)整數(shù)、浮點(diǎn)數(shù)都已提供原子操作[12],基于字的實(shí)現(xiàn)在更新數(shù)據(jù)前后還要求原子聲明及消除聲明,更增添復(fù)雜性,另外基于GPU的通用計(jì)算中采用C++、Java進(jìn)行編程已是大勢(shì)所趨,應(yīng)用開(kāi)發(fā)中越來(lái)越多的采用動(dòng)態(tài)分配和使用的數(shù)據(jù)結(jié)構(gòu),因此在CUDA平臺(tái)上構(gòu)建STM時(shí)采用基于對(duì)象的實(shí)現(xiàn)方式。

    2.2.3 沖突檢測(cè)時(shí)間

    STM的沖突檢測(cè)時(shí)間可分為早檢測(cè)和晚檢測(cè)[20]。早檢測(cè)策略在事務(wù)中產(chǎn)生讀寫操作時(shí)都會(huì)檢測(cè)是否有沖突存在,以此來(lái)保證共享對(duì)象的一致性。晚檢測(cè)是在事務(wù)提交階段才檢測(cè)是否存在沖突事務(wù),相對(duì)而言,早檢測(cè)可以更及時(shí)地發(fā)現(xiàn)沖突,進(jìn)而避免后續(xù)的不必要計(jì)算,且實(shí)現(xiàn)簡(jiǎn)單,但其開(kāi)銷明顯大于晚檢測(cè)??紤]到運(yùn)用CUDA加速應(yīng)用的初衷,在引入STM保證事務(wù)執(zhí)行特性的基礎(chǔ)上,盡可能的降低對(duì)CUDA性能的影響,同時(shí)在采用基于對(duì)象的檢測(cè)粒度的前提下,采用晚檢測(cè)策略更為方便。

    2.2.4 直寫和回寫

    在事務(wù)提交之前通常不知道事務(wù)能否成功提交,為保證事務(wù)執(zhí)行的原子性和一致性,一旦事務(wù)提交失敗就需要撤消事務(wù)做出的更改。我們借鑒數(shù)據(jù)庫(kù)中常采取多版本并發(fā)控制策略(Multi-Version Concurrency Control, MVCC),在事務(wù)中記錄所有的更改,即第一次讀取對(duì)象時(shí),就在事務(wù)中創(chuàng)建一個(gè)對(duì)象的副本,隨后的寫操作都在本地副本上進(jìn)行。到事務(wù)提交階段獲取所需的鎖,再將本地副本寫回到全局內(nèi)存,這種方式稱為回寫。另一種更積極的并發(fā)控制策略(Optimistic Concurrency Control, OCC[21])是直接操作共享內(nèi)存寫入更新對(duì)象,如果沒(méi)有沖突產(chǎn)生這種策略效率更高,但也有可能被中斷,同時(shí)需要撤銷日志來(lái)保存最初的對(duì)象。為了保證在引入STM后不帶來(lái)太多的額外開(kāi)銷,以及前面采用基于對(duì)象的實(shí)現(xiàn)方式,構(gòu)建CUDA平臺(tái)上的STM采用回寫方式。

    3 實(shí)現(xiàn)

    綜合以上構(gòu)建STM的設(shè)計(jì)策略并結(jié)合CUDA計(jì)算平臺(tái)的特點(diǎn),首先確定STM采用基于無(wú)干擾的實(shí)現(xiàn)方式,相對(duì)于無(wú)等待、無(wú)鎖方式,實(shí)現(xiàn)方式更簡(jiǎn)單同時(shí)提供更好的并發(fā)性能,相對(duì)于阻塞型的實(shí)現(xiàn)方式,可以有效避免鎖機(jī)制帶來(lái)的死鎖等問(wèn)題。同時(shí)考慮到CUDA對(duì)整型、浮點(diǎn)型已提供原子操作,將STM的檢測(cè)粒度定為對(duì)象級(jí),有利于在計(jì)算中采用更復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。此外結(jié)合CUDA環(huán)境下計(jì)算高度并行沖突較低的特點(diǎn),以及直寫方式可能帶來(lái)的可見(jiàn)性問(wèn)題,基于CUDA的STM實(shí)現(xiàn)采用回寫方式,晚檢測(cè)策略。以下詳細(xì)解析基于CUDA的STM如何實(shí)現(xiàn)4個(gè)基本操作。

    圖1 STM事務(wù)描述符

    圖2 對(duì)象訪問(wèn)互斥鎖

    3.1 Begin

    在CUDA環(huán)境中,線程塊作為任務(wù)粗粒度劃分及并行計(jì)算調(diào)度的基本單位,也只有在線程塊內(nèi)才能進(jìn)行線程間的通信同步[12],因此筆者選擇在線程塊內(nèi)初始化事務(wù)的執(zhí)行環(huán)境,以及事務(wù)的相關(guān)描述配置信息。通過(guò)在線程塊內(nèi)構(gòu)建事務(wù)描述符來(lái)記錄事務(wù)讀寫對(duì)象的位置指針、版本號(hào)等信息。圖1展示了事務(wù)描述符的結(jié)構(gòu),version是用于MVCC的版本號(hào),global指針用于指向全局內(nèi)存中要讀寫的數(shù)據(jù),local指向事務(wù)創(chuàng)建的數(shù)據(jù)副本,布爾型變量update用以指示線程塊內(nèi)的副本是否被更新,如果數(shù)據(jù)副本沒(méi)有更新,在提交階段就不必拷貝回全局內(nèi)存。

    3.2 Read

    Read操作首先檢測(cè)要讀取的數(shù)據(jù)是否加有排它鎖,以判斷當(dāng)前是否有其他事務(wù)正在更新數(shù)據(jù)。若沒(méi)有則從全局內(nèi)存中讀取對(duì)象并在事務(wù)中創(chuàng)建對(duì)象副本,同時(shí)記錄當(dāng)前對(duì)象的版本號(hào),并更新事務(wù)描述符中的version字段,將global和local指針?lè)謩e指向全局內(nèi)存中對(duì)象及本地的對(duì)象副本。Read操作將返回指向本地副本的local指針,以便后續(xù)進(jìn)行讀寫操作。用于實(shí)現(xiàn)對(duì)象訪問(wèn)互斥鎖的結(jié)構(gòu)如圖2所示,version代表版本號(hào),lock代表commit階段獲取對(duì)象寫權(quán)限的鎖,利用CUDA提供的CAS操作可以方便的實(shí)現(xiàn)排它鎖。

    3.3 Write

    Write操作是在副本上進(jìn)行的更新,因?yàn)閿?shù)據(jù)副本屬于線程私有,所以此階段無(wú)需加鎖。調(diào)用Write操作首先通過(guò)傳入指針參數(shù)查找到要寫入數(shù)據(jù)的位置,然后將傳入的數(shù)據(jù)參數(shù)寫入到副本位置上,同時(shí)將事務(wù)描述符中的布爾變量update設(shè)置為true,以便在Commit階段判斷是否需要將副本寫回到全局內(nèi)存。

    3.4 Commit

    在Commit階段首先嘗試獲取全局對(duì)象的互斥鎖,成功獲取鎖后比較事務(wù)描述符中版本號(hào)和互斥鎖版本號(hào)是否一致,如果一致則將local指向的對(duì)象副本寫回到global指向的全局內(nèi)存位置,同時(shí)使用原子遞增操作更新互斥鎖的版本號(hào)。如果無(wú)法獲取互斥鎖,或者版本號(hào)匹配不一致,當(dāng)前事務(wù)中斷并重新執(zhí)行,偽代碼如圖3所示。通過(guò)MVCC及互斥鎖機(jī)制,可以保證全局內(nèi)存數(shù)據(jù)的一致性,同時(shí)采用回寫策略避免了數(shù)據(jù)可見(jiàn)性問(wèn)題。

    圖3 STM commit

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

    表1 CPU、CUDA、CUDA STM下雙調(diào)排序耗時(shí)統(tǒng)計(jì) ms

    從表1中可以看出,在CUDA平臺(tái)中引入STM后,確實(shí)帶來(lái)了一定的開(kāi)銷,但從統(tǒng)計(jì)數(shù)據(jù)來(lái)看,隨著數(shù)據(jù)量的增加,帶來(lái)的性能開(kāi)銷呈現(xiàn)明顯的下降趨,相對(duì)基于CPU的排序算法,依然保持著大約4~5倍的加速比。

    5 結(jié)語(yǔ)

    本文分析了在CUDA環(huán)境下STM的設(shè)計(jì)選擇策略及基本操作的實(shí)現(xiàn),最后通過(guò)測(cè)試驗(yàn)證了基于GPU平臺(tái)STM的可行性。相對(duì)于CUDA支持整型、浮點(diǎn)的原子操作,引入STM后可以構(gòu)建更復(fù)雜的數(shù)據(jù)類型,并保證其執(zhí)行的原子性,簡(jiǎn)化了編程的同步邏輯。當(dāng)然相對(duì)于功能完善可以提供較復(fù)雜的事務(wù)執(zhí)行配置及動(dòng)態(tài)競(jìng)爭(zhēng)管理策略[23]的STM而言,基于GPU平臺(tái)的STM在性能上還存在一定的差距,但完全適用于GPU計(jì)算數(shù)據(jù)密度大高度并行的計(jì)算環(huán)境,引入STM帶來(lái)的開(kāi)銷完全可以由GPU強(qiáng)大的處理能力和高帶寬來(lái)彌補(bǔ)。相信隨著GPU的不斷完善和STM研究的不斷深入,兩者的結(jié)合必然可以有效推動(dòng)GPGPU的發(fā)展。

    [1] 吳恩華.圖形處理器用于通用計(jì)算的技術(shù)、現(xiàn)狀及其挑戰(zhàn)[J].軟件學(xué)報(bào),2004,15(10):1493-1504.

    [2] 陳慶奎,王海峰,那麗春,等.圖形處理器通用計(jì)算的研究綜述[J].黑龍江大學(xué)自然科學(xué)學(xué)報(bào),2012,29(5):672-679.

    [3] HERLIHY M,MOSS J.Transactional memory:architectural support for lock-free data structures[C]//In Proceedings of the Twentieth Annual International Symposium on Computer Architecture,1993.

    [4] LINDHOLM E,KILGARD M,MORETON H.A user-programmable vertex engine[C]//In:Proc.Of the SIGGRAPH,2001:149-158.

    [5] PEEPER C,MITCHELL J.Introduction to the directX 9 high-level shader language[J].ShaderX2: Introduction and Tutorials with DirectX, 2003,9.

    [6] MARK WR,GLANVILLE S,AKELEY K,et al.Cg:A system for programming graphics hardware in a C-like language[C]//ACM Trans on Graphics(TOG).ACM,2003,22(3):896-907.

    [7] BUCK I,FOLEY T,HORN D,et al.Brook for GPUs: Stream computing on graphics hardware[C]//ACM Transaction on Graphics(TOG).ACM, 2004,23(3):777-786.

    [8] NVIDIA Corporation.什么是NVIDIA CUDA? 2012[EB/OL].[2010-02-01].http://www.nvidia.cn/object/cuda-cn.html.

    [9] KLOCKNER A,Pinto N,LEE Y,et al.PyCUDA:GPU runtime code generation for high performance computing[R].Providence,RI:Brown University,2009.

    [10] YAN Y H,GROSSMAN M,SARKAR V.Jcuda:a programmer-friendly interface for accelerating java programs with cuda[C]// Euro-Par’09: Proceedings of the 15th International Euro-Par Conference on Parallel Processing. Berlin Heidelberg: Springer-Verlag, 2009:887-899.

    [11] NVIDIA Corporation. CUDA C programming guide, 2012[EB/OL].[2013-02-01].http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html.

    [12] 張舒,禇艷利.GPU高性能運(yùn)算之CUDA[M].北京:中國(guó)水利水電出版社,2009.

    [13] HOU Q M,ZHOU K,GUO B N.Bsgp:bulk-synchronous GPU programming[C]//SIGRAPH’08: ACM SIGGRAPH 2008 papers.New York:ACM, 2008:1-12.

    [14] SHAVIT N,TOUITOU D.Software transactional memory[C]//In PODC’95:Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing .New York,1995:204-213.

    [15] DUBLA P,DEBATTISTA L,CHALMERS A.Wait-free shared-memory irradiance cache[C]//In Eurographics Symposium on Parallel Graphics and Visualization,Eurographics,2009,3:57-64.

    [16] HERLIHY M.Wait-free synchronization[J].ACM Transactions on Programming Language and System,1991,13(1):124-149.

    [17] FRASER K.Practical lock-freedom[D].Thesis:King’s College,University of Cambridge,2003.

    [18] HERLIHY K,LUCHANGCO V,MOIR M.Obstruction-free synchronization: double-ended queue as an example[C]//In Proceedings of the 23rd International Conference on Distributed Computing Systems,2003.

    [19] HARRIS T,FRASER K.Language support for lightweight transactions[C]//In Proceedings of OOPSLA,2003.

    [20] HERLIHY M,LUCHANGCO V,MOIR M,et al.Software transactional memory for dynamic-sized data structures[C]//In Twenty-Second Annual ACM SIGACT-SIGOPS Symposium on Principles of Distributed Computing,2003.

    [21] KUNG H,ROBINS J.On optimistic methods for concurrency control[J].ACM Transactions on Database Systems,1981,6(2):213-226.

    [22] YE X,FAN D,LIN W,et al.High performance comparison-based sorting algorithm on many-core GPUs[C]//In Proc. Of the 24th International Symposium on Parallel and Distributed Processing (IPDPS).IEEE Computer Society, 2010.

    [23] 石東旭.軟件事務(wù)存儲(chǔ)動(dòng)態(tài)競(jìng)爭(zhēng)管理策略[J].軟件導(dǎo)刊,2012,11(4):6-8.

    ResearchandImplementationofSoftwareTransactionalMemoryBasedonGraphicsProcessorUnite

    LIANGFei,HUDasha,PUYifei

    (College of Computer Science,Sichuan University,Chengdu 610065,China)

    The development of multi-core processor and GPGPU (general purpose computing on graphics processors) creates a demand for ease of parallelization. STM (Software transactional memory) provides a good choice to simplify the development of concurrent code by allowing the programmer to mark sections of code to be executed atomically. To simplify the relatively complex of parallel programming on GPU (Graphics Processing Unit), synchronization problems of GPU programming are analyzed. Based on the comprehensive consideration of significant factors of STM and characteristics of CUDA (Compute Unified Device Architecture), the introduction of STM in GPU programming environment is proposed and the test results show that speedup ratio sustains well by comparison with computing on CPU.

    GPU; STM; GPGPU; CUDA

    2013-02-19

    國(guó)家自然科學(xué)基金“分?jǐn)?shù)階微積分應(yīng)用于醫(yī)學(xué)核磁共振圖像處理的理論與技術(shù)”(60972131)

    梁飛(1987- ),男(漢族),河南駐馬店人,在讀碩士研究生,研究方向:數(shù)據(jù)庫(kù)與信息系統(tǒng)。

    TP334.7

    A

    2095-5383(2013)02-0013-05

    猜你喜歡
    檢測(cè)
    QC 檢測(cè)
    “不等式”檢測(cè)題
    “一元一次不等式”檢測(cè)題
    “一元一次不等式組”檢測(cè)題
    “幾何圖形”檢測(cè)題
    “角”檢測(cè)題
    “有理數(shù)的乘除法”檢測(cè)題
    “有理數(shù)”檢測(cè)題
    “角”檢測(cè)題
    “幾何圖形”檢測(cè)題
    一边摸一边做爽爽视频免费| 国产成人精品久久二区二区91| 国产亚洲欧美在线一区二区| 亚洲精品美女久久av网站| 黄色视频不卡| videosex国产| 久久人妻福利社区极品人妻图片 | 久久久久久亚洲精品国产蜜桃av| 自拍欧美九色日韩亚洲蝌蚪91| 亚洲精品乱久久久久久| 国产亚洲欧美精品永久| 亚洲国产精品一区三区| 欧美激情极品国产一区二区三区| 欧美 日韩 精品 国产| 老司机靠b影院| 新久久久久国产一级毛片| av欧美777| 国产精品二区激情视频| 国产成人精品在线电影| 美女高潮到喷水免费观看| 两个人免费观看高清视频| 亚洲av在线观看美女高潮| 国产爽快片一区二区三区| 好男人电影高清在线观看| 欧美精品高潮呻吟av久久| av视频免费观看在线观看| 日韩,欧美,国产一区二区三区| 久久女婷五月综合色啪小说| 高清黄色对白视频在线免费看| 国产成人影院久久av| 别揉我奶头~嗯~啊~动态视频 | 菩萨蛮人人尽说江南好唐韦庄| 2018国产大陆天天弄谢| 大片电影免费在线观看免费| 久久影院123| 国产1区2区3区精品| 色婷婷久久久亚洲欧美| 日韩免费高清中文字幕av| 亚洲欧美中文字幕日韩二区| 一二三四在线观看免费中文在| 国产一级毛片在线| 97在线人人人人妻| 日韩精品免费视频一区二区三区| 欧美黑人欧美精品刺激| 国产精品二区激情视频| 人人妻人人澡人人爽人人夜夜| 免费观看av网站的网址| 免费看十八禁软件| 成人黄色视频免费在线看| 亚洲人成电影免费在线| 爱豆传媒免费全集在线观看| 亚洲国产精品一区三区| 国产成人精品久久二区二区免费| 2021少妇久久久久久久久久久| 秋霞在线观看毛片| 韩国精品一区二区三区| 日韩精品免费视频一区二区三区| 欧美黄色片欧美黄色片| 老司机影院毛片| 久久免费观看电影| 免费观看a级毛片全部| 久久久久视频综合| 制服人妻中文乱码| 9191精品国产免费久久| 丝袜脚勾引网站| 免费在线观看影片大全网站 | 精品免费久久久久久久清纯 | 天天影视国产精品| 人人妻,人人澡人人爽秒播 | 天堂中文最新版在线下载| 国产av精品麻豆| 女人精品久久久久毛片| 国产在视频线精品| 人妻 亚洲 视频| 伊人亚洲综合成人网| 多毛熟女@视频| 下体分泌物呈黄色| 亚洲精品久久成人aⅴ小说| 电影成人av| svipshipincom国产片| 亚洲精品一卡2卡三卡4卡5卡 | 在线天堂中文资源库| 精品国产乱码久久久久久小说| 午夜福利视频精品| 亚洲第一av免费看| 欧美亚洲 丝袜 人妻 在线| 青春草亚洲视频在线观看| 欧美成人午夜精品| 五月开心婷婷网| 精品久久久久久电影网| 国产片特级美女逼逼视频| 精品一品国产午夜福利视频| 日本av免费视频播放| av国产精品久久久久影院| 纯流量卡能插随身wifi吗| 亚洲成色77777| 桃花免费在线播放| 成年人午夜在线观看视频| 午夜免费观看性视频| 免费看十八禁软件| 午夜免费鲁丝| videos熟女内射| 精品免费久久久久久久清纯 | 免费在线观看完整版高清| 只有这里有精品99| 国产精品一区二区免费欧美 | 美女高潮到喷水免费观看| 菩萨蛮人人尽说江南好唐韦庄| 亚洲欧美清纯卡通| avwww免费| 又大又爽又粗| 男男h啪啪无遮挡| 国产野战对白在线观看| 久久免费观看电影| 国产成人a∨麻豆精品| 新久久久久国产一级毛片| 国产成人精品久久久久久| 亚洲国产中文字幕在线视频| 性色av一级| 久久鲁丝午夜福利片| av福利片在线| 国产精品一区二区在线不卡| 少妇人妻久久综合中文| 1024视频免费在线观看| 色婷婷av一区二区三区视频| 亚洲欧美日韩高清在线视频 | 女警被强在线播放| 欧美大码av| 女性被躁到高潮视频| 丝瓜视频免费看黄片| 男女床上黄色一级片免费看| 男女之事视频高清在线观看 | 99九九在线精品视频| 国产一级毛片在线| 亚洲精品国产区一区二| 国产真人三级小视频在线观看| 国产欧美亚洲国产| 最新的欧美精品一区二区| 精品欧美一区二区三区在线| www.熟女人妻精品国产| 精品久久久精品久久久| 晚上一个人看的免费电影| 久久天堂一区二区三区四区| 大陆偷拍与自拍| 波多野结衣一区麻豆| av一本久久久久| 日本欧美国产在线视频| 少妇粗大呻吟视频| 久久毛片免费看一区二区三区| 精品国产乱码久久久久久男人| 日韩伦理黄色片| 免费久久久久久久精品成人欧美视频| 亚洲精品av麻豆狂野| 国产免费一区二区三区四区乱码| 一级a爱视频在线免费观看| 涩涩av久久男人的天堂| 国产精品九九99| 亚洲五月婷婷丁香| 国产亚洲午夜精品一区二区久久| 天天躁日日躁夜夜躁夜夜| 少妇粗大呻吟视频| 18禁国产床啪视频网站| 99国产精品一区二区蜜桃av | 中文字幕高清在线视频| 久久久久久免费高清国产稀缺| 久久精品熟女亚洲av麻豆精品| 在线观看免费视频网站a站| 欧美激情 高清一区二区三区| 国产福利在线免费观看视频| 操美女的视频在线观看| 精品一区二区三区av网在线观看 | 好男人视频免费观看在线| 美女中出高潮动态图| 欧美精品一区二区免费开放| 色婷婷久久久亚洲欧美| av视频免费观看在线观看| 成年人免费黄色播放视频| 在线天堂中文资源库| 又大又爽又粗| 亚洲五月婷婷丁香| 首页视频小说图片口味搜索 | 看免费成人av毛片| 国产成人91sexporn| 97人妻天天添夜夜摸| 亚洲国产日韩一区二区| 婷婷丁香在线五月| 国产欧美日韩一区二区三区在线| 久久天躁狠狠躁夜夜2o2o | 免费女性裸体啪啪无遮挡网站| www.熟女人妻精品国产| 亚洲国产毛片av蜜桃av| 美女主播在线视频| 黄色视频在线播放观看不卡| 国产免费现黄频在线看| 国产高清国产精品国产三级| 国产亚洲av片在线观看秒播厂| 电影成人av| 久久 成人 亚洲| 欧美97在线视频| 青草久久国产| 女性被躁到高潮视频| 亚洲久久久国产精品| 操美女的视频在线观看| 欧美成人午夜精品| 欧美xxⅹ黑人| 丰满迷人的少妇在线观看| 亚洲少妇的诱惑av| 波多野结衣一区麻豆| 国产99久久九九免费精品| 咕卡用的链子| 一级黄片播放器| 两个人免费观看高清视频| 母亲3免费完整高清在线观看| 成年女人毛片免费观看观看9 | 久久精品亚洲熟妇少妇任你| 免费黄频网站在线观看国产| 久久人妻福利社区极品人妻图片 | 韩国高清视频一区二区三区| 国产又色又爽无遮挡免| 视频在线观看一区二区三区| 一边亲一边摸免费视频| 久久精品亚洲熟妇少妇任你| 国产又爽黄色视频| 国产成人精品久久久久久| 一级毛片 在线播放| av国产久精品久网站免费入址| 日本五十路高清| 国产av精品麻豆| 久久久久久亚洲精品国产蜜桃av| 一本久久精品| 丁香六月天网| 免费观看人在逋| 中文精品一卡2卡3卡4更新| 最近手机中文字幕大全| 无遮挡黄片免费观看| 欧美激情高清一区二区三区| 最新在线观看一区二区三区 | 国产精品麻豆人妻色哟哟久久| 51午夜福利影视在线观看| 在线av久久热| 亚洲精品日本国产第一区| av一本久久久久| www日本在线高清视频| 日本91视频免费播放| 狠狠婷婷综合久久久久久88av| 国产成人欧美在线观看 | 男女无遮挡免费网站观看| 99国产精品一区二区蜜桃av | 欧美成人午夜精品| 人人妻人人爽人人添夜夜欢视频| 欧美精品一区二区免费开放| 国产99久久九九免费精品| 国产深夜福利视频在线观看| 成年人免费黄色播放视频| 老鸭窝网址在线观看| 国产97色在线日韩免费| 精品国产国语对白av| 91字幕亚洲| 叶爱在线成人免费视频播放| 一本—道久久a久久精品蜜桃钙片| 一区二区三区乱码不卡18| 午夜精品国产一区二区电影| av视频免费观看在线观看| 老鸭窝网址在线观看| 久久ye,这里只有精品| 每晚都被弄得嗷嗷叫到高潮| 欧美精品人与动牲交sv欧美| 欧美精品啪啪一区二区三区 | 亚洲av欧美aⅴ国产| 好男人视频免费观看在线| 久久亚洲国产成人精品v| 日本午夜av视频| 国产人伦9x9x在线观看| 亚洲自偷自拍图片 自拍| 国产亚洲一区二区精品| 国产91精品成人一区二区三区 | 中文字幕制服av| 免费高清在线观看日韩| 十分钟在线观看高清视频www| 99国产精品一区二区三区| 成人午夜精彩视频在线观看| 18在线观看网站| 欧美久久黑人一区二区| 国产爽快片一区二区三区| 一级毛片黄色毛片免费观看视频| 国产成人欧美在线观看 | 国产欧美日韩一区二区三 | 国产精品久久久久久人妻精品电影 | 脱女人内裤的视频| 久久人人97超碰香蕉20202| 精品国产乱码久久久久久男人| 亚洲综合色网址| 久热爱精品视频在线9| 亚洲精品美女久久av网站| 又大又黄又爽视频免费| 国产在视频线精品| 日韩欧美一区视频在线观看| 大香蕉久久成人网| 脱女人内裤的视频| 91成人精品电影| 久久人妻熟女aⅴ| 丰满人妻熟妇乱又伦精品不卡| 国产精品久久久久久精品古装| 看十八女毛片水多多多| 狂野欧美激情性xxxx| 一二三四在线观看免费中文在| 91精品三级在线观看| 免费不卡黄色视频| 侵犯人妻中文字幕一二三四区| 80岁老熟妇乱子伦牲交| 中国美女看黄片| 国产av国产精品国产| 一个人免费看片子| 男女边摸边吃奶| 日日爽夜夜爽网站| 无遮挡黄片免费观看| 亚洲激情五月婷婷啪啪| 国产99久久九九免费精品| 国产野战对白在线观看| 一级,二级,三级黄色视频| 国产99久久九九免费精品| 亚洲少妇的诱惑av| 亚洲人成网站在线观看播放| 成人黄色视频免费在线看| 91精品伊人久久大香线蕉| 国产日韩欧美在线精品| 久久99精品国语久久久| 热re99久久国产66热| 精品人妻在线不人妻| 国产色视频综合| 99久久综合免费| 在线观看免费视频网站a站| 免费在线观看黄色视频的| 精品卡一卡二卡四卡免费| 日韩 欧美 亚洲 中文字幕| 男人操女人黄网站| 一本综合久久免费| 久久毛片免费看一区二区三区| 亚洲欧美成人综合另类久久久| 老司机亚洲免费影院| 深夜精品福利| 亚洲成国产人片在线观看| 一边摸一边做爽爽视频免费| 国产成人精品在线电影| 国产高清videossex| 欧美+亚洲+日韩+国产| 亚洲国产欧美一区二区综合| xxxhd国产人妻xxx| 日本欧美视频一区| 日本午夜av视频| 免费在线观看视频国产中文字幕亚洲 | 欧美国产精品va在线观看不卡| 亚洲第一青青草原| 亚洲国产av影院在线观看| 国产精品久久久久久精品电影小说| 一二三四社区在线视频社区8| 国产精品一区二区在线不卡| 欧美黑人欧美精品刺激| 啦啦啦中文免费视频观看日本| 欧美人与善性xxx| 国产一区二区 视频在线| 1024香蕉在线观看| 欧美日韩视频高清一区二区三区二| 久久av网站| 成人18禁高潮啪啪吃奶动态图| 国产一卡二卡三卡精品| 我的亚洲天堂| av有码第一页| 精品一品国产午夜福利视频| 夫妻午夜视频| 日韩视频在线欧美| 一边亲一边摸免费视频| 久久毛片免费看一区二区三区| 成人三级做爰电影| 建设人人有责人人尽责人人享有的| 午夜免费男女啪啪视频观看| 欧美日韩福利视频一区二区| 水蜜桃什么品种好| 女性生殖器流出的白浆| 亚洲国产欧美在线一区| 婷婷色av中文字幕| 亚洲七黄色美女视频| 脱女人内裤的视频| 欧美黑人精品巨大| 国产成人一区二区三区免费视频网站 | 亚洲欧美日韩另类电影网站| 色网站视频免费| 两个人看的免费小视频| 日本91视频免费播放| 男人操女人黄网站| 丝袜脚勾引网站| 久久女婷五月综合色啪小说| 国产高清videossex| 丝袜喷水一区| 日本午夜av视频| 国产精品99久久99久久久不卡| 亚洲成色77777| 黄片播放在线免费| 天天影视国产精品| 免费在线观看黄色视频的| 麻豆乱淫一区二区| 一级毛片黄色毛片免费观看视频| 久久青草综合色| 精品一品国产午夜福利视频| 国产成人一区二区三区免费视频网站 | 欧美日韩精品网址| 夫妻性生交免费视频一级片| 欧美大码av| 国产日韩欧美在线精品| 99热国产这里只有精品6| 久久国产精品影院| 男女之事视频高清在线观看 | 亚洲av成人不卡在线观看播放网 | 国产成人av教育| 国产精品国产三级国产专区5o| 中文字幕另类日韩欧美亚洲嫩草| 国产免费视频播放在线视频| 国产av一区二区精品久久| 性少妇av在线| 蜜桃国产av成人99| 纵有疾风起免费观看全集完整版| 男男h啪啪无遮挡| 一本一本久久a久久精品综合妖精| 777米奇影视久久| 精品人妻1区二区| 超色免费av| 9热在线视频观看99| 叶爱在线成人免费视频播放| 久久青草综合色| 赤兔流量卡办理| av又黄又爽大尺度在线免费看| 91字幕亚洲| 如日韩欧美国产精品一区二区三区| 97人妻天天添夜夜摸| 少妇裸体淫交视频免费看高清 | 午夜免费男女啪啪视频观看| 午夜老司机福利片| 国产一级毛片在线| 亚洲精品久久久久久婷婷小说| 2021少妇久久久久久久久久久| 五月开心婷婷网| 91老司机精品| 一区二区日韩欧美中文字幕| 少妇人妻久久综合中文| 婷婷色av中文字幕| 日韩大码丰满熟妇| 欧美性长视频在线观看| 国产男女超爽视频在线观看| 宅男免费午夜| 久久性视频一级片| 亚洲av在线观看美女高潮| 国产一区亚洲一区在线观看| 亚洲人成网站在线观看播放| 国精品久久久久久国模美| 欧美日韩综合久久久久久| 国产老妇伦熟女老妇高清| 视频在线观看一区二区三区| 飞空精品影院首页| 欧美黄色淫秽网站| 一区二区日韩欧美中文字幕| av国产精品久久久久影院| 久久国产精品大桥未久av| 五月天丁香电影| 欧美亚洲 丝袜 人妻 在线| 午夜视频精品福利| 中文字幕色久视频| 免费看不卡的av| 啦啦啦视频在线资源免费观看| 精品国产乱码久久久久久男人| 日韩 亚洲 欧美在线| 亚洲色图 男人天堂 中文字幕| 老熟女久久久| 亚洲欧洲日产国产| 亚洲国产日韩一区二区| 国产精品久久久久成人av| 老鸭窝网址在线观看| 欧美亚洲日本最大视频资源| 亚洲免费av在线视频| 国产av一区二区精品久久| 校园人妻丝袜中文字幕| 国产亚洲精品久久久久5区| 久久久久国产精品人妻一区二区| 欧美日韩一级在线毛片| 少妇精品久久久久久久| 国产高清国产精品国产三级| 人人妻人人澡人人爽人人夜夜| 色婷婷久久久亚洲欧美| 日本av免费视频播放| 老汉色∧v一级毛片| 久久精品成人免费网站| 一边摸一边抽搐一进一出视频| 丝袜美腿诱惑在线| av电影中文网址| 成人亚洲精品一区在线观看| 精品少妇内射三级| 亚洲人成77777在线视频| 中文字幕高清在线视频| 成人免费观看视频高清| 人人妻人人添人人爽欧美一区卜| 久久久欧美国产精品| 精品一区在线观看国产| 国产一区有黄有色的免费视频| 成人国语在线视频| 在线观看人妻少妇| av片东京热男人的天堂| 日韩制服丝袜自拍偷拍| 别揉我奶头~嗯~啊~动态视频 | 天天躁夜夜躁狠狠躁躁| 一区在线观看完整版| 妹子高潮喷水视频| 久久九九热精品免费| 超碰97精品在线观看| 亚洲五月婷婷丁香| 久久久精品区二区三区| 中文欧美无线码| 久久久久久免费高清国产稀缺| 青草久久国产| 亚洲精品国产区一区二| 男人操女人黄网站| 久久99精品国语久久久| 日韩一区二区三区影片| 亚洲av欧美aⅴ国产| 欧美日韩av久久| 日韩av不卡免费在线播放| 97人妻天天添夜夜摸| 日韩av不卡免费在线播放| 侵犯人妻中文字幕一二三四区| 亚洲激情五月婷婷啪啪| 一级黄片播放器| 久久精品亚洲av国产电影网| 热re99久久精品国产66热6| 亚洲激情五月婷婷啪啪| 97精品久久久久久久久久精品| 老鸭窝网址在线观看| 国产精品免费视频内射| 国产黄色免费在线视频| 国产视频一区二区在线看| 久久九九热精品免费| 欧美日韩亚洲高清精品| 国产成人一区二区三区免费视频网站 | 亚洲,欧美,日韩| 亚洲精品国产av成人精品| 在线观看免费日韩欧美大片| 一个人免费看片子| 高潮久久久久久久久久久不卡| 免费女性裸体啪啪无遮挡网站| 亚洲精品国产区一区二| 久久久国产一区二区| 国产精品九九99| 九色亚洲精品在线播放| 少妇人妻久久综合中文| 久久av网站| 日本欧美国产在线视频| av福利片在线| 欧美变态另类bdsm刘玥| 咕卡用的链子| 香蕉国产在线看| 精品国产一区二区三区四区第35| 久久 成人 亚洲| 日韩av在线免费看完整版不卡| 人人妻,人人澡人人爽秒播 | 欧美黑人精品巨大| 色播在线永久视频| 在线观看免费日韩欧美大片| 国产在线观看jvid| 国产99久久九九免费精品| 伊人亚洲综合成人网| 乱人伦中国视频| 国产日韩一区二区三区精品不卡| 性色av乱码一区二区三区2| 999精品在线视频| 国产精品免费大片| 老司机影院毛片| 国产亚洲一区二区精品| av又黄又爽大尺度在线免费看| 欧美日本中文国产一区发布| 曰老女人黄片| 波多野结衣一区麻豆| 久久狼人影院| 99久久99久久久精品蜜桃| 只有这里有精品99| 欧美在线黄色| 国产成人精品久久二区二区免费| 十八禁人妻一区二区| 午夜影院在线不卡| 国产免费视频播放在线视频| 免费看十八禁软件| 国产成人系列免费观看| 久久 成人 亚洲| 免费高清在线观看视频在线观看| 在线观看一区二区三区激情| 亚洲精品av麻豆狂野| 18在线观看网站| 国产在线观看jvid| 午夜福利视频精品| 日韩一本色道免费dvd| 在线亚洲精品国产二区图片欧美| 在线av久久热| 热99久久久久精品小说推荐| 在线观看国产h片| 19禁男女啪啪无遮挡网站| 热re99久久国产66热| 久久精品国产亚洲av高清一级| 欧美成人午夜精品| 一区二区av电影网| 欧美av亚洲av综合av国产av| 一级片'在线观看视频| 蜜桃在线观看..| 日日摸夜夜添夜夜爱| 久久精品国产亚洲av高清一级| 嫩草影视91久久| 天堂8中文在线网| 久久免费观看电影| 国产精品麻豆人妻色哟哟久久| 久久国产亚洲av麻豆专区|