精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

面向大規模深度學習訓練的緩存優化實踐

人工智能 深度學習
近些年,隨著深度學習的崛起, Alluxio 分布式緩存技術逐步成為業界解決云上 IO 性能問題的主流方案。不僅如此,Alluxio 還天然具備數據湖所需的統一管理和訪問的能力。本文將分享面向大規模深度學習訓練的緩存優化,主要分析如今大規模深度學習訓練的存儲現狀與挑戰,說明緩存數據編排在深度學習訓練中的應用,并介紹大規模緩存系統的資源分配與調度。

一、項目背景和緩存策略

首先來分享一下相關背景。

圖片

近年來,AI 訓練應用越來越廣泛。從基礎架構角度來看,無論是大數據還是 AI 訓練集群中,大多使用存儲與計算分離的架構。比如很多 GPU 的陣列放到一個很大的計算集群中,另外一個集群是存儲。也可能是使用的一些云存儲,像微軟的 Azure 或者是亞馬遜的 S3 等。

這樣的基礎架構的特點是,首先,計算集群中有很多非常昂貴的 GPU,每臺  GPU 往往有一定的本地存儲,比如 SSD 這樣的幾十 TB 的存儲。這樣一個機器組成的陣列中,往往是用高速網絡去連接遠端,比如 Coco、 image net、YouTube 8M 之類的非常大規模的訓練數據是以網絡進行連接的。

圖片

如上圖所示,數據有可能會成為下一個 AI 訓練的瓶頸。我們觀察到數據集越來越大,隨著 AI 應用更加廣泛,也在積累更多的訓練數據。同時 GPU 賽道是非常卷的。比如 AMD、TPU 等廠商,花費了大量精力去優化硬件和軟件,使得加速器,類似 GPU、TPU這些硬件越來越快。隨著公司內加速器的應用非常廣泛之后,集群部署也越來越大。這里的兩個表呈現了關于數據集以及 GPU 速度的一些變化。之前的 K80 到 V100、 P100、 A100,速度是非常迅速的。但是,隨著速度越來越快,GPU 變得越來越昂貴。我們的數據,比如 IO 速度能否跟上 GPU 的速度,是一個很大的挑戰。

圖片

如上圖所示,在很多大公司的應用中,我們觀察到這樣一個現象:在讀取遠程數據的時候,GPU 是空閑的。因為 GPU 是在等待遠程數據讀取,這也就意味著 IO 成為了一個瓶頸,造成了昂貴的 GPU 被浪費。有很多工作在進行優化來緩解這一瓶頸,緩存就是其中很重要的一個優化方向。這里介紹兩種方式。

圖片

第一種,在很多應用場景中,尤其是以 K8s 加 Docker 這樣的基礎 AI 訓練架構中,用了很多本地磁盤。前文中提到 GPU 機器是有一定的本地存儲的,可以用本地磁盤去做一些緩存,把數據先緩存起來。

啟動了一個 GPU 的 Docker 之后,不是馬上啟動 GPU 的 AI 訓練,而是先去下載數據,把數據從遠端下載到 Docker 內部,也可以是掛載等方式。下載到 Docker 內部之后再開始訓練。這樣盡可能的把后邊的訓練的數據讀取都變成本地的數據讀取。本地 IO 的性能目前來看是足夠支撐 GPU 的訓練的。VLDB 2020 上面,有一篇 paper,CoorDL,是基于 DALI 進行數據緩存。

這一方式也帶來了很多問題。首先,本地的空間是有限的,意味著緩存的數據也是有限的,當數據集越來越大的時候,很難緩存到所有數據。另外,AI 場景與大數據場景有一個很大的區別是,AI 場景中的數據集是比較有限的。不像大數據場景中有很多的表,有各種各樣的業務,每個業務的數據表的內容差距是非常大的。在 AI 場景中,數據集的規模、數據集的數量遠遠小于大數據場景。所以常常會發現,公司中提交的任務很多都是讀取同一個數據。如果每個人下載數據到自己本地,其實是不能共享的,會有非常多份數據被重復存儲到本地機器上。這種方式顯然存在很多問題,也不夠高效。

