成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

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

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

熱門標(biāo)簽:旅游廁所地圖標(biāo)注怎么弄 成都呼叫中心外呼系統(tǒng)哪家強(qiáng) 百應(yīng)電話機(jī)器人總部 西青語(yǔ)音電銷機(jī)器人哪家好 電梯新時(shí)達(dá)系統(tǒng)外呼顯示e 地圖標(biā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

二、開發(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ì)使用所有可見的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)打開內(nèi)存增長(zhǎng),它嘗試只分配運(yùn)行時(shí)所需的GPU內(nè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)存碎片。為了打開特定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í),這是本地開發(fā)的常見做法。

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ì)比較中庸的方案,感覺可能是一個(gè)更好的方案,不知道TensorFlow為什么沒有設(shè)置為默認(rèn)值,留作一個(gè)問(wèn)題,后續(xù)有新的認(rèn)知的話再補(bǔ)充;

六、擴(kuò)展

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

當(dāng)我們的本地開發(fā)環(huán)境只有一個(gè)GPU,但卻需要編寫多GPU的程序在工作站上進(jìn)行訓(xùn)練任務(wù)時(shí),TensorFlow為我們提供了一個(gè)方便的功能,可以讓我們?cè)诒镜亻_發(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)的同類信息!
  • 本頁(yè)收集關(guān)于淺談Tensorflow2對(duì)GPU內(nèi)存的分配策略的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    手机看片福利永久国产日韩| www.久久伊人| av中文字幕在线| 潘金莲一级淫片aaaaaa播放1| 亚洲黄色av| 久久久国产精彩视频美女艺术照福利| 亚洲色在线视频| 国产精品日韩一区二区三区| 成人精品鲁一区一区二区| 日韩一区精品字幕| 97香蕉超级碰碰久久免费的优势| 国内精品第一页| 欧美a级成人淫片免费看| www视频免费| 日韩一区二区三区视频| 毛片大全在线观看| 国产欧美一区二区精品性色超碰| 国产一区二区在线播放视频| 亚洲无码精品在线观看| 久久午夜免费视频| 国产精品欧美三级在线观看| 欧美 日韩 国产一区二区在线视频| 亚洲国产天堂av| 久久综合狠狠综合久久综合88| 亚洲欧洲自拍| 欧美黄色免费| 超级白嫩亚洲国产第一| 一区二区三区激情视频| 国产成人3p视频免费观看| 黄色国产在线视频| av在线麻豆| 日韩av字幕| 国产小视频在线免费观看| 日韩精品福利网站| 久久青草福利网站| 国产高清av| 2018国产在线| 亚洲天堂网一区二区| 在线天堂中文| 久久一区激情| 免费黄色在线播放| 亚洲精品日韩一| 亚洲少妇一区二区| 91中文字幕网| 一本高清dvd不卡在线观看| 91久久精品日日躁夜夜躁国产| 91理论电影在线观看| 大地资源高清播放在线观看| 欧美69视频| 国产伦精品一区二区三区免费| 青青影院在线观看| 欧美性猛交xxxxxxxx| 亚洲国产天堂久久综合网| 一区二区三区欧美在线观看| 你懂的视频在线免费| 欧美亚洲另类色图| 在线成人小视频| 欧洲杯足球赛直播| 欧美 日韩 国产 精品| 亚洲免费视频一区| 美女视频免费一区| 国产精品涩涩涩视频网站| 精东粉嫩av免费一区二区三区| 在线观看一区| 亚洲视频在线观看不卡| 久久一本综合频道| 91精品久久久久久久久中文字幕| 亚洲熟女www一区二区三区| 九九久久久久午夜精选| 99精品免费视频| 乱亲女h秽乱长久久久| 国产精品九九九九九九| 亚洲区免费视频| 久久99热只有频精品91密拍| 苍井空浴缸大战猛男120分钟| 五月婷婷久久久| 天堂在线视频中文网| 99视频在线精品国自产拍免费观看| 亚洲一区二区欧美激情| 亚洲精品乱码久久久久久蜜桃欧美| 999在线精品| 菠萝蜜网站在线观看| 7777精品伊人久久久大香线蕉超级流畅| 爱啪导航一精品导航站| 日韩欧美精品一区二区三区| 九九九九久久久久| 91三级在线| 国产精品无码永久免费888| 国产91一区| 国产精品美女久久久久久2018| 国产精品sm| 久久国产精品免费一区| 理论片鲁丝二区爱情网| 日韩精品在线不卡| 五月婷婷另类国产| 欲求不满中文字幕| 国产精品久久久久婷婷| 亚洲成人777777| 国产资源在线免费观看| av成人国产| 日本我和搜子同居的日子高清在线| 操碰在线免费| 天堂网在线观看视频| jlzzjlzzjlzz亚洲人| 亚洲乱熟女一区二区| 日韩av在线一区二区| 亚洲视频在线一区观看| aaa国产精品| 人与牲动交xxxxbbbb高清| 国产国产人免费人成免费视频| 亚洲激情一二三区| 天堂久久久久久| 国产777精品精品热热热一区二区| 0608新视觉| 国产一区第一页| 美腿丝袜亚洲综合| 欧美午夜精品在线| 亚洲私人影院在线观看| 亚洲黄色免费av| 免费在线播放第一区高清av| 国产精品私拍pans大尺度在线| 欧美亚洲一级片| 在线中文字幕网站| 欧美经典一区二区三区| 国产精品资源网站| 无码中文字幕色专区| 欧美人善交videosg| 日本黄色免费网址| 26uuu成人网| 五月婷婷丁香综合网| 久久久国产综合精品女国产盗摄| 国产无码精品一区二区| 久久精品99国产精品| 99精品在线免费| 日韩欧美一区二区三区不卡视频| 国产精品亚洲综合天堂夜夜| 黄色www视频| 中文字幕欧美激情一区| 欧美精品黑人猛交高潮| 好吊成人免视频| 中国特黄一级片| 狠狠入ady亚洲精品经典电影| 中文字幕二区三区| 亚洲三级视频网站| 97久久天天综合色天天综合色hd| 99久久久无码国产精品| 精品人妻在线视频| 久久久精品欧美| 日韩av在线一区二区| 91高清视频免费| 蜜桃麻豆av在线| 激情视频综合网| 欧美午夜精品一区二区| 国产精品电影院| 在线观看免费一区| 免费看特级毛片| 一个人看的免费网站www视频| 综合激情网五月| 成人爽a毛片一区二区免费| 北岛玲日韩精品一区二区三区| 国产一区二区三区91| 女同一区二区三区| 国产成人免费视频网站高清观看视频| 免费看污网站| 欧美二区三区| 在线中文字幕电影| 日本欧美三级| av电影在线观看网站| 日韩精品在线播放| 在线麻豆国产传媒1国产免费| 欧美在线视频在线播放完整版免费观看| 91禁国产网站| 婷婷伊人综合| 欧美在线亚洲| 日韩免费观看高清完整版在线观看| 久久国产精品波多野结衣av| 少妇av片在线观看| 国产精品午夜国产小视频| 日韩激情毛片| 先锋资源一区二区| 波多野在线观看| 亚洲h视频在线观看| 亚洲女同av| 国产一区二区三区黄| 春暖花开成人亚洲区| 朝桐光av一区二区三区| 久久久成人av| 婷婷六月综合| 亚洲影影院av| 国产91精品欧美| 国产精品视频网站在线观看| 欧美一级欧美三级在线观看| 99久久夜色精品国产亚洲| 国产美女精品久久久| 久久综合狠狠综合久久综青草| 欧美本精品男人aⅴ天堂| 亚洲AV无码国产精品| 4444kk亚洲人成电影在线| 国产精品久久久久久久久鸭| 国产精品一区二区三区四区五区| 这里只有精品66| 国产青青视频| 亚洲最大的免费| 成人免费视频一区二区| 亚洲欧美自拍视频| 国产精品久久精品日日| 欧美视频国产精品| 久久精品国产亚洲av麻豆蜜芽| 亚洲国产无线乱码在线观看| av一区二区高清| **毛片在线网站| 精品伦理精品一区| 亚洲主播在线观看| 久久午夜鲁丝片| 爱爱爱免费视频在线观看| 欧美国产一区视频在线观看| 欧美性大战久久久久久久| 欧美精品一区二区三区免费| 婷婷久久综合九色综合绿巨人| 欧美日韩亚洲自拍| 欧美三级午夜理伦| 高清av资源| 国产性xxxx高清| 午夜理伦三级做爰电影| 欧洲国产精品| 在线满18网站观看视频| 伊人网综合视频| 人人在线97| 日本久久久a级免费| www红色一片_亚洲成a人片在线观看_| 欧美激情福利视频在线观看免费| 2022成人影院| 亚洲欧美视频一区二区三区| 国产女教师bbwbbwbbw| 黄色aa久久| 粉嫩高清一区二区三区精品视频| 久久99精品久久久久| 日韩成人伦理| 在线观看日韩www视频免费| 少妇精69xxtheporn| 91精品久久久久| 欧美黑人ⅹxxx另类猛交| 免费91麻豆精品国产自产在线观看| 亚洲999一在线观看www| 亚洲夜晚福利在线观看| 久久精品国产69国产精品亚洲| 在线碰免费视频在线观看| 97精品人妻一区二区三区香蕉| 午夜精品一区二区三| 麻豆亚洲av熟女国产一区二| 亚洲字幕av一区二区三区四区| 免费在线观看亚洲| 搞黄视频在线观看| 国产日产精品一区二区三区四区| 久久黄色免费网站| bbbbbbbbbbb在线视频| av高清在线免费观看| 亚洲国产高清一区二区三区| 91在线视频免费观看| 欧州一区二区| 99精品欧美一区二区三区| 91久久免费视频| 欧美激情视频给我| 中文字幕精品三级久久久| 国产视频在线观看一区二区| 国产精品国产三级国产普通话99| 久久中文字幕无码| 黄色的毛片免费| 最新国产の精品合集bt伙计| 国产传媒日韩欧美成人| 国产视频亚洲| 天天综合在线视频| 一级毛片视频在线观看| 伊人亚洲福利一区二区三区| 国产成人精品999在线观看| 91精品啪在线观看国产18| а√天堂www在线а√天堂视频| 欧美激情免费看| 日韩精品一区在线视频| 好男人免费精品视频| 尤物视频最新网址| 亚洲一区二区三区午夜| 91视频一区二区三区| 国产欧美精品一区二区三区介绍| 国产3p露脸普通话对白| 欧美成人手机在线| 成人欧美一区二区三区黑人一| 亚洲天堂a在线| gogo人体高清视频| av网站免费| 国精产品久拍自产在线网站| 国模大尺度一区二区三区| 国产 porn| jizz在线免费观看| 99蜜月精品久久91| 在线播放黄网| 国产呻吟对白刺激无套视频在线| 国产日韩欧美第一页| 亚洲第一中文av| 国产欧美韩国高清| 97伦理在线四区| 夜夜爽妓女8888视频免费观看| 久久精品视频播放| 经典三级在线一区| 性色av蜜臀av| 色屁屁影院www国产高清麻豆| 国内精品不卡在线| 成人免费av在线| 亚洲区小说区| 美女精品在线观看| 国产成人精品一区二区三区视频| 国产一级片免费观看| 免费麻豆国产一区二区三区四区| 亚洲成av人片www| 国产精品扒开腿做爽爽爽视频软件| 91日韩视频在线观看| 国产麻豆精品高清在线播放| 国产乱码精品一区二区三区精东| 亚洲一区中文| 欧美日韩视频免费播放| 国产人妻人伦精品| 久久精品国产91精品亚洲| 久色乳综合思思在线视频| 四色永久网址| 国产91av视频在线观看| 男女爱爱免费网站| 日韩成人在线免费视频| 91视频www|