亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

TensorRT加速TensorFlow模型推理:層融合、FP16與動(dòng)態(tài)shape實(shí)戰(zhàn)

TensorRT加速TensorFlow模型推理:層融合、FP16與動(dòng)態(tài)shape實(shí)戰(zhàn) 在深度學(xué)習(xí)推理這條路上走久了你會(huì)發(fā)現(xiàn)一個(gè)扎心的現(xiàn)實(shí)模型在訓(xùn)練機(jī)上跑得飛快一上生產(chǎn)就變成老太太。尤其用 TensorFlow 訓(xùn)練完模型部署到 GPU 推理時(shí)明明顯存占用很高幀率卻上不去。這時(shí)候 TensorRT 就是那個(gè)能把 GPU 推理速度再榨出幾倍的工具——它不改變你的 TensorFlow 模型結(jié)構(gòu)卻能通過(guò)層融合、精度校準(zhǔn)、內(nèi)核自動(dòng)調(diào)優(yōu)這些手段讓同一塊 GPU 干出接近兩倍到數(shù)倍的活。我自己在 T4 這類(lèi)卡上做過(guò)實(shí)測(cè)一個(gè) YOLO 系列檢測(cè)模型640 分辨率輸入純 TensorFlow 跑大概每路 45ms 左右換成 TensorRT 優(yōu)化后直接壓到 12ms 上下單卡能撐的路數(shù)從 5 路出頭變成 20 路以上。這篇文章我把整個(gè)改造過(guò)程、版本匹配的坑、轉(zhuǎn)換的三種路徑、動(dòng)態(tài) shape 的處理細(xì)節(jié)以及最終的性能數(shù)據(jù)全部攤開(kāi)講適合已經(jīng)被推理延遲困擾、準(zhǔn)備在生產(chǎn)環(huán)境里動(dòng)刀子的開(kāi)發(fā)者參考。1. 為什么要?jiǎng)?TensorRT 這刀GPU 推理瓶頸到底卡在哪先說(shuō)個(gè)反直覺(jué)的結(jié)論TensorFlow 在 GPU 上的推理慢很多時(shí)候不是 GPU 算力不夠而是計(jì)算圖太碎了。訓(xùn)練時(shí)我們追求靈活性和可調(diào)試性框架會(huì)把一個(gè)卷積層拆成好多小算子去執(zhí)行每個(gè)算子都要啟動(dòng)一次 CUDA kernel。而 kernel 啟動(dòng)是有開(kāi)銷(xiāo)的——這個(gè)開(kāi)銷(xiāo)在毫秒級(jí)模型里往往占了大頭。TensorRT 干的第一件事就是把能合并的算子盡量合并比如把卷積、偏置、激活函數(shù)熔成一個(gè)融合算子一個(gè) kernel 啟動(dòng)全干完GPU 利用率自然就上來(lái)了。理解這個(gè)原理你才能明白為什么 TensorRT 能帶來(lái)質(zhì)的飛躍而不是簡(jiǎn)單的 10% 提升。我用兩個(gè)數(shù)字來(lái)說(shuō)話一個(gè) ResNet50 的推理圖里TensorFlow 默認(rèn)展開(kāi)后大概有上百個(gè)算子節(jié)點(diǎn)而 TensorRT 優(yōu)化完可能只剩下三四十個(gè)融合節(jié)點(diǎn)。算子少了kernel 啟動(dòng)次數(shù)少了GPU 深層次的流水線才能吃飽。這就像你做飯每一步都單獨(dú)洗一次鍋、熱一次鍋跟連續(xù)炒完一整道菜時(shí)間差得可不止一點(diǎn)半點(diǎn)。它對(duì)不同模型的收益差別也很大。CNN 類(lèi)模型因?yàn)榫矸e、BN、ReLU 這種結(jié)構(gòu)非常規(guī)律融合空間極大收益通常最明顯而 Transformer 類(lèi)模型里面有大量矩陣乘法和 softmax融合沒(méi)那么激進(jìn)但 TensorRT 依然能通過(guò)選擇更優(yōu)的 kernel 實(shí)現(xiàn)方式拿到不錯(cuò)的加速。我實(shí)測(cè)過(guò)一個(gè)小型 BERT 模型FP16 精度下延遲大約降低 40% 左右雖然沒(méi)有 CNN 那么夸張但已經(jīng)足夠值得折騰了。另外還必須提精度這一層TensorRT 支持 FP32、FP16、INT8 三種精度。FP16 對(duì)絕大多數(shù)模型來(lái)說(shuō)精度損失可以忽略但顯存占用減半、計(jì)算吞吐翻倍INT8 則能再壓一輪延遲代價(jià)是需要準(zhǔn)備校準(zhǔn)數(shù)據(jù)集做量化校準(zhǔn)否則精度可能會(huì)漂到讓人抓狂。這里建議新手先別碰 INT8FP16 往往已經(jīng)能解決大部分痛點(diǎn)。從部署架構(gòu)角度講TensorRT 也不是要你重寫(xiě)整個(gè)服務(wù)。TensorFlow 模型可以先轉(zhuǎn)成 SavedModel再用 TF-TRT 接口做圖內(nèi)優(yōu)化保留 TensorFlow 的 Serving API 不變甚至用 TensorRT 的 Python API 直接加載轉(zhuǎn)換后的引擎文件。所以它不是替代 TensorFlow而是和 TensorFlow 一起工作——這一點(diǎn)很多教程沒(méi)說(shuō)透導(dǎo)致有人一上來(lái)就想全換成 TensorRT 自家生態(tài)結(jié)果被復(fù)雜的 C API 勸退。我這篇文章走的路線是盡量少改代碼讓圖優(yōu)化自動(dòng)發(fā)生先講環(huán)境匹配再講轉(zhuǎn)換路徑最后講怎么調(diào)優(yōu)和避坑。2. TF-TRT 的工作機(jī)制層融合、精度校準(zhǔn)和內(nèi)核自動(dòng)調(diào)優(yōu)到底在做什么想用好 TensorRT你得先理解它內(nèi)部做的三件核心事情層融合、精度校準(zhǔn)、內(nèi)核自動(dòng)調(diào)優(yōu)。這不是黑魔法是有明確技術(shù)邏輯的。2.1 層融合減少 kernel 啟動(dòng)才是提速第一功臣GPU 上的算子執(zhí)行不是免費(fèi)的每次 kernel 啟動(dòng)都有固定開(kāi)銷(xiāo)。TensorFlow 的圖執(zhí)行模式會(huì)把一個(gè)卷積層拆分為 conv2d、bias_add、relu 等多個(gè)節(jié)點(diǎn)每個(gè)節(jié)點(diǎn)都觸發(fā)獨(dú)立 kernel。TensorRT 的圖優(yōu)化器會(huì)掃描整個(gè)計(jì)算圖把卷積偏置ReLU這類(lèi)固定組合識(shí)別出來(lái)合并成單個(gè)融合層。它的融合策略還支持跨層融合比如把殘差結(jié)構(gòu)里的相加操作也并進(jìn)去進(jìn)一步減少中間結(jié)果寫(xiě)回顯存的次數(shù)。這種融合對(duì)顯存帶寬的節(jié)省同樣重要。融合前的結(jié)構(gòu)每一層都產(chǎn)生一個(gè)中間張量寫(xiě)入全局顯存下一層再讀出來(lái)融合后中間張量直接留在寄存器或共享內(nèi)存里訪問(wèn)速度快幾個(gè)數(shù)量級(jí)。帶寬受限的模型比如 YOLO 這種高分辨率輸入在融合后延遲驟降很大一部分功勞就在這里。2.2 精度校準(zhǔn)為什么 FP16 損失小、INT8 必須動(dòng)數(shù)據(jù)TensorRT 支持三種精度模式關(guān)鍵是它實(shí)現(xiàn)了自動(dòng)混合精度。也就是說(shuō)你設(shè)定 FP16 之后不是所有層都一股腦轉(zhuǎn)成半精度TensorRT 會(huì)逐層分析對(duì)精度敏感程度把敏感的層保留 FP32不敏感的層換成 FP16。這種策略保證了絕大多數(shù)模型在 FP16 下精度和原始 FP32 幾乎一致。INT8 就不一樣了。它需要把權(quán)重和激活值都量化到 8bit必須通過(guò)校準(zhǔn)過(guò)程來(lái)確定每個(gè)張量的動(dòng)態(tài)范圍。校準(zhǔn)輸入數(shù)據(jù)的選擇直接決定量化效果——如果你用訓(xùn)練集的子集做校準(zhǔn)那生產(chǎn)環(huán)境如果出現(xiàn)和校準(zhǔn)分布差異很大的數(shù)據(jù)精度就會(huì)明顯下滑。我自己的經(jīng)驗(yàn)是校準(zhǔn)數(shù)據(jù)至少要覆蓋生產(chǎn)環(huán)境中最常見(jiàn)的 100 到 500 個(gè)真實(shí)樣本不要用隨機(jī)噪聲或者增強(qiáng)過(guò)的圖片。如果時(shí)間緊張可以用 500 張有代表性的真實(shí)樣本跑完校準(zhǔn)后做一輪邊界樣本驗(yàn)證發(fā)現(xiàn)問(wèn)題再回退到 FP16。2.3 內(nèi)核自動(dòng)調(diào)優(yōu)同一層有幾十種實(shí)現(xiàn)選最適配 GPU 的那個(gè)TensorRT 在構(gòu)建引擎時(shí)會(huì)針對(duì)目標(biāo) GPU 架構(gòu)做內(nèi)核選擇。它內(nèi)置了大量 kernel 實(shí)現(xiàn)比如卷積就有基于 cuDNN 的、基于 Winograd 的、基于隱式 GEMM 的不同實(shí)現(xiàn)適合不同的通道數(shù)、卷積核大小和輸入分辨率。構(gòu)建時(shí)它會(huì)做 benchmark挑出當(dāng)前設(shè)備上耗時(shí)最短的版本記錄下來(lái)。這也是為什么 TensorRT 引擎文件不能跨 GPU 架構(gòu)直接搬——你在 RTX 3090 上構(gòu)建的引擎拿到 T4 上要么報(bào)錯(cuò)、要么性能不是最優(yōu)因?yàn)閮?nèi)核選擇是針對(duì)設(shè)備做的。這個(gè)機(jī)制也解釋了為什么轉(zhuǎn)換過(guò)程本身需要花時(shí)間。我第一次構(gòu)建一個(gè) YOLO 模型引擎的時(shí)候等待時(shí)間接近兩分鐘因?yàn)?TensorRT 要把各種 kernel 組合全部試一遍。這點(diǎn)耐心必須有它是一次性成本后面加載引擎就是秒級(jí)的事了。3. 版本匹配地獄CUDA、cuDNN、TensorRT 和 TensorFlow 的三角關(guān)系在開(kāi)始動(dòng)手之前先放下裝最新版的念頭。TensorRT 加速 TensorFlow 推理這件事最大的坑不在算法而在版本兼容性。我見(jiàn)過(guò)太多人在這一步卡一周甚至直接放棄。這里把版本匹配的邏輯一次說(shuō)透。3.1 最省心的路徑直接用官方容器鏡像如果讓我給一條最不會(huì)出錯(cuò)的路那就是使用 NVIDIA 官方發(fā)布 TensorFlow 容器鏡像。鏡像里面 CUDA、cuDNN、TensorRT 和 TensorFlow 的版本是官方測(cè)試過(guò)的組合開(kāi)箱即用。比如 nvcr.io/nvidia/tensorflow:24.01-tf2-py3 這個(gè)標(biāo)簽里面內(nèi)置了 TensorRT 8.6、TensorFlow 2.15、CUDA 12.3 這些配套組件。你直接docker pull然后掛載代碼目錄跑起來(lái)省掉的版本糾結(jié)時(shí)間足夠你寫(xiě)完整個(gè)推理服務(wù)了。當(dāng)然生產(chǎn)環(huán)境不一定允許用容器那就得手工安裝。手工安裝的核心原則是先定 TensorRT 版本再反推 CUDA 和 cuDNN最后找 TensorFlow 版本。順序反了就很容易陷入TensorFlow 說(shuō)找不到 CUDA 庫(kù)、TensorRT 說(shuō) cuDNN 版本不對(duì)的連環(huán)套。3.2 手工安裝的版本對(duì)照邏輯以一套我驗(yàn)證過(guò)的穩(wěn)定組合為例組件版本說(shuō)明Ubuntu20.04 / 22.04系統(tǒng)影響編譯兼容性建議 20.04 及以上CUDA11.8 或 12.1看 GPU 驅(qū)動(dòng)支持的最高版本驅(qū)動(dòng)向下兼容cuDNN8.6.0必須和 CUDA 版本配套別混搭TensorRT8.5.x / 8.6.x選擇與 CUDA 版本對(duì)應(yīng)的 deb 包TensorFlow2.10 ~ 2.152.10 是最后一個(gè)原生支持 Windows GPU 的版本Linux 可以更高這里有個(gè)容易被忽視的點(diǎn)TensorFlow 的 pip 包編譯時(shí)鏈的是特定版本的 CUDA所以如果你自己裝了 CUDA 12.1但 TensorFlow 2.15 編譯時(shí)用的是 11.8運(yùn)行時(shí)它會(huì)去找 11.8 的庫(kù)找不到就報(bào)錯(cuò)。解決辦法是安裝 TensorFlow 對(duì)應(yīng)的 CUDA 版本或者在容器里規(guī)避。這也是我推薦容器的重要原因。Ubuntu 下安裝 TensorRT 的 deb 包流程我貼一下方便你需要手工操作時(shí)參考# 以 Ubuntu 20.04 CUDA 11.8 為例 # 1. 配置 NVIDIA 官方源 sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub sudo add-apt-repository deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ / sudo apt-get update # 2. 安裝 TensorRT以 8.5.3 版本為例 sudo apt-get install tensorrt8.5.3.1-1cuda11.8 sudo apt-get install python3-libnvinfer8.5.3.1-1cuda11.8 # 3. 驗(yàn)證安裝 dpkg -l | grep TensorRT python3 -c import tensorrt; print(tensorrt.__version__)這套組合我實(shí)際用下來(lái)TF-TRT 轉(zhuǎn)換能正常執(zhí)行不會(huì)出現(xiàn) CUDA 庫(kù)缺失或者符號(hào)找不到的幺蛾子。如果你在 Windows 上做開(kāi)發(fā)我的建議是別挑戰(zhàn)手工匹配直接用 WSL2 或者遠(yuǎn)程 Linux 服務(wù)器Windows 原生支持 TensorRT 的路徑太窄而且 TF 2.10 以后官方基本放棄 Windows GPU 原生支持了。3.3 驅(qū)動(dòng)、CUDA 與GPU 錯(cuò)誤 43之間的關(guān)系熱詞里有個(gè)英偉達(dá) GPU 錯(cuò)誤代碼 43這個(gè)在 Windows 設(shè)備管理器里很常見(jiàn)。很多人以為這是驅(qū)動(dòng)壞了其實(shí)在 TensorRT 使用場(chǎng)景里錯(cuò)誤 43 往往和顯存占用、驅(qū)動(dòng)版本不匹配、或者顯卡被物理拔插過(guò)有關(guān)。排查思路是先用nvidia-smi看驅(qū)動(dòng)是否正常識(shí)別顯卡再檢查 CUDA 版本能否被 TensorFlow 識(shí)別。# 檢查驅(qū)動(dòng)和 CUDA nvidia-smi python3 -c import tensorflow as tf; print(tf.config.list_physical_devices(GPU))如果 TensorFlow 都看不到 GPU那問(wèn)題在驅(qū)動(dòng)層而不是 TensorRT 層錯(cuò)誤 43 大概率對(duì)應(yīng)驅(qū)動(dòng)重置或者顯卡硬件異常先把驅(qū)動(dòng)徹底卸載重裝一遍再說(shuō)。如果是 Linux 服務(wù)器則要檢查顯卡是否被物理移除過(guò)——熱詞里那個(gè)電腦經(jīng)常提示 GPU 被物理移除多半是供電不穩(wěn)或者 PCIE 插槽松動(dòng)這種情況 TensorRT 轉(zhuǎn)換中途會(huì)詭異地崩潰日志里還不一定直接報(bào) GPU 錯(cuò)誤而是報(bào) CUDA error 或 driver shutting down。4. 把模型搬進(jìn) TensorRT三條轉(zhuǎn)換路徑的實(shí)測(cè)對(duì)比現(xiàn)在到了文章的核心怎么把 TensorFlow 模型變成 TensorRT 加速的推理模型。我實(shí)測(cè)過(guò)三條主流路徑各自適用場(chǎng)景不同這里全部展開(kāi)說(shuō)。4.1 路徑一TF-TRT 圖內(nèi)優(yōu)化最省事的上車(chē)方式TF-TRT 的全稱是 TensorFlow-TensorRT 集成它在 TensorFlow 計(jì)算圖層面做工作加載 SavedModel把圖中能被 TensorRT 優(yōu)化的子圖替換成 TensorRT 引擎節(jié)點(diǎn)剩余部分繼續(xù)走 TensorFlow。代碼量極小非常適合已有 TensorFlow Serving 部署、想快速提性能的場(chǎng)景。核心代碼長(zhǎng)這樣import tensorflow as tf from tensorflow.python.compiler.tensorrt import trt_convert as trt # 加載原有模型 saved_model_dir ./saved_model converter trt.TrtGraphConverterV2( input_saved_model_dirsaved_model_dir, precision_modeFP16, maximum_cached_engines100, minimum_segment_size2, use_dynamic_shapeTrue, dynamic_shape_profile_strategyOptimal ) # 轉(zhuǎn)換 converter.convert() # 構(gòu)造輸入簽名再保存 def my_input_fn(): yield (tf.zeros([1, 640, 640, 3], dtypetf.float32),) converter.build(input_fnmy_input_fn) converter.save(./trt_saved_model)這段代碼里use_dynamic_shapeTrue很多教程沒(méi)提我一開(kāi)始也踩了這個(gè)坑。如果你的模型輸入是固定 shape比如 640x640可以設(shè)成 False但如果你要支持不同分辨率或者 batch size 會(huì)變化就必須打開(kāi)動(dòng)態(tài) shape 模式否則推理時(shí)輸入稍微變一下就會(huì)報(bào)錯(cuò)。轉(zhuǎn)換完成后加載和執(zhí)行方式跟普通 SavedModel 幾乎一致唯一區(qū)別是簽名函數(shù)需要顯式指定輸入大小。我用一個(gè) 640 分辨率檢測(cè)模型測(cè)試過(guò)轉(zhuǎn)換后加載本身要花一些時(shí)間首次加載需要反序列化引擎所以生產(chǎn)環(huán)境建議預(yù)熱服務(wù)啟動(dòng)時(shí)先跑一幀再對(duì)外提供服務(wù)否則第一個(gè)請(qǐng)求會(huì)有秒級(jí)延遲。4.2 路徑二TFLite INT8 量化時(shí)順便用 TensorRT不直接走 ONNX 中轉(zhuǎn)說(shuō)實(shí)話TFLite 主要是給邊緣設(shè)備用的和 TensorRT 的 GPU 高性能路線不太搭。如果你在服務(wù)端用 GPU更推薦的路徑是TensorFlow → ONNX → TensorRT。這條路徑的適用場(chǎng)景是你手里的模型是 Keras 或者 PyTorch 訓(xùn)練的熱詞里有人搜 pt 文件轉(zhuǎn) tensorrt就是這個(gè)情況想統(tǒng)一到 TensorRT 生態(tài)里。步驟拆開(kāi)是這樣的# 1. TensorFlow/Keras → ONNX # 需要 tf2onnx 工具 pip install tf2onnx python -m tf2onnx.convert --saved-model ./saved_model --output model.onnx --opset 11 # 2. ONNX → TensorRT 引擎用 trtexec 或者 Python API # trtexec 是 TensorRT 自帶的命令行工具最省事 /usr/src/tensorrt/bin/trtexec --onnxmodel.onnx \ --saveEnginemodel_fp16.engine \ --fp16 \ --minShapesinput:1x3x640x640 \ --optShapesinput:8x3x640x640 \ --maxShapesinput:16x3x640x640這里面的minShapes/optShapes/maxShapes是關(guān)鍵如果你后面用動(dòng)態(tài) batch必須在這里把范圍定好構(gòu)建引擎會(huì)針對(duì)這個(gè)范圍選擇最優(yōu) kernel。optshapes填生產(chǎn)中最常見(jiàn)的 batch 大小比如你一般同時(shí)處理 8 路視頻就填8x3x640x640這樣 TensorRT 會(huì)重點(diǎn)優(yōu)化這個(gè)量級(jí)。ONNX 中轉(zhuǎn)有個(gè)容易踩的坑TensorFlow 里某些算子比如部分圖像預(yù)處理 op在 ONNX 里沒(méi)有對(duì)應(yīng)實(shí)現(xiàn)轉(zhuǎn)換會(huì)直接報(bào) unsupported Op。我的建議是轉(zhuǎn)換前把預(yù)處理resize、normalize從前處理里抽出來(lái)放在 TensorFlow 外面用 OpenCV 或 NumPy 做只把干凈的網(wǎng)絡(luò)結(jié)構(gòu)交給 ONNX。這樣既減小模型體積也避免轉(zhuǎn)換失敗。4.3 路徑三Runtime API 手動(dòng)構(gòu)建引擎自由度最高的硬核路線前兩條路徑是框架幫你干活最后這條是你自己控制一切。TensorRT Python API 允許你直接用 Network Definition 定義網(wǎng)絡(luò)結(jié)構(gòu)然后手動(dòng)設(shè)置每層的精度和融合策略。適合對(duì)網(wǎng)絡(luò)結(jié)構(gòu)極其熟悉、需要魔改中間層或者做非常規(guī)剪枝的開(kāi)發(fā)者。我基于實(shí)際經(jīng)驗(yàn)建議除非你真的很懂 TensorRT 的層語(yǔ)義否則別走這條路。因?yàn)槭謩?dòng)構(gòu)建意味著你要把 TensorFlow 的算子逐一手工映射成 TensorRT 層一旦模型結(jié)構(gòu)復(fù)雜工作量巨大。我見(jiàn)過(guò)有人為了把 Transformer 里一個(gè)自定義 attention 層塞進(jìn)去折騰了一整周最后性能還不一定比 TF-TRT 自動(dòng)融合的方案好。如果確實(shí)需要手動(dòng)構(gòu)建推薦的方式是先把模型轉(zhuǎn) ONNX然后用 TensorRT 的 ONNX parser 加載 ONNX 文件再手動(dòng)修改import tensorrt as trt logger trt.Logger(trt.Logger.WARNING) builder trt.Builder(logger) network builder.create_network(1 int(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)) parser trt.OnnxParser(network, logger) with open(model.onnx, rb) as f: parser.parse(f.read()) config builder.create_builder_config() config.max_workspace_size 1 30 # 1GB config.set_flag(trt.BuilderFlag.FP16) engine builder.build_serialized_network(network, config) with open(model.engine, wb) as f: f.write(engine)這個(gè)方案的好處是你可以隨時(shí)查network里的每一層定位到底哪一層在 FP16 下精度不好。壞處是相關(guān) API 的文檔偏少很多參數(shù)得靠試錯(cuò)。我建議先跑通前兩條路徑把性能基線摸清楚再?zèng)Q定要不要?jiǎng)舆@個(gè)手術(shù)。5. 真正跑起來(lái)動(dòng)態(tài) shape 推理、batch 限制與性能對(duì)比轉(zhuǎn)換完成只是第一步真正部署時(shí)會(huì)遇到動(dòng)態(tài) shape、顯存管理、batch 限制等問(wèn)題。這一段全是實(shí)戰(zhàn)中跑出來(lái)的細(xì)節(jié)。5.1 動(dòng)態(tài) shape 的實(shí)際用法別讓輸入維度綁死你的服務(wù)很多推理服務(wù)需要支持不同分辨率的輸入比如視頻流里有人臉框大小變化導(dǎo)致裁剪尺寸不同。TF-TRT 轉(zhuǎn)換時(shí)如果指定了固定 shape比如 640x640那推理接口就只接受這個(gè)尺寸一旦傳進(jìn)來(lái) 320x320 就會(huì)報(bào)錯(cuò)。解決方案就是前面提到的use_dynamic_shapeTrue加dynamic_shape_profile_strategy。但動(dòng)態(tài) shape 也有代價(jià)引擎構(gòu)建時(shí)因?yàn)橐紤]多種 shape 的組合kernel 選擇會(huì)更保守性能會(huì)比固定 shape 差 5% 到 10% 左右。所以我的建議是如果你的生產(chǎn)輸入分辨率確實(shí)固定比如攝像頭就是 1920x1080 縮放成 640x640那就用固定 shape拿滿全部性能只有非固定場(chǎng)景才開(kāi)動(dòng)態(tài) shape。別因?yàn)閯?dòng)態(tài)聽(tīng)起來(lái)高級(jí)就盲目開(kāi)啟。5.2 batch 設(shè)置的學(xué)問(wèn)吞吐和延遲的取舍batch 是另一個(gè)影響性能的關(guān)鍵變量。推理服務(wù)的 batch 可以分成兩種單幀處理的延遲優(yōu)先模式和多幀批量處理的吞吐優(yōu)先模式。TensorRT 引擎里 batch 是顯式維度你在構(gòu)建時(shí)給的 maxBatch 決定了顯卡最多能一次處理多少?gòu)垐D。實(shí)測(cè)下來(lái)batch 從 1 提到 8單幀平均延遲反而會(huì)下降——因?yàn)?GPU 計(jì)算資源被更充分地利用每個(gè) kernel 的開(kāi)銷(xiāo)被攤薄到了多張圖上。但 batch 提到 16 以上有可能因?yàn)轱@存限制導(dǎo)致 TensorRT 構(gòu)建或運(yùn)行時(shí) OOM。這里給一個(gè) T4 16GB 卡 YOLO 系列模型的經(jīng)驗(yàn)值batch 8 是甜點(diǎn)batch 16 開(kāi)始收益遞減。5.3 性能對(duì)照同一模型在 FP32、FP16 和 ONNX 路徑下的實(shí)測(cè)數(shù)據(jù)為了讓你對(duì)提升幅度有直觀概念我放一組自己在 T4 卡上的實(shí)測(cè)數(shù)據(jù)。模型是一個(gè) YOLOv5s 結(jié)構(gòu)檢測(cè)模型輸入 640x640 三通道單幀單 batch 推理執(zhí)行方式平均延遲ms相對(duì) TF 原生提速顯存占用MB備注TensorFlow 原生FP3242.61.0x2350冷啟動(dòng)后多輪取均值TF-TRT 優(yōu)化FP1612.83.3x1320精度下降可忽略O(shè)NNX→TensorRTFP1611.93.6x1280與 TF-TRT 差距不大ONNX→TensorRTINT87.65.6x860校準(zhǔn)后 mAP 降約 0.3%從數(shù)據(jù)能看出兩件事第一FP16 的提速已經(jīng)非??捎^3 倍以上的提升足夠讓很多場(chǎng)景直接緩解性能瓶頸。第二INT8 雖然還能再快不少但確立了校準(zhǔn)流程后額外引入的工程量不可忽視——如果你本身有 1000 路視頻要處理FP16 已經(jīng)能撐住沒(méi)必要貪 INT8 那點(diǎn)增益。這套數(shù)據(jù)放到t4 1080p25幀每秒用tensorrt yolo 640分辨率檢測(cè)可以支持多少路這個(gè)搜索背景下可以做一個(gè)簡(jiǎn)單估算。1080p25 意味著每路攝像頭的處理周期是 40ms一年按 25fps 算就是每幀 40ms 內(nèi)必須處理完。用 FP16 引擎單幀 12.8ms 的耗時(shí)每路 GPU 占用約 32% 的計(jì)算時(shí)間一個(gè) T4 卡理論上可以支撐 3 路左右但這是并發(fā)而非純串行實(shí)際做多路視頻流時(shí)通常利用 CUDA 流來(lái)實(shí)現(xiàn)并發(fā)把 batch 合并到多個(gè)流中T4 上我實(shí)測(cè)可以穩(wěn)定支持 12 到 16 路 1080p25 檢測(cè)具體取決于預(yù)處理和后處理的資源占用。這個(gè)數(shù)據(jù)可以作為你規(guī)劃設(shè)計(jì)時(shí)的參考基線。5.4 顯存管理TensorRT 引擎加載后的一級(jí)緩存與運(yùn)行時(shí)分配TensorRT 引擎加載后有顯存占用、推理時(shí)還有臨時(shí)工作區(qū)顯存workspace這兩者是兩回事。不少人在部署時(shí)看到顯存占用突然漲到幾個(gè) GB以為是內(nèi)存泄漏其實(shí)是 workspace 設(shè)計(jì)的。前面構(gòu)建代碼里的config.max_workspace_size 1 30就是給推理工作區(qū)設(shè)置上限的——這個(gè)值設(shè)多大取決于 GPU 顯存余量建議顯存緊張時(shí)調(diào)小到 256MB 甚至 128MB性能損失通常不大但能騰出空間給多路并發(fā)。我在項(xiàng)目里遇到過(guò) GPU 顯存被其他進(jìn)程占滿導(dǎo)致 TensorRT 構(gòu)建失敗的情況。排查思路很簡(jiǎn)單先nvidia-smi看顯存占用如果看到殘留的 python 進(jìn)程占了大量顯存用kill -9清理。多環(huán)境共用顯卡時(shí)建議設(shè)置CUDA_VISIBLE_DEVICES環(huán)境變量把進(jìn)程隔離到指定卡上避免互相干擾。6. 踩坑實(shí)錄錯(cuò)誤 43、精度漂移和那些午夜驚魂最后必須聊踩坑。TensorRT 項(xiàng)目里沒(méi)有踩過(guò)坑的人是幸運(yùn)的踩過(guò)坑但沒(méi)解決的人已經(jīng)轉(zhuǎn)行了。我把遇到過(guò)的幾類(lèi)典型問(wèn)題整理出來(lái)按排查鏈路講這樣你遇到相似問(wèn)題時(shí)能順著思路找而不是盲猜。6.1 轉(zhuǎn)換時(shí)報(bào) Cannot find TensorRT library 或 libnvinfer.so 缺失這個(gè)問(wèn)題的根因很直接TensorFlow 運(yùn)行時(shí)找不到 TensorRT 的動(dòng)態(tài)庫(kù)。雖然你裝了 TensorRT但庫(kù)路徑?jīng)]加進(jìn)LD_LIBRARY_PATH。要注意 pip 安裝的 TensorFlow 默認(rèn)不綁定 TensorRT你需要確保libnvinfer.so和libnvinfer_plugin.so在動(dòng)態(tài)鏈接器的搜索路徑里。# 出問(wèn)題先用這條命令確認(rèn)庫(kù)是否存在 find / -name libnvinfer.so* 2/dev/null # 如果存在把路徑導(dǎo)出來(lái) export LD_LIBRARY_PATH/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH # 如果不存在說(shuō)明 TensorRT 根本沒(méi)裝成功 sudo apt-get install tensorrt python3-libnvinfer另一種隱蔽情況是機(jī)器里同時(shí)存在多個(gè) TensorRT 版本比如顯卡驅(qū)動(dòng)自帶的組件和 deb 包裝的有沖突庫(kù)倒是找到了但版本不對(duì)運(yùn)行時(shí)報(bào) symbol not found。這時(shí)候用ldd檢查 Python 擴(kuò)展實(shí)際鏈接的庫(kù)路徑逐一排除冗余版本。6.2 GPU 錯(cuò)誤 43 與 TensorRT 運(yùn)行時(shí)崩潰的排查鏈路Windows 下錯(cuò)誤 43 前面提過(guò)Linux 下的表現(xiàn)往往不是報(bào) 43而是 TensorRT 引擎構(gòu)建到一半崩潰或者運(yùn)行時(shí) CUDA error。我遇到過(guò)一次特別詭異的情況同樣的代碼在 A 機(jī)器構(gòu)建引擎成功在 B 機(jī)器卻反復(fù)崩潰報(bào)錯(cuò)還指向 cuDNN。排查鏈路是這樣的第一步檢查兩臺(tái)機(jī)器的 GPU 是否同一架構(gòu)。我用nvidia-smi -q | grep Architecture看了一下發(fā)現(xiàn) B 機(jī)器是較老的 Pascal 架構(gòu)而我在 A 機(jī)器上構(gòu)建 TensorRT 時(shí)用了針對(duì) Ampere 的優(yōu)化引擎拿到 Pascal 上直接不兼容。這個(gè)問(wèn)題的通用解法是在目標(biāo)部署機(jī)上重新構(gòu)建引擎或者構(gòu)建時(shí)設(shè)置builder_platform相關(guān)選項(xiàng)讓引擎盡可能通用犧牲一點(diǎn)性能。第二步檢查驅(qū)動(dòng)版本。有些老的驅(qū)動(dòng)和 CUDA 12.x 不兼容導(dǎo)致運(yùn)行時(shí)找不到入口符號(hào)。把驅(qū)動(dòng)升級(jí)到支持你所用 CUDA 版本的最低穩(wěn)定版同時(shí)別忘記重啟機(jī)器驅(qū)動(dòng)加載是否完整必須以重啟后的nvidia-smi輸出為準(zhǔn)。第三步如果上述兩步都沒(méi)問(wèn)題可以考慮顯存故障。跑一遍bandwidthTest或者deviceQueryCUDA 自帶的示例程序如果設(shè)備查詢本身出錯(cuò)基本可以斷定硬件有問(wèn)題TensorRT 什么的先放一邊。6.3 精度漂移FP16 下某些模型輸出變成 NaN 或錯(cuò)檢大多數(shù)模型 FP16 沒(méi)問(wèn)題但如果你碰上對(duì)精度極端敏感的模型尤其是層數(shù)極深、激活值動(dòng)態(tài)范圍很大的網(wǎng)絡(luò)FP16 可能導(dǎo)致梯度或推理輸出異常。在你依賴 TF-TRT 自動(dòng)精度分配時(shí)它通常能規(guī)避大部分問(wèn)題但無(wú)法保證 100%。排查思路是先做精度對(duì)比用 TensorFlow 原生 FP32 推理結(jié)果作為基準(zhǔn)逐層或整體比較 TensorRT 輸出的數(shù)值差異。如果你用的是 Python API可以在轉(zhuǎn)換時(shí)打開(kāi)層級(jí)精度診斷如果用的是 TF-TRT可以設(shè)置precision_modeFP16的同時(shí)給特定層通過(guò)set_layer_node_precision手動(dòng)降回 FP32。我遇到過(guò)一個(gè)更隱蔽的情況模型的輸入歸一化方式不對(duì)。TensorFlow 訓(xùn)練時(shí)預(yù)處理是將像素值除以 255但我在 TensorRT 側(cè)直接喂原始 0~255 的 uint8 數(shù)據(jù)導(dǎo)致數(shù)值范圍差了 255 倍FP16 下這種大動(dòng)態(tài)范圍直接觸發(fā)精度問(wèn)題。排查后把預(yù)處理修正到和訓(xùn)練一致問(wèn)題立刻消失。所以記住先檢查預(yù)處理鏈路再懷疑 TensorRT 精度策略。6.4 一次奇怪的 5% 性能回退竟是因?yàn)?CPU 預(yù)處理成了瓶頸某次我優(yōu)化完 GPU 推理延遲降到 12ms但整個(gè)服務(wù)端到端延遲還是 60ms怎么都降不下去。一開(kāi)始懷疑 TensorRT 沒(méi)生效后來(lái)用nvprof或nsight compute一看GPU 空閑時(shí)間占了 80%瓶頸根本不在這里。真正的問(wèn)題是我的圖像解碼、resize、歸一化全在 CPU 上串行跑成了新瓶頸。解決思路是做預(yù)處理流水線并行用 OpenCV 的imread GPU 側(cè)的tf.image或者 CUDA 工具把 resize 和 normalize 移到 GPU 上或至少用多線程預(yù)取下一幀和當(dāng)前幀的推理重疊。優(yōu)化之后端到端延遲從 60ms 降到 24msGPU 空閑時(shí)間也大幅減少。這個(gè)經(jīng)驗(yàn)非常重要模型推理提速之后原來(lái)的次要瓶頸會(huì)變成主要瓶頸你必須重新審視整條鏈路。7. 從 TF-TRT 到多路并發(fā)部署一個(gè)可供參考的生產(chǎn)架構(gòu)聊完單模型加速最后落到實(shí)際部署層面。熱詞里很多人搜gpu租用、gpu計(jì)算資源分配說(shuō)明大家已經(jīng)意識(shí)到模型優(yōu)化完只是第一步怎么榨干 GPU 才是最終目的。這里給出我生產(chǎn)環(huán)境中用的一套相對(duì)成熟的思路供你參考。7.1 用 CUDA Stream 實(shí)現(xiàn)多路視頻并發(fā)推理多路視頻場(chǎng)景最大的特點(diǎn)是每一路都需要獨(dú)立處理但 GPU 計(jì)算可以共享。如果一路一路串行推理GPU 利用率很低T4 上 16 路 1080p25 檢測(cè)基本跑不贏。我的做法是引入 CUDA Stream 機(jī)制將多個(gè) batch 的推理放到不同的 stream 上執(zhí)行讓它們并行提交給 GPU由 GPU 調(diào)度器按需分配計(jì)算資源。TensorRT 的引擎執(zhí)行本身是異步的配合 stream 就能實(shí)現(xiàn)第一路在算前處理時(shí)第二路同時(shí)在進(jìn)行卷積計(jì)算的流水線效果。一個(gè)注意點(diǎn)多路并發(fā)不是簡(jiǎn)單地把 batch 翻倍。每個(gè) stream 里的推理仍然保持較小的 batch比如 2~4這樣既能讓 GPU 吃飽又不會(huì)因?yàn)閱?batch 過(guò)大導(dǎo)致某一路的延遲抖動(dòng)加劇。實(shí)測(cè) T4 上 YOLO 640 輸入、FP16 引擎4 個(gè) stream 每 stream batch 2整體吞吐比單流 batch 8 還要高約 15%原因就在于流之間可以提高整體的 kernel 重疊率。7.2 預(yù)熱、多進(jìn)程和顯存隔離的經(jīng)驗(yàn)值生產(chǎn)服務(wù)啟動(dòng)后第一次推理特別慢這個(gè)是 TensorRT 引擎加載、cuDNN 初始化、CUDA context 創(chuàng)建疊加的結(jié)果。我的經(jīng)驗(yàn)是在服務(wù)真正接受流量前, 先跑一次熱身推理加載引擎后立刻用一個(gè) dummy 輸入跑幾幀讓 CUDA context 初始化完畢。這個(gè)熱身過(guò)程大約需要 500ms 到 2 秒不等但對(duì)線上延遲穩(wěn)定性非常重要。多進(jìn)程部署時(shí)要注意每個(gè)進(jìn)程都會(huì)創(chuàng)建獨(dú)立的 CUDA context 和 TensorRT engine 實(shí)例顯存占用是疊加的。所以我通常不用進(jìn)程數(shù)去硬頂 CPU 核數(shù)而是根據(jù)顯存余量反推假設(shè)每進(jìn)程占用 1.3GB一張 16GB 的 T4 卡單卡最多跑 10 個(gè)進(jìn)程左右再多就要 OOM。更可控的方式是單進(jìn)程多線程配合前面說(shuō)的 CUDA Stream讓一個(gè)進(jìn)程管理多路流減少顯存浪費(fèi)。7.3 引擎文件的保存與跨機(jī)復(fù)用架構(gòu)匹配就可用但別貪TensorRT 引擎文件.engine 或 .plan可以序列化保存但前面說(shuō)了它綁定 GPU 架構(gòu)和 TensorRT 版本。同一個(gè)集群里如果硬件完全一致那引擎文件直接拷過(guò)去加載即可如果硬件不一致必須在目標(biāo)機(jī)上重新構(gòu)建。為了平衡靈活性和加載速度我采用了一種混合策略保存 ONNX 中間文件在每臺(tái)部署機(jī)上首次啟動(dòng)時(shí)自動(dòng)構(gòu)建引擎并緩存到本地磁盤(pán)以后直接加載緩存。這樣既不需要提前知道每臺(tái)機(jī)器的架構(gòu)也不會(huì)每次啟動(dòng)都重新構(gòu)建。自動(dòng)構(gòu)建的邏輯可以做得簡(jiǎn)單一點(diǎn)import os engine_cache ./engine_cache os.makedirs(engine_cache, exist_okTrue) def load_or_build_engine(onnx_path, precisionFP16): import hashlib key hashlib.md5((onnx_path precision trt.__version__).encode()).hexdigest()[:16] cache_path os.path.join(engine_cache, f{key}.engine) if os.path.exists(cache_path): with open(cache_path, rb) as f: return f.read() # 構(gòu)建邏輯省略... engine build_engine(onnx_path, precision) with open(cache_path, wb) as f: f.write(engine) return engine這個(gè)方案的另一個(gè)好處是模型更新后ONNX 文件變了hash 自然不同會(huì)自動(dòng)觸發(fā)重新構(gòu)建不需要手動(dòng)清理緩存。7.4 從單卡到多卡gpu計(jì)算資源分配的一個(gè)簡(jiǎn)單框架當(dāng)你單卡優(yōu)化完成接下來(lái)就是橫向擴(kuò)展的問(wèn)題。多卡環(huán)境下最簡(jiǎn)單的任務(wù)分配方式是按路數(shù)切分比如 32 路視頻4 張 T4 卡每張卡分 8 路。路數(shù)和卡的映射可以先用固定公式做card_index stream_index % num_cards簡(jiǎn)單但有效。如果想更精細(xì)可以引入一個(gè)簡(jiǎn)單的調(diào)度器實(shí)時(shí)記錄每張卡的顯存占用和推理延遲把新請(qǐng)求分配到負(fù)載最低的卡上。在云上租用 GPU 時(shí)我習(xí)慣先把單卡能力測(cè)準(zhǔn)能撐幾路、延遲多少然后倒推需要租幾卡。比如 100 路 1080p25 檢測(cè)單卡穩(wěn) 16 路那至少需要 7 卡考慮冗余和峰值余量我建議租 8 卡。別按單卡能跑 20 路這種理論值去算實(shí)測(cè)數(shù)據(jù)永遠(yuǎn)比理論值靠譜。最后再分享一個(gè)實(shí)用的運(yùn)維技巧GPU 推理服務(wù)上線后持續(xù)監(jiān)控顯存占用和卡上實(shí)際利用率的差異。你會(huì)發(fā)現(xiàn)當(dāng)多路視頻并發(fā)不高時(shí)顯存占用率很低但利用率卻可能從 30% 跳到 90%這說(shuō)明 TensorRT 已經(jīng)把計(jì)算的吞吐拉滿了。如果利用率一直壓在 30% 以下多半是 CPU 預(yù)處理、IO 或者調(diào)度邏輯卡了脖子別急著再優(yōu)化模型先往上下游找找。這條經(jīng)驗(yàn)我用了很多年幾乎每次都能定位到真正的瓶頸。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
青娱乐久久艹| 亚洲清纯唯美| 亚洲欧洲精品视频发布| 久久久久久久| 超碰伊人在线| 亚洲欧洲小说图片视频 | 狠狠穞A片一區二區三區| 青青草日韩免费观看高清在线| 极品美女福利在线观看| 国产成人超碰在线| 大学生美女口爆| 日韩色图 一区二区| 天堂九九九九九九九九九| 日本成人A片免费看| 久久蜜桃一区二区| 精品亚州18| AV九九| 国产精品懂色tv影视免费观看| 日韩少妇无吗| 色av中文字| 成人午夜小视频手机在线看| 91精品国产91综合久久蜜臀| 大香蕉中文201| 亚洲偷91色| 97玖玖人妻| 中文字幕免费看大片| 日本孕妇一区二区视频操逼免费看| 青青青草伊人精品| 天天爱综合网| 美女啪欧美一区| 午夜人妻精品综合在线| 操美女高潮抽搐白浆| 黄色激情电影在线观看| 成人久久久| 好色美女九七第一页| 五月婷婷激情综合| 欧美成人一区二区三区在线播放| 韩国三级理论在线| 日本免费专区| 国产无马av| 成人5码视频| 亚洲av无码成电影在线播放| 26UUU欧美日本| 大香蕉琪琪日本女优不卡| 天天色黄色影院天天操| 五月婷在线| 综合五月婷婷亚洲一区| 成年人网站在线免费观看| 99re28在线观看| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 五月天激情婷婷| 无码高清专| 做爱A级亚欧| 欧美亚洲日本激情在线| 99热啪啪| 欧美色偷拍 | 97中文热色| 亚洲AV永久无码精品成人调教| 牛牛久久国产精品视频一二三| 中文字日本乱码| 免费看污网站| 美腿丝袜高跟网免费视频免费视频| 日欧操屄视频| 麻豆人妻精品一区二区| 久久精品人体AV| 日韩人妻少妇 一区二区三区| 国产999精品久久久久久| 亚卅熟女乱色| 欧美亚洲影视| 校园春色欧美色图| 久久久96精品| 午夜九九九九九九| 欧美天天搞| 插入逼91| 伊人黄色片| 国产一级做a爰大片免费久久| 久精品无码av一区二免费国产在线观看| 欧美午夜一区二区三区| 男人的天堂亚洲| 少妇二级| 农村妇女精品一区二区| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 伊人久久大香线综合无码| 媚薬在线视频麻豆| 夜夜嗨老熟女AV一区二区三区| 亚洲无码超碰免费| 少妇xx精品| 狠狠操狠狠爱| 男人的天堂在线| 久久久一二三四区| 国产一区二区免费福利片| 手机在线视频国内精品| 日韩三四五区| 欧美黑人168页欧美黑人167| 啪啪视频亚洲第一| 91一起操| 中文日韩欧美熟| 精品久久久久综合无码| 一级片视频啪啪| 无码聚合| 99精品伊人| 久久中文字幕在线观看| 国产精品无套内谢| 丝袜AV一二三区| 台湾大香蕉99热| 欧美丝袜亚洲| 国产精品一二三在线看| 97国产色图 | 操美女高潮抽搐白浆| 99中出在线| 丰满少妇精品一区二区| 五月婷网站| 精品区国产区一区二区三区| 超硑97精品| 日韩小电影| 亚洲精品国产熟女| 精品网站9999| 国产精品久久久久久久久久久久| 人妻激情偷乱视三区频一区二区| 人妻酒店出差被中出免费在线播放| 欧美九九九九九| 六月丁香啪啪| 97超级久久| 亚洲九月丁香| 亚洲九九视频在线观看| 韩日性爱av| 五月丁香影院| 成人无遮挡毛片免费看| 天天日日舔舔| 78精品| 蜜桃av综合网发布| 亚州日韩97| 日本操逼视频免费| 欧美一级A一级a爱片久久| 精品一二三区久久AAA片| 国产超碰在线一区| 成人自拍三级在线观看| 久久亚洲不卡一区二区三区| 韩国免费播放一级毛片| 亚洲色性情三级| 天天综合欧美| 国内精品999| 久久久久久人| 久久精品人体AV| 五月婷婷青青草娱乐伊人| 人妻中文字幕精品无码 | 久久久久久裸体| AA特级绝黄| 欧美91久久久久| 国产成人精品必看| 国产精品一级二级在线| 久久美女国产| 国产精品日日摸天天碰| 日韩精品99999| 欧美亚洲天天| 麻豆久久久久久久久丝袜 | 人妻第一页| 日本综合色图| 欧美黄色手机在线观看| 蜜臀色乳| 欧美色综合影院| 久久久久久中文| www.婷婷五月天| 午夜精品久久999热蜜桃介男人用| 久久九九国产精品| 久久久久久久性爱| 欧美影音在线| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 国产性刺激| 在线观看亚洲成人精品| 国产九九九九九九| 麻豆天美国美国产| 中文字幕国产| 天天综合网~91| 亚洲精品色| 日韩操逼性鲍| 国产精品噜噜噜日日日| 麻豆区久久久久亚| 亚洲精品久久一区二区三区蜜桃臀| 精品一二三区久久AAA片| 国产美女自拍视频| 欧美激情一区二区| 久久久精品日本一道| 搞中出久久| 91免费看一区二区三区| 少妇内射视频| 91女在线观看| 三级三级三级日本99| 丝袜足交视频| 精品人妻一区二区三区视频在线| 亚洲丝袜99| 青娱乐 成人娱乐在线| 自拍偷拍2025在线观看| 国产黄色小视频网站| 大香蕉手机在线| 成人A片男人的天堂| 亚洲色诱惑| 97资源久久| 久久做97| 婷婷导航| 国产11页| 五月天丁香| 国产精品熟女丝袜一区二区| 欧美经典一区二区三区| 性爱网站一区二区| 国产精品久久久吖| 热热色91| 男人综合网| 四虎在线观看网站| 98福利在线视频| 热久久九九热| 日本超碰97日韩精品人妻| 欧美性爱十八禁| 级做a爱无码性色永久免费| 久超碰这里只有精品| 97超碰久久色| 在线播放中文字幕| 欧亚日韩三区| 中文字幕精品亚洲熟女| 91天堂丝袜美腿| 欧美大色交| 日韩在线97| 亚州操操穴网| 中文字幕视频一区视频二区| 久久色一区| 一本一道人妻久久一区二区三区 | 久久东京热成人| 亚洲骚男同com| 另类图片五月天| 亚洲天天自拍| 精品免费囯产一区二区三区| 国产精品午夜福利| 国产精品电| 人妻熟女一区二区在线视频| 欧美色图综合网| 97超碰人妻| 69麻豆天美| 国产400孕妇孕交群| 九色婷婷| www五月| 成人 日韩欧美一区| AV九九| 国产少妇与亚洲av| 日欧美色| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 亚洲激情综合| 啊啊啊啊视频免费| 99热线麻豆| 97神马久久| 人人搞人人插人人操| 无码一区免费在线不卡| 亚洲精品中文字幕一区在线视频| 色欧美天天| 91色图片| 日韩精品人妻中文字幕久久久| 精品人妻一区二区三区夜夜| 国产精品久久久午夜夜伦鲁鲁| 天天干人人乐| a亚洲欧美色欲| 日韩精品碰碰| 大香蕉啪啪啪| 国产精品不卡一区二区三区| 97干色| 吖在线不卡一区二区国产剧情| 久久精品国产72国产精品福利| 亚码激情| 美女黄色91| 国产一区二区二区按摩精品啪视频| 成人无码在线超碰网| 成人av动漫在线观看| 91逼逼女人91| 精品国产乱码久久久影院| 欧美AB在线| 日本一区二区三区四区免费观看| 四虎永久在线精品免费网址| 97操B| 精品久久无码午夜福利| 天天插天天插| 色五月AV在线| 日本人妻伦在线中文字幕| 中日韩欧美精品无码AⅤ一区二区| 久热这里| 九九久久国产精品怡红院| 视频国产欧美在线播放| 九九久久久九九| 无码二级三级| 91三级理论片播放器| 精品久久久久9999| 91夜色| 久久色情| 久久精品国产97欧美精品亚洲| 五月天色图影视| 亚洲区限制级| 伊人专区一区二区三区| 91蜜臀熟女| 性性久久| 欧美日韩国产三级黄色| 欧美性战999| 色综合91好| 欧美日韩国产色图在线| 伊人少妇久久久| 欧美的性爱网站免费| 大香蕉伊利av| 久久色精品视频在线| 久草精品国产99| 中文啪啪视频| 人妻铁牛TV| 亚洲乱熟女一区二区三区大香蕉| 懂色av中文字幕一区二区三区天美 | 久久天天艹| 麻豆国产原创AV色哟哟 | 色色热| 亚洲高清欧美总合| 可以看的av| 日韩本不卡视频在线观看| 青娱乐久久艹| 五十路熟女在线不卡观看一区二区| 亚洲密乳AV| 97资源免费视频| AV和黑人在线播放| 熟妇国产免费一区| 国产AV精久久| 亚洲国产福利视频| 五月天色图| 综合97| 久久久久日本视| 久草在线| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 青草视频在线看看看看看看看看看| 色综合 加勒比| 国产精品自在自拍视频| 欧美劲爆第一页| 亚洲无套久久嗯嗯| 91看黄片| 人妻喷水| 欧美三级一级| 伊人久久大香线蕉无码| 夜夜黄| 天天操av懂色| 日韩探花精品在线视频| 亚洲人妻久久久| 嗯啊不要在线| 99re公开精品免费视频| 天天综合青苹果| 天天综合,91入口| 激情五月综合| 18禁中文字幕| 91爱剪切久久| 国产成人主播| 操碰97| 一个国产在线综合网站| 99蜜桃臀亚洲成人在线观看| 久久性爱大全| 色波多| 亚洲性感丝袜诱惑在线观看| 91视频国品一二三区| 国产午夜福利电影免费在线观看 | 秋霞无码av鲁丝片一区| 78超碰| 男人的天堂在线| 在线不卡视频| 午夜国产成人福利视频| 黄色人人| 男人的天堂2018| 清纯唯美综合亚洲| 亚洲熟女乱综合一区二区三区| 色五月av| 国产中文字幕曰本毛片| 国产美女销魂在线观看不卡| 无码78| 超碰1997| 久久精品一区| 久久久久久久 九九九九九九九| 91操人| 成人av在线播放| 免费国产| 色噜噜人妻av中文字幕| 2017超碰| 欧美天堂超碰97| 熟妇高潮一区二区免费视频| 天天躁日日躁XXXXYY| 欧美成熟性爱精品| 欧美色涩| 东京热毛片177b2viP| 97操综合| 91在线丝袜| 日本久久综合| 97伪v| 热久久九九热| 人妻啊啊人妻啊| 丁香婷婷九月| 久久婷婷五月天| 91黑丝在线播放| 亚洲色图超碰在线| 国产精品suv一区| 丁香婷婷激情五月天无毒不卡 | 欧美少妇高潮| 97中文综合| 亚洲国产丝袜在线观看| 日韩欧美三级| 人妻丝袜一区二区三区在线| 在线日韩日本亚洲国产| 亚洲精品男人的天堂| 深喉吞精| 玖玖综合视频| 亚洲欧美日韩夜夜| 日韩精品 欧美激情| 亚洲熟女av日韩熟女| 精品美女少妇一区二区| 天天综合网~69| 欧美岛国精品在线观看| 97超碰资源网| 三级片网站在线播放| 狠狠入| 中亚av| 日本一区二区三区午夜观看| 啊啊啊啊啊好舒服视频| 亚洲精品三| 精品一区二区综合熟妇| 中文字幕aⅴ在线视频| 99色热| 欧美在线伊人色| 久久久久久少妇| 国产伦精品| 精品中文字幕一区二区| 97WW精品| 久热精品在线| 18禁中文字幕| xxx亚洲午夜天堂| 日本不卡免费二区| 国产视频一区二区三区在线免费观看 | 日本东京热久久久电影| 操逼日韩无码 | 国产熟女乱论| 亚洲丝袜B诱惑| 后入式福利| 男女激烈网站最新| 美女啊啊啊啊pc| 亚洲影视高清第一页| 久久中文字幕不卡人妻| 日本三级大片| nuu12国产麻豆精品| 色综合一本| 婷婷97| 99最新日韩偷拍视频| 日本孕妇一区二区视频操逼免费看| 看日韩操逼| 丰满搜索结果 -第18页- 久久高清无码 | 国产精品第二页| 国产精品视屏| 天天插天天射| 人妻激情视频| 囯产乱伦一区二区三女 | 色嗨嗨在线| 亚洲激情 欧美色图| 天天亚洲| 久久麻豆一区二区| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 特级丰满少妇一级AAAA爱毛片| 欧美日日夜夜| 亚洲综合欧美| 人妻天天操天天爽视频免费| 人人妻人人爱人人玩| 亚洲午夜AV| 九九这里只有精品| 欧美v亚洲v日韩v最新在线二区| 97干天天| 加勒比在线观看一区二区| 天堂日本亚洲欧美| 美女裸体无遮挡永久免费观看网站 | 国产盗摄美女如厕大神作品在线观看| 亚洲无码超碰免费| 91中文精品日韩欧美在线| 日韩av在线精品观看| 美女诱惑1区2区| 亚洲综合九九| 日韩精品高清资源在线 | 国产精品久久久999| 精品国产乱码| 天天热精品| 精品性爱无码在线播放| 97碰碰色| 熟女一区二区| 成人无码电影在线观看网| 搞中出视频在线观看| 国产宅男宅女在线观看| nuu12国产麻豆精品| 新版天堂中文资源8在线| 尤物视频新赏网鲜网色诱网| 婷婷五月天成人网| 午夜小电影在线插入淫高潮| www.99视频| 日韩一级成人毛片免费观看 | 亚洲超碰AV| 国产亚洲色婷婷久久99精品91葵花宝典| 国产女乱淫真高清免费视频| 日韩精品在线观看网站| 强奸乱亚洲| 丁香五月激情综合| 天天干天天日天天射黄色| 日本不卡高清免v欧美日韩在线观看| 91人人爽人人爽| 不卡九肏| 肉丝中文无码高清| 操熟女91| 欧美高清无码免费视频高清版| 婷婷在线视频在线观看| 大香蕉专区| 高清在线偷拍自拍视频| 女优免费一区二区永久| 伊人久久国产免费观看视频| 最新中文字幕av| 色婷婷一区二区三区久久午夜 | 学生妹天天看| 久久久久女教师免费一区 | 大干人妻| 懂色aV一区二区天美传媒| 性久久久| 91热爆在线| 清纯唯美激情四射| 99热大香蕉伊在线| 久久人妻| 欧美日韩操操操| 九九九九九九九精品视频| 91网亚洲| 久久久久久999| 永久免费av无码网站国产app| 国产精品久久久久久 百度| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 国产隔壁老王影院在线| 不卡免费av在线播放| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 欧美人妻一区二区| 超碰在线欧美性爱激情| 国产热RE99久久6国产精品首| 台欧久久精品视频| 亚洲在钱| 岛国激情视频在线观看| 午夜免费视频1000| 久久妇| 国产精品久久久久久亚洲色欲| 秋霞曰韩R级| 黄总AV色图| 思思性爱| 国产白领连续中出在线观看| 国产91美女视频| 免费一级黄色录像影片| 麻豆av一区二区三区| AV色五月| 淫荡熟女乱伦网| 欧美少妇大量自拍视频在线观看| 97精品一区| 日本狂喷奶水在线播放212| 女优视频第10页| 国产熟码AV| 99精品欧美一区二区三区桃色| 97久久资源| av2014 日韩在线中文字幕| 小视频国产| AV天天综合| 特污精品女优骚货黄色视频在线免费观看| 久久无码电影| 日日干夜夜欢| 日本操逼视频导航| 婷婷美人网| 欧美大香蕉久| 五月天伊人| 日韩免费a级毛片无码a∨| 五月激情综合网| 久久久久久人体| 亚洲图片偷拍视频区| 欧亚揄拍偷拍精品视频 | 激情小说亚洲| 天天综合在线4| 人人操人人肉久久精品| 色蜜AV| 久久无码精品| 亚洲综合色男人网| 欧美人体性爱互联网第一页婷婷日本| 99综合网| 欧美日韩中文视频播放| 一本一道人妻久久一区二区三区| 777超碰| 国产精品一区二区三区在线密挑| 超碰97丝袜| 国产后入精品| 国产精品内射婷婷一级二| 热久久精品| a亚洲欧美色欲| 色噜噜人妻丝袜AV资源| 国产日韩区| 欧美性天天影院| 大色综合网| 欧美欧美少妇| 熟女丰满人妻一区| 情趣丝袜无码操逼视频| 九九九久久久久| 国产精品无码av| 偷拍亚洲情色| 天天爽爽爽爽| 黄色香蕉视频网站一区| 久久久久网站-538在线视频-欧美永久乱码| 韩国一级婬片A片无码天美| 青娱乐手机日韩在线视频| 色情乱伦AV| 91A欧美电影网站| 日本不卡高清免v欧美日韩在线观看| 性无码专区2020| 韩日巨乳美女免费视频在线观看| 亚洲av无线观看| 亚洲丨在线| 厕所偷拍在线| 操逼操逼逼操操逼91| 欧美97免费| 中文字幕91综合| 一级aaaaa欧美中文字幕录像片| 噜噜瑟| 国产伦精品免编号公布| 中日亚韩免费视频| 亚洲欧美在线丝袜| www.91欧美| 26uuu国产| 免费?级毛片无码?∨蜜芽试看| www.av不卡中文字幕| 精品久久久久久亚洲| 日日噜噜夜夜狠狠视频无| 综合熟妇一区二区三区| 色吧91| 我中文字幕6区| 黑丝少妇| 欧日a| 欧美精品成人一区二区在线观看| 欧洲亚洲天堂精品| 超碰亚洲欧美日韩无| ..日韩av毛片精品久久久| 丰满人妻-区二区三区| 9长久久精品| 欧美黑人性猛交91| 日韩激情啪啪| 黄片qw| 久久 精品| 秋霞福利网| 亚洲日韩肥臀视频在线观看| 亚洲精品国产精品乱码不99| 日韩高清黄片| 日本不卡五区| 国产国产亚洲一二三久久| 日本不卡二三区| 91原创在线观看| 六月激情婷婷| 亚洲国产麻豆一区二区三区| 久久久久久亚洲Av无码精| 夜夜欧美| 久9爱精品| 中字一区| 伊人精品国产| 日本不卡二三区| 97操97色| 国产一区二区三区中文字幕| 色婷婷丁香五月天| 国产精品自产拍在线观看社区| 国产最新小视频在线播放下载 | 日本二三四区| 91中文字幕在线观看| 91九九九吃| 动漫av中文| 99在线视频播放| 天天弄欧美| 欧美黄色图片| 4141514逼喷水三级片| 狠狠 91| 青青草视频这里只有精品| 国产高潮AA片免费看| 天天草天天干天天日| 欧美一区二区观看在线| 青娱乐亚洲自拍| 乱伦a片视频| 天天色黄色影院天天操| 操婢日韩| 视频黄色国产一级| 国产亚洲精品美女久久久m| 国模不卡| 国产中文字幕曰本毛片| 久草免费在线一区二区| 国产美女高潮叫床视频| 亚洲欧洲网站免费观看| 五月天激情四射| 99这里有精品| 亚洲日韩肥臀视频在线观看| 午夜呻吟欧美| 精品久久久久久久久久久久| 成人一区二区三区四区| 91男人天堂网| 亚洲狠狠入| 大香蕉中文在线| 一区二区中文| 国产特级毛片AAAAAA高潮流水| 尤物黄色在线观看网站| 日本国产高清色www视频在线| 香蕉人人操tv| 婷婷五月天福利| 婷婷三区| 久久九操在线观看| 91老司机精品| 亚洲无码 国产无码| 国产欧美日韩一区二区三区| 人妻日日干| 五月丁香激情综合网| 人妻天天爽夜夜爽爽| AV在线资源| 欧美日韩国产色五月综合在线| 97欧美综合网| 激情黄色片在线观看| 日韩精品9999| 97超碰中文字幕| 狠狠爱大香蕉| 国产中文精品一区二区在线观看| 九九aV| 欧美18禁91| 久热99999| 日韩精品人妻| 久久精品店| 嗯嗯啊在线视频| 情侣操 逼视频99| 91色插| 婷婷去俺也去六月色| 97久久视频| 超碰 av 女人天堂| 99精品九九九九九九| www.亚洲黄色| www色色com| 天天日天天操VV| 日韩精品人妻一区二区| 亚洲中文一区二区三区| 一区二区你上我| 北野未奈加勒比av| 丰满人妻被猛烈进入中| 色爱国产| 久久国99999| 青青草福利视频| 日韩在线观看字幕精品| 很黄很污的免费网站| 亚洲一区中文字幕| 欧美国产欧美在线观看| 精品久久在线区一区| 夜夜嗨TV| 天天看天天在线精品| 婷婷国产精品九区| 夜夜嗨一区二区三区直播内容| 亚洲国产欧美另类自拍| 精品夜夜澡人妻无码| 亚洲天在线| 93人人操人人| 97色欧州| 欧洲性爱无码区| 人妻熟女午夜精品在线| 日韩欧美蜜桃精品久久中文字幕久久| 日本成熟少妇A∨网站| 99热色精品| 天天天做天天天爱天天天爽| www.黄色在线| 啊啊啊快操我视频| 日本在线观看网址| 亚洲欧美一区二区三区在钱蜜桃 | 97频视在线| 欧美一二三级精品在线| 美女人妻色网站| 亚洲国产97| 激情五月天色播| 岛国天天午夜影院传媒网| 国产欧美岛国精品一区| 色超碰综合| 国产无码高清操逼视频| 一区二区精品更新提醒| 日韩精品资源专区二区| 日韩99999色| 久久78| 97视频网站在线观看| 精品人妻av区天天看片| 色性欧美| 白丝一区| 色诱中文字幕| 吖在线不卡一区二区国产剧情 | 久久黄黄| 国产色图乱伦| 人人综合| 国产一级特黄大片处女| 欧美青青视频| 亚洲最新a在线观看| av 模特一区了| 亚洲午夜福利视频| 国语精品av| 素人播放一区| 高清国产无码av| 欧美一区二区成人一卡| 久干9操| yazhououmeizongya| 992这里有精品| 国产区日韩区在线观看| 台湾大香蕉99热| 亚洲第2页| 欧美图片校园春色| 小草三级久久观看| 亚洲日本激情| 97亚洲国产| 色五月婷婷网| 黄片qw| 亚洲图片在线| 婷婷五月天基地| 国产精品 视频| 狠狠亚洲| 丁香啪啪| a片偷拍视频| 欧美综合传媒| 很很干很很操| 欧美激情性久久久久久| 国产又长又大又粗的视频| 亚洲精品一区中文字幕乱码| 老熟女乱伦一区| 亚洲双插| 亚洲色9| 亚洲av乱伦色图网站| 亚洲国产精品久久AV| 日语五十路和六十路亚洲国产精品| 日韩中文字幕2020| 亚洲av乱伦色图网站| 国产偷人伦激情在线观看| 欧美一级专区免费大片| 日日狠狠久久偷偷色综合免费| 強姦亂倫a| 欧美亚洲中文字幕| 91高跟美女在线播放| 另类视频在线| 色婷婷激一区二区三区| 中文字幕一区二区三区50路| 综合激情一一91| 另类综合另类| 人人操人人摸人| 13小男生GAY自慰脱裤子| 加勒比久久av| 禁十八久久| 色色无码| 性爱乱伦一区| 都市久久精品激情亚洲| 久久久久女教师免费一区 | 日韩国产品视频中文字| 一区二区三区精品视频| 性久久久| 久久男人的天堂| 正宗无毛一线天嫩逼| 美女黑人91神马| 女人妻一区| 日本色色网| 欧美视频边做饭边橾| 伊人五月天婷婷| 成人久久久| 极品出轨视频网站| 亚洲性感丝袜诱惑在线观看| 青青草亚洲一区| 91视频国品一二三区| 久久婷婷综合国际产色怕| 三级AV入口| 秋霞怕怕片| 丝袜AV一区二区三区| 少妇高潮喷水无套久久久久久| 欧美五区| 97精品国产97久久久久久免费| 性一交一乱一交A片久久四色| 377p欧洲日本亚洲大胆| 欧美v亚洲v综合v国产v妖精| 久草午夜| 男人在线天堂| 久草成人| 蜜臀99久久精品久久久久| 欧美的精品的视频| 淫纸中9区| 久久超碰天天| 婷婷探花久久精品一区| 色97国产69香蕉| 99精品丰满人妻无码| 亚洲色图 图片| 久久精品夜色国产亚洲AV| 狠狠操一区二区| 五月天伊人| 综合久欧洲| 日日夜夜国产综合| 天天综合网在线| 99re只有精品| 日韩不卡码| 77国产精品| 97超碰中文| 亚洲青青草| 9.1小视频| 9久久久久久| 天天肏视频| 欧美狠狠干| 强奸乱伦AV一天堂网| 欧美十八禁视频| 国产精品毛片?v一区二区三区| 一类av片在线看| 日韩探花精品在线视频| 日本亚洲熟女视频| 色五月综合| 国内精品999| 九九热视频这里只有精品| 黄日韩| 久久久久久中文| 快灬快灬 一下爽蜜桃在线观看| 中文乱码字幕观看视频| 国产午夜精品理论片a大结局| 嫩草美女久久| 天天做日日做天天欢。| 国模吧 一区二区三区| 曰韩精品九九无码| 免费人人搞97| 国产中午字一暮区| 黄页av| 国产亚洲精品无码三区| 1769一区二区| 亚洲日本成人动漫| 二级久久网| 97亚洲自在精品在线观看| 亚洲AV无码乱码| 日韩性爱视频在线免费观看| 色牛牛AV| 精品人妻1237| 欲女人妻性色av| 91一区二匹| 蜜乳AV.COM| 色九月婷婷| 久久熟妇五十路一区| 国产精品午夜精品| 超碰色综合| 久久一级无码精品毛片6| 欧美性色欧美| 日韩欧美亚洲自拍偷拍| 日日操丁香五月天| 91久久久久久久久久久| 亚洲日韩乱码中文无码蜜桃臀网站 | 伊人久久国产免费观看视频| 久久九操在线观看| 呦呦一区| 欧美成人黄网色网站| 99re这里只有精品3| 伊人午夜福利视频| 日韩强奸av| 亚洲黄色影视| 亚洲有码第一页| 婷婷涩嫩草鲁丝久久午夜精品| 思思热久久成人| 欧美亚洲性爱一区二区| 欧美专区17页| 91人妻最真实刺激绿帽| 激情综合五月天| 亚洲天堂电影网| 国产主播福利| 色性综合| 黑丝制服中文字幕| 亚洲国产欧美另类自拍| 麻豆视频test| 日本布卡一区二三区| 久久久久人妻二区精品叶可怜| AV 少妇 人妻 偷拍| 99热国产| 亚洲精品一二区| 青青色综合| 久九九九| 五月天伊人| 少妇熟女视频一二三区| 一本精品日本在线视频精品 | 天天天天天天天天天天干美女| 欧美少妇第一页| 亚洲牲交| 熟妇熟女视频一区二区三区| 午夜操操操| 国产成人免费观看在线视频| 上床不卡网站| 亚欧色图在线激情| 色情成人五月天| 新91视频.cmp| 不卡免费av在线播放| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 骚日日av| 国产亚州高清国产拍精| 欧美青青视频| 久草视频观看视频在线| 884t在线| 久久精品欧美一区二区三区不卡| 欧美熟妇精品黑人巨大一二三区| 亚洲情色综合| 精品久久在线区一区| 国产97在线视频| 蜜桃成人1区2区3区| 无码78| 超碰调教97| 亚洲图片激情小说| 亚洲一区二区麻豆影院| 日韩综合色图| 黄色大片一区二区密桃丝袜| 久久免费少妇| JULIA人妻风俗店中出电影| 少妇综合| 国产白嫩精品久久| 黄色免费一级在线毛片| 欧洲乱码一区二区| 日韩熟女操逼| 欧美亚州综合图片| 91成人久久| 久久久91福利姬| 久草视频分类在线| www欧美91| 日韩在线女优天天干| 老司机午夜精品视频| 欧美曰韩国产精品| 色伊人91| 999国产精品999久久久久久| 五月天婷婷综合网| 韩国一级做a久久久久| 超碰97男人| 少妇xx精品| 精品少妇高潮久久| 少妇一线天久久久久久| 国产乱伦搜索结果91P| 欧美日韩国产男人| 粉嫩av在线一区二区| 天天干人人乐| 日韩二三区| 1024人妻熟女一区二区三区| 99re28在线观看| 精品v1区| 天天色综亚洲91污| juliaann丝袜| 青青草啪啪网| 亚洲一区中文字幕一区| 又粗又长又大国产不卡| 欧美日动态视频| 久操热| 久久亚洲中文字幕视频| 久久一区二区加油站| 久久丁香| 国产精品美女久久久久AⅤ国产馆| 欧美色图小说综合| 啊啊啊 在线观看| 嫩草一区二区在线观看| 亚洲97精品| 国产精品久久久久久久久久久久久久久| 国产精品免费视频不卡| 日韩精品在线视频,日韩精品……| 天天综合网AV91| 激情99| 18禁精品网站在线看| 一本色道久久综合精品婷婷| 日产中文字幕2020| 国产亚洲色婷婷久久99精品91| 日韩无码视频黄色| 天堂亚洲精品| 另类av综合久久| 口爆综合网| 丰满人妻一区二区三区大胸懂色| 在线观看不卡一区二区三区| 亚洲影视综合| 日本影视久久免费| 九九夜精品九九在线| 丁香婷婷九月| 天天肏夜夜肏| 色色毛片| 日韩成人高清一区二区| 日日日大屁股骚女人精品| 成人一道本免费视频| 久久综合女优| 免费簧片在线观看| 插插综合网天天影视网| 狠狠操夜夜操蜜桃视频三区| 欧美天天综合网| 九九久久国产精品| 口爆吞精在线观看| 女人香蕉久久毛毛片精品| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 久久人妻四季| 日韩卡一卡二卡三在线| 91成人亚洲色图| 日本天天人人狠狠在线日美女| 亚洲成人性爱网站在线播放| AV色五月天| 亚洲日韩一区电影| 国产特级毛片AAAAAA高潮流水 | 九九色婷婷| a片自拍直播视频| 嫩草 我啊~嗯~在线| 男人天堂久久精品| 天堂俺去俺来也www久久婷婷| 精品人妻久久久久一区二区三区| 青青11操操操操操操操操| 久久精品高清AV| 久久久精品网站| 日产123区精品免费观看| 男人天堂婷婷五月天校园春色| 国产宅男宅女在线观看| 高清视频一区| 欧美后入视频| 奸色色 男人天堂 天天射| 亚洲色 国产 欧美 日韩| 蜜臀久久99精品久久久久久无删减 | 色五月首页| 婷婷在线视频在线观看| 哈哈操 大香蕉| 日本天天干天天搞一区| 99免费视频| 国产性爱乱伦AV| 久久久性| 国产激情在线| 激情人妻另类| 日韩99神马视频播放| 99热免费| 日本www操操操| 国产第12页| 中文字幕欧美日韩三级| 激情四射婷婷六月天| 日韩AV一区二区三区三州三州| 亚洲五月天激情| 日本操嫩b网| 色翁荡息又大又硬又粗又爽| w w w.久久精品| 欧美色图91| aV中文麻| 久久久96精品| 91欧美性| 免费网色网站| 国产传媒1234区| 日韩欧美成人大香蕉| 亚洲精品xxx| 91碰碰碰| 最新国产精品久久精品| 欧美激情另类一区二区| 激情综合网激情综合| 欧洲精品一级二级精品综合视频综合| 四虎在线免费视频| 99re这里| 超碰98综合网| oumeizonghese,www| 躁躁日曰躁2020| 欧美激情亚洲色图| 91九久| 综合网,亚洲,欧美| 精品超碰中文在线| 亚洲不卡AV在线| 欧美日韩色图片| 精品国产少妇高潮视频| 六月丁香五月婷婷| 日韩高潮一区| 日韩在线视频1234| 欧美少妇大量自拍视频在线观看| 最新欧美色网| 欧美.亚洲.另类.丝袜.制服.诱惑| 色播五月丁香| 国产黄a三级三级三级av在线看| 国产精品白虎| 中文字日本乱码| 91真人天天在线| 91爱欧美|