婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > 淺談Tensorflow2對(duì)GPU內(nèi)存的分配策略

淺談Tensorflow2對(duì)GPU內(nèi)存的分配策略

熱門(mén)標(biāo)簽:旅游廁所地圖標(biāo)注怎么弄 成都呼叫中心外呼系統(tǒng)哪家強(qiáng) 百應(yīng)電話機(jī)器人總部 西青語(yǔ)音電銷(xiāo)機(jī)器人哪家好 電梯新時(shí)達(dá)系統(tǒng)外呼顯示e 地圖標(biāo)注與注銷(xiāo) 宿州電話機(jī)器人哪家好 無(wú)錫智能外呼系統(tǒng)好用嗎 南昌地圖標(biāo)注

一、問(wèn)題源起

從以下的異常堆棧可以看到是BLAS程序集初始化失敗,可以看到是執(zhí)行MatMul的時(shí)候發(fā)生的異常,基本可以斷定可能數(shù)據(jù)集太大導(dǎo)致memory不夠用了。

2021-08-10 16:38:04.917501: E tensorflow/stream_executor/cuda/cuda_blas.cc:226] failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED
2021-08-10 16:38:04.960048: E tensorflow/stream_executor/cuda/cuda_blas.cc:226] failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED
2021-08-10 16:38:04.986898: E tensorflow/stream_executor/cuda/cuda_blas.cc:226] failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED
2021-08-10 16:38:04.992366: E tensorflow/stream_executor/cuda/cuda_blas.cc:226] failed to create cublas handle: CUBLAS_STATUS_NOT_INITIALIZED
2021-08-10 16:38:04.992389: W tensorflow/stream_executor/stream.cc:1455] attempting to perform BLAS operation using StreamExecutor without BLAS support
Traceback (most recent call last):
  File "/home/mango/PycharmProjects/DeepLearing/minist_conv.py", line 32, in module>
    model.fit(train_images, train_labels, epochs=5, batch_size=64)
  File "/usr/local/lib/python3.9/dist-packages/tensorflow/python/keras/engine/training.py", line 1183, in fit
    tmp_logs = self.train_function(iterator)
  File "/usr/local/lib/python3.9/dist-packages/tensorflow/python/eager/def_function.py", line 889, in __call__
    result = self._call(*args, **kwds)
  File "/usr/local/lib/python3.9/dist-packages/tensorflow/python/eager/def_function.py", line 950, in _call
    return self._stateless_fn(*args, **kwds)
  File "/usr/local/lib/python3.9/dist-packages/tensorflow/python/eager/function.py", line 3023, in __call__
    return graph_function._call_flat(
  File "/usr/local/lib/python3.9/dist-packages/tensorflow/python/eager/function.py", line 1960, in _call_flat
    return self._build_call_outputs(self._inference_function.call(
  File "/usr/local/lib/python3.9/dist-packages/tensorflow/python/eager/function.py", line 591, in call
    outputs = execute.execute(
  File "/usr/local/lib/python3.9/dist-packages/tensorflow/python/eager/execute.py", line 59, in quick_execute
    tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
tensorflow.python.framework.errors_impl.InternalError:  Blas xGEMM launch failed : a.shape=[1,64,576], b.shape=[1,576,64], m=64, n=64, k=576
  [[node sequential/dense/MatMul (defined at home/mango/PycharmProjects/DeepLearing/minist_conv.py:32) ]] [Op:__inference_train_function_993]

Function call stack:
train_function

二、開(kāi)發(fā)環(huán)境

mango@mango-ubuntu:~$ /usr/local/cuda/bin/nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Wed_Jul_14_19:41:19_PDT_2021
Cuda~~ compilation tools, release 11.4, V11.4.100==
Build cuda_11.4.r11.4/compiler.30188945_0

mango@mango-ubuntu:~$ tail -n 10 /usr/include/cudnn_version.h
#ifndef CUDNN_VERSION_H_
#define CUDNN_VERSION_H_

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 2
#define CUDNN_PATCHLEVEL 2

#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)

#endif /* CUDNN_VERSION_H */

mango@mango-ubuntu:~$ python3 --version
Python 3.9.5

mango@mango-ubuntu:~$ nvidia-smi
Tue Aug 10 19:57:58 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.57.02    Driver Version: 470.57.02    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   54C    P0    N/A /  N/A |    329MiB /  2002MiB |      9%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1818      G   /usr/lib/xorg/Xorg                186MiB |
|    0   N/A  N/A      2002      G   /usr/bin/gnome-shell               45MiB |
|    0   N/A  N/A      3435      G   ...AAAAAAAAA= --shared-files       75MiB |
|    0   N/A  N/A      6016      G   python3                            13MiB |
+-----------------------------------------------------------------------------+

 

mango@mango-ubuntu:~$ python3
Python 3.9.5 (default, May 11 2021, 08:20:37) 
[GCC 10.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
2021-08-10 18:33:05.917520: I tensorflow/stream_executor/platform/default/dso_loader.cc:53] Successfully opened dynamic library libcudart.so.11.0
>>> tf.__version__
'2.5.0'
>>> 

三、Tensorflow針對(duì)GPU內(nèi)存的分配策略

By default, TensorFlow maps nearly all of the GPU memory of all GPUs (subject to CUDA_VISIBLE_DEVICES) visible to the process. This is done to more efficiently use the relatively precious GPU memory resources on the devices by reducing memory fragmentation.

默認(rèn)情況下,為了通過(guò)減少內(nèi)存碎片更有效地利用設(shè)備上相對(duì)寶貴的GPU內(nèi)存資源,TensorFlow進(jìn)程會(huì)使用所有可見(jiàn)的GPU。

In some cases it is desirable for the process to only allocate a subset of the available memory, or to only grow the memory usage as is needed by the process. TensorFlow provides two methods to control this.

在某些情況下,進(jìn)程只分配可用內(nèi)存的一個(gè)子集,或者只根據(jù)進(jìn)程的需要增加內(nèi)存使用量。TensorFlow提供了兩種方法來(lái)控制這種情況。

The first option is to turn on memory growth by calling tf.config.experimental.set_memory_growth, which attempts to allocate only as much GPU memory as needed for the runtime allocations: it starts out allocating very little memory, and as the program gets run and more GPU memory is needed, the GPU memory region is extended for the TensorFlow process. Memory is not released since it can lead to memory fragmentation. To turn on memory growth for a specific GPU, use the following code prior to allocating any tensors or executing any ops.

第一種選擇是通過(guò)調(diào)用tf.config.experimental.set_memory_growth來(lái)打開(kāi)內(nèi)存增長(zhǎng),它嘗試只分配運(yùn)行時(shí)所需的GPU內(nèi)存:它開(kāi)始分配很少的內(nèi)存,當(dāng)程序運(yùn)行時(shí)需要更多的GPU內(nèi)存時(shí),GPU內(nèi)存區(qū)域會(huì)進(jìn)一步擴(kuò)展增大。內(nèi)存不會(huì)被釋放,因?yàn)檫@會(huì)導(dǎo)致內(nèi)存碎片。為了打開(kāi)特定GPU的內(nèi)存增長(zhǎng),在分配任何張量或執(zhí)行任何操作之前,使用以下代碼。

gpus = tf.config.list_physical_devices('GPU')
if gpus:
  try:
    # Currently, memory growth needs to be the same across GPUs
    for gpu in gpus:
      tf.config.experimental.set_memory_growth(gpu, True)
    logical_gpus = tf.config.list_logical_devices('GPU')
    print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
  except RuntimeError as e:
    # Memory growth must be set before GPUs have been initialized
    print(e)

Another way to enable this option is to set the environmental variable TF_FORCE_GPU_ALLOW_GROWTH to true. This configuration is platform specific.

啟用該選項(xiàng)的另一種方法是將環(huán)境變量TF_FORCE_GPU_ALLOW_GROWTH設(shè)置為true。此配置是特定于平臺(tái)的。

The second method is to configure a virtual GPU device with tf.config.experimental.set_virtual_device_configuration and set a hard limit on the total memory to allocate on the GPU.

This is useful if you want to truly bound the amount of GPU memory available to the TensorFlow process. This is common practice for local development when the GPU is shared with other applications such as a workstation GUI.

第二種方法是使用tf.config.experimental.set_virtual_device_configuration配置虛擬GPU設(shè)備,并設(shè)置GPU上可分配的總內(nèi)存的硬限制。

如果你想真正將GPU內(nèi)存的數(shù)量綁定到TensorFlow進(jìn)程中,這是非常有用的。當(dāng)GPU與其他應(yīng)用程序(如工作站GUI)共享時(shí),這是本地開(kāi)發(fā)的常見(jiàn)做法。

gpus = tf.config.list_physical_devices('GPU')
if gpus:
  # Restrict TensorFlow to only allocate 1GB of memory on the first GPU
  try:
    tf.config.set_logical_device_configuration(
        gpus[0],
        [tf.config.LogicalDeviceConfiguration(memory_limit=1024)])
    logical_gpus = tf.config.list_logical_devices('GPU')
    print(len(gpus), "Physical GPUs,", len(logical_gpus), "Logical GPUs")
  except RuntimeError as e:
    # Virtual devices must be set before GPUs have been initialized
    print(e)

四、問(wèn)題分析驗(yàn)證

通過(guò)上邊對(duì)TensorFlow文檔的分析,默認(rèn)情況下會(huì)占用所有的GPU內(nèi)存,但是TensorFlow提供了兩種方式可以靈活的控制內(nèi)存的分配策略;

我們可以直接設(shè)置GPU內(nèi)存按需動(dòng)態(tài)分配

import tensorflow as tf
physical_gpus = tf.config.list_physical_devices('GPU')
tf.config.experimental.set_memory_growth(physical_gpus[0], True)

通過(guò)以下命令可以看到執(zhí)行過(guò)程中GPU內(nèi)存的占用最高為697M

mango@mango-ubuntu:~$ while true; do nvidia-smi; sleep 0.2; done;
Tue Aug 10 20:30:58 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.57.02    Driver Version: 470.57.02    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   58C    P0    N/A /  N/A |   1026MiB /  2002MiB |     72%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1818      G   /usr/lib/xorg/Xorg                186MiB |
|    0   N/A  N/A      2002      G   /usr/bin/gnome-shell               45MiB |
|    0   N/A  N/A      3435      G   ...AAAAAAAAA= --shared-files       73MiB |
|    0   N/A  N/A      6016      G   python3                            13MiB |
|    0   N/A  N/A     13829      C   /usr/bin/python3.9                697MiB |
+-----------------------------------------------------------------------------+

我們也可以限制最多使用1024M的GPU內(nèi)存

import tensorflow as tf
physical_gpus = tf.config.list_physical_devices('GPU')
tf.config.set_logical_device_configuration(physical_gpus[0], [tf.config.LogicalDeviceConfiguration(memory_limit=1024)])

同樣通過(guò)命令可以看到執(zhí)行過(guò)程中GPU內(nèi)存的占用最高為1455M

mango@mango-ubuntu:~$ while true; do nvidia-smi; sleep 0.2; done;
Tue Aug 10 20:31:24 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.57.02    Driver Version: 470.57.02    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0 Off |                  N/A |
| N/A   58C    P0    N/A /  N/A |   1784MiB /  2002MiB |     74%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1818      G   /usr/lib/xorg/Xorg                186MiB |
|    0   N/A  N/A      2002      G   /usr/bin/gnome-shell               46MiB |
|    0   N/A  N/A      3435      G   ...AAAAAAAAA= --shared-files       72MiB |
|    0   N/A  N/A      6016      G   python3                            13MiB |
|    0   N/A  N/A     13570      C   /usr/bin/python3.9               1455MiB |
+-----------------------------------------------------------------------------+

五、GPU分配策略分析

通過(guò)四中的測(cè)試結(jié)果可得

  • 默認(rèn)的分配策略會(huì)占用所有的內(nèi)存,并且執(zhí)行中不會(huì)進(jìn)行釋放,如果訓(xùn)練數(shù)據(jù)量比較打很容易內(nèi)存不夠用;
  • 限制最大使用內(nèi)存,測(cè)試占用內(nèi)存比設(shè)置的大,這個(gè)可能跟訓(xùn)練中間使用的模型和操作的復(fù)雜程度有關(guān)系,需要根據(jù)具體的業(yè)務(wù)場(chǎng)景設(shè)置合適的值;但是要注意不能設(shè)置大了,否則還是會(huì)報(bào)錯(cuò),但是設(shè)置小了只是執(zhí)行的慢一些罷了;
  • 設(shè)置內(nèi)存按需分配可能是一個(gè)相對(duì)比較中庸的方案,感覺(jué)可能是一個(gè)更好的方案,不知道TensorFlow為什么沒(méi)有設(shè)置為默認(rèn)值,留作一個(gè)問(wèn)題,后續(xù)有新的認(rèn)知的話再補(bǔ)充;

六、擴(kuò)展

單GPU模擬多GPU環(huán)境

當(dāng)我們的本地開(kāi)發(fā)環(huán)境只有一個(gè)GPU,但卻需要編寫(xiě)多GPU的程序在工作站上進(jìn)行訓(xùn)練任務(wù)時(shí),TensorFlow為我們提供了一個(gè)方便的功能,可以讓我們?cè)诒镜亻_(kāi)發(fā)環(huán)境中建立多個(gè)模擬GPU,從而讓多GPU的程序調(diào)試變得更加方便。以下代碼在實(shí)體GPU GPU:0 的基礎(chǔ)上建立了兩個(gè)顯存均為2GB的虛擬GPU。

gpus = tf.config.list_physical_devices('GPU')
if gpus:
  # Create 2 virtual GPUs with 1GB memory each
  try:
    tf.config.set_logical_device_configuration(
        gpus[0],
        [tf.config.LogicalDeviceConfiguration(memory_limit=1024),
         tf.config.LogicalDeviceConfiguration(memory_limit=1024)])
    logical_gpus = tf.config.list_logical_devices('GPU')
    print(len(gpus), "Physical GPU,", len(logical_gpus), "Logical GPUs")
  except RuntimeError as e:
    # Virtual devices must be set before GPUs have been initialized
    print(e)

多GPU的數(shù)據(jù)并行

使用 tf.distribute.Strategy可以將模型拷貝到每個(gè)GPU上,然后將訓(xùn)練數(shù)據(jù)分批在不同的GPU上執(zhí)行,達(dá)到數(shù)據(jù)并行。

tf.debugging.set_log_device_placement(True)
gpus = tf.config.list_logical_devices('GPU')
strategy = tf.distribute.MirroredStrategy(gpus)
with strategy.scope():
  inputs = tf.keras.layers.Input(shape=(1,))
  predictions = tf.keras.layers.Dense(1)(inputs)
  model = tf.keras.models.Model(inputs=inputs, outputs=predictions)
  model.compile(loss='mse',
                optimizer=tf.keras.optimizers.SGD(learning_rate=0.2))

到此這篇關(guān)于淺談Tensorflow2對(duì)GPU內(nèi)存的分配策略的文章就介紹到這了,更多相關(guān)Tensorflow2 GPU內(nèi)存分配內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Keras設(shè)定GPU使用內(nèi)存大小方式(Tensorflow backend)

標(biāo)簽:辛集 贛州 雅安 渭南 七臺(tái)河 西安 許昌 濰坊

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談Tensorflow2對(duì)GPU內(nèi)存的分配策略》,本文關(guān)鍵詞  淺談,Tensorflow2,對(duì),GPU,內(nèi)存,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談Tensorflow2對(duì)GPU內(nèi)存的分配策略》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于淺談Tensorflow2對(duì)GPU內(nèi)存的分配策略的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩毛片在线免费观看| 成人久久18免费网站麻豆| 国产精品系列在线播放| 日韩国产一区二| 亚洲二区视频在线| 亚洲女爱视频在线| 亚洲免费av观看| 亚洲色图清纯唯美| 亚洲综合色婷婷| 国产精品每日更新在线播放网址| 久久精品欧美一区二区三区不卡 | 欧美美女一区二区在线观看| 欧美性xxxxxx少妇| 日韩欧美国产麻豆| 国产人妖乱国产精品人妖| 亚洲综合自拍偷拍| 国产精品99久| 久久久久久久久久久久久女国产乱 | 在线观看一区二区精品视频| 欧美综合亚洲图片综合区| 欧美三级电影在线观看| 国产欧美一二三区| 日韩vs国产vs欧美| 99久久99久久精品免费观看| 国产一区二区三区在线观看免费 | 久久久久国产精品人| 精品少妇一区二区三区日产乱码| 激情综合网av| 欧美日韩在线亚洲一区蜜芽| 56国语精品自产拍在线观看| 国产精品无人区| 国产一区二区三区免费| 日本乱码高清不卡字幕| 国产三级一区二区三区| 日本不卡的三区四区五区| 在线区一区二视频| 久久精品欧美一区二区三区麻豆| 久久这里只有精品6| zzijzzij亚洲日本少妇熟睡| 在线一区二区三区做爰视频网站| 久久久91精品国产一区二区三区| 日韩成人精品在线| 在线免费观看日本欧美| 日韩码欧中文字| 风间由美一区二区av101 | 经典三级在线一区| 欧美日韩视频不卡| 欧美高清激情brazzers| 色一情一伦一子一伦一区| 99久久精品免费| 国产精品麻豆久久久| 制服丝袜在线91| 在线观看欧美日本| 欧美一区二区美女| 日韩av电影免费观看高清完整版| 欧美日韩在线不卡| 水蜜桃久久夜色精品一区的特点| 欧美色精品在线视频| 亚洲国产一区二区三区青草影视| 欧美人体做爰大胆视频| 国产老肥熟一区二区三区| 亚洲小说春色综合另类电影| 久久午夜免费电影| 日韩一级高清毛片| 欧美日韩性生活| 中文字幕一区免费在线观看| 精品999在线播放| 欧美丝袜丝交足nylons| 国产高清亚洲一区| 一区二区三区在线视频观看| 日韩一区二区视频在线观看| 国内精品自线一区二区三区视频| 午夜成人免费视频| 欧美色图一区二区三区| 丁香婷婷综合网| 美女高潮久久久| 亚洲欧美精品午睡沙发| 日韩一区二区三区三四区视频在线观看| 亚洲国产中文字幕| 99久久精品免费精品国产| 一区二区三区四区五区视频在线观看| 精品视频一区二区不卡| 色婷婷国产精品综合在线观看| 精品一区二区精品| 三级一区在线视频先锋| 免费成人在线播放| 国产在线精品免费av| 成人av网站在线| 一区二区三区蜜桃| 麻豆91在线看| 成人免费观看视频| 色婷婷精品大在线视频| 色综合天天狠狠| 91精品国产乱码久久蜜臀| 国内外成人在线视频| 91麻豆蜜桃一区二区三区| 日韩欧美国产成人一区二区| 亚洲电影一区二区三区| 精品亚洲免费视频| 欧美日韩国产另类不卡| 中文字幕电影一区| 欧美大片国产精品| 欧美电影免费观看高清完整版在线观看 | 麻豆国产一区二区| 丁香婷婷综合激情五月色| 亚洲国产视频直播| 午夜不卡av在线| 国产精品自拍三区| 成人一区二区三区视频在线观看| 国产高清一区日本| 欧美日韩一区二区三区视频| 精品污污网站免费看| 国产夫妻精品视频| www精品美女久久久tv| 伊人色综合久久天天| 日本一道高清亚洲日美韩| 色综合天天综合网天天看片| 欧美日韩精品欧美日韩精品一| 久久精品人人做| 国产一区二区在线观看视频| 蜜桃免费网站一区二区三区| 轻轻草成人在线| 日本韩国欧美在线| 国产欧美一区二区精品性色超碰| 国产一区视频网站| 国产精品乱人伦| 国产精品小仙女| 久久久噜噜噜久久中文字幕色伊伊 | 色哟哟一区二区在线观看| 成人午夜激情片| 国产色91在线| 黄色小说综合网站| 久久精品一二三| 免费观看日韩电影| 亚洲色图第一区| 一本色道久久综合亚洲aⅴ蜜桃| 欧洲在线/亚洲| 亚洲日本在线视频观看| 久久国产三级精品| 欧美电视剧在线看免费| 亚洲第一综合色| 91女厕偷拍女厕偷拍高清| 日韩毛片视频在线看| 日韩成人免费电影| 欧美xxxxx裸体时装秀| 久久这里只有精品6| 久久99国产精品久久99果冻传媒| 欧美大度的电影原声| 国产精品自拍毛片| 日韩欧美一区二区三区在线| 久久91精品国产91久久小草| 亚洲精品一区二区三区在线观看 | 日本欧美一区二区| 亚洲精品写真福利| 欧美成人免费网站| 麻豆成人久久精品二区三区红| 在线观看亚洲精品| 捆绑调教美女网站视频一区| 亚洲精品一区二区三区香蕉| 九九国产精品视频| 久久久久国产精品麻豆| 亚洲电影激情视频网站| 亚洲欧美综合色| 91原创在线视频| 亚洲高清中文字幕| 亚洲国产成人私人影院tom| 成人一区二区三区| www.色精品| 亚洲成人高清在线| 欧美激情一区二区三区| 一区二区日韩av| 中文字幕+乱码+中文字幕一区| 日韩小视频在线观看专区| 欧美日精品一区视频| 7799精品视频| 国产精品久久久久久妇女6080| 久久人人97超碰com| 亚洲综合免费观看高清在线观看| 亚洲国产裸拍裸体视频在线观看乱了| 日韩国产欧美在线播放| 日韩中文字幕1| 福利91精品一区二区三区| 欧美性猛交xxxxxx富婆| 欧美日韩一区久久| 国产精品视频九色porn| 日韩精品亚洲专区| 狠狠色丁香久久婷婷综合_中 | 国产成人日日夜夜| 97久久超碰国产精品电影| 欧美xfplay| 看片的网站亚洲| 日韩一卡二卡三卡| 日韩极品在线观看| 欧美性做爰猛烈叫床潮| 亚洲美女精品一区| 欧美亚洲综合网| 亚洲日本青草视频在线怡红院 | 欧美不卡一区二区三区四区| 亚洲另类在线一区| 色综合天天天天做夜夜夜夜做|