圖片

接下來介紹第二種方式。既然本地的存儲不太好,那么,是否可以使用像 Alluxio 這樣一個分布式緩存來緩解剛才的問題,分布式緩存有非常大的容量來裝載數據。另外,Alluxio 作為一個分布式緩存,很容易進行共享。數據下載到 Alluxio 中,其他的客戶端,也可以從緩存中讀取這份數據。這樣看來,使用 Alluxio 可以很容易地解決上面提到的問題,為 AI 訓練性能帶來很大的提升。微軟印度研究院在 FAST2020 發表的名為 Quiver 的一篇論文,就提到了這樣的解決思路。但是我們分析發現,這樣一個看似完美的分配方案,還是比較靜態的,并不高效。同時,采用什么樣的 cache 淘汰算法,也是一個很值得討論的問題。

圖片

如上圖所示,是使用 Alluxio 作為 AI 訓練的緩存的一個應用。使用 K8s 做整個集群任務的調度和對 GPU、CPU、內存等資源的管理。當有用戶提交一個任務到 K8s 時,K8s 首先會做一個插件,通知 Alluxio 的 master,讓它去下載這部分數據。也就是先進行一些熱身,把作業可能需要的任務,盡量先緩存一些。當然不一定非得緩存完,因為Alluxio 是有多少數據,就使用多少數據。剩下的,如果還沒有來得及緩存,就從遠端讀取。另外,Alluxio master 得到這樣的命令之后,就可以讓調度它的 worker 去遠端。可能是云存儲,也可能是 Hadoop 集群把數據下載下來。這個時候,K8s 也會把作業調度到 GPU 集群中。比如上圖中,在這樣一個集群中,它選擇第一個節點和第三個節點啟動訓練任務。啟動訓練任務之后,需要進行數據的讀取。在現在主流的像 PyTorch、Tensorflow  等框架中,也內置了 Prefetch,也就是會進行數據預讀取。它會讀取已經提前緩存的 Alluxio 中的緩存數據,為訓練數據 IO 提供支持。當然,如果發現有一些數據是沒有讀到的,Alluxio 也可以通過遠端進行讀取。Alluxio 作為一個統一的接口是非常好的。同時它也可以進行數據的跨作業間的共享。

圖片

如上圖所示,比如又有一個人提交了同樣數據的另一個作業,消耗的是同一個數據集,這個時候,當提交作業到 K8s 的時候,Alluxio 就知道已經有這部分數據了。如果 Alluxio 想做的更好,甚至是可以知道,數據即將會被調度到哪臺機器上。比如這個時候調度到 node 1、node 3 和 node 4 上。node 4 的數據,甚至可以做一些副本進行拷貝。這樣所有的數據,即使是 Alluxio 內部,都不用跨機器讀,都是本地的讀取。所以看起來 Alluxio 對 AI 訓練中的 IO 問題有了很大的緩解和優化。但是如果仔細觀察,就會發現兩個問題。

圖片

第一個問題就是緩存的淘汰算法非常低效,因為在 AI 場景中,訪問數據的模式跟以往有很大區別。第二個問題是,緩存作為一種資源,與帶寬(即遠程存儲的讀取速度)是一個對立的關系。如果緩存大,那么從遠端讀取數據的機會就小。如果緩存很小,則很多數據都得從遠端讀取。如何很好地調度分配這些資源也是一個需要考慮的問題。

圖片

在討論緩存的淘汰算法之前,先來看一下 AI 訓練中數據訪問的過程。在 AI 訓練中,會分為很多個 epoch,不斷迭代地去訓練。每一個訓練 epoch,都會讀取每一條數據,并且僅讀一次。為了防止訓練的過擬合,在每一次 epoch 結束之后,下一個 epoch 的時候,讀取順序會變化,會進行一個 shuffle。也就是每次每個 epoch 都會把所有數據都讀取一次,但是順序卻不一樣。

