日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

openmp使用经验

發(fā)布時間:2025/3/15 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 openmp使用经验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在看多核編程。簡單來說,由于現在電腦CPU一般都有兩個核,4核與8核的CPU也逐漸走入了尋常百姓家,傳統的單線程編程方式難以發(fā)揮多核CPU的強大功能,于是多核編程應運而生。按照我的理解,多核編程可以認為是對多線程編程做了一定程度的抽象,提供一些簡單的API,使得用戶不必花費太多精力來了解多線程的底層知識,從而提高編程效率。這兩天關注的多核編程的工具包括openMP和TBB。按照目前網上的討論,TBB風頭要蓋過openMP,比如openCV過去是使用openMP的,但從2.3版本開始拋棄openMP,轉向TBB。但我試下來,TBB還是比較復雜的,相比之下,openMP則非常容易上手。因為精力和時間有限,沒辦法花費太多時間去學習TBB,就在這里分享下這兩天學到的openMP的一點知識,和大家共同討論。

openMP支持的編程語言包括C語言、C++和Fortran,支持OpenMP的編譯器包括Sun Studio,Intel Compiler,Microsoft Visual Studio,GCC。我使用的是Microsoft Visual Studio 2008,CPU為Intel i5 四核,首先講一下在Microsoft Visual Studio 2008上openMP的配置。非常簡單,總共分2步:

(1) 新建一個工程。這個不再多講。

(2) 建立工程后,點擊 菜單欄->Project->Properties,彈出菜單里,點擊 Configuration Properties->C/C++->Language->OpenMP Support,在下拉菜單里選擇Yes。

至此配置結束。下面我們通過一個小例子來說明openMP的易用性。這個例子是 有一個簡單的test()函數,然后在main()里,用一個for循環(huán)把這個test()函數跑8遍。

1 #include <iostream>2 #include <time.h>3 void test()4 {5 int a = 0;6 for (int i=0;i<100000000;i++)7 a++;8 }9 int main() 10 { 11 clock_t t1 = clock(); 12 for (int i=0;i<8;i++) 13 test(); 14 clock_t t2 = clock(); 15 std::cout<<"time: "<<t2-t1<<std::endl; 16 }

編譯運行后,打印出來的耗時為:1.971秒。下面我們用一句話把上面代碼變成多核運行。

1 #include <iostream>2 #include <time.h>3 void test()4 {5 int a = 0;6 for (int i=0;i<100000000;i++)7 a++;8 }9 int main() 10 { 11 clock_t t1 = clock(); 12 #pragma omp parallel for 13 for (int i=0;i<8;i++) 14 test(); 15 clock_t t2 = clock(); 16 std::cout<<"time: "<<t2-t1<<std::endl; 17 }

編譯運行后,打印出來的耗時為:0.546秒,幾乎為上面時間的1/4。

由此我們可以看到openMP的簡單易用。在上面的代碼里,我們一沒有額外include頭文件,二沒有額外link庫文件,只是在for循環(huán)前加了一句#pragma omp parallel for。而且這段代碼在單核機器上,或者編譯器沒有將openMP設為Yes的機器上編譯也不會報錯,將自動忽略#pragma這行代碼,然后按照傳統單核串行的方式編譯運行!我們唯一要多做的一步,是從C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.OPENMP和C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\Debug_NonRedist\x86\Microsoft.VC90.DebugOpenMP目錄下分別拷貝vcomp90d.dll和vcomp90.dll文件到工程文件當前目錄下。

對上面代碼按照我的理解做個簡單的剖析。

當編譯器發(fā)現#pragma omp parallel for后,自動將下面的for循環(huán)分成N份,(N為電腦CPU核數),然后把每份指派給一個核去執(zhí)行,而且多核之間為并行執(zhí)行。下面的代碼驗證了這種分析。

1 #include <iostream> 2 int main() 3 { 4 #pragma omp parallel for 5 for (int i=0;i<10;i++) 6 std::cout<<i<<std::endl; 7 return 0; 8 }

會發(fā)現控制臺打印出了0 3 4 5 8 9 6 7 1 2。注意:因為每個核之間是并行執(zhí)行,所以每次執(zhí)行時打印出的順序可能都是不一樣的。

下面我們來了談談競態(tài)條件(race condition)的問題,這是所有多線程編程最棘手的問題。該問題可表述為,當多個線程并行執(zhí)行時,有可能多個線程同時對某變量進行了讀寫操作,從而導致不可預知的結果。比如下面的例子,對于包含10個整型元素的數組a,我們用for循環(huán)求它各元素之和,并將結果保存在變量sum里。

1 #include <iostream>2 int main()3 {4 int sum = 0;5 int a[10] = {1,2,3,4,5,6,7,8,9,10};6 #pragma omp parallel for7 for (int i=0;i<10;i++)8 sum = sum + a[i];9 std::cout<<"sum: "<<sum<<std::endl; 10 return 0; 11 }

如果我們注釋掉#pragma omp parallel for,讓程序先按照傳統串行的方式執(zhí)行,很明顯,sum = 55。但按照并行方式執(zhí)行后,sum則會變成其他值,比如在某次運行過程中,sum = 49。其原因是,當某線程A執(zhí)行sum = sum + a[i]的同時,另一線程B正好在更新sum,而此時A還在用舊的sum做累加,于是出現了錯誤。

那么用openMP怎么實現并行數組求和呢?下面我們先給出一個基本的解決方案。該方案的思想是,首先生成一個數組sumArray,其長度為并行執(zhí)行的線程的個數(默認情況下,該個數等于CPU的核數),在for循環(huán)里,讓各個線程更新自己線程對應的sumArray里的元素,最后再將sumArray里的元素累加到sum里,代碼如下

