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

    基于OpenCL的流式應(yīng)用程序在MPSoC上的動(dòng)態(tài)并行度伸縮調(diào)度①

    2016-04-26 02:54:11石晶林
    高技術(shù)通訊 2016年12期
    關(guān)鍵詞:流式計(jì)算資源流水

    黃 姍 石晶林 蕭 放

    (*中國(guó)科學(xué)院計(jì)算技術(shù)研究所無(wú)線通信技術(shù)研究中心 北京 100190)(**北京市移動(dòng)計(jì)算與新型終端重點(diǎn)實(shí)驗(yàn)室 北京 100190)(***中國(guó)科學(xué)院大學(xué) 北京 100049)

    基于OpenCL的流式應(yīng)用程序在MPSoC上的動(dòng)態(tài)并行度伸縮調(diào)度①

    黃 姍②******石晶林******蕭 放***

    (*中國(guó)科學(xué)院計(jì)算技術(shù)研究所無(wú)線通信技術(shù)研究中心 北京 100190)(**北京市移動(dòng)計(jì)算與新型終端重點(diǎn)實(shí)驗(yàn)室 北京 100190)(***中國(guó)科學(xué)院大學(xué) 北京 100049)

    分析了嵌入式系統(tǒng)應(yīng)用程序的復(fù)雜化和多樣化趨勢(shì),面向嵌入式系統(tǒng)常見的流式應(yīng)用程序,提出了基于開放運(yùn)算語(yǔ)言(OpenCL)的統(tǒng)一編程框架,并在此框架的基礎(chǔ)上設(shè)計(jì)一個(gè)運(yùn)行時(shí)系統(tǒng),在應(yīng)用程序可用計(jì)算資源發(fā)生變化的場(chǎng)景下,該系統(tǒng)可在線調(diào)整應(yīng)用程序的并行度,并進(jìn)行動(dòng)態(tài)調(diào)度。實(shí)驗(yàn)結(jié)果顯示,與已有的Flextream動(dòng)態(tài)調(diào)度系統(tǒng)相比,該調(diào)度系統(tǒng)在性能上最高可以提升17%,在動(dòng)態(tài)調(diào)度的時(shí)間開銷上最多可以降低7%。

    多處理器片上系統(tǒng)(MPSoC), 開放運(yùn)算語(yǔ)言(OpenCL), 編程框架, 并行度伸縮, 運(yùn)行時(shí)系統(tǒng)

    0 引 言

    近年來,嵌入式系統(tǒng)的應(yīng)用程序越來越復(fù)雜和多樣化[1-3],多處理器片上系統(tǒng)(multiprocessor system on chip,MPSoC)因其靈活可編程的特點(diǎn)得到了廣泛的應(yīng)用。出于對(duì)性能、功耗效率的要求,MPSoC上集成了多種異構(gòu)的計(jì)算資源。因此,MPSoC上的軟件編程問題變得越來越復(fù)雜。程序員需要對(duì)不同類型的計(jì)算單元進(jìn)行編程,甚至需要了解微結(jié)構(gòu)信息從而充分地利用硬件資源的計(jì)算能力,提升程序的執(zhí)行效率。為了降低軟件編程的難度,為程序員提供統(tǒng)一的異構(gòu)計(jì)算資源編程接口,蘋果公司率先提出了開放運(yùn)算語(yǔ)言(open computing language,OpenCL)[4]編程框架,使用該編程框架的程序可以在任意的支持OpenCL編程框架的異構(gòu)平臺(tái)上編譯和執(zhí)行。另一方面,為了提升資源利用率,多個(gè)應(yīng)用程序會(huì)以一種動(dòng)態(tài)的方式共享一個(gè)MPSoC的計(jì)算資源。例如,一個(gè)視頻處理程序占據(jù)整個(gè)MPSoC的計(jì)算資源,當(dāng)另一個(gè)拍照程序被啟動(dòng)時(shí),視頻處理程序不得不動(dòng)態(tài)地調(diào)整它的任務(wù)映射,因?yàn)橐徊糠钟?jì)算資源需要被分配給拍照程序。這意味著,系統(tǒng)需要在線地改變?nèi)蝿?wù)并行度以及任務(wù)映射,來適應(yīng)變化的計(jì)算資源。文獻(xiàn)[5]提出了一種半靜態(tài)的方法,準(zhǔn)備多個(gè)可能場(chǎng)景下的并行度和任務(wù)映射方案,然后運(yùn)行時(shí)系統(tǒng)根據(jù)實(shí)際情況進(jìn)行動(dòng)態(tài)的選擇。這種方法能適應(yīng)的場(chǎng)景會(huì)受到預(yù)先考慮的場(chǎng)景的限制,也會(huì)消耗大量的存儲(chǔ)資源去保存這些并行度和任務(wù)映射方案。文獻(xiàn)[6]提出了一種動(dòng)態(tài)調(diào)整數(shù)據(jù)級(jí)并行度的方法,但并沒有考慮其它類型的并行度調(diào)整。文獻(xiàn)[7]只考慮了動(dòng)態(tài)改變?nèi)蝿?wù)映射,但并沒有相應(yīng)的調(diào)整并行度。

    綜合上述兩個(gè)方面的因素,本文提出了一種基于OpenCL編程框架的流式應(yīng)用程序在異構(gòu)多核片上系統(tǒng)的實(shí)現(xiàn)框架,并基于此實(shí)現(xiàn)了一個(gè)運(yùn)行時(shí)系統(tǒng)的框架設(shè)計(jì),支持當(dāng)應(yīng)用程序在可用計(jì)算資源發(fā)生變化的場(chǎng)景下,在線調(diào)整應(yīng)用程序的并行度并動(dòng)態(tài)地調(diào)度應(yīng)用程序,主要貢獻(xiàn)在于:在流式應(yīng)用程序的同步數(shù)據(jù)流(synchronous data flow,SDF)模型基礎(chǔ)上,表征不同類型的并行度,給出局部調(diào)整并行度的方法;提出了一種根據(jù)可用的計(jì)算資源,動(dòng)態(tài)調(diào)整并行度,并重新分配計(jì)算資源的算法;提出了基于OpenCL編程框架的流式應(yīng)用程序在MPSoC平臺(tái)上進(jìn)行動(dòng)態(tài)調(diào)度的運(yùn)行時(shí)系統(tǒng)。

    1 OpenCL簡(jiǎn)介

    OpenCL[4]是一個(gè)在異構(gòu)平臺(tái)下的編程框架,異構(gòu)平臺(tái)可以由通用處理器(central processing unit,CPU)、圖像處理器(graphic processing unit,GPU)、數(shù)字信號(hào)處理器(digital signal processor,DSP)、可編程門陣列(field programmable gate array,F(xiàn)PGA)以及應(yīng)用專用集成電路(application specific integrated circuit,ASIC)等組成。OpenCL一方面提供定義和控制異構(gòu)平臺(tái)的應(yīng)用編程接口(application programming interface,API),另一方面提供基于C語(yǔ)言標(biāo)準(zhǔn)擴(kuò)展的對(duì)每個(gè)異構(gòu)處理單元進(jìn)行編程的OpenCL C語(yǔ)言。

    OpenCL編程框架對(duì)異構(gòu)平臺(tái)上的計(jì)算資源進(jìn)行了層次化的抽象。一個(gè)異構(gòu)計(jì)算平臺(tái)由一個(gè)主控制單元(host)和多個(gè)計(jì)算設(shè)備(device)組成。一個(gè)異構(gòu)計(jì)算平臺(tái)的host通過API管理和控制各個(gè)device,每個(gè)device執(zhí)行一段特定的計(jì)算任務(wù),被稱為核心(kernel)。一般而言,host實(shí)現(xiàn)在CPU上,kernel程序在device上執(zhí)行。一個(gè)多核心的CPU也可以同時(shí)作為device,即通過操作系統(tǒng)的多線程執(zhí)行具體的計(jì)算任務(wù)。

    Host通過為每個(gè)device創(chuàng)建和維護(hù)任務(wù)隊(duì)列來決定device執(zhí)行哪些具體的計(jì)算任務(wù),隊(duì)列里的命令可以是實(shí)例化一個(gè)kernel程序執(zhí)行的命令,也可以是一條同步命令,或者是數(shù)據(jù)傳輸命令。除了顯示的添加同步命令之外,host也可以通過定義任務(wù)隊(duì)列的執(zhí)行模型來控制隊(duì)列的執(zhí)行順序,命令隊(duì)列有兩種基本的執(zhí)行順序,一是串行執(zhí)行,即嚴(yán)格按照命令入隊(duì)列的順序執(zhí)行;另一種是亂序執(zhí)行,即當(dāng)前面的命令沒有滿足啟動(dòng)條件的情況下允許執(zhí)行已經(jīng)滿足啟動(dòng)條件的命令先執(zhí)行。

    2 流式應(yīng)用程序建模分析

    本節(jié)闡述流式應(yīng)用程序的圖建模,利用圖的節(jié)點(diǎn)來表示特定的計(jì)算任務(wù),利用邊來表示任務(wù)之間的數(shù)據(jù)依賴關(guān)系。不同類型的并行度可以通過圖的結(jié)構(gòu)進(jìn)行表征,基于這個(gè)結(jié)構(gòu),定義并行度調(diào)整的方法。

    2.1 流式應(yīng)用程序的SDF模型

    同步數(shù)據(jù)流[8](SDF)圖模型經(jīng)常用來對(duì)流式應(yīng)用程序進(jìn)行建模。在SDF模型中,兩個(gè)存在數(shù)據(jù)依賴關(guān)系的節(jié)點(diǎn)用有向邊相連,節(jié)點(diǎn)表示兩個(gè)特定的計(jì)算任務(wù),有向邊表示數(shù)據(jù)的流動(dòng)方向,產(chǎn)生數(shù)據(jù)的節(jié)點(diǎn)被稱為生產(chǎn)者,使用數(shù)據(jù)的節(jié)點(diǎn)被稱為消費(fèi)者。圖1為流式應(yīng)用的數(shù)據(jù)流圖模型。

    圖1 流式應(yīng)用程序的數(shù)據(jù)流圖模型

    如圖 1(a) 所示,有向邊相連的兩個(gè)節(jié)點(diǎn)代表的計(jì)算任務(wù)T1和T2每一次被執(zhí)行都產(chǎn)生或消耗確定數(shù)據(jù)量,分別用o和i表示,被標(biāo)記在有向邊的起點(diǎn)和終點(diǎn)處。對(duì)于SDF模型,每對(duì)有向邊相連的節(jié)點(diǎn),需要存在整數(shù)r1和r2滿足公式

    o×r1=i×r2

    (1)

    后文將使用等效SDF模型所定義的數(shù)據(jù)流圖G=(V,E)來對(duì)流式應(yīng)用程序進(jìn)行刻畫,其中V表示節(jié)點(diǎn)的集合,E表示有向邊的集合。對(duì)于每一個(gè)節(jié)點(diǎn)v∈V,使用該節(jié)點(diǎn)對(duì)應(yīng)的計(jì)算任務(wù)的工作負(fù)載對(duì)其進(jìn)行量化,節(jié)點(diǎn)工作負(fù)載可以通過靜態(tài)分析或動(dòng)態(tài)評(píng)估得到;對(duì)于每一條邊e∈E,使用有向邊傳遞的數(shù)據(jù)量對(duì)其進(jìn)行量化,即等效模型中的d。

    2.2 并行度的表征

    在數(shù)據(jù)流圖模型G上添加特殊節(jié)點(diǎn)可以顯式地表征并行度,如圖2(a)所示。進(jìn)一步地,圖2(b)表示數(shù)據(jù)并行,圖2(c) 表示任務(wù)并行,圖2(d)表示流水并行。數(shù)據(jù)并行是指同時(shí)對(duì)不同的輸入數(shù)據(jù)進(jìn)行相同計(jì)算任務(wù),任務(wù)并行是指同時(shí)執(zhí)行了兩個(gè)或多個(gè)相互獨(dú)立的沒有數(shù)據(jù)依賴關(guān)系的任務(wù)。數(shù)據(jù)并行和任務(wù)并行是通過添加拆分節(jié)點(diǎn)S和合并節(jié)點(diǎn)J顯示的表現(xiàn)在任務(wù)流圖中,通常被形象化地表現(xiàn)為一種水平并列的模式,本文使用水平并行(horizontalparallelism,HP)來描述。

    圖2 數(shù)據(jù)流圖模型及其并行度表征

    由于流式應(yīng)用程序會(huì)迭代執(zhí)行多次來處理源源不斷到達(dá)的需要處理的數(shù)據(jù),所以數(shù)據(jù)流圖G實(shí)際上被一個(gè)隱式的外部循環(huán)所包含。這個(gè)特征使得流式應(yīng)用程序得以非常自然地利用流水線的實(shí)現(xiàn)方式。通過將外層隱式的循環(huán)進(jìn)行展開,原本屬于不同迭代周期的任務(wù)節(jié)點(diǎn)就可以并行執(zhí)行。這種通過循環(huán)展開獲得流水并行的技術(shù)最早被應(yīng)用在指令層次,稱為軟流水技術(shù)[9]。Gordon等人將這種軟流水技術(shù)應(yīng)用在粗粒度的任務(wù)層次,挖掘了任務(wù)級(jí)的流水并行[10]。如圖 2(d) 所示,兩個(gè)級(jí)聯(lián)的任務(wù)節(jié)點(diǎn)通過循環(huán)展開即可構(gòu)成流水并行的結(jié)構(gòu),本文使用垂直并行(verticalparallelism,VP)來描述。

    2.3 并行度調(diào)整方法

    基于流式應(yīng)用程序的圖建模和對(duì)不同并行類型的表征,本節(jié)闡述并行度調(diào)整的方法。在應(yīng)用程序執(zhí)行的過程中,分配給該應(yīng)用程序的硬件資源有可能發(fā)生變化,這就需要在線動(dòng)態(tài)調(diào)整應(yīng)用程序的并行度。靜態(tài)編譯階段可以使用復(fù)雜度較高的分析優(yōu)化算法,獲得最優(yōu)或接近最優(yōu)的結(jié)果,而動(dòng)態(tài)并行度調(diào)整由于占用運(yùn)行時(shí)的時(shí)間,不能使用復(fù)雜度太高的算法。以一個(gè)優(yōu)化的靜態(tài)分析優(yōu)化的結(jié)果作為動(dòng)態(tài)調(diào)整的起點(diǎn),一方面可以降低動(dòng)態(tài)調(diào)整算法的復(fù)雜度,另一方面也可以保證性能的損失在可接受的范圍內(nèi)。本文提出的動(dòng)態(tài)并行度調(diào)整是基于一個(gè)應(yīng)用程序能夠使用異構(gòu)平臺(tái)上所有的計(jì)算資源的場(chǎng)景下的靜態(tài)分析結(jié)果。因此,本文的并行度調(diào)整根據(jù)不同的并行度類型,對(duì)流圖模型進(jìn)行局部節(jié)點(diǎn)合并。

    圖3是通過局部的節(jié)點(diǎn)合并進(jìn)行并行度調(diào)整的API定義,分為水平并行度調(diào)整和垂直并行度調(diào)整兩種類型。水平并行度調(diào)整是將包含在同一對(duì)S-J節(jié)點(diǎn)對(duì)vsp和vjo中的兩個(gè)節(jié)點(diǎn)vi和vj合并成一個(gè)行的節(jié)點(diǎn)vk,并通過置vk的前驅(qū)節(jié)點(diǎn)In(vk)和后繼節(jié)點(diǎn)Out(vk)分別為S-J節(jié)點(diǎn)對(duì)的vsp和vjo將新節(jié)點(diǎn)vk連接到圖中。垂直并行度調(diào)整的API將有向邊相連的兩個(gè)節(jié)點(diǎn)vi和vj合并成新的節(jié)點(diǎn)vk,并通過置vk的前驅(qū)節(jié)點(diǎn)In(vk)和后繼節(jié)點(diǎn)Out(vk)分別為原vi的前驅(qū)節(jié)點(diǎn)和原vj的后繼節(jié)點(diǎn)將新節(jié)點(diǎn)vk連接到圖中。

    圖3 并行度調(diào)整API

    3 基于OpenCL的實(shí)現(xiàn)框架

    本節(jié)闡述基于OpenCL編程框架的流式應(yīng)用程序的實(shí)現(xiàn)框架。首先需要確定經(jīng)過數(shù)據(jù)流圖建模的應(yīng)用程序和異構(gòu)平臺(tái)的計(jì)算資源之間的映射關(guān)系,然后根據(jù)這個(gè)映射關(guān)系通過主控單元host的邏輯管理和調(diào)度各個(gè)device執(zhí)行所承載的計(jì)算任務(wù)。

    3.1 數(shù)據(jù)流圖模型到異構(gòu)平臺(tái)的映射

    圖4展示了一個(gè)流式應(yīng)用程序的數(shù)據(jù)流圖模型G映射到一個(gè)異構(gòu)平臺(tái)的方法,模型的節(jié)點(diǎn)被映射到異構(gòu)平臺(tái)的device處理資源上(虛線),例如GPU和DSP;圖模型的邊實(shí)例化為先入先出(FIFO)的數(shù)據(jù)結(jié)構(gòu),映射到異構(gòu)平臺(tái)的不同存儲(chǔ)資源上(點(diǎn)劃線)。

    圖4 數(shù)據(jù)流圖模型到計(jì)算平臺(tái)的映射

    3.2 基于OpenCL的實(shí)現(xiàn)框架

    圖5是流式應(yīng)用程序基于OpenCL的實(shí)現(xiàn)框架圖。主控制的功能主要包括根據(jù)應(yīng)用程序模型和任務(wù)映射,調(diào)用OpenCL的API庫(kù)函數(shù)控制和調(diào)度各個(gè)device完成相應(yīng)的計(jì)算任務(wù)。在線的并行度調(diào)整和動(dòng)態(tài)任務(wù)調(diào)度需要主控單元調(diào)用并行度調(diào)整的API函數(shù)(2.3節(jié))來完成。各個(gè)device上執(zhí)行的計(jì)算任務(wù)用OpenCL C語(yǔ)言實(shí)現(xiàn),通過OpenCL C編譯器產(chǎn)生對(duì)應(yīng)的可執(zhí)行文件。這個(gè)過程可以靜態(tài)地完成,也可以由主控單元?jiǎng)討B(tài)地調(diào)用編譯組件完成,如圖 5中的虛線箭頭和虛線框所示。

    圖5 實(shí)現(xiàn)框架圖

    4 運(yùn)行時(shí)系統(tǒng)

    本節(jié)描述運(yùn)行時(shí)系統(tǒng)對(duì)流式應(yīng)用程序的調(diào)度,以及在線調(diào)整并行度進(jìn)行動(dòng)態(tài)調(diào)度的方法。

    4.1 流水線調(diào)度的基本方法

    由于流式應(yīng)用程序經(jīng)常需要重復(fù)執(zhí)行多次來處理源源不斷到達(dá)的數(shù)據(jù),所以一個(gè)典型的流式應(yīng)用程序的頂層有一個(gè)隱式的循環(huán)。根據(jù)這個(gè)特征,Gordon等人將軟流水技術(shù)調(diào)度應(yīng)用在粗粒度的任務(wù)層次[10],通過對(duì)整個(gè)流式應(yīng)用程序頂層的隱式循環(huán)進(jìn)行展開,來自不同循環(huán)迭代次數(shù)的任務(wù)就可以并行執(zhí)行,流式應(yīng)用程序因?yàn)楸旧淼奶卣骺梢院茏匀坏貜牧魉⑿兄蝎@得巨大的數(shù)據(jù)吞吐收益。

    流水線調(diào)度首先根據(jù)計(jì)算任務(wù)到處理資源的映射計(jì)算每個(gè)任務(wù)的所屬于的迭代周期,如公式

    vi, vj∈V; mapvi, mapvj∈P

    (2)

    所示。數(shù)據(jù)流圖源節(jié)點(diǎn)的迭代周期為0,其余對(duì)于數(shù)據(jù)流圖模型的每一條邊(vi,vj)∈E,vj的迭代周期取決于其所有前驅(qū)節(jié)點(diǎn)vi中迭代周期最大的一個(gè),如果節(jié)點(diǎn)vi和vj的任務(wù)被分配在不同的處理資源上,那么就需要在最大迭代周期的基礎(chǔ)上加一個(gè)迭代距離D,mapvi和mapvj分別表示任務(wù)vi和vj映射的處理資源,P表示計(jì)算平臺(tái)上所有處理資源的集合。如果計(jì)算處理資源支持任務(wù)計(jì)算和數(shù)據(jù)傳輸并行執(zhí)行,即一個(gè)處理器在啟動(dòng)了DMA數(shù)據(jù)傳輸任務(wù)之后可以不等待數(shù)據(jù)傳輸任務(wù)結(jié)束即開始執(zhí)行后續(xù)的計(jì)算任務(wù),則D為2,否則D為1。如果節(jié)點(diǎn)vi和vj的任務(wù)被分配在相同的處理資源上,那么vj的迭代周期就等于vi的迭代周期的最大值。

    根據(jù)已經(jīng)計(jì)算好的每個(gè)節(jié)點(diǎn)所屬于的迭代周期,根據(jù)公式

    Buf(vi,vj)=(Ivj-Ivi+1)×weight(vi,vj)

    (vi,vj)∈E

    (3)

    可以計(jì)算出每條有向邊所需要的存儲(chǔ)空間,用以進(jìn)行數(shù)據(jù)傳遞,其中weight(vi,vj)每條有向邊傳遞的數(shù)據(jù)量,即圖模型中的d。

    一個(gè)典型的流水線調(diào)度需要三個(gè)階段,分別為流水的建立期(Prologue)、核心期(SteadyState)和退出期(Epilogue)。在流水的建立期,通過逐步添加各個(gè)迭代周期的計(jì)算任務(wù)到各個(gè)device的任務(wù)隊(duì)列,在每?jī)蓚€(gè)存在數(shù)據(jù)依賴的任務(wù)之間添加足夠的緩存空間,使得數(shù)據(jù)的消費(fèi)者節(jié)點(diǎn)并不直接依賴于其生產(chǎn)者當(dāng)前產(chǎn)生的數(shù)據(jù),而是使用生產(chǎn)者上一次產(chǎn)生的緩存數(shù)據(jù)。流水調(diào)度進(jìn)入核心期后,分配在不同計(jì)算資源上的任務(wù)都可以彼此獨(dú)立地執(zhí)行,不等待其它計(jì)算資源完成任何的任務(wù)計(jì)算,由此便獲得了流水并行。退出期即當(dāng)沒有新數(shù)據(jù)到達(dá)時(shí),逐步釋放掉已經(jīng)完成的計(jì)算任務(wù)。圖 6是一個(gè)簡(jiǎn)單的流水線調(diào)度不同時(shí)期的示意圖。

    圖6 流水線調(diào)度時(shí)期示意圖

    4.2 運(yùn)行時(shí)系統(tǒng)調(diào)度流程

    圖7為運(yùn)行時(shí)系統(tǒng)工作的全流程,系統(tǒng)啟動(dòng)之后初始化device設(shè)備,根據(jù)任務(wù)映射關(guān)系計(jì)算圖模型中每個(gè)節(jié)點(diǎn)的迭代周期,并為每個(gè)有向邊分配存儲(chǔ)空間。初始化設(shè)備同時(shí)置變量resChange為FALSE,表示系統(tǒng)初次啟動(dòng),隨后進(jìn)入流水線調(diào)度的建立期。在建立期中,host根據(jù)每個(gè)計(jì)算節(jié)點(diǎn)的迭代周期,向device的任務(wù)隊(duì)列中添加新的迭代周期的任務(wù)并執(zhí)行整個(gè)任務(wù)隊(duì)列,直到所有迭代周期的節(jié)點(diǎn)都添加到任務(wù)隊(duì)列中,并在任務(wù)隊(duì)列的末尾添加?xùn)耪贤矫?。之后,流水進(jìn)入核心期,device的任務(wù)隊(duì)列不再添加新的任務(wù),只要還有新數(shù)據(jù)到來并且計(jì)算資源不變(!dataEnd && !resChange),任務(wù)隊(duì)列的任務(wù)就被循環(huán)執(zhí)行。如果不再有新數(shù)據(jù)(dataEnd)需要處理,則進(jìn)入流水的退出期。在流水的退出期中,主控host根據(jù)每個(gè)計(jì)算節(jié)點(diǎn)的迭代周期,從device的任務(wù)隊(duì)列中刪除某個(gè)迭代周期的任務(wù)并重新執(zhí)行任務(wù)隊(duì)列,直到任務(wù)隊(duì)列為空。最后調(diào)用OpenCL提供的API接口函數(shù),釋放相關(guān)任務(wù)隊(duì)列、存儲(chǔ)資源以及device,結(jié)束整個(gè)應(yīng)用程序的執(zhí)行。

    當(dāng)應(yīng)用程序處于核心期時(shí),如果計(jì)算資源有所變化,則運(yùn)行時(shí)系統(tǒng)進(jìn)入動(dòng)態(tài)并行度伸縮調(diào)度的工作流程。首先進(jìn)入并行度伸縮調(diào)度的決策期,如圖7的點(diǎn)劃線框所包含的流程所示,包括調(diào)用并行度伸縮的算法,之后重新計(jì)算圖模型中每個(gè)節(jié)點(diǎn)的迭代周期和分配每條有向邊的存儲(chǔ)資源,并置變量resChange為TRUE。隨后,運(yùn)行時(shí)系統(tǒng)進(jìn)入并行度伸縮調(diào)度的切換期,切換期分別由流水的退出期和建立期組成,完成從上一個(gè)核心期到下一個(gè)核心期的轉(zhuǎn)換工作。

    4.3 在線并行度伸縮算法

    本小節(jié)詳述在線并行度伸縮的算法細(xì)節(jié),即圖7中的灰色標(biāo)記的內(nèi)容。

    流式應(yīng)用程序使用2.1節(jié)中的圖模型G=(V,E)來表示,集合P是異構(gòu)平臺(tái)上所有處理資源的集合,初始的任務(wù)映射用數(shù)組Map表示,如下式所示:

    Map={mapv1,…,mapv|V|}

    v1,…,v|V|∈V,mapv1,…,mapv|V|∈P

    (4)

    圖7 運(yùn)行時(shí)系統(tǒng)流程圖

    Nr表示處理資源變化后仍然可用的計(jì)算單元個(gè)數(shù),滿足Nr≤|P|。圖8為并行度調(diào)整的算法流程,為了清晰起見,整個(gè)算法流程分成4個(gè)步驟,下面將逐步闡述。

    步驟1:決定哪些處理單元被保留繼續(xù)執(zhí)行該應(yīng)用程序。通過對(duì)初始任務(wù)映射中的處理器按照每個(gè)處理器承載的計(jì)算任務(wù)個(gè)數(shù)做升序排列,序列前Nr個(gè)處理資源被保留,并組成集合Preserve。因?yàn)殪o態(tài)任務(wù)的映射結(jié)果是最優(yōu)解或者近優(yōu)解,每個(gè)處理資源的任務(wù)負(fù)載總和是趨近于平衡的,保留承載任務(wù)個(gè)數(shù)少的處理器即保留了單個(gè)任務(wù)負(fù)載較高的任務(wù),通過重新分配多個(gè)負(fù)載較低的任務(wù)更有利于新的任務(wù)映射達(dá)到負(fù)載均衡。與此同時(shí),在靜態(tài)任務(wù)映射中被分配到集合Preserve上執(zhí)行的節(jié)點(diǎn)任務(wù)組成集合Vreserve,其余組成集合Vvictim。

    步驟2:檢測(cè)并行度。通過函數(shù)DetectParallel檢測(cè)集合Vvictim中的每個(gè)任務(wù)是否存在并行度。遍歷集合Vvictim中的每個(gè)節(jié)點(diǎn)v,首先將v添加集合Vscale中,判斷如果v屬于一對(duì)S-J節(jié)點(diǎn)對(duì)中,那么v是水平平行度的一部分,那么則遍歷與它同屬于這個(gè)S-J結(jié)構(gòu)的每個(gè)兄弟節(jié)點(diǎn)vs,如果vs∈Vreserve,那么節(jié)點(diǎn)vs和承載其執(zhí)行的計(jì)算單元mapvs組成一個(gè)節(jié)點(diǎn)資源對(duì)(vs,mapvs),進(jìn)而構(gòu)成節(jié)點(diǎn)資源對(duì)集合VPneighbor={(vs,mapvs)},vs∈Vreserve;如果vs∈Vvictim,則節(jié)點(diǎn)vs構(gòu)成集合Vscale。同理的,判斷如果v不屬于S-J結(jié)構(gòu)中,那么v只可能是垂直并行度的一部分,那么則遍歷它的前驅(qū)節(jié)點(diǎn)和后繼節(jié)點(diǎn),如果其前驅(qū)或者后繼節(jié)點(diǎn)屬于集合Vreserve,那么前驅(qū)或者后繼節(jié)點(diǎn)則與其映射的處理資源構(gòu)成節(jié)點(diǎn)資源對(duì)集合VPneighbor。在本步驟中,輸出的集合Vscale表示的是需要調(diào)整并行度并重新分配計(jì)算資源的節(jié)點(diǎn)的集合。

    步驟3:調(diào)整并行度。函數(shù)ScaleParallel將上一個(gè)步驟中形成的集合Vscale中的任務(wù)節(jié)點(diǎn)和集合VPneighbor中的節(jié)點(diǎn)進(jìn)行合并,達(dá)到局部的調(diào)整水平或垂直并行度的效果,合并的節(jié)點(diǎn)將由對(duì)應(yīng)節(jié)點(diǎn)資源對(duì)的計(jì)算資源承載執(zhí)行。方法是首先將集合Vscale根據(jù)任務(wù)復(fù)雜度進(jìn)行降序排列,依次考慮排序后的每個(gè)計(jì)算節(jié)點(diǎn)vi,同時(shí)選擇當(dāng)前VPneighbor中任務(wù)負(fù)載最小的處理資源p所對(duì)應(yīng)的節(jié)點(diǎn)資源對(duì)(vj,p),將vi與vj進(jìn)行節(jié)點(diǎn)合并,同時(shí)保證合并之后處理資源p的任務(wù)負(fù)載不能超過閾值(Th)的10%。這個(gè)閾值Th表示了一種理想的情況,即所有的任務(wù)在剩余的Nr個(gè)處理資源上絕對(duì)平均的分配。設(shè)置這樣一個(gè)約束的原因是局部的調(diào)整并行度可以降低同步以及通信的開銷從而提升性能,但仍然需要兼顧全局的負(fù)載均衡。此外,在進(jìn)行了節(jié)點(diǎn)合并之后,需要檢查并刪除無(wú)用的S-J節(jié)點(diǎn)對(duì)。

    步驟4:為不能調(diào)整并行度的節(jié)點(diǎn)分配處理資源。算法進(jìn)行到這里,集合Vvictim中還余下一些沒有進(jìn)行合并的計(jì)算節(jié)點(diǎn),這里采取貪心算法將剩余節(jié)點(diǎn)分配給計(jì)算資源集合Preserve。

    圖8 并行度調(diào)整算法

    該算法的復(fù)雜度主要對(duì)于集合Vvictim中的每個(gè)節(jié)點(diǎn),DetectParallel函數(shù)需要遍歷其水平或者垂直的鄰居節(jié)點(diǎn),ScaleParallel函數(shù)需要通過排序算法選擇一個(gè)鄰居節(jié)點(diǎn)進(jìn)行合并。然而這個(gè)過程被限制在了數(shù)據(jù)流圖模型的一個(gè)局部結(jié)構(gòu),所以涉及到的節(jié)點(diǎn)個(gè)數(shù)有限,使得該算法能夠在有效的時(shí)間內(nèi)完成。而全局的排序算法主要集中在第4步,出于復(fù)雜度的考慮,步驟4使用了貪心算法,保證算法整體可行。

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

    5.1 實(shí)驗(yàn)平臺(tái)與基準(zhǔn)程序

    本文選擇parallella開發(fā)板[11]作為實(shí)驗(yàn)平臺(tái)。Parallella開發(fā)板上集成了一個(gè)ARMA9中央處理器,和一個(gè)Epiphany的協(xié)處理器,包含16個(gè)計(jì)算單元,每個(gè)計(jì)算單元包含一個(gè)緊耦合的32KB的SRAM存儲(chǔ)器。Parallella板上集成集成了1GB大小的DDR3存儲(chǔ)器作為內(nèi)存,其中的32MB的存儲(chǔ)空間作為被主控制單元ARMA9處理器和協(xié)處理器Epiphany共享。

    Parallella平臺(tái)支持OpenCL的編程框架,主控制處理器ARMA9上搭載Linux的操作系統(tǒng),其中OpenCL的API基于Epiphany提供的軟件開發(fā)包[12](epiphanysoftwaredevelopmentkit,eSDK)實(shí)現(xiàn)。Host處理器ARMA9通過API函數(shù)管理和控制Epiphany的每個(gè)計(jì)算單元執(zhí)行特定的計(jì)算任務(wù)。

    本文選擇StreamIT基準(zhǔn)程序作為評(píng)估該編程框架和運(yùn)行時(shí)系統(tǒng)的基準(zhǔn)程序[13]。StreamIT是由美國(guó)麻省理工大學(xué)計(jì)算機(jī)系統(tǒng)實(shí)驗(yàn)室研發(fā)的針對(duì)流式應(yīng)用程序的高層編程語(yǔ)言,它同時(shí)收集了多個(gè)典型的流式應(yīng)用程序作為基準(zhǔn)測(cè)試程序集合。

    5.2 實(shí)驗(yàn)設(shè)計(jì)與結(jié)果分析

    本文假設(shè)16個(gè)計(jì)算單元全部可用的場(chǎng)景為靜態(tài)任務(wù)映射起點(diǎn)[10]作為動(dòng)態(tài)并行度伸縮的起點(diǎn)。為了說明本文方法的有效性,本文將與Flextream[7]的結(jié)果進(jìn)行對(duì)比,為了保證對(duì)比的公平性,我們將Flextream[7]的算法在Parallella的開發(fā)板上進(jìn)行了實(shí)現(xiàn),對(duì)比將從流水核心期性能、動(dòng)態(tài)伸縮調(diào)度時(shí)間開銷和運(yùn)行時(shí)系統(tǒng)整體性能及吞吐能力三個(gè)方面展開。流水核心期的性能是評(píng)估的首要指標(biāo),因?yàn)橐粋€(gè)基于流水調(diào)度方法實(shí)現(xiàn)的系統(tǒng)的性能主要取決于流水核心期的性能。本文提出了動(dòng)態(tài)的并行度伸縮和調(diào)度的方法,動(dòng)態(tài)變化的時(shí)間開銷也是衡量該運(yùn)行時(shí)系統(tǒng)的一個(gè)關(guān)鍵因素。本文以一個(gè)連續(xù)變化的場(chǎng)景來評(píng)估系統(tǒng)整體的性能和吞吐能力。

    (1) 流水核心期性能。圖 9(a) 表示了基準(zhǔn)程序的流水核心期在12/8/4個(gè)處理單元上執(zhí)行相對(duì)于在1個(gè)處理單元上執(zhí)行的加速比,它們都是從16個(gè)處理單元的場(chǎng)景動(dòng)態(tài)調(diào)整過來的,與Flextream[7]相比,本文可以獲得最多17%的核心期性能提升。這是因?yàn)楸疚脑跊Q策期采用的算法首先考慮了適當(dāng)?shù)恼{(diào)整并行度,避免了在處理資源減少的情況下過度并行導(dǎo)致的不必要通信和同步的開銷,從而提升了性能。

    (2) 動(dòng)態(tài)伸縮調(diào)度時(shí)間開銷。除了核心期的性能之外,完成一次動(dòng)態(tài)調(diào)整切換的時(shí)間開銷也是衡量系統(tǒng)性能的重要指標(biāo),此處選擇基準(zhǔn)程序MPEG2作為基準(zhǔn)程序。根據(jù)第4節(jié)的闡述,運(yùn)行時(shí)系統(tǒng)通過決策期和切換期兩個(gè)階段完成對(duì)應(yīng)用程序的動(dòng)態(tài)調(diào)度。決策期如圖 7中點(diǎn)劃線包含的框所示,包含并行度調(diào)整、迭代周期和緩存需求計(jì)算等。圖 9(b) 展示了決策期從16個(gè)可用計(jì)算單元的場(chǎng)景分別到1~15個(gè)可用計(jì)算單元的場(chǎng)景所需的時(shí)間開銷。因?yàn)殪o態(tài)任務(wù)映射是基于16個(gè)可用計(jì)算單元的,所以越接近16個(gè)計(jì)算單元的變化場(chǎng)景,所需的時(shí)間開銷越小。同樣的,本文與Flextream[7]的算法的時(shí)間開銷進(jìn)行對(duì)比。在場(chǎng)景變化比較大的情況下,例如從16個(gè)計(jì)算單元到4個(gè)可用計(jì)算單元場(chǎng)景變化,本文的時(shí)間開銷更小。這是因?yàn)椴⑿卸日{(diào)整算法(圖 8)中步驟2和步驟3局部合并了一些節(jié)點(diǎn),從而降低了步驟4中的排序算法的時(shí)間復(fù)雜度。然而當(dāng)場(chǎng)景變化比較小時(shí),例如從16個(gè)計(jì)算單元到1個(gè)計(jì)算單元的場(chǎng)景變化,本文的算法帶來的局部搜索和比較的復(fù)雜度超過了全局排序降低的復(fù)雜度,則會(huì)消耗更多的時(shí)間。圖 9(c) 展示了切換期的時(shí)間開銷,從16個(gè)可用計(jì)算單元到1到15個(gè)可用資源15個(gè)場(chǎng)景變化。切換期的調(diào)度分為流水退出期和流水建立期兩個(gè)階段,圖 9(c) 進(jìn)行了分別的比較。退出期的時(shí)間開銷主要取決于前一個(gè)場(chǎng)景的資源分配和流水階段總數(shù),因?yàn)楸緦?shí)驗(yàn)所設(shè)計(jì)的15個(gè)場(chǎng)景的起點(diǎn)都是基于16個(gè)可用計(jì)算單元,所以退出期調(diào)度的時(shí)間開銷和Flextream的算法基本一致。然而由于本文的動(dòng)態(tài)伸縮算法建立新場(chǎng)景時(shí)減少了不必要的并行度帶來的開銷,所以在流水建立期上與Flextream相比可最多減小7%的時(shí)間開銷。

    (a) 流水核心期性能

    (b) 動(dòng)態(tài)調(diào)度決策期時(shí)間開銷

    (c) 動(dòng)態(tài)調(diào)度切換期時(shí)間開銷

    (3) 運(yùn)行時(shí)系統(tǒng)整體性能和吞吐能力。盡管動(dòng)態(tài)調(diào)度的決策是基于一個(gè)靜態(tài)的任務(wù)映射結(jié)果,但系統(tǒng)仍然可以從任意的一個(gè)場(chǎng)景遷移到另一個(gè)。本文評(píng)估了MPEG2基準(zhǔn)程序在一個(gè)連續(xù)變化的場(chǎng)景下的運(yùn)行效率,可用的計(jì)算單元數(shù)按照16、13、9、5、7依次變化,每個(gè)場(chǎng)景持續(xù)200s時(shí)間。在整個(gè)變化過程中,本文的運(yùn)行時(shí)系統(tǒng)可以完成432000次完整的執(zhí)行,F(xiàn)lextream可以完成374000次。由于流式應(yīng)用程序每一次完整地執(zhí)行消耗和產(chǎn)生等量的數(shù)據(jù),所以本文在整體上提供了更高的數(shù)據(jù)吞吐率。

    6 結(jié) 論

    本文首先提出了流式應(yīng)用程序基于OpenCL編程框架的實(shí)現(xiàn)方法,并基于此設(shè)計(jì)了動(dòng)態(tài)調(diào)度的運(yùn)行時(shí)系統(tǒng)。當(dāng)計(jì)算資源發(fā)生變化時(shí),運(yùn)行時(shí)系統(tǒng)通過決策期合理的調(diào)整并行度和任務(wù)分配,隨后通過流水線調(diào)度的退出期和建立期完成動(dòng)態(tài)切換。實(shí)驗(yàn)表明,相較于已有的Flextream,本文可以最多提升17%的核心期性能,并降低7%的切換時(shí)間開銷。

    [ 1] Liu L, Zhou Y, Tian L, et al. CPC-based backward compatible network access for LTE cognitive radio cellular networks.IEEECommunicationMagazine, 2015, 53(7): 93-99

    [ 2] Zhou Y, Liu L, Pan Z, et al. Two-stage cooperative multicast transmission with optimized power consumption and guranteed coverage.IEEEJSAConSEED, 2014, 32(2):274-284

    [ 3] Garcia V, Zhou Y, Shi J. Coordinated multipoint transmission in dense cellular networks with user-centric adaptive clustering.IEEETransWirelessComm, 2014, 13(8):4297-4308

    [ 4] The OpenCL Specification, Khronos OpenCL Working Group, https: //www.khronos.org/opencl/. 2016

    [ 5] Schor L, Bacivarov L, Yang H, et al. Expandable process networks to efficiently specify and explore task, data, and pipeline parallelism. In: Proceedings of the 2014 International Conference on Compilers, Architecture and Sythesis for Embedded Systems, New Dehli, India, 2014

    [ 6] Choi Y, Li C, Silva D, et al. Adaptive task duplication using online bottleneck dectection for streaming applications for heterogeneous architecture. In: Proceedings of the 9th Conference on Computing Frontiers, NY, USA, 2012. 163-172

    [ 7] Hormati A, Choi Y, Kudlur M, et al. Flextream: Adaptive compilation of streaming applications for heterogeneous architectures. In: Proceedings of the 18th International Conference on Parallel Architecture and Compilation Techniques, Raleigh, USA. 214-223

    [ 8] Lee E A, Messerschmitt D G. Synchronous data flow.ProceedingsoftheIEEE, 1987, 75: 1235-1245

    [ 9] Allan V, Jones R, Lee R, et al. Software pipelining.ACMComputingSurveys, 1995, 27: 367-432

    [10] Gordon M, Thies W, Amarasinghe S. Exploiting coarse-grained task, data, pipeline parallelism in stream programs. In: Proceedings of the 12th International Conference on Architecture Support for Programming Languages and Operating Systems, San Jose, USA, 2006. 151-162

    [11] E16g301 epiphany 16-core microprocessor. http://adapteva.com/docs/e16g301 datasheet.pdf

    [12] Epiphany sdk reference. http://adapteva.com/docs/epiphany sdk ref.pdf

    [13] StremI T. http://groups.csail.mit.edu/cag/streamit/shtml/benchmarks.shtml

    An openCL based streaming applications program’s dynamic parallelism scaling scheduling on MPSoC

    Huang Shan******, Shi Jinglin******, Xiao Fang***

    (*Wireless Communication Research Center, Institute of Computing Technology, Chinese Academy of Sciences, Beijing 100190)(**Beijing Key Laboratory of Mobile Computing and Pervasive Device, Beijing 100190)(***University of Chinese Academy of Sciences, Beijing 100049)

    The complex and diversity trends of the application programs for embedded computing systems were analyzed. Then, a unified programming framework based on the open computing language (OpenCL) was proposed for embedded computing systems’ common streaming application programs, and on the basis of the framework, a runtime system was designed. Under the variation of application programs’ computing resources, the system on-line regulates programs’ parallelism, and conducts dynamic parallelism scaling scheduling. The experimental results showed that, compared with the existing dynamic scheduling system of Flextream, the proposed scheduling system’s performance was improved by 17%, and the runtime overhead of the dynamic scheduling was reduced by 7%.

    multiprocessor system on chip (MPSoC), open computing language (OpenCL), programming framework, parallelism scaling, runtime system

    10.3772/j.issn.1002-0470.2016.12.001

    ①國(guó)家自然科學(xué)基金(61431001)和北京市青年拔尖人才(2015000021223ZK31)資助項(xiàng)目。

    2016-09-07)

    ②女,1988年生,博士生;研究方向:通信基帶芯片設(shè)計(jì),專用矢量DSP處理器設(shè)計(jì),片上多核調(diào)度系統(tǒng)設(shè)計(jì);聯(lián)系人,E-mail: huangshan@ict.ac.cn

    猜你喜歡
    流式計(jì)算資源流水
    基于模糊規(guī)劃理論的云計(jì)算資源調(diào)度研究
    流水
    文苑(2020年10期)2020-11-07 03:15:26
    輻流式二沉池的結(jié)構(gòu)優(yōu)化研究
    改進(jìn)快速稀疏算法的云計(jì)算資源負(fù)載均衡
    基于Wi-Fi與Web的云計(jì)算資源調(diào)度算法研究
    耦合分布式系統(tǒng)多任務(wù)動(dòng)態(tài)調(diào)度算法
    流水有心
    微球測(cè)速聚類分析的流式液路穩(wěn)定性評(píng)估
    前身寄予流水,幾世修到蓮花?
    視野(2015年6期)2015-10-13 00:43:11
    自調(diào)流式噴管型ICD的設(shè)計(jì)與數(shù)值驗(yàn)證
    欧美激情高清一区二区三区| 国产精品99久久99久久久不卡| 亚洲精品一卡2卡三卡4卡5卡| 美女国产高潮福利片在线看| 午夜久久久久精精品| 国产欧美日韩一区二区精品| 午夜影院日韩av| 精品一品国产午夜福利视频| 无遮挡黄片免费观看| 国产一区在线观看成人免费| 国产男靠女视频免费网站| 亚洲国产看品久久| 国产一卡二卡三卡精品| 长腿黑丝高跟| 亚洲国产精品成人综合色| 国产精品av久久久久免费| 日本 欧美在线| 一区二区三区精品91| 久久性视频一级片| 十八禁人妻一区二区| 亚洲欧美精品综合久久99| 久久久久久久久中文| 999精品在线视频| 国产精品香港三级国产av潘金莲| 人成视频在线观看免费观看| 欧美日韩亚洲国产一区二区在线观看| 久久久久国产精品人妻aⅴ院| 亚洲av成人不卡在线观看播放网| 国产精品二区激情视频| 欧美成狂野欧美在线观看| 成熟少妇高潮喷水视频| 日韩国内少妇激情av| 大型黄色视频在线免费观看| 琪琪午夜伦伦电影理论片6080| 大型av网站在线播放| 两人在一起打扑克的视频| 国产精品野战在线观看| 亚洲人成网站在线播放欧美日韩| 日本 av在线| 午夜亚洲福利在线播放| 国产亚洲欧美98| 99精品在免费线老司机午夜| 午夜视频精品福利| 日本精品一区二区三区蜜桃| 别揉我奶头~嗯~啊~动态视频| 国产高清videossex| 欧美日韩瑟瑟在线播放| 亚洲第一av免费看| 色播亚洲综合网| 色综合欧美亚洲国产小说| 精品卡一卡二卡四卡免费| 日韩免费av在线播放| 免费高清视频大片| tocl精华| 麻豆一二三区av精品| 亚洲精品中文字幕在线视频| 日韩三级视频一区二区三区| 好男人在线观看高清免费视频 | 国产日韩一区二区三区精品不卡| 成人特级黄色片久久久久久久| 午夜福利一区二区在线看| 狠狠狠狠99中文字幕| 久久精品国产99精品国产亚洲性色 | 欧美久久黑人一区二区| 黄色 视频免费看| 99国产精品免费福利视频| 国产色视频综合| 午夜久久久久精精品| 黑人巨大精品欧美一区二区mp4| 亚洲国产看品久久| 十八禁人妻一区二区| 久久影院123| 亚洲专区国产一区二区| 一二三四社区在线视频社区8| 久久久久九九精品影院| 99精品在免费线老司机午夜| 国产精品综合久久久久久久免费 | 丰满人妻熟妇乱又伦精品不卡| 老熟妇乱子伦视频在线观看| 国产精品,欧美在线| www.www免费av| 国内久久婷婷六月综合欲色啪| 岛国在线观看网站| 精品国产美女av久久久久小说| av网站免费在线观看视频| 欧美另类亚洲清纯唯美| 黄网站色视频无遮挡免费观看| 精品乱码久久久久久99久播| 国产色视频综合| 久久影院123| 黄网站色视频无遮挡免费观看| 黄片小视频在线播放| 大香蕉久久成人网| 国产1区2区3区精品| 女人被躁到高潮嗷嗷叫费观| 亚洲精品国产精品久久久不卡| 欧美人与性动交α欧美精品济南到| 国产日韩一区二区三区精品不卡| ponron亚洲| 亚洲精品粉嫩美女一区| 别揉我奶头~嗯~啊~动态视频| 99国产精品99久久久久| 啦啦啦免费观看视频1| 99国产精品一区二区蜜桃av| 欧美一级a爱片免费观看看 | 国产精品综合久久久久久久免费 | 欧美最黄视频在线播放免费| 亚洲 国产 在线| 91成年电影在线观看| 最新在线观看一区二区三区| 亚洲自偷自拍图片 自拍| 国产又色又爽无遮挡免费看| 1024视频免费在线观看| 精品国内亚洲2022精品成人| 神马国产精品三级电影在线观看 | 亚洲久久久国产精品| 久9热在线精品视频| 看片在线看免费视频| 久久欧美精品欧美久久欧美| 最近最新免费中文字幕在线| 国产1区2区3区精品| 亚洲美女黄片视频| 免费人成视频x8x8入口观看| 久久国产亚洲av麻豆专区| 村上凉子中文字幕在线| 禁无遮挡网站| 亚洲aⅴ乱码一区二区在线播放 | 在线观看免费午夜福利视频| 亚洲精品av麻豆狂野| 身体一侧抽搐| 欧美老熟妇乱子伦牲交| 日韩一卡2卡3卡4卡2021年| 窝窝影院91人妻| 动漫黄色视频在线观看| 欧美日本中文国产一区发布| 成熟少妇高潮喷水视频| 久久人人爽av亚洲精品天堂| 精品电影一区二区在线| 国产精品自产拍在线观看55亚洲| 国产色视频综合| 久久人妻av系列| 国产精品一区二区精品视频观看| 国产高清激情床上av| 在线观看午夜福利视频| 黄色a级毛片大全视频| 精品一区二区三区视频在线观看免费| 亚洲av成人av| 日本一区二区免费在线视频| 久热爱精品视频在线9| 久久亚洲精品不卡| 大香蕉久久成人网| 免费在线观看日本一区| 久久久久久人人人人人| 母亲3免费完整高清在线观看| 欧美另类亚洲清纯唯美| 亚洲午夜精品一区,二区,三区| 久久国产乱子伦精品免费另类| 国产精品爽爽va在线观看网站 | 久久性视频一级片| 国产精品一区二区在线不卡| 国产欧美日韩一区二区三区在线| 啪啪无遮挡十八禁网站| 国产精品一区二区在线不卡| 国产高清视频在线播放一区| 欧美日韩中文字幕国产精品一区二区三区 | 久久午夜亚洲精品久久| 国产精品野战在线观看| 好男人电影高清在线观看| 亚洲精品中文字幕一二三四区| 女人被狂操c到高潮| 淫妇啪啪啪对白视频| 成人永久免费在线观看视频| 两个人免费观看高清视频| а√天堂www在线а√下载| av天堂久久9| 妹子高潮喷水视频| 美女高潮喷水抽搐中文字幕| 一级作爱视频免费观看| 精品高清国产在线一区| 亚洲少妇的诱惑av| 亚洲五月婷婷丁香| 黄色毛片三级朝国网站| 亚洲欧美日韩无卡精品| 国产亚洲av嫩草精品影院| 亚洲情色 制服丝袜| 亚洲三区欧美一区| 国产亚洲欧美在线一区二区| 国产精品亚洲av一区麻豆| 欧美不卡视频在线免费观看 | 国产亚洲精品综合一区在线观看 | 亚洲中文日韩欧美视频| 亚洲美女黄片视频| 最近最新中文字幕大全免费视频| 高清在线国产一区| 麻豆久久精品国产亚洲av| 19禁男女啪啪无遮挡网站| 操出白浆在线播放| 欧美乱码精品一区二区三区| 美女午夜性视频免费| 国产精品久久久久久人妻精品电影| 亚洲精品国产色婷婷电影| 黄色成人免费大全| АⅤ资源中文在线天堂| 性欧美人与动物交配| 国产精品1区2区在线观看.| 他把我摸到了高潮在线观看| 精品欧美国产一区二区三| 亚洲 欧美一区二区三区| 成人国产一区最新在线观看| 久久人妻熟女aⅴ| 校园春色视频在线观看| 悠悠久久av| 精品久久久久久久毛片微露脸| 非洲黑人性xxxx精品又粗又长| 香蕉久久夜色| 国产主播在线观看一区二区| 亚洲色图 男人天堂 中文字幕| 多毛熟女@视频| 999久久久国产精品视频| 亚洲性夜色夜夜综合| 性欧美人与动物交配| 激情在线观看视频在线高清| 午夜福利,免费看| 亚洲一卡2卡3卡4卡5卡精品中文| 无限看片的www在线观看| 两个人免费观看高清视频| av福利片在线| 亚洲色图av天堂| 午夜免费观看网址| 国产极品粉嫩免费观看在线| 国产亚洲精品av在线| 午夜影院日韩av| 精品欧美国产一区二区三| 91在线观看av| 精品一品国产午夜福利视频| 欧美日韩一级在线毛片| www日本在线高清视频| 啦啦啦免费观看视频1| 操出白浆在线播放| 国产精品乱码一区二三区的特点 | 亚洲人成电影观看| 精品国内亚洲2022精品成人| 免费av毛片视频| 男人操女人黄网站| 欧美性长视频在线观看| 亚洲成av片中文字幕在线观看| 精品午夜福利视频在线观看一区| 亚洲国产欧美日韩在线播放| 亚洲九九香蕉| 成人18禁高潮啪啪吃奶动态图| 一区二区三区高清视频在线| 丝袜人妻中文字幕| 91精品国产国语对白视频| 亚洲欧美日韩无卡精品| 久久性视频一级片| 精品国产国语对白av| 国产私拍福利视频在线观看| 操出白浆在线播放| 亚洲一区中文字幕在线| 欧美老熟妇乱子伦牲交| 99精品久久久久人妻精品| 欧美不卡视频在线免费观看 | 熟妇人妻久久中文字幕3abv| 免费av毛片视频| x7x7x7水蜜桃| 日本黄色视频三级网站网址| 露出奶头的视频| 色av中文字幕| 黄色 视频免费看| 免费女性裸体啪啪无遮挡网站| 日韩欧美国产在线观看| 18禁黄网站禁片午夜丰满| 欧美乱色亚洲激情| 欧美激情 高清一区二区三区| 精品一区二区三区四区五区乱码| 亚洲午夜精品一区,二区,三区| 国产精品爽爽va在线观看网站 | 国产男靠女视频免费网站| 日韩三级视频一区二区三区| 久久久久国产一级毛片高清牌| 亚洲电影在线观看av| 免费观看人在逋| 夜夜躁狠狠躁天天躁| 亚洲精品一区av在线观看| 麻豆国产av国片精品| 国产伦一二天堂av在线观看| 久久中文看片网| 黄色片一级片一级黄色片| 在线观看www视频免费| 大陆偷拍与自拍| 国产精品永久免费网站| 久久国产乱子伦精品免费另类| 在线观看免费日韩欧美大片| 亚洲自偷自拍图片 自拍| 90打野战视频偷拍视频| 成人18禁在线播放| 国产野战对白在线观看| 久久九九热精品免费| 美国免费a级毛片| 欧美日韩中文字幕国产精品一区二区三区 | 亚洲精品久久国产高清桃花| 无限看片的www在线观看| 久久精品国产清高在天天线| 欧美另类亚洲清纯唯美| 伊人久久大香线蕉亚洲五| 久久精品国产亚洲av高清一级| 久久影院123| 午夜影院日韩av| 桃红色精品国产亚洲av| 一边摸一边抽搐一进一出视频| 久久久久久大精品| 久久影院123| 亚洲少妇的诱惑av| 真人一进一出gif抽搐免费| 欧美性长视频在线观看| 国产一区二区三区综合在线观看| 国产高清videossex| 此物有八面人人有两片| 18美女黄网站色大片免费观看| 丁香六月欧美| 国产私拍福利视频在线观看| 欧美一级毛片孕妇| 一区二区三区高清视频在线| 日韩av在线大香蕉| 窝窝影院91人妻| 国产不卡一卡二| 真人一进一出gif抽搐免费| 国产伦一二天堂av在线观看| 女性生殖器流出的白浆| 脱女人内裤的视频| 一区二区日韩欧美中文字幕| 很黄的视频免费| 亚洲专区国产一区二区| 日本免费a在线| 啦啦啦韩国在线观看视频| 波多野结衣av一区二区av| 国产精品秋霞免费鲁丝片| 女同久久另类99精品国产91| 国产高清有码在线观看视频 | 国产av精品麻豆| 精品第一国产精品| 最好的美女福利视频网| 后天国语完整版免费观看| 岛国在线观看网站| 欧美日韩中文字幕国产精品一区二区三区 | 精品熟女少妇八av免费久了| 久久久久久久久中文| 亚洲,欧美精品.| 精品午夜福利视频在线观看一区| 美女免费视频网站| 国产成人av教育| 在线观看66精品国产| or卡值多少钱| 啦啦啦韩国在线观看视频| 亚洲片人在线观看| 欧美日韩一级在线毛片| 亚洲午夜精品一区,二区,三区| 亚洲精品美女久久久久99蜜臀| 后天国语完整版免费观看| 久久精品亚洲精品国产色婷小说| 国产精品九九99| 国产av一区在线观看免费| 波多野结衣av一区二区av| 首页视频小说图片口味搜索| 日韩精品青青久久久久久| 久久久久九九精品影院| 色婷婷久久久亚洲欧美| 免费高清在线观看日韩| 高潮久久久久久久久久久不卡| 亚洲成人国产一区在线观看| 女人被狂操c到高潮| 欧美一区二区精品小视频在线| 18美女黄网站色大片免费观看| 国产伦一二天堂av在线观看| av有码第一页| 国产成人精品久久二区二区免费| 久久精品影院6| 亚洲男人的天堂狠狠| 国产男靠女视频免费网站| 最新在线观看一区二区三区| 999久久久国产精品视频| 亚洲精品久久国产高清桃花| 日韩精品中文字幕看吧| 51午夜福利影视在线观看| 日韩精品中文字幕看吧| 欧美日韩乱码在线| 看黄色毛片网站| 99国产精品免费福利视频| 亚洲精品国产色婷婷电影| 日韩 欧美 亚洲 中文字幕| 熟女少妇亚洲综合色aaa.| 亚洲自拍偷在线| 99精品久久久久人妻精品| 国产视频一区二区在线看| 国产高清有码在线观看视频 | 女性生殖器流出的白浆| 欧美日韩亚洲国产一区二区在线观看| 亚洲中文字幕日韩| av视频在线观看入口| 波多野结衣巨乳人妻| 欧美激情 高清一区二区三区| 亚洲第一欧美日韩一区二区三区| 亚洲精品在线观看二区| 国产亚洲欧美98| 午夜福利高清视频| 亚洲色图 男人天堂 中文字幕| 国产精品1区2区在线观看.| 免费女性裸体啪啪无遮挡网站| 女性被躁到高潮视频| videosex国产| 怎么达到女性高潮| 国产一卡二卡三卡精品| 天堂影院成人在线观看| 精品国产一区二区三区四区第35| www国产在线视频色| 欧美+亚洲+日韩+国产| 亚洲成av人片免费观看| 999精品在线视频| 日韩大码丰满熟妇| 午夜激情av网站| 久久人妻福利社区极品人妻图片| 麻豆一二三区av精品| 99国产综合亚洲精品| 99国产精品99久久久久| 亚洲无线在线观看| 脱女人内裤的视频| 岛国视频午夜一区免费看| 69精品国产乱码久久久| 12—13女人毛片做爰片一| 男人的好看免费观看在线视频 | 女人被狂操c到高潮| 日韩免费av在线播放| av片东京热男人的天堂| 午夜精品国产一区二区电影| 一级作爱视频免费观看| 亚洲成人久久性| 在线观看免费日韩欧美大片| 嫩草影视91久久| 99香蕉大伊视频| 久久精品亚洲熟妇少妇任你| 成人亚洲精品一区在线观看| 一级毛片女人18水好多| 99精品欧美一区二区三区四区| 黄色丝袜av网址大全| 国产av在哪里看| 精品日产1卡2卡| 中文字幕人成人乱码亚洲影| 色综合欧美亚洲国产小说| 在线视频色国产色| 日韩欧美国产在线观看| 他把我摸到了高潮在线观看| 国产精品一区二区在线不卡| 亚洲av美国av| 看黄色毛片网站| 在线天堂中文资源库| 91老司机精品| 99国产精品免费福利视频| 久久国产精品人妻蜜桃| 一进一出好大好爽视频| 国产高清videossex| 精品人妻在线不人妻| 欧美另类亚洲清纯唯美| 国产av一区二区精品久久| 久久久久久久久免费视频了| 99精品欧美一区二区三区四区| 精品第一国产精品| 在线免费观看的www视频| 色综合欧美亚洲国产小说| 色在线成人网| bbb黄色大片| 日韩欧美国产一区二区入口| 最新在线观看一区二区三区| 搡老岳熟女国产| 久久影院123| 亚洲男人天堂网一区| 午夜日韩欧美国产| 成人免费观看视频高清| 757午夜福利合集在线观看| 大型av网站在线播放| 精品国产亚洲在线| 如日韩欧美国产精品一区二区三区| av免费在线观看网站| 视频在线观看一区二区三区| 亚洲五月色婷婷综合| 桃红色精品国产亚洲av| 精品国产超薄肉色丝袜足j| 麻豆av在线久日| 久久香蕉精品热| 久久天躁狠狠躁夜夜2o2o| 精品少妇一区二区三区视频日本电影| 久久精品成人免费网站| 国产99白浆流出| 夜夜夜夜夜久久久久| 亚洲伊人色综图| 美女 人体艺术 gogo| 97碰自拍视频| 日本在线视频免费播放| 午夜福利,免费看| 两个人看的免费小视频| 黄色视频不卡| 亚洲国产精品合色在线| 国产精品 国内视频| 一二三四在线观看免费中文在| 麻豆av在线久日| 国产高清视频在线播放一区| 极品人妻少妇av视频| 久久久国产欧美日韩av| e午夜精品久久久久久久| 丁香欧美五月| 亚洲男人的天堂狠狠| 男女下面进入的视频免费午夜 | 99国产精品免费福利视频| 久久人人爽av亚洲精品天堂| 欧美日本中文国产一区发布| 亚洲中文日韩欧美视频| 免费女性裸体啪啪无遮挡网站| 欧美国产精品va在线观看不卡| 高清黄色对白视频在线免费看| 老熟妇乱子伦视频在线观看| 性色av乱码一区二区三区2| 一边摸一边做爽爽视频免费| 成年人黄色毛片网站| 午夜精品国产一区二区电影| 老司机午夜十八禁免费视频| 久热这里只有精品99| 国产片内射在线| 免费在线观看完整版高清| 久久 成人 亚洲| 日本免费a在线| 又黄又爽又免费观看的视频| 中亚洲国语对白在线视频| 亚洲全国av大片| 97超级碰碰碰精品色视频在线观看| 午夜福利18| 少妇的丰满在线观看| 99re在线观看精品视频| 亚洲精品av麻豆狂野| 国产精品av久久久久免费| 又黄又爽又免费观看的视频| 18美女黄网站色大片免费观看| 久久欧美精品欧美久久欧美| 国产成人欧美在线观看| 久久精品aⅴ一区二区三区四区| 真人做人爱边吃奶动态| 久久久精品欧美日韩精品| 亚洲一区二区三区不卡视频| 国产精品久久久久久人妻精品电影| 国产精品1区2区在线观看.| 热99re8久久精品国产| 人人妻人人澡欧美一区二区 | 国产精品影院久久| 成人18禁在线播放| АⅤ资源中文在线天堂| 精品久久久久久久人妻蜜臀av | 男人操女人黄网站| 亚洲成人久久性| 亚洲国产中文字幕在线视频| 免费av毛片视频| 日日爽夜夜爽网站| 中亚洲国语对白在线视频| 亚洲精品在线美女| 亚洲人成伊人成综合网2020| 黄色成人免费大全| av福利片在线| 久久久国产欧美日韩av| 亚洲国产精品久久男人天堂| 国产一区二区三区在线臀色熟女| 超碰成人久久| a在线观看视频网站| 欧美av亚洲av综合av国产av| 亚洲第一电影网av| 国产欧美日韩精品亚洲av| 精品国内亚洲2022精品成人| 欧美激情高清一区二区三区| 国产乱人伦免费视频| 午夜福利在线观看吧| 99国产极品粉嫩在线观看| 国产成人欧美在线观看| 精品少妇一区二区三区视频日本电影| 久久香蕉激情| 波多野结衣av一区二区av| 精品国内亚洲2022精品成人| 琪琪午夜伦伦电影理论片6080| 中文字幕精品免费在线观看视频| 久久久久久久久久久久大奶| 国产精品99久久99久久久不卡| 免费不卡黄色视频| 亚洲精品久久成人aⅴ小说| 久久人妻av系列| 两个人视频免费观看高清| 中文亚洲av片在线观看爽| 国产av又大| 精品人妻在线不人妻| 国内精品久久久久精免费| 免费看美女性在线毛片视频| 女人被躁到高潮嗷嗷叫费观| 中文字幕色久视频| 宅男免费午夜| 女性被躁到高潮视频| 一区二区三区精品91| 日本五十路高清| 婷婷丁香在线五月| 美女高潮到喷水免费观看| 好看av亚洲va欧美ⅴa在| 少妇裸体淫交视频免费看高清 | a在线观看视频网站| 午夜福利18| 亚洲精品av麻豆狂野| 这个男人来自地球电影免费观看| 亚洲国产精品999在线| 麻豆一二三区av精品| 禁无遮挡网站| 一进一出好大好爽视频| 人妻丰满熟妇av一区二区三区| 久久久久久久久久久久大奶|