Alluxio 中默認的 LRU 淘汰算法,顯然不能很好地應用到AI訓練場景中。因為 LRU 是利用緩存的本地性。本地性分為兩方面,首先是時間本地性,也就是現在訪問的數據,馬上可能還會即將訪問。這一點,在 AI 訓練中并不存在。因為現在訪問的數據,在下一輪的時候才會訪問,而且下一輪的時候都會訪問。沒有一個特殊的概率,一定是比其他數據更容易被訪問。另一方面是數據本地性,還有空間本地性。也就是,為什么 Alluxio 用比較大的 block 緩存數據,是因為某條數據讀取了,可能周圍的數據也會被讀取。比如大數據場景中,OLAP 的應用,經常會進行表的掃描,意味著周圍的數據馬上也會被訪問。但是在 AI 訓練場景中是不能應用的。因為每次都會 shuffle,每次讀取的順序都是不一樣的。因此 LRU 這種淘汰算法并不適用于 AI 訓練場景。

圖片

不僅是 LRU,像 LFU 等主流的淘汰算法,都存在這樣一個問題。因為整個 AI 訓練對數據的訪問是非常均等的。所以,可以采用最簡單的緩存算法,只要緩存一部分數據就可以,永遠不用動。在一個作業來了以后,永遠都只緩存一部分數據。永遠都不要淘汰它。不需要任何的淘汰算法。這可能是目前最好的淘汰機制。

如上圖中的例子。上面是 LRU 算法,下面是均等方法。在開始只能緩存兩條數據。我們把問題簡單一些,它的容量只有兩條,緩存 D 和 B 這兩條數據,中間就是訪問的序列。比如命中第一個訪問的是 B,如果是 LRU,B 存在的緩存中命中了。下一條訪問的是 C,C 并不在 D 和 B,LRU 的緩存中,所以基于 LRU 策略,會把 D 替換掉,C 保留下來。也就是這個時候緩存是 C 和 B。下一個訪問的是 A,A 也不在 C 和 B 中。所以會把B 淘汰掉,換成 C 和 A。下一個就是 D,D 也不在緩存中,所以換成 D 和 A。以此類推,會發現所有后面的訪問,都不會再命中緩存。原因是在進行 LRU 緩存的時候,把它替換出來,但其實在一個 epoch 中已經被訪問一次,這個 epoch 中就永遠不會再被訪問到了。LRU 反倒把它進行緩存了,LRU 不但沒有幫助,反倒是變得更糟糕了。不如使用 uniform,比如下面這種方式。

下面這種 uniform 的方式,永遠在緩存中緩存 D 和 B,永遠不做任何的替換。在這樣情況下,你會發現至少有 50% 的命中率。所以可以看到,緩存的算法不用搞得很復雜,只要使用 uniform 就可以了,不要使用 LRU、LFU 這類算法。

圖片

對于第二個問題,也就是關于緩存和遠程帶寬之間關系的問題。現在所有主流的 AI 框架中都內置了數據預讀,防止 GPU 等待數據。所以當 GPU 做訓練的時候,其實是觸發了 CPU 預取下一輪可能用到的數據。這樣可以充分利用 GPU 的算力。但當遠程存儲的 IO 成為瓶頸的時候,就意味著 GPU 要等待 CPU 了。所以 GPU 會有很多的空閑時間,造成了資源的浪費。希望可以有一個比較好的調度管理方式,緩解 IO 的問題。

圖片

緩存和遠程 IO 對整個作業的吞吐是有很大影響的。所以除了 GPU、CPU 和內存,緩存和網絡也是需要調度的。在以往大數據的發展過程中,像 Hadoop、yarn、my source、K8s 等,主要都是調度 CPU、內存、GPU。對于網絡,尤其對于緩存的控制都不是很好。所以,我們認為,在 AI 場景中,需要很好的調度和分配它們,來達到整個集群的最優。