1 #include <iostream>2 #include <omp.h>3 int main(){4 int sum = 0;5 int a[10] = {1,2,3,4,5,6,7,8,9,10};6 int coreNum = omp_get_num_procs();//獲得處理器個數7 int* sumArray = new int[coreNum];//對應處理器個數,先生成一個數組8 for (int i=0;i<coreNum;i++)//將數組各元素初始化為09 sumArray[i] = 0; 10 #pragma omp parallel for 11 for (int i=0;i<10;i++) 12 { 13 int k = omp_get_thread_num();//獲得每個線程的ID 14 sumArray[k] = sumArray[k]+a[i]; 15 } 16 for (int i = 0;i<coreNum;i++) 17 sum = sum + sumArray[i]; 18 std::cout<<"sum: "<<sum<<std::endl; 19 return 0; 20 }

需要注意的是,在上面代碼里,我們用omp_get_num_procs()函數來獲取處理器個數,用omp_get_thread_num()函數來獲得每個線程的ID,為了使用這兩個函數,我們需要include <omp.h>。

上面的代碼雖然達到了目的,但它產生了較多的額外操作,比如要先生成數組sumArray,最后還要用一個for循環(huán)將它的各元素累加起來,有沒有更簡便的方式呢?答案是有,openMP為我們提供了另一個工具,歸約(reduction),見下面代碼:

1 #include <iostream>2 int main(){3 int sum = 0;4 int a[10] = {1,2,3,4,5,6,7,8,9,10};5 #pragma omp parallel for reduction(+:sum)6 for (int i=0;i<10;i++)7 sum = sum + a[i];8 std::cout<<"sum: "<<sum<<std::endl;9 return 0; 10 }

上面代碼里,我們在#pragma omp parallel for 后面加上了 reduction(+:sum),它的意思是告訴編譯器:下面的for循環(huán)你要分成多個線程跑,但每個線程都要保存變量sum的拷貝,循環(huán)結束后,所有線程把自己的sum累加起來作為最后的輸出。

reduction雖然很方便,但它只支持一些基本操作,比如+,-,*,&,|,&&,||等。有些情況下,我們既要避免race condition,但涉及到的操作又超出了reduction的能力范圍,應該怎么辦呢?這就要用到openMP的另一個工具,critical。來看下面的例子,該例中我們求數組a的最大值,將結果保存在max里。

1 #include <iostream>2 int main(){3 int max = 0;4 int a[10] = {11,2,33,49,113,20,321,250,689,16};5 #pragma omp parallel for6 for (int i=0;i<10;i++)7 {8 int temp = a[i];9 #pragma omp critical 10 { 11 if (temp > max) 12 max = temp; 13 } 14 } 15 std::cout<<"max: "<<max<<std::endl; 16 return 0; 17 }

上例中,for循環(huán)還是被自動分成N份來并行執(zhí)行,但我們用#pragma omp critical將 if (temp > max) max = temp 括了起來,它的意思是:各個線程還是并行執(zhí)行for里面的語句,但當你們執(zhí)行到critical里面時,要注意有沒有其他線程正在里面執(zhí)行,如果有的話,要等其他線程執(zhí)行完再進去執(zhí)行。這樣就避免了race condition問題,但顯而易見,它的執(zhí)行速度會變低,因為可能存在線程等待的情況。
有了以上基本知識,對我來說做很多事情都足夠了。下面我們來看一個具體的應用例,從硬盤讀入兩幅圖像,對這兩幅圖像分別提取特征點,特征點匹配,最后將圖像與匹配特征點畫出來。理解該例子需要一些圖像處理的基本知識,我不在此詳細介紹。另外,編譯該例需要opencv,我用的版本是2.3.1,關于opencv的安裝與配置也不在此介紹。我們首先來看傳統串行編程的方式。

1 #include "opencv2/highgui/highgui.hpp"2 #include "opencv2/features2d/features2d.hpp"3 #include <iostream>4 #include <omp.h>5 int main( ){6 cv::SurfFeatureDetector detector( 400 ); 7 cv::SurfDescriptorExtractor extractor;8 cv::BruteForceMatcher<cv::L2<float> > matcher;9 std::vector< cv::DMatch > matches; 10 cv::Mat im0,im1; 11 std::vector<cv::KeyPoint> keypoints0,keypoints1; 12 cv::Mat descriptors0, descriptors1; 13 double t1 = omp_get_wtime( ); 14 //先處理第一幅圖像 15 im0 = cv::imread("rgb0.jpg", CV_LOAD_IMAGE_GRAYSCALE ); 16 detector.detect( im0, keypoints0); 17 extractor.compute( im0,keypoints0,descriptors0); 18 std::cout<<"find "<<keypoints0.size()<<"keypoints in im0"<<std::endl; 19 //再處理第二幅圖像 20 im1 = cv::imread("rgb1.jpg", CV_LOAD_IMAGE_GRAYSCALE ); 21 detector.detect( im1, keypoints1); 22 extractor.compute( im1,keypoints1,descriptors1); 23 std::cout<<"find "<<keypoints1.size()<<"keypoints in im1"<<std::endl; 24 double t2 = omp_get_wtime( ); 25 std::cout<<"time: "<<t2-t1<<std::endl; 26 matcher.match( descriptors0, descriptors1, matches ); 27 cv::Mat img_matches; 28 cv::drawMatches( im0, keypoints0, im1, keypoints1, matches, img_matches ); 29 cv::namedWindow("Matches",CV_WINDOW_AUTOSIZE); 30 cv::imshow( "Matches", img_matches ); 31 cv::waitKey(0); 32 return 1; 33 }

很明顯,讀入圖像,提取特征點與特征描述子這部分可以改為并行執(zhí)行,修改如下:

1 #include "opencv2/highgui/highgui.hpp"2 #include "opencv2/features2d/features2d.hpp"3 #include <iostream>4 #include <vector>5 #include <omp.h>6 int main( ){7 int imNum = 2;8 std::vector<cv::Mat> imVec(imNum);9 std::vector<std::vector<cv::KeyPoint>>keypointVec(imNum); 10 std::vector<cv::Mat> descriptorsVec(imNum); 11 cv::SurfFeatureDetector detector( 400 ); cv::SurfDescriptorExtractor extractor; 12 cv::BruteForceMatcher<cv::L2<float> > matcher; 13 std::vector< cv::DMatch > matches; 14 char filename[100]; 15 double t1 = omp_get_wtime( ); 16 #pragma omp parallel for 17 for (int i=0;i<imNum;i++){ 18 sprintf(filename,"rgb%d.jpg",i); 19 imVec[i] = cv::imread( filename, CV_LOAD_IMAGE_GRAYSCALE ); 20 detector.detect( imVec[i], keypointVec[i] ); 21 extractor.compute( imVec[i],keypointVec[i],descriptorsVec[i]); 22 std::cout<<"find "<<keypointVec[i].size()<<"keypoints in im"<<i<<std::endl; 23 } 24 double t2 = omp_get_wtime( ); 25 std::cout<<"time: "<<t2-t1<<std::endl; 26 matcher.match( descriptorsVec[0], descriptorsVec[1], matches ); 27 cv::Mat img_matches; 28 cv::drawMatches( imVec[0], keypointVec[0], imVec[1], keypointVec[1], matches, img_matches ); 29 cv::namedWindow("Matches",CV_WINDOW_AUTOSIZE); 30 cv::imshow( "Matches", img_matches ); 31 cv::waitKey(0); 32 return 1; 33 }

兩種執(zhí)行方式做比較,時間為:2.343秒v.s. 1.2441秒

在上面代碼中,為了改成適合#pragma omp parallel for執(zhí)行的方式,我們用了STL的vector來分別存放兩幅圖像、特征點與特征描述子,但在某些情況下,變量可能不適合放在vector里,此時應該怎么辦呢?這就要用到openMP的另一個工具,section,代碼如下:

1 #include "opencv2/highgui/highgui.hpp"2 #include "opencv2/features2d/features2d.hpp"3 #include <iostream>4 #include <omp.h>5 int main( ){6 cv::SurfFeatureDetector detector( 400 ); cv::SurfDescriptorExtractor extractor;7 cv::BruteForceMatcher<cv::L2<float> > matcher;8 std::vector< cv::DMatch > matches;9 cv::Mat im0,im1; 10 std::vector<cv::KeyPoint> keypoints0,keypoints1; 11 cv::Mat descriptors0, descriptors1; 12 double t1 = omp_get_wtime( ); 13 #pragma omp parallel sections 14 { 15 #pragma omp section 16 { 17 std::cout<<"processing im0"<<std::endl; 18 im0 = cv::imread("rgb0.jpg", CV_LOAD_IMAGE_GRAYSCALE ); 19 detector.detect( im0, keypoints0); 20 extractor.compute( im0,keypoints0,descriptors0); 21 std::cout<<"find "<<keypoints0.size()<<"keypoints in im0"<<std::endl; 22 } 23 #pragma omp section 24 { 25 std::cout<<"processing im1"<<std::endl; 26 im1 = cv::imread("rgb1.jpg", CV_LOAD_IMAGE_GRAYSCALE ); 27 detector.detect( im1, keypoints1); 28 extractor.compute( im1,keypoints1,descriptors1); 29 std::cout<<"find "<<keypoints1.size()<<"keypoints in im1"<<std::endl; 30 } 31 } 32 double t2 = omp_get_wtime( ); 33 std::cout<<"time: "<<t2-t1<<std::endl; 34 matcher.match( descriptors0, descriptors1, matches ); 35 cv::Mat img_matches; 36 cv::drawMatches( im0, keypoints0, im1, keypoints1, matches, img_matches ); 37 cv::namedWindow("Matches",CV_WINDOW_AUTOSIZE); 38 cv::imshow( "Matches", img_matches ); 39 cv::waitKey(0); 40 return 1; 41 }

上面代碼中,我們首先用#pragma omp parallel sections將要并行執(zhí)行的內容括起來,在它里面,用了兩個#pragma omp section,每個里面執(zhí)行了圖像讀取、特征點與特征描述子提取。將其簡化為偽代碼形式即為:

1 #pragma omp parallel sections2 {3 #pragma omp section4 {5 function1();6 }7   #pragma omp section8 {9 function2(); 10 } 11 }

意思是:parallel sections里面的內容要并行執(zhí)行,具體分工上,每個線程執(zhí)行其中的一個section,如果section數大于線程數,那么就等某線程執(zhí)行完它的section后,再繼續(xù)執(zhí)行剩下的section。在時間上,這種方式與人為用vector構造for循環(huán)的方式差不多,但無疑該種方式更方便,而且在單核機器上或沒有開啟openMP的編譯器上,該種方式不需任何改動即可正確編譯,并按照單核串行方式執(zhí)行。

以上分享了這兩天關于openMP的一點學習體會,其中難免有錯誤,歡迎指正。另外的一點疑問是,看到各種openMP教程里經常用到private,shared等來修飾變量,這些修飾符的意義和作用我大致明白,但在我上面所有例子中,不加這些修飾符似乎并不影響運行結果,不知道這里面有哪些講究。

在寫上文的過程中,參考了包括以下兩個網址在內的多個地方的資源,不再一 一列出,在此一并表示感謝。

http://blog.csdn.net/drzhouweiming/article/details/4093624
http://software.intel.com/zh-cn/articles/more-work-sharing-with-openmp

總結

以上是生活随笔為你收集整理的openmp使用经验的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