二、SiloD 框架

圖片

在 EuroSys 2023 發表了這樣一篇文章,它是一個統一的框架,來調度計算資源和存儲資源。

圖片

整體架構如上圖所示。左下角是集群中的 CPU 和 GPU 硬件計算資源,以及存儲資源,如 NFS、云存儲 HDFS 等。在上層有一些 AI 的訓練框架 TensorFlow、PyTorch 等。我們認為需要加入一個統一管理和分配計算和存儲資源的插件,也就是我們提出的 SiloD。

圖片

如上圖所示,一個作業可以達到什么樣的吞吐和性能,是由 GPU 和 IO 的最小值決定的。使用多少個遠程 IO,就會使用多少遠端的 networking。可以通過這樣一個公式算出訪問速度。作業速度乘以緩存未命中率,也就是(1-c/d)。其中 c 就是緩存的大小,d 就是數據集。這也就意味著數據只考慮 IO 可能成為瓶頸的時候,大概的吞吐量是等于(b/(1-c/d)),b 就是遠端的帶寬。結合以上三個公式,可以推出右邊的公式,也就是一個作業最終想達到什么樣的性能,可以這樣通過公式去計算沒有 IO 瓶頸時的性能,和有 IO 瓶頸時的性能,取二者中的最小值。

圖片

得到上面的公式之后,把它微分一下,就可以得到緩存的有效性,或者叫做緩存效率。即雖然作業很多,但在分配緩存的時候不能一視同仁。每一個作業,基于數據集的不同,速度的不同,緩存分配多少是很有講究的。這里舉一個例子,就以這個公式為例,如果發現一個作業,速度非常快,訓練起來非常快,同時數據集很小,這時候就意味著分配更大的緩存,收益會更大。

圖片

基于以上觀察,可以使用 SiloD,進行緩存和網絡的分配。而且緩存的大小,是針對每個作業的速度,以及數據集整個的大小來進行分配的。網絡也是如此。所以整個架構是這樣的:除了主流的像 K8s 等作業調度之外,還有數據管理。在圖左邊,比如緩存的管理,要統計或者監控分配整個集群中緩存的大小,每個作業緩存的大小,以及每個作業使用到的遠程 IO 的大小。底下的作業,和 Alluxio 方式很像,都可以都使用 API 進行數據的訓練。每個 worker 上使用緩存對于本地的 job 進行緩存支持。當然它也可以在一個集群中跨節點,也可以進行共享。

圖片

經過初步測試和實驗,發現這樣一個分配方式可以使整個集群的使用率和吞吐量都得到非常明顯的提升,最高可以達到 8 倍的性能上的提升。可以很明顯的緩解作業等待、GPU 空閑的狀態。

圖片

對上述介紹進行一下總結:

第一,在 AI 或者深度學習訓練場景中,傳統的 LRU、LFU 等緩存策略并不適合,不如直接使用 uniform。

第二,緩存和遠程帶寬,是一對伙伴,對整體性能起到了非常大的作用。

第三,像 K8s、yarn 等主流調度框架,可以很容易繼承到 SiloD。

最后,我們在 paper 中做了一些實驗,不同的調度策略,都可以帶來很明顯的吞吐量的提升。

三、分布式緩存策略以及副本管理

圖片

我們還做了一些開源的工作。分布式緩存策略以及副本管理這項工作,已經提交給社區,現在處于 PR 階段。Alluxio master 主要做 Meta 的管理和整個 worker 集群的管理。真正緩存數據的是 worker。上面有很多以 block 為單位的塊兒去緩存數據。存在的一個問題是,現階段的緩存策略都是單個 worker 的,worker 內部的每個數據在進行是否淘汰的計算時,只需要在一個 worker 上進行計算,是本地化的。

圖片

如上圖所示的例子,如果 worker 1 上有 block A, block B 和 block C,基于 LRU 算出來 block C 是最長時間沒有使用的,就會把 block C淘汰。如果看一下全局的情況,就會發現這樣并不好。因為 block C 在整個集群中只有一個副本。把它淘汰之后,如果下面還有人要訪問 block C,只能從遠端拉取數據,就會帶來性能和成本的損失。我們提出做一個全局的淘汰策略。在這種情況下,不應該淘汰 block C,而應該淘汰副本比較多的。在這個例子中,應該淘汰 block A,因為它在其它的節點上仍然有兩個副本,無論是成本還是性能都要更好。

圖片

如上圖所示,我們做的工作是在每個 worker 上維護副本信息。當某一個 worker,比如加了一個副本,或者減了一個副本,首先會向 master 匯報,而 master 會把這個信息作為心跳返回值,返回給其它相關的 worker。其它 worker 就可以知道整個全局副本的實時變化。同時,更新副本信息。所以當進行 worker 內部的淘汰時,可以知道每一個 worker 在整個全局有多少個副本,就可以設計一些權重。比如仍然使用 LRU,但是會加上副本個數的權重,綜合考量淘汰和替換哪些數據。

經過我們初步的測試,在很多領域,無論是 big data,AI training 中都可以帶來很大的提升。所以不僅僅是優化一臺機器上一個 worker 的緩存命中。我們的目標是使得整個集群的緩存命中率都得到提升。 

圖片

后,對全文進行一下總結。首先,在 AI 的訓練場景中,uniform 緩存淘汰算法要比傳統的 LRU、LFU 更好。第二,緩存和遠端的 networking 也是一個需要被分配和調度的資源。第三,在進行緩存優化時,不要只局限在一個作業或者一個 worker 上,應該統攬整個端到端全局的參數,才能使得整個集群的效率和性能有更好的提升。

責任編輯:姜華 來源: DataFunTalk
相關推薦

2022-07-07 11:00:09

美團模型實踐

2023-04-04 07:32:35

TorchRec模型訓練

2017-03-07 13:14:04

深度學習

2023-03-05 15:51:54

AIGCChatGPT

2021-04-22 13:38:21

前端開發技術

2025-10-16 09:14:48

2017-04-13 09:18:02

深度學習文本分類

2017-09-11 15:19:05

CoCoA機器學習分布式

2016-01-15 09:59:12

機器學習數據集

2013-03-22 14:44:52

大規模分布式系統飛天開放平臺

2023-06-28 08:23:41

搜索語義模型

2021-11-15 10:00:22

模型人工智能NLP

2025-06-10 08:15:00

LLM大語言模測試

2020-06-10 10:00:53

Serverless數據處理函數

2024-01-30 07:56:57

2023-11-27 13:51:00

模型訓練

2025-03-06 10:33:04

2016-01-12 14:59:40

分布式存儲分布式存儲架構

2024-08-29 12:56:03

2025-09-10 09:59:52

點贊
收藏

51CTO技術棧公眾號