www.狠狠干| 96精品高清视频在线观看软件特色 | 午夜久草 | 国产中文a | 久久高清av | 欧美日韩一区二区三区在线观看视频 | 国产精品一区二区久久久 | 亚洲美女精品区人人人人 | 亚洲精品在线免费看 | av福利在线看| 91成人网在线播放 | 国产原创av片 | 精品视频在线播放 | 少妇激情久久 | 色婷五月| 五月天激情综合网 | 欧美日本一二三 | 激情丁香5月| 视频二区 | 国产精品美女久久久久久网站 | 337p西西人体大胆瓣开下部 | 美女在线观看av | 精品一区二区在线免费观看 | 97国产情侣爱久久免费观看 | 91看片在线播放 | 五月激情视频 | 国产精品久久99精品毛片三a | 午夜三级福利 | 中文字幕一区二区三区乱码不卡 | 日本电影久久 | 狠狠色网| 在线观看亚洲成人 | 日韩一区二区免费视频 | 国产人成看黄久久久久久久久 | 国产日韩精品一区二区三区在线 | 天天操天天色天天射 | 中文字幕文字幕一区二区 | 国产免费xvideos视频入口 | 国产精在线 | 日韩av在线免费播放 | 精品1区二区 | 91正在播放 | 亚洲成a人片77777kkkk1在线观看 | 久亚洲 | 涩涩爱夜夜爱 | 国产成人精品一区二区三区福利 | 成人午夜黄色 | 伊人电影在线观看 | 亚洲成色777777在线观看影院 | 亚洲激情在线视频 | 日韩精品播放 | 美女视频黄频大全免费 | 免费色网站 | 奇米影视8888| 久久大片网站 | 久久兔费看a级 | 黄污在线观看 | 99免费在线播放99久久免费 | 日韩高清激情 | 国产精品久久久久一区二区三区共 | 天天爱天天操天天射 | a级免费观看| 九九精品视频在线看 | 国产一区二区在线免费视频 | 中文字幕在线一二 | 97人人模人人爽人人喊中文字 | 亚洲精品理论 | 成人黄色免费观看 | 免费99视频| 日韩大片在线播放 | 亚洲精品女 | 欧美精品中文在线免费观看 | 久久久999精品视频 国产美女免费观看 | 国产网红在线观看 | 99热在线精品观看 | 婷婷深爱五月 | 成人禁用看黄a在线 | 国产1级毛片 | 国产一二三四在线视频 | 亚洲精品影视在线观看 | 久久爱影视i | 一区 二区电影免费在线观看 | 精品国产观看 | 国产一卡二卡四卡国 | 久热香蕉视频 | 亚洲精品视频偷拍 | av在线播放亚洲 | 一本一本久久a久久精品综合 | 97超碰人人模人人人爽人人爱 | 天天操天天干天天爽 | 天天玩天天操天天射 | 五月婷婷激情综合 | 亚洲精品av在线 | 久久精品99国产精品酒店日本 | 久久久久久久久毛片 | 992tv在线成人免费观看 | 国产视频欧美视频 | 在线免费黄网站 | 99精品福利视频 | 狠狠操夜夜 | 国产精彩视频一区 | 狠狠色噜噜狠狠狠合久 | 久草线 | 国色天香在线 | 色综合久久五月 | 国产精品不卡在线 | 99久久精品一区二区成人 | 亚洲一本视频 | 正在播放日韩 | 天天操天天射天天插 | 亚洲综合在线视频 | 伊人成人激情 | 激情丁香综合 | 91片黄在线观 | 亚洲国产精品久久 | 中国一级片在线播放 | 日韩一区二区在线免费观看 | 国产精品久久99精品毛片三a | 欧美激情精品一区 | 亚洲91av| 亚洲激情 | 91九色精品女同系列 | 另类老妇性bbwbbw高清 | 欧美日韩另类视频 | 久久avav| 国产精品一区专区欧美日韩 | 在线播放一区 | 在线看日韩 | 欧美专区日韩专区 | 婷婷网五月天 | 国产福利一区二区三区在线观看 | 日韩 在线a | 天天干天天摸 | 欧美日韩一区三区 | 在线观看亚洲a | 这里只有精彩视频 | 激情在线网站 | 欧美色图另类 | 国产精品一区二区久久精品爱微奶 | 不卡的av中文字幕 | www免费看 | 国产精品2019 | 五月婷婷综合色拍 | 日韩久久精品一区二区三区 | 91精品国产91热久久久做人人 | 五月综合在线观看 | 性日韩欧美在线视频 | 国产999精品久久久久久绿帽 | 国产在线污 | 人人爽人人爽人人爽学生一级 | 视频成人| 国产高清在线免费观看 | 久久久午夜精品理论片中文字幕 | 天天做天天爱天天综合网 | 成人a免费看 | 91福利视频免费 | 久久成人国产精品免费软件 | 国产福利av| 91精品国自产在线 | 超碰在线9 | 国产高清在线视频 | 国产又黄又硬又爽 | 九九视频免费观看视频精品 | 欧美 日韩 国产 中文字幕 | 国产精品99久久99久久久二8 | 精品极品在线 | 日本精品视频在线播放 | 免费视频久久久久久久 | 久影院| 欧美二区三区91 | 中文字幕区 | 99视频精品 | 正在播放一区二区 | 日韩亚洲国产精品 | 在线播放日韩av | 成年人黄色免费看 | 久久免费中文视频 | 日韩中文字幕免费电影 | 亚洲在线视频观看 | 日批视频在线观看免费 | 欧美日韩国产综合网 | 国产99久久99热这里精品5 | 伊人看片 | 欧美电影在线观看 | 婷婷久久五月 | 亚洲成人蜜桃 | 国产视频精品久久 | 久久久久北条麻妃免费看 | 色午夜 | 久久亚洲私人国产精品 | 久久精品国产一区二区电影 | 欧美在线观看视频 | 天天天操天天天干 | 五月天综合激情 | 成人一级| 亚洲精品999| av色一区 | 天天操天天操 | 欧美精品第一 | 亚洲国产字幕 | 久久午夜免费观看 | 四虎影视成人精品 | 在线视频18在线视频4k | 久久精品亚洲精品国产欧美 | 麻豆精品传媒视频 | 一级淫片在线观看 | 丰满少妇久久久 | 国产日韩精品久久 | 国产精品一区二区在线观看 | 亚州国产视频 | 干狠狠| 午夜精品久久久久久久99水蜜桃 | 91视频91蝌蚪 | 国产精品久久 | 在线 日韩 av | 91成人欧美 | 婷婷综合激情 | 亚洲国产精品激情在线观看 | 久久久综合香蕉尹人综合网 | 久久精品视频4 | 超碰人在线 | 五月激情姐姐 | 高潮久久久 | 国产99免费视频 | 美女视频久久 | 国产一区二区三区在线 | 五月亚洲 | 中文字幕激情 | 成人黄色电影在线 | 国产在线视频资源 | 免费国产在线精品 | 午夜久久久久久久久 | 婷婷在线网 | 丁香五婷 | 91经典在线 | 欧美日韩一区久久 | 97碰碰视频 | 中国一级片视频 | 成 人 黄 色 视频免费播放 | 亚洲国产精品激情在线观看 | 日韩毛片精品 | 国产九九九精品视频 | 精品免费久久久久 | 天天操天天干天天玩 | 午夜视频一区二区 | 中文字幕第一页在线播放 | 免费观看91| 日韩羞羞 | 久久99最新地址 | 日本三级香港三级人妇99 | 色婷婷激婷婷情综天天 | 免费性网站 | 国产成人一区二区三区在线观看 | 国产一及片 | 日韩有码在线播放 | 91成人看片 | 天天干天天操天天入 | 在线三级中文 | 91av电影在线观看 | 欧美一级黄大片 | 亚洲精品午夜国产va久久成人 | 91精品爽啪蜜夜国产在线播放 | 久久精品999 | 五月天堂色 | 免费亚洲黄色 | 特级毛片在线免费观看 | 又黄又爽又色无遮挡免费 | 懂色av一区二区在线播放 | 天无日天天操天天干 | 中文字幕在线观 | 91视频91自拍 | 国产精品成人一区二区三区吃奶 | 99精品国产兔费观看久久99 | 99久久婷婷国产综合亚洲 | 成人视屏免费看 | 国产美女无遮挡永久免费 | 中文字幕在线视频第一页 | 免费久久片 | 在线看欧美 | 亚洲丝袜一区二区 | 69xxxx欧美| 激情久久综合 | 人人玩人人添人人 | av黄色免费在线观看 | aaa免费毛片| 中文字幕在线观看一区二区 | 黄p在线播放 | 中文乱幕日产无线码1区 | 97国产在线视频 | 久久国产欧美日韩精品 | 99久久99久久 | 天天亚洲 | 欧美精品久 | 激情动态| 亚洲欧美日韩一区二区三区在线观看 | 亚洲精品videossex少妇 | 国产精品一区二区三区在线免费观看 | 91精品视频在线观看免费 | 中文字幕一区三区 | 成人精品999| 97免费视频在线播放 | 91在线视频观看 | 91九色成人| 在线播放91 | 亚洲综合小说 | 99久久99久久精品 | 日韩高清成人在线 | 免费成人av在线 | 欧美一二区在线 | 国产精品女人久久久 | 午夜在线免费观看 | av高清在线观看 | 欧美一区二区免费在线观看 | 欧美日韩aaaa | 少妇bbw揉bbb欧美 | 五月天国产精品 | 国产精品一区二区三区99 | 狠狠操操网 | 天天综合网国产 | 中文字幕av一区二区三区四区 | 最新黄色av网址 | 毛片网站在线 | 成人午夜电影网 | 亚洲欧洲视频 | 国产原创中文在线 | 日韩欧美高清在线观看 | 国产精品亚洲片在线播放 | 91中文在线观看 | 激情久久一区二区三区 | 黄色影院在线免费观看 | 日日爱视频| 久久久久久国产一区二区三区 | 特级西西444www大胆高清无视频 | 国产精品久久久久一区 | 国产精品 中文字幕 亚洲 欧美 | 免费观看性生交大片3 | 成人动漫一区二区三区 | 一区二区欧美在线观看 | 午夜精品一区二区三区在线 | 久草在线免费在线观看 | 国产在线色站 | av电影免费在线看 | 成人久久18免费网站图片 | 视频精品一区二区三区 | 亚洲一级二级三级 | 中文字幕丝袜制服 | 99精品区 | 国产一级免费在线观看 | 99精品在线免费观看 | 亚洲欧美综合精品久久成人 | 亚洲五月 | 国产精品久久久久久久久费观看 | 激情视频在线高清看 | 欧美少妇的秘密 | 亚洲黄色高清 | 国产片免费在线观看视频 | 91在线播放综合 | 亚洲一区欧美激情 | 丁五月婷婷 | 国产精品99久久免费黑人 | 99久久久成人国产精品 | 99re久久资源最新地址 | 最新av网址大全 | 黄色成人av | 日韩欧美精选 | 亚洲精品成人av在线 | 天天射天天干天天爽 | 国内精品亚洲 | 亚洲狠狠操 | 成人亚洲精品久久久久 | 国产精品美女久久久久久久久久久 | 国产精品久久久久久久久久ktv | 三三级黄色片之日韩 | 国产精品毛片一区 | 亚洲黄色区 | 久久久久久美女 | 国产在线视频在线观看 | 欧美精品久久久久久久久免 | 国产一级不卡视频 | 麻豆传媒视频在线免费观看 | 婷久久| 日韩精品首页 | 四月婷婷在线观看 | 精品国产亚洲在线 | 色综合亚洲精品激情狠狠 | 精产嫩模国品一二三区 | 国产一级淫片免费看 | 精品国产乱子伦一区二区 | 亚洲成人资源 | 在线精品观看国产 | 午夜久久影院 | 天天射天天做 | 国产无遮挡猛进猛出免费软件 | 日本精品视频在线观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 日韩欧美一二三 | 在线视频免费观看 | 欧美肥妇free | 丁香六月av | 久久观看最新视频 | 久久天天躁夜夜躁狠狠85麻豆 | 国产1区2区3区精品美女 | 亚洲女同ⅹxx女同tv | 成人免费看视频 | 97天天干| 国产成人精品久久久久蜜臀 | 国产剧情一区在线 | 国产成人综合精品 | 三级免费黄色 | 久草在线观 | 91在线视频一区 | 国产视频久久久久 | 久草热久草视频 | 精品中文字幕视频 | av成人黄色 | 婷婷六月天在线 | 天天干夜夜干 | 中国精品一区二区 | 久久96国产精品久久99漫画 | 久久免费国产电影 | 国产a级精品 | 久久好看免费视频 | 欧美-第1页-屁屁影院 | 成人免费在线观看av | 九九免费精品视频在线观看 | 国产中文字幕视频 | 久久久午夜精品福利内容 | 91av视频在线观看免费 | 天天干天天草天天爽 | 国产精品一区二区三区99 | 日韩啪视频 | 天堂网一区二区三区 | a色视频| 亚洲精品国产综合99久久夜夜嗨 | 欧美一区二视频在线免费观看 | 亚洲精品午夜aaa久久久 | 一本一本久久a久久精品综合 | 色姑娘综合 | 亚洲视频中文 | 97av影院 | 久久综合精品一区 | 91av观看 | 国产精品观看在线亚洲人成网 | 国语精品免费视频 | 亚洲aⅴ在线 | 综合激情av| 成人午夜影院 | 最新av免费在线观看 | 日韩欧美高清不卡 | 成人在线一区二区 | 97精品一区二区三区 | 婷婷色综合色 | 伊人色综合久久天天网 | 在线观看中文字幕av | www.久久免费 | bbbbb女女女女女bbbbb国产 | 欧美在线一级片 | 国语久久 | 亚洲精品在线视频 | 日韩久久在线 | 美女视频黄,久久 | 日本久久久久久久久久 | 午夜精品久久久久 | 免费在线色 | 手机av在线网站 | 尤物九九久久国产精品的分类 | 天天夜夜狠狠操 | 国产精品久久网 | 青草视频在线免费 | 午夜国产成人 | 国产精品av免费观看 | 最近免费在线观看 | 在线观看国产成人av片 | 午夜精品影院 | 日韩av中文字幕在线 | 成人免费 在线播放 | 999热视频| 国产91免费看 | 国产小视频你懂的 | 在线观看成人小视频 | 免费看一级特黄a大片 | 最近中文字幕免费大全 | 五月天综合网 | 国产精品免费视频一区二区 | 看av免费 | adn—256中文在线观看 | 久久都是精品 | 日韩中文字幕在线 | 一区在线免费观看 | www色婷婷com | 天天爽天天搞 | 久久久久综合视频 | 国产区精品在线观看 | 国产精品视频你懂的 | 亚洲第一色 | 免费试看一区 | 日本爱爱片 | 久久国产精品免费看 | 久久官网 | 高清国产午夜精品久久久久久 | 欧美日韩在线视频观看 | 国产精品一区二区免费在线观看 | 手机av在线免费观看 | 国产成人av电影在线观看 | 日日夜夜天天综合 | 久久成人在线 | 成年人黄色大全 | 人人爱夜夜操 | 久福利| 九九热免费在线视频 | 国产真实在线 | 欧美无极色 | 久久免费99 | www.伊人网 | 91看片淫黄大片一级在线观看 | 2018好看的中文在线观看 | 亚洲国产精品久久久 | 黄色的网站免费看 | 毛片精品免费在线观看 | 国产女人免费看a级丨片 | 91在线一区 | 黄色小说在线免费观看 | 久久国产精品影片 | 九九免费精品 | 国产永久免费高清在线观看视频 | 国产一区二区免费 | 亚洲国产中文字幕在线观看 | 色噜噜噜| 午夜国产成人 | 国产美女精品人人做人人爽 | 免费观看一级特黄欧美大片 | 精品视频亚洲 | 日本三级全黄少妇三2023 | 欧美作爱视频 | 天天艹| 91精品视频播放 | 久久久激情网 | 欧美日韩三级在线观看 | 国产高清区 | 7777xxxx| 精品久久久久久久久久久久久久久久久久 | 久久久久久久久免费视频 | 国产精品观看在线亚洲人成网 | 亚洲一本视频 | 五月天激情开心 | 欧美性色xo影院 | 久久a v电影 | 人人爽人人做 | 欧美激情精品久久久久久免费 | 国产精品18久久久久久vr | 亚洲精品一区二区网址 | 2022国产精品视频 | 精品久久久久久久久久 | 天天操天天干天天操天天干 | 日韩美av在线 | 日韩一级成人av | 国产精品网红直播 | 国产精品网红直播 | 久久精品小视频 | 美女啪啪图片 | 欧美激情精品久久久久久免费印度 | 国产一二三四在线观看视频 | 午夜成人免费影院 | 国产成人免费观看 | 国产精品一区二区久久久 | 久久久国产精品人人片99精片欧美一 | 在线亚洲成人 | 国产亚洲精品久久久久久久久久久久 | 国产黄色大片 | 国偷自产视频一区二区久 | www.综合网.com| 中文字幕在线观看视频一区二区三区 | 手机av电影在线观看 | 日日操天天操夜夜操 | 欧美一区影院 | 久久精品欧美 | 国产视频1区2区3区 久久夜视频 | 久久99久久久久久 | 国产精品18毛片一区二区 | 日韩综合第一页 | 人人搞人人干 | 91麻豆文化传媒在线观看 | 欧美粗又大 | 国产精品日韩欧美一区二区 | 免费日韩一区二区三区 | 久久久久久久看片 | 麻豆视频成人 | 天天超碰| 欧美日本在线视频 | 成人黄色国产 | av+在线播放在线播放 | 欧美日韩亚洲在线 | 免费看黄20分钟 | 精品久久久久久久久久岛国gif | 亚洲人在线视频 | 免费精品国产va自在自线 | 亚洲日日射 | 国产看片免费 | 国产黄在线看 | 国产一区二区在线免费播放 | 人人视频网站 | 999国产精品视频 | 亚色视频在线观看 | 国产日本在线播放 | 欧美精品一区二区三区四区在线 | 免费色视频网址 | 免费在线黄色av | 久久免费电影网 | 操操综合 | 亚洲欧美国产精品久久久久 | 欧美日韩中文字幕在线视频 | 成年人免费在线观看网站 | 日本成人中文字幕在线观看 | 久碰视频在线观看 | 日韩xxxx视频 | 国产三级视频 | 亚洲五月 | 二区三区在线 | 成人午夜电影网 | 99r精品视频在线观看 | 日韩免费久久 | 亚洲91视频 | 亚洲综合在线五月天 | 久久久久久精 | 亚洲三级黄 | 黄色在线看网站 | 在线观看国产成人av片 | 色资源网免费观看视频 | 美女黄频 | 激情av网 | 日韩精品视频在线免费观看 | 一级黄色片在线 | 免费网站看v片在线a | 岛国大片免费视频 | 日韩理论电影网 | 久草在线高清视频 | 97品白浆高清久久久久久 | 最近更新好看的中文字幕 | 国产中文自拍 | 另类老妇性bbwbbw高清 | 久久日韩精品 | 亚洲人成网站精品片在线观看 | 91人人爽久久涩噜噜噜 | 97色在线观看 | 欧美色婷婷 | 日日干夜夜干 | 日韩在线视频精品 | 精品久久久久久久久久久久久久久久 | 亚洲免费精彩视频 | 在线av资源 | 国产精品亚洲综合久久 | 黄av在线 | 伊人网av| 99视频精品视频高清免费 | 亚洲国产日本 | 天天碰天天操 | 最近日本韩国中文字幕 | 国产精品麻豆三级一区视频 | 丁香激情综合国产 | 日韩精品综合在线 | 在线观看亚洲精品视频 | 亚洲黄色小说网 | 久草综合在线观看 | 亚洲jizzjizz日本少妇 | 91伊人| 日韩xxxx视频 | 免费在线观看一区二区三区 | 国产又粗又猛又色又黄网站 | 伊人春色电影网 | 久久国产精品精品国产色婷婷 | 欧美一级在线观看视频 | 成人一级片免费看 | 欧洲精品亚洲精品 | 婷婷激情五月 | 人人爽人人爽人人爽学生一级 | 丁香九月激情综合 | 色综合天天天天做夜夜夜夜做 | 五月婷婷在线视频观看 | 亚洲成av人片在线观看www | 国产在线视频一区二区三区 | 国产蜜臀av| 久久电影国产免费久久电影 | 亚洲欧美激情插 | 国产一区二区视频在线播放 | 友田真希x88av | 免费一级特黄毛大片 | 欧美一级性 | 中文字幕国产精品 | 国产在线欧美 | 高清色免费 | 中文字幕在线观看视频一区二区三区 | 91久久丝袜国产露脸动漫 | 在线播放 日韩专区 | 91在线播放国产 | 国产黄色免费电影 | 91伊人久久大香线蕉蜜芽人口 | 国产精品va最新国产精品视频 | 伊人www22综合色 | 国产午夜影院 | 久久伊人国产精品 | 国产精品久久婷婷六月丁香 | 国产97视频在线 | a在线免费观看视频 | 香蕉视频在线视频 | 国产欧美在线一区 | 五月天激情视频在线观看 | 综合久久网站 | 狠狠干五月天 | 国产精品av久久久久久无 | 国产成人亚洲精品自产在线 | 欧美精品久久久久久 | 在线观看岛国 | 91免费在线看片 | 婷婷在线色| 久久黄色影院 | 97av在线 | 一区二区三区国产精品 | 97超碰人人澡人人爱学生 | 国产亚洲久一区二区 | 亚洲小视频在线 | 亚洲精品玖玖玖av在线看 | 日韩精品久久久久久久电影99爱 | 极品国产91在线网站 | 成人一区电影 | 中文字幕在线看 | 久久久福利 | 日本精品在线看 | 午夜精品久久久久久久久久久久久久 | 久久99视频免费观看 | 亚洲精品资源在线观看 | 国色天香av | 97**国产露脸精品国产 | 久久人人爽人人片 | av在线看片| 日本99久久 | 国产精品网红直播 | 欧美午夜性 | www.av免费 | 日韩中文在线视频 | 日韩最新av在线 | 久久精品国亚洲 | 成人av网址大全 | 中文字幕视频一区二区 | 亚洲一级黄色大片 | 日韩免费视频线观看 | 天天射天天拍 | 人人澡超碰碰97碰碰碰软件 | 国产专区精品 | 狠狠色伊人亚洲综合网站野外 | 色综合久久五月 | 色91av| 国产原创在线 | 最新国产一区二区三区 | 日韩91av | a在线v | 天天干天天草天天爽 | 国产精品久久一区二区三区不卡 | 久香蕉 | 国产v欧美 | 99精品亚洲| 久久久久五月天 | 日韩一级黄色大片 | 国产精品18久久久久久久久 | 91在线一区二区 | 国产视频 亚洲精品 | 曰韩精品| 国产成人久久精品 | 国产黄a三级三级 | 久久精品国产免费看久久精品 | 色噜噜狠狠色综合中国 | 精品伦理一区二区三区 | 人人干人人做 | 中文字幕在线观看你懂的 | 天堂在线一区二区三区 | 在线 影视 一区 | 99热这里是精品 | 98精品国产自产在线观看 | 亚洲国产中文在线 | 中文字幕在线视频免费播放 | 亚洲乱码精品久久久久 | 国产美腿白丝袜足在线av | 国产精品久久久久久久免费大片 | 91在线看片 | 玖玖视频国产 | 久久久久国产精品视频 | 久久精品一 | 在线观看黄色的网站 | 在线电影 一区 | 99久久这里有精品 | 国产在线观看你懂得 | 色婷婷综合视频在线观看 | 黄色免费视频在线观看 | 免费大片av | 国产亚洲一区二区在线观看 | 最新超碰 | 免费精品久久久 | 久久69精品 | 久艹视频在线观看 | 免费一级特黄录像 | 久久久久国产精品一区二区 | 精品视频123区在线观看 | 日韩欧美一区二区三区在线观看 | 亚洲精品中文字幕视频 | 8x成人免费视频 | 婷婷视频在线播放 | 99在线观看免费视频精品观看 | 亚洲综合激情五月 | 亚洲激色 | 黄色91免费观看 | 超碰国产在线播放 | 96精品高清视频在线观看软件特色 | 中文字幕乱码亚洲精品一区 | 在线观看中文 | 99r国产精品 | 国产精品毛片久久久 | 精品国产1区2区3区 国产欧美精品在线观看 | 日韩欧美视频免费观看 | 97在线观看免费高清 | 日本黄色免费看 | 中日韩免费视频 | 高清国产午夜精品久久久久久 | 日韩成人一级大片 | 欧美日产在线观看 | 国产操在线 | 婷婷爱五月天 | 免费男女羞羞的视频网站中文字幕 | 美国三级黄色大片 | 91在线视频免费播放 | 久草男人天堂 | 在线免费亚洲 | 色综合亚洲精品激情狠狠 | 国产美女精品 | 丁香婷婷深情五月亚洲 | 特级西西www44高清大胆图片 | 在线视频欧美精品 | 麻豆视频在线观看免费 | 91精品免费在线 | 亚洲自拍偷拍色图 | 亚洲日本色 | 日韩精品免费一区二区三区 | 五月婷网 | 激情五月激情综合网 | 免费看一级特黄a大片 | 国产精品一区二区在线看 | 国产日韩精品一区二区 | 91大片成人网 | 成人羞羞视频在线观看免费 | 鲁一鲁影院 | 操操操干干干 | 久久99精品国产麻豆婷婷 | 日本精品二区 | 国产精品门事件 | 日韩有色| 天天操夜夜操天天射 | www91在线观看 | 色 中文字幕 | 三级性生活视频 | 成年人免费在线观看网站 | 久久精品超碰 | 午夜精品区 | 在线成人av | 国产九九九九九 | 精品99999| 99精品在线免费在线观看 | 久久看看 | 日本精品久久久久中文字幕5 | 超碰人人舔 | 亚洲黄色一级电影 | 在线日本看片免费人成视久网 | 亚洲国产欧洲综合997久久, | 亚洲天堂在线观看完整版 | 欧美激精品 | 精品国产久 | 手机在线看永久av片免费 | 国产理论一区二区三区 | 精品一区二区在线免费观看 | 国产精品毛片久久久 | 六月激情婷婷 | 激情综合色图 | 日韩视频免费 | 国产日韩精品一区二区 | 久久激情五月丁香伊人 | 亚洲精品美女久久久久 | 成人一区二区三区在线观看 | 三级黄色网址 | www.黄色片.com | 日韩av影片在线观看 | 欧美 日韩 久久 | 国产蜜臀av | 亚洲天堂精品视频在线观看 | 婷婷伊人综合 | 亚洲一区天堂 | 天天夜夜亚洲 | 亚洲国产成人精品在线观看 | 欧美日韩免费看 | 伊人夜夜| 美女黄视频免费看 | 日韩精品一区二区在线观看 | 国产又黄又爽又猛视频日本 | 久久精品91视频 | 综合色播 | 黄色av一级 | 狠狠躁天天躁 | 一性一交视频 | 日本黄色免费大片 | 日韩乱理| 久艹视频在线免费观看 | 在线免费观看不卡av | 久久99国产精品视频 | 午夜国产影院 | 国产视频一区二区在线播放 | 日韩一区二区三区免费视频 | 成年人在线看片 | 婷色在线 | 亚洲一区二区麻豆 | 天天干天天做天天爱 | 日韩一区二区久久 | 免费一级特黄录像 | 欧洲精品亚洲精品 | 欧美精品一区二区免费 | 91激情视频在线 | 天天干天天操天天干 | 一本一本久久a久久精品综合小说 | 成人综合婷婷国产精品久久免费 | 伊人日日干 | 国产精品18久久久久久vr | 一本一本久久a久久精品综合 | 成人国产一区 | 欧美激情xxxx| 又色又爽的网站 | 国产精品专区一 | 欧美91精品久久久久国产性生爱 | 国产精品尤物视频 | 狠狠操天天干 | 国产一区高清在线 | 超碰成人网 | 国产又粗又猛又黄 | 在线色亚洲 | 亚洲国产免费av | 午夜在线免费视频 | 国产精品18videosex性欧美 | 久久久久久久久久久久久久电影 | 亚洲免费小视频 | 久久久久久久免费看 | 国产精品一区二区精品视频免费看 | 国产精品久久麻豆 | 日韩电影中文 | 中文字幕黄网 | 麻豆成人精品 | 国产精品欧美久久久久天天影视 | 国产午夜av | 日本中文字幕在线播放 | 深爱激情综合 | 激情影院在线观看 | 五月天视频网 | 91视频免费视频 | a黄色一级 | 亚洲天天摸日日摸天天欢 | 在线黄色毛片 | 国产激情小视频在线观看 | 国产黄色在线网站 | 免费看一级一片 | 日韩免费精品 | 亚洲人片在线观看 | 伊人国产女 | av综合av | 婷香五月| 日韩久久一区二区 | 欧美日韩高清一区 | 综合久色| 久久精品99北条麻妃 | 国产一区二区影院 | 三三级黄色片之日韩 | 五月婷色 | 激情综合网五月 | 黄色www在线观看 | 国产成人精品av在线 | 99久久99久久精品国产片果冰 | 中文字幕在线有码 | 久久久久久久亚洲精品 | 色多多在线观看 | 色偷偷888欧美精品久久久 | 国产激情电影综合在线看 | 日韩免费不卡视频 | 日韩有码第一页 | 国产一级视频在线 | 日本中文字幕一二区观 | 另类老妇性bbwbbw高清 | 中文字幕在线观看第一页 | 国内精品久久久久久久 | 国产不卡视频在线播放 | 九九热国产视频 | 一区二区 不卡 | 欧美一区二区日韩一区二区 | 国产精品免费视频一区二区 | 婷婷播播网| 色在线视频网 | 麻豆影视网站 |