久久综合视频网| 狠狠入ady亚洲精品| 日本韩国欧美一区| 一区二区三区的久久的视频| 91片黄在线观看喷潮| 欧美日韩国产一区精品一区| 日韩国产在线看| 中文字幕有码av| 日韩伦理电影网站| wwwwxxxxx欧美| 国产日产欧美精品| 日本五十路女优| 欧美一区电影| 精品国产乱码久久久久久老虎 | 亚洲午夜电影在线观看| 久久99精品久久久久久久久久 | 国产女主播一区二区| 久久久蜜桃一区二区| 亚洲天天综合| 亚洲日本中文字幕| 午夜激情视频网| 裤袜国产欧美精品一区| 亚洲激情校园春色| 日本在线播放一区| 粉嫩小泬无遮挡久久久久久| 青青国产91久久久久久| 国模吧一区二区三区| 国产一级淫片久久久片a级| 国产精品久av福利在线观看| 欧美二区乱c少妇| 男人亚洲天堂网| 美足av综合网| 自拍av一区二区三区| 欧美一区1区三区3区公司 | 久久99精品国产麻豆不卡| 98视频在线噜噜噜国产| 欧美日韩亚洲国产另类| 色喇叭免费久久综合| 精品亚洲男同gayvideo网站| 久久久久亚洲av无码网站| 日韩免费大片| 在线观看免费视频综合| 国产精品va无码一区二区| 污污视频在线看| 国产精品国产成人国产三级| 欧美一区二区三区四区五区六区| 天堂成人在线视频| 国产成人免费视频网站高清观看视频| 国产有码一区二区| 中文字幕第2页| 日韩在线一二三区| 秋霞av国产精品一区| 少妇一级淫片免费放中国| 欧美日韩福利| 久久久久国产视频| 久久免费在线观看视频| 国产精品v亚洲精品v日韩精品| 精品国内亚洲在观看18黄| 精品丰满少妇一区二区三区| 欧美熟乱15p| 在线电影中文日韩| av资源在线免费观看| 99久久影视| 久久精品人人做人人爽| 日韩一级片大全| 好看的日韩av电影| 77777少妇光屁股久久一区| 国产在线一二区| 亚洲午夜极品| 91极品女神在线| 国产精品免费精品一区| 丝袜美腿一区二区三区| 国产精品丝袜久久久久久高清| 中文字幕乱码在线观看| 国产综合成人久久大片91| 91中文字幕在线| 亚洲免费成人在线| 91网站在线观看视频| 欧洲av一区| 欧美边添边摸边做边爱免费| 一区二区视频在线| 精品国产一区三区| 四虎影视4hu4虎成人| 7777精品伊人久久久大香线蕉| 亚洲国产午夜精品| 另类春色校园亚洲| 中文字幕精品网| 美女福利视频在线观看| 国产精品一区毛片| 国产精品一区二区三区久久久| 国产麻豆免费视频| 99国产精品久久久久久久久久久| 日韩高清在线播放| 69xxx在线| 色婷婷精品久久二区二区蜜臂av| 亚洲精品久久久久久宅男| 日韩欧美久久| 伊人久久综合97精品| www青青草原| 香蕉久久夜色精品国产| 国产美女精品视频免费观看| 欧美 日韩 人妻 高清 中文| 国产人妖乱国产精品人妖| 激情图片qvod| 日本综合字幕| 日韩精品一区二区三区中文精品| 四虎影成人精品a片| 一本一本久久a久久综合精品| 97av在线视频免费播放| 国产精品系列视频| 2024国产精品| 国产制服91一区二区三区制服| 色尼玛亚洲综合影院| 日韩欧美亚洲国产另类| 免费网站在线高清观看| 一区视频在线看| 91夜夜未满十八勿入爽爽影院| 天堂av中文在线资源库| 一区二区三区欧美| 天堂网在线免费观看| 老司机aⅴ在线精品导航| 美日韩精品免费视频| 中文字幕日韩国产| 久久色在线观看| 无码熟妇人妻av在线电影| 国语自产精品视频在线看抢先版结局| 亚洲国产精品网站| 欧美黄色免费观看| 精品一区二区三区蜜桃| 神马影院一区二区| 亚洲天堂免费电影| 亚洲第一国产精品| 美女视频黄免费| 精品在线你懂的| 亚洲欧美日本国产有色| 亚洲四虎影院| 亚洲最新av在线| 伦av综合一区| 91啪亚洲精品| 欧美性大战久久久久xxx| 红杏一区二区三区| 久久久久久久久国产| 国产成人毛毛毛片| **欧美大码日韩| 亚洲怡红院在线| 日韩av自拍| 国产欧美日韩精品专区| 91精品大全| 欧美日韩免费一区二区三区视频 | 国产又粗又长又黄| 国产精品传媒在线| 亚洲午夜精品一区| 91精品精品| 亚洲一区亚洲二区| 最新超碰在线| 精品久久久三级丝袜| 国产精品九九九九九九| 福利电影一区二区三区| 免费在线观看视频a| 欧美精品国产白浆久久久久| 51午夜精品视频| 青青久草在线| 在线观看视频一区二区欧美日韩| www.狠狠爱| 日本aⅴ免费视频一区二区三区| 亚洲高清资源综合久久精品| 啪啪av大全导航福利综合导航| 久久伊人精品一区二区三区| 亚洲va天堂va欧美ⅴa在线| 亚洲一区二区三区在线| 黄色片视频免费观看| 一区二区国产在线观看| 青青草原成人| 国产亚洲观看| 97色在线播放视频| 国产黄色片在线播放| 制服.丝袜.亚洲.中文.综合| 青娱乐国产精品| 95精品视频在线| 免费看a级黄色片| 久久久久久久久丰满| 国产精品视频免费观看| 在线免费日韩片| 久久精品国产亚洲一区二区| 刘亦菲久久免费一区二区| 黑丝美女久久久| 69夜色精品国产69乱| 成人午夜电影久久影院| 91在线视频观看免费| 午夜日韩激情| 日韩精品不卡| 91欧美日韩在线| 国产精品极品美女粉嫩高清在线| 自拍亚洲图区| 亚洲色图第一页| 国产成人麻豆精品午夜在线| 一本色道久久综合亚洲aⅴ蜜桃| 久久免费手机视频| 成人av电影免费在线播放| 日本超碰在线观看| 亚洲国产高清一区二区三区| 杨幂一区欧美专区| 欧美黄色影院| 亚洲专区中文字幕| 韩日成人影院| 欧美激情视频网| av在线天堂播放| 亚洲福利视频网| 91麻豆视频在线观看| 欧美性猛交xxxx乱大交| 国产精品老熟女一区二区| 国产肉丝袜一区二区| 国产69视频在线观看| 麻豆精品久久精品色综合| 免费看一级大黄情大片| 欧美黄污视频| 亚洲国产一区二区三区在线| 亚洲日本三级| 国产九区一区在线| 久久久久久爱| 国产精品免费一区豆花| 成人私拍视频| 97在线视频观看| 黄色在线观看视频网站| 日韩亚洲综合在线| 国产小视频免费在线网址| 日韩电影中文字幕av| 人妻视频一区二区三区| 91精品国产乱| 亚洲熟妇av乱码在线观看| 欧美午夜片在线免费观看| 精品无码久久久久| 亚洲美女淫视频| 女性裸体视频网站| 欧美韩日一区二区三区四区| 国产艳俗歌舞表演hd| jizz一区二区| 日韩综合第一页| 国产成a人无v码亚洲福利| 中文字幕在线观看视频www| 寂寞少妇一区二区三区| 欧美一级xxxx| 久久av老司机精品网站导航| 中文字幕 91| 捆绑调教一区二区三区| 日本人69视频| 久久精品免费观看| 欧美性受xxxxxx黑人xyx性爽| 美女一区二区三区在线观看| 中文字幕一区二区三区四区在线视频| 麻豆91精品| 超碰网在线观看| 日韩黄色小视频| 网站一区二区三区| 久久99久久久久| 国产永久免费网站| 国产一区二区免费看| 久久久久久无码精品人妻一区二区| 国产综合色精品一区二区三区| 青娱乐国产精品视频| 国产91精品精华液一区二区三区 | 不卡一区二区中文字幕| 超碰caoprom| 26uuu亚洲| 舐め犯し波多野结衣在线观看| 欧美韩日一区二区三区| 久久福利免费视频| 亚洲图片有声小说| 久久久午夜影院| 欧美综合在线视频| 国产又黄又大又爽| 日韩视频一区二区三区| 欧美一级特黄aaaaaa大片在线观看| 日韩黄色在线免费观看| av午夜在线| 欧美乱妇40p| 妞干网免费在线视频| 国产精欧美一区二区三区| 日日夜夜综合| 国产日韩欧美精品| 禁断一区二区三区在线| 中文字幕av导航| 亚洲精品专区| 啊啊啊国产视频| 国产精品18久久久久久vr| 国产精品无码一区二区三区免费 | 国产主播一区二区三区| 色哟哟无码精品一区二区三区| 久久综合色播五月| 看黄色录像一级片| 亚洲电影一区二区三区| 无码人妻丰满熟妇区五十路| 制服丝袜亚洲播放| 日本福利片高清在线观看| 日韩视频精品在线| 成人动漫一区| 91在线观看免费高清| 中文字幕伦av一区二区邻居| 黄色特一级视频| 青青草国产成人av片免费| 国产人成视频在线观看| 成人欧美一区二区三区黑人麻豆| 香蕉视频一区二区| 欧美乱熟臀69xxxxxx| 日韩在线无毛| 欧美极品美女视频网站在线观看免费| 韩日一区二区| 久久大片网站| 你懂的国产精品| 成人3d动漫一区二区三区| 成人免费视频免费观看| 欧美一级片在线视频| 色婷婷亚洲综合| 黄色www视频| 久久综合伊人77777尤物| 粉嫩一区二区| 国产精品一区视频| 中国成人一区| 粉色视频免费看| 日本一区二区三区国色天香| 日本一级黄色录像| 欧美成人国产一区二区| 欧洲日本在线| 国产精品视频xxx| 自拍自偷一区二区三区| 色欲色香天天天综合网www| 国产激情偷乱视频一区二区三区| 91狠狠综合久久久久久| 一本色道久久综合狠狠躁的推荐| 色噜噜在线播放| 欧美高清视频一区二区| 91麻豆精品一二三区在线| 亚洲高清乱码| 日韩av在线发布| 精品人妻一区二区三区视频| 亚洲成人一二三| 国 产 黄 色 大 片| 欧美日韩国产成人| 亚洲啊v在线免费视频| 国产日产欧美一区二区| 久草这里只有精品视频| 99热99这里只有精品| 欧美三级资源在线| 川上优的av在线一区二区| 日韩av电影手机在线观看| 亚洲人挤奶视频| 日韩一级片播放| 欧美激情一区二区三区四区 | 爽好久久久欧美精品| 中文字幕在线看高清电影| 色老汉一区二区三区| 黄色小视频在线免费观看| 国产高清在线不卡| 日本在线电影一区二区三区| 免费一区二区三区在线观看 | 亚洲精品视频免费在线观看| 在线一区av| 午夜精品视频在线观看一区二区| 日本va欧美va精品发布| 国产激情av在线| 欧美夫妻性生活| 美洲精品一卡2卡三卡4卡四卡| 国产精品一区二区三区不卡| 一本久道久久综合狠狠爱| 国产精品无码一区二区三区免费| 色偷偷一区二区三区| 99青草视频在线播放视| 91麻豆国产语对白在线观看| 亚洲小说区图片区| 西西大胆午夜视频| 欧美少妇一区二区| 成人福利在线观看视频| 国产精品一区二区不卡视频| 免费在线播放第一区高清av| av电影在线不卡| 91.麻豆视频| 春色校园综合激情亚洲| 人禽交欧美网站免费| 国产综合色视频| 久久久午夜影院| 日韩中文字幕视频在线| 澳门精品久久国产| 91淫黄看大片| 一区二区免费视频| 黄色在线视频观看网站| 91黄在线观看| 久久午夜影视| 欧美特级一级片| 亚洲欧美中文日韩在线| 欧美视频三区| 久久久久国产精品熟女影院| 亚洲精品国产精品乱码不99| 国产又爽又黄网站亚洲视频123| 国产精品永久免费在线| 欧美午夜一区| 日本伦理一区二区三区| 亚洲国产美女久久久久| 日日夜夜亚洲精品| 欧美激情国产精品日韩| 一区二区在线看|