99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線(xiàn)實(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ō)話(huà)一個(gè) ResNet50 的推理圖里TensorFlow 默認(rèn)展開(kāi)后大概有上百個(gè)算子節(jié)點(diǎn)而 TensorRT 優(yōu)化完可能只剩下三四十個(gè)融合節(jié)點(diǎn)。算子少了kernel 啟動(dòng)次數(shù)少了GPU 深層次的流水線(xiàn)才能吃飽。這就像你做飯每一步都單獨(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 勸退。我這篇文章走的路線(xiàn)是盡量少改代碼讓圖優(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)存里訪(fǎng)問(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 的全稱(chēng)是 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í)話(huà)TFLite 主要是給邊緣設(shè)備用的和 TensorRT 的 GPU 高性能路線(xiàn)不太搭。如果你在服務(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)建引擎自由度最高的硬核路線(xiàn)前兩條路徑是框架幫你干活最后這條是你自己控制一切。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ò)。我建議先跑通前兩條路徑把性能基線(xiàn)摸清楚再?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拿滿(mǎn)全部性能只有非固定場(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í)的參考基線(xiàn)。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)程占滿(mǎ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è)備查詢(xún)本身出錯(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)致梯度或推理輸出異常。在你依賴(lài) 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ù)處理流水線(xiàn)并行用 OpenCV 的imread GPU 側(cè)的tf.image或者 CUDA 工具把 resize 和 normalize 移到 GPU 上或至少用多線(xiàn)程預(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ì)算的流水線(xiàn)效果。一個(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ì)線(xiàn)上延遲穩(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)程多線(xià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ù)上線(xiàn)后持續(xù)監(jiān)控顯存占用和卡上實(shí)際利用率的差異。你會(huì)發(fā)現(xiàn)當(dāng)多路視頻并發(fā)不高時(shí)顯存占用率很低但利用率卻可能從 30% 跳到 90%這說(shuō)明 TensorRT 已經(jīng)把計(jì)算的吞吐拉滿(mǎn)了。如果利用率一直壓在 30% 以下多半是 CPU 預(yù)處理、IO 或者調(diào)度邏輯卡了脖子別急著再優(yōu)化模型先往上下游找找。這條經(jīng)驗(yàn)我用了很多年幾乎每次都能定位到真正的瓶頸。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
狠狠做五月婷婷| 淫荡家庭AV| 九九这里有精品| 五月天婷婷色| 激情亚洲婷婷| 久久码久久无清| 欧洲亚洲精品| 久久婷婷五月综合激情国产| 99热最新| 九九色插| 金品在线视频99| 久久五月婷| 丁香六月天堂| 五月丁香六月花| 亚洲综合色婷婷| 丁香花五月天社区| 婷婷五月天大香蕉在线视频观看| 国产91资源在线| 香蕉狠狠爱视频| 五月花婷婷丁香| 婷婷五月综合婷婷| 啪啪啪大香蕉| 亚洲欧洲另类| 丁香综合婷婷开心激情网| 久久久婷婷色五月资源网| 欧美搡BBBBB摔BBBBB| 色综合区| 色色五月天婷婷| 欧洲色色| 久久9精品视频| 六月丁香VA| 日韩五月天婷婷| 九九热a| 一起草av在线观看| 玖玖婷婷色| 亚洲中文字幕翔田千里| 国产亚洲AV人片在线| 性爱综合网| 99热啪啪| 夜夜爽天天爽| 少妇真实被内射视频三四区| av中文字幕免费观看| 激情五月婷| 天天婷婷天天| 狼人婷婷久久| 亚洲综合另类| 玖玖99免费视频| www.婷婷五月天啪啪| 五月激情另类| 五月综合在线婷婷图片| 26UUU精品一区二区c〇m| 思思热闹这里只有精品| 夜夜噜夜夜奇| 99热日韩| 六月丁丁香| 91精品久久久久久综合五月天| 99re这里只有精品首页| 激情五月四色| 婷婷六月香| 狠狠干狠狠操狠狠爱| 久久激情网| 香蕉久日夜| 婷婷色色网| 思思热视频在线| 色色色色热| 婷婷丁香色五月| 97久久草草超级碰碰碰| 99热成人| 久久综合五月天激情小说网站 | 五月天婷婷爱| 无码髙清| 日本综合久久| 日韩久久日| 9热久久在线| 中日韩狠狠色| 丁香婷婷五月天网站| 婷婷色香六月综合激情| 婷婷丁香五月天激情| 大香蕉久久婷婷精品综合| 99热碰碰| 九月色婷婷| 国产亚洲精品久久久久久郑州| 国产69精品久久久久999小说| 日韩无码专区| 五月丁香六月婷婷成人| 色播播之激情五月婷婷| www.狠狠| 99久久婷| 欧美三级级99久久| 婷婷色五月丁香六月欧美啪| 丁香香五月激情免费视频| 美女亚洲五月丁香| 九九婷婷网五月天| 午夜丁香| 欧美日韩成人在线网| 久操热线| 色婷婷成人五月| 一月婷婷色色| 色香蕉婷婷| A级毛片高清免费不卡播放谢谢谢谢| 丁香九月综合| 色婷婷亚洲在线| 丁香六月婷婷五月婷婷| 国产精品久久久久久久久久免费| 色欲久久久久久综合网综合网| 亚洲第一黄网| 五月婷婷开心五月| 少妇被躁爽到高潮无码文 | 九九久久99| 色丁香影院| 亚洲综合五月天婷婷丁香| 欧美色婷婷| 久久九久久| 亚洲人妻Av| 同性gv国产精品一区二区| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | ww久久| 99ER热精品视频| 9 1在线视频| 区区久久妻| 79精品视频| 激情五月六月婷婷| 五月婷婷色综图片| 亚洲六月婷婷| 婷婷五月日本| 婷婷丁香激情五月| 久久综合婷婷| 超碰99在线观看| 一级A片天天操夜夜操| 爆乳熟妇一区二区三区爆乳照片| 婷婷五月综合色小姐小说| 久久久久久久丁香五月天婷婷| 丁香5月婷婷| 久久只有18视频| 色五月色情| 久热婷婷| 色激情综合| 有哪些A片网站| 丁香五月激情五月| 亭亭丁香aV| 亚洲色色色| 五月日韩中文字幕| 丁香五月天人体| AV在线观看网站| 97超喷视频在线观看| 激情五月图| 久久久ww| 午夜爱插插| 夜夜撸天天操| 91窝窝| 色小说婷婷五月天天天| 噜噜在线| 精品人妻伦| 欧美色色色| 天天综合久久| 超碰二区| 久草五月| 五月丁香久久网| 日韩av在线电影| 丁香五月婷婷少妇| 狠狠穞A片一區二區三區| av在线播放网站| 99这里只有免费的小视频在线观看| 日本精品99网站| 亚洲操B视频| 五月婷婷色欲| www.婷婷,com| 毛片九九九九九九九九18| 色五月开心婷婷| 色欲婷婷五月天| 色你久久| 欧美成性色| 成人网址在线观看| 国产99美少妇| 激情综合丁香六| 《》【无码】想被搞到爽AV应募而来的超M素人 西纯子 10musume-011723-01 | 婷婷五月天伊人| www五月天com| 香蕉狠狠爱视频| 99人人操人人爱久久久| 97色色婷婷| 7777激情基地| 曰韩少妇内射免费播放| 综合一本道| 九九成年视频| 夜夜爱伊人| 婷婷五月综激情| 超碰不卡在线| 91欧美| 色色日本| 丁香五月激情六月综合| 色约约视频一区二区三区四区五区 | 亚洲五月天激情| 99er日韩| 亚洲激情四射色| 亚洲人人操BD| 99 re视频一区| 狠狠操综合| 天天爽天天爽天天爽天天爽天天爽天天爽天天| 97在线观看| 婷婷色爱| 激情欧美婷婷| 五月婷视频在线观看| 激情五月久久| 丁香五月婷婷少妇| 日笨久久网| 九热视频在线精品15| 丁香五月中文字幕| 中文字幕成人网站| 欧美日本黄色| 色婷婷五月天堂资源| 五月丁香婷婷激情图片| 很很干天天干| 久久人妻伦理| 激情婷婷五六月天| 97干在线观看| AⅤ网站在线看| 六月丁香VA| 国产av影片| 日本高清久久| 色婷婷六月天| 26uuuuuuuu国产| www一起操| 99碰碰| 日韩在线五月天婷婷| 久久最新色| www.99热| 久久久999精品| 99久久久久| 国产做A爰片毛片A片美国| 丁香五月亚洲婷婷| 婷香五月网在线| 久久婷婷五月综合伊人| 操九色| 精品99这里有| 色香久久| 日本在线播放97| 成人五月天丁香婷| 99精色| 69热在线| 亚洲99热| 婷婷五月天成人| 狠狠狠色激情综合适合| 欧洲亚洲欧洲99久久| www.综合久久.com| 丁香五月婷婷综合激情哟哟哟| 91干视频| 婷婷五月天国产在线播放| 开心久久xxx色| 超级久久久| 五月婷久久| 婷婷综合成人| 婷婷丁香五月亚洲| 天天日天天操天天干| 99久久99九九九99九他书对| 久久婷婷五月综合激情国产| 久久99精品久久久| 色婷婷五月天小说| 五月丁香六月婷婷网| 精品婷婷| 超级碰 久久9| 久久久高清| 亚洲成人免费电影| 狠狠操狠狠爱| 四虎成人精品永久免费AV九九| 婷婷丁香激情五月天色色| 青草激情综合| 亚洲av成人在线| 亚洲激情网站| 开心五月深爱五月丁香五月激情五月 | 免费啪啪啪网站| 国产肥白大熟妇BBBB视频| 大香蕉婷婷丁香天堂AV| 操逼棍操逼| 9色91视频| 99热在线播放| 一级黄色影片| 八戒青柠影视剧在线观看| 九色自拍| 91精品久久久久久| 97人人干| 色婷婷小说网| 另类图片五月天| 色区久久| 欧美性爱五月天| 久久婷婷亚洲| 激情网五月| 久久曰曰| 亚洲第一综合| 亚洲成av人影院| 婷婷综合| 亚洲狠狠丁香婷婷香蕉| 婷婷五月综合免费在线| av成人在线播放| 激情婷婷黄色五月 | 超碰99久久| 丁香五月天成人网站| 五月婷婷五月天激情网| 六月婷婷激情| 六月丁香综合| 91人妻PORNY九色大屁股| www.色婷婷.com| 九九热视频网站| xxxx五月激情| 日撸夜撸日操| 日日夜夜天天| 99色亚洲| 国产精品日本一区二区在线播放 | 欧美va精品va老师va| 久久久香| 国产激情久久久| 丁香五月色色| 无码人妻少妇色欲AV一区二区 | 天天综合色丁香| 久/久精品99看9| 丁香五月综合久久| 国产亚洲99| 久久这里面只有精品视频| 国内婷婷丁香社区在线播放| 夜丁香五月婷婷| 婷婷五月丁香香蕉| 激情视频网址| 三级片AAA久久久AAA久久久AAA | 欧洲亚洲欧洲99久久| 天天成人综合视频| 五月天综合网| 婷婷精品| 吾爱AV导航| 日本女人久久| 五月色情网| 天天搞天天色综合| 欧美在线视频99| 亚洲精品色| 激情AV综合| 国产婷婷五月天| 丁香六月激情网C0W| 天天天天天天天操| 色玖玖综合| 91日韩美女被插视频| 大香蕉久热| 欧美又粗又大一区二区在线观看| 99热在线这里| 五月开心网| 久热A片| 秋霞AV淫| 国产精品蜜臀99| 色噜噜五月天| 久久无码成人| 久综合网| 九九热视频这里只有精品| www.操.com| www.韩日视频| 这里只有精品99视频| 六月综合在线| 五月天婷婷基地| 亚洲男人的天堂婷婷色五月| 97色色色色色色色色色色色色色| 久久玖玖综合| 婷婷色色网站| 无码地址| 91成人视频| 成人免费黄色短视频| 中文字幕,综合,91| 天天视频亚洲| 五月天社区| 天堂网色色| 99爱免费在线观看| 一级性爱视频| 91九色大屁股| 岛国AV网| 丁香五月天大香蕉啪啪| 婷婷五月激情热播| 婷色五月天| 91热视频| 婷婷五月天激情综合深爱| 99久久婷| 精品99在线观看| 色婷婷香蕉丁丁网| 天天日天天操心| 99狠狠| 99爱免费视频| 99精彩视频网站在线| 丁香婷婷基地| 久9久9热久热| 五月天综合久久丁香91| 狠狠草在线观看| 日本一级黄色片。| 天干天天干天天天天天| 五月丁香啪啪啪| 91丨九色丨白浆| 激情五月婷婷丁香| 91刘玥视频在线观看| 91视屏在线观看com.wwwvv| 九九99免费视频| 狠狠情色| 99精品在线观看视频| 色99综合色88| 婷婷网五月| 激情第四色| 91碰碰碰| 99热这里只有精品9| www.久久久久久久| 五月丁香色色网| 婷婷操超碰| 色99视频| 成人在线网站| 色噜噜狠狠色综合网| caopeng97人人| 99热综合在线观看| 五月色综合| 亚洲精品亚洲人成人网| 午夜丁香久久久久久| 99热20| 婷婷综合网站| 久久久久久久丁香五月天婷婷 | 337p大胆噜噜噜噜噜91Av| 97五月久久丁香婷婷| 99精品视频网| 狼友超碰| 夜夜爱网站| 狠狠干五月天婷婷网| 久久综合激情| 夜夜人妻五月天| 五月婷婷色播| 99视频在线观看欧| 91av无码| 91人人操.COM| 久久99这里只有精品| 综合网激情| 熟女婷婷网站一婷婷五月一丁香婷婷一婷婷激情网 | 被强行糟蹋的女人A片| 日本在线免费中文com.| 色综合激情图区| 色丁香五月天婷婷| 人人人操| 色婷婷激情| 99热日本| 另类丁香综合| 丁香五月性| 中文字幕婷婷五月天| 国产欧美精品AAAAAA片| 天天插插天天| 97热视频| 2025超碰| 中文字幕在线不卡| www.十八禁不禁AV.com| 涩五月丝袜婷婷| 国产人妻操逼| 九九九九精品精| 狠狠色噜噜狠狠| 丁香婷婷婷五月综合色情| 午夜成人AV在线| 99热6这里之有精品| 伊人综合网站| 精品乱码视频| 538在线精品| 互月天综合| 99在线播放| 亚洲综合99| 久久婷五月综合色| 婷婷综合另类| 亚洲视频1区| 狠狠操天天干| 亚洲激情视频在线观看| 五月丁香婷婷综合激情基地| 亚洲人人96@| 中文字幕视频色婷婷| 丁香桃色网| 99久久婷婷| 婷色天堂| 婷婷综合久久| 人妻操逼视频| 丁香久色| www.久久爱.com| 最近韩国日本免费高清观看| 激情五月天啪啪| 天天操夜夜夜拍拍拍| 91精品视频男人的天堂| 亚洲高清在线| 亚州操操| 性爱网五月婷婷| 日韩成人AV在线播放| 婷婷六月爽| 97日本在线| 99久久国产宗和精品1上映| 五月色综合网| 五月婷婷插一插| 99玖玖免费视频| 久久九九激情五月天 | 人妻体体内射精一区二区| 激情五月综合亚洲另类| 精品少妇蜜臀91| 久久色区| 91热视频色网站| 婷婷中合| 婷婷久久综合| 天天天摸夜夜夜玩| 五月综合婷婷网| 色五月天堂| 夜色综合网| 五月激情视频| 精品成人久久久久久久_一二三四视| 婷婷色色播五月天| 激情五月天色| 91九色精品熟女内射| 色玖玖网| 欲色人妻| 丁香五月婷婷国产av| 五月激情站| JAPANRCEP老熟妇乱子伦视频 | 精品久久人妻| 思思热在线观看| 亭亭五月天黑人2014| 丁香女人五月天| 五月天婷综合| 玖玖爱伊人| 青草激情综合| 美英法精品无码免费视频| 五月婷婷开心亚洲无| 久久久99视频| 国产在线黄色| 91久久综合亚洲鲁鲁五月天| 色婷婷天堂| 久久久五月天网站| 大香蕉欧美在线| 九九99九九精品视频| 97五月婷| 婷婷六月香| 色色色色色色综合网| 欧美性生交XXXXX无码小说 | 超碰免费观看| bukadeavzaixian| 99干在线视频| 丁香五月www| 伊人超碰在线| 欧美日韩中国| 99久精品| 超碰人人操在线| 综合另类视频| 九玖视频这里只有精品| 综合亚洲五月天| 六月99天天婷婷激情综合| 激情五月天丁香| 日本99久久| 五月婷婷干干干| 五月六月播婷婷| 九九热亚洲中文在线观看免费| 午夜婷婷丁香| 六月丁香婷婷网| 五月色丁香婷婷中文字幕| 丁香五月激情月| 五月色丁香国产在线视频| 亚洲综合婷婷| 欧美美美女性色视频| 99热一区| 激情综合五月| 免费无码毛片一区二区A片| 国产免费性爱| 超碰高清在线| 另类激情综合| 婷婷五月丁香亚洲| 久久综合网桃花| 美欧日韩国产成人在战| 深爱五月月天| 99免费视频精品| 久久婷婷五月综合色和| 一起草Av| 99re热视频这里只精品| 超碰人人操人人9| 99热99精品| 婷婷五月天激情四射五月天激情| 开心五月深爱五月婷| 毛片色五月| 免费婷婷| 亚洲成人在线观看av| 牛牛色av| 激情q青青草在线婷婷| 天天成人综合视频| 人妻激情综合| 欧美特大片黄| 久热中文字幕| 啪啪干伊人婷婷| 日韩在线婷婷五月天综合| 五月丁香啪综合| 色综合五月天| 丁香五月婷婷久久久| 色婷婷亚洲| 丁香六月高清视频| 久久色五月| www.五月天| 密视AV综合在线| 国产欧美日韩性爱| 激情五月天小说| 五月天另类小说| 亚洲无码影音| 97在线视频观看| 婷婷五月骚厕所| 五月婷婷狠狠干| 国产无遮挡又黄又爽免费网站| 99免费青青蜜臀| 无码一区二区日韩| 久久婷婷综合国产| 五月婷婷六月激情| 久久久激情| 天天射色五月天| 久久曰曰| 91狠狠色色丁香婷婷综合久久| 2023天天日夜夜爽| www.狠狠| 9热在线视频| 亚洲精品操一操、噜一噜、摸一摸、爽| 激情五月丁香六月综合AVXXXX| 亚洲五月丁| www,超碰| 日韩AV成人电影| 日本va欧美va精品发布视频| 六月婷婷激情| 一本色道久久综合狠狠躁小说| 伊人青草成人| 久久婷婷影院| 五月天婷综合| 五月天婷婷爱| 五月丁香久久久| 天天草人人摸| 337p大胆噜噜噜噜噜91Av| Caoub青青超碰| 婷婷五月激情片| www.激情五月| 色五月成人| 激情图片五月天| 激情98色婷婷五| 久热这里只有精品在线观看| 色五月激情婷婷| 大香蕉欧美在线| 五月天五月天成人网亭亭成人色网站| 超碰v| 深爱五月婷婷开心中文字幕| 色婷婷狠狠| 久久伦乱| 色色丁香五月天| 丁香 亚洲 久久| 九九热免费| 综合六月久久| 亚洲综合色丁香婷婷六月| 激情五月激情综合网| 日本色色图| 丁香婷婷色色| 超碰在线观看9| 天天射影院| 五月丁香婷婷婷激情爱爱| 激情五月,激情综合网| 9视频在线成人网站| AⅤ色区| 偷偷与邻居做爰完整视频| 婷婷五月天改成什么了| 夜夜操狠狠操天天操| 亚洲五月天激情| 高清无码.com| 丁香五月电影| 久久五月丁香六月婷| 成人日韩欧美| 色。 日日日| 成人做爰A片免费看视频| 亚洲中文无码成人| 嫩草AV久久伊人妇女超级A| 婷婷五月蜜桃成人桃色丁香| 欧美经典片免费观看大全| 丁香五月婷婷动漫视频| 久久综合99综合| 久热这里只有精品99re,久热这里只有精品7 | 亚洲日日操| 九九偷拍网| 色五婷婷在线视频| 热99精品视频五月| 开心激情婷婷| 另类综合激情| 真实的国产乱XXXX在线91| 五月婷导航| 亚洲国产网站| 91色涩| 日韩无码成人电影| 亚洲五月婷婷| 色噜噜狠狠狠综合曰曰曰| 亚洲人成网站999综合| 六月综合在线| 99久久婷| 无人区码一码二码三码医生系列| 精品A√| 91青娱乐青青草| 亚洲综合五月天婷婷| 婷婷黄色五月天在线视频| 综合久久激情久久| 丁香狠狠色婷婷| 激情色中文| 婷婷综合丁香| 五月天丁香成人社| 婷婷热婷婷色| 97人人看一| 九九在线精点品| 婷婷五月天激情综合深爱| 热九九九九| 91精品综合久久久久久五月丁香| 五月丁香六月婷婷综合伊人| 啪啪六月婷婷| 深爱激情五月天| 79色色色色| 婷婷无码视频| 婷婷操无码| 色综合久久88色综合天天99| 久久人妻情侣| 色色激情网| 日本黄 色 片| 91一起操| 久久人妻视步| 美女亚洲五月丁香| 久久9RE热视频精品98| 狠狠操狠狠插| 婷婷成人五月天成人文学| 日韩砖区| 欧洲S级在线观看| 少妇2做爰HD韩国电影| 在线视频99| 少妇婷婷五月天| 五月婷婷丁香啪啪| 五月综合激情久久| 久久综合人妻| 色婷婷小说网| 婷婷色日本| 色婷婷久久久| 婷婷影院欧美| 中文字幕丰满孑伦无码专区| 欧美99热| 夜夜躁爽日日| www,五月丁,com| 丁香五月色情| 日本97在线| 日本eVa一区=区视频| 婷婷伊人网| 色色综合激情| 99热这里只有精品18| 色婷婷内射| 亚洲第一成人无码A片| WWW.HENHENL.| 日本强伦片中文字幕免费看| 天天做天天爱| 五月天久久婷婷| 日婷婷久久开心| 热久久精品视频网站| 玖月婷婷爱丁香| 99热碰碰热| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 99九色视频在线观看| 99婷婷色| 综合狠久久| 无码人妻AV久久久一区二区三区| 五月丁香六月婷婷网| 丁香久久综合| 人人摸人人澡人人| 亚洲中文乱字字幕在线永久| 丁香六月无码播放| 婷婷丁香激情五月天色色| 南京搡BBBB搡BBBB| 青青操绿aaa一区日v| 亚洲午夜av| 日本不卡中文字幕| 色99在线观看| 五月婷精品| 色播婷婷大香蕉| 成人网在线视频| 天堂五月婷婷| 欧美性爱中文字幕| AV成人在线播放| 精品99在线观看| 99精品超在线播放| 日本久久人| 久久五月激情| 亚州色色色| 五月六月婷婷| 婷婷五月天精品| 日日日日操| 情趣视频66| 五月色影院| 五月天婷婷激情在线色图| 激情综合丁香五月| 亚洲综合五月| 97视频.干com| 亚洲人妻av| 色色射| 超碰在线国产| 日本熟妇乱妇熟色A片蜜桃| 大地资源色婷婷视频在线 | 丁香玖玖视频大全| 肏屄色播伊人97婷婷| 大香蕉五月婷婷| 亚洲中文字幕网| 永久的网站AAAA | 99成人| 丁香五月影院| 亚洲精品字幕在线观看| 日逼AV影音先锋男人资源站| 国产AV影片| 九九成年视频| 五月亭亭色| 九九久久五月天综合伊人| www久久99| 在线,国产,色,热视频| 丁香五月,开心五月,成人婷婷| 4399成人黄A片| 99这里是99在线视频| 国产 A片 自拍| 九九机热| 色综合色| av人人干| XX色综合| 色99无码| 91色在线/日韩| 99精品在线观看| 影音先锋91在线资源站| 婷婷中文网站| 五月婷成人| 五月色导航| 99色精品| www99热| 少妇人妻丰满做爰XXX| 丁香五月婷婷国产av| 日本色色网站| 激情五月天在线观看婷婷| 色播丁香婷婷五月激情| 另类激情首页| 99re在线观看| 久久久这里有精品| 丁香五月婷婷啪啪| 五月天婷婷色| 色色五月婷婷网| 九九精品热播| 久色成人| 另类激情首页| www五月| 色综合中文综合网| 天天操天天日天天爱| 五月天综合婷婷| 亚洲另类电影| 狠狠干综合| 五月综合婷婷开心网| 丁香美女主播视频在线观看| 日日操天天操| 国产成人精品一区二三区熟女在线 | 夜夜久久综合网| 色五月婷婷在线视频| 日日日日日| 婷婷丁香六月天| 91丁香婷婷综合资源| 欧美狠狠一在草| 激情五月丁香亭亭| 激情五月天婷婷| 五月天婷婷丁香花| 色综合播放| www.久久爱.com| 婷婷五月综合中文字幕| 久久人操| 另类五月激情| 五月婷婷深深爱爱| 操日视频| 搡BBBB搡BBB搡18 | 激情五月丁香五月| 99re思思热久久| 被强行糟蹋的女人A片| 午夜激情婷婷| 天天五月情| 国产毛片欧美毛片久久久| 激情五月天的婷婷| 五月天激情无码专区| 欧美成人va| 久久电影4399| 欧美天天五月丁香免费观看| 九九九九毛片| 久激情| 桔色成人官方网站| 亚洲激情综合| 婷婷九月狠狠色| 天天碰夜夜爽| 嫩草AV久久伊人妇女超级A| 久久五月视频| 色情丁香五月婷婷精品| 99五丁香月| 丁香五月婷婷精品视频| 久久综合九九| 色噜噜狠狠色综合成人99| 丁香五月六月婷婷综合激情| 丰满少妇乱A片无码| 美女亚洲五月丁香| 99操无码视频观看| 黄色一级影片| 99精品福利视频| 99精品久久久久久| 国产婷婷色五月| 天天综合网91| 97在线刺激| 99爱在线精品视频免费观看| 婷婷综合国产| 婷婷免费无视频| 777精品久无码人妻蜜桃| 久热只有这里有精品| 国产成人av在线播放| 91凹凸在线| 久久五月天婷婷| 91趴趴| 99视频热| www.韩日视频| 婷婷五月伦理网站| 日韩在线观看网址| 五月天欧美激情| 99ER热精品视频| 袁子仪视频观看| www.久久| 色九网| 久久综合五月| 99热精品在线| 99人人干| 日操| 日本欧美成人片AAAA| 婷婷综合网伊人| 成人免费120分钟啪啪| 五月婷婷六月激情网| 欧美成人精品A片免费一区99| 天天天天天操| 九九九干精品| 可以免费看AV网站| 五月丁香六月婷婷久久| 亚洲丁香五月天视频| 激情六月天婷婷| www.五月天婷婷| 国产视频福利| 婷婷五月天精品| 色五月开心婷婷| 麻豆五月丁香婷婷| 操操操97| 日本操B视频| 玖玖午夜视频| 色婷婷导航| 秋霞三级影视资源| 婷婷视频在线| www.99热| 五月婷婷色| 这里只有精品视频| 五月丁香无码视频| 91 九色 入口| 五月天另类视频| 久久婷婷五月综合色播| 婷五月天影院| 超碰爱爱爱| 99色五月| 激情五月婷婷| 天天摸夜夜夜| 女操碰| 日本人妻伦在线中文字幕| 26UUU亚洲欧美| 亚洲xx在线| 97干在线播放| 亚洲视频a| 激情五月婷婷| 婷婷久久丁香| 成人精品一区二区三区四区五区| 青青草免费公开视频| 婷婷五月天久久久| 九 九九九AV| 天天干com| 4399在线观看免费高清黄色视频| 激情五月天色色网| 婷婷五月美女直播| 99热热这里只精品996小说| 开心五月激情网| 五月丁香婷庭在线| 五月婷婷激情| 九九爱激情| 色五月婷婷九月| 婷婷激情丁香五月天综合| 久久婷婷五月综合色区| 九九re精品视频在线观看| 丁香综合伊人AV| 9热久久| CHINESE熟女老女人HD视频| 人人摸人人射| 91狠狠色色丁香婷婷综合久久| 久久99国产综合精品免费 | 伊人婷婷五月天| 91人妻九色大屁股| 日本三级中国三级99| 狠狠操.COM| 伊人婷婷五月天av| 色婷丁香91| 亚洲最大视频| 亚洲色情网站| 日日干日日色| 偷拍丁香九月激情| 操操碰| 五月丁香免费看| 激情深爱五月婷婷| 影音先锋男人资源站一区二区| 大地资源色婷婷视频在线| 久久久天天啊| 99爱免费在线视频| 色五月色五天色情网| 色播色丁香五月| 青青青在线视频国产| 激情六月丁| 狠狠狠狠狠操| 精热在线综合网| 丁香色婷婷五月天| 精品久久这里热66| 婷婷九月丁香| 综合网网欲色| 久草热8精品视频在线观看| 97碰碰视频在线观看免费| 久久这里只| 激情五月亚洲综合网| 国产熟女一区二区三区五月婷| 五月婷婷色欲| 色情五月丁香| 婷婷五月中文字幕| 色五月婷婷在线| 久久婷婷国产| 亚洲无码色| 亚洲综合婷婷| 激情五月婷婷网在线观看| 99色在线| 亚洲成人中心| 五月婷综合激情| 日韩AC在线免费观看| 五月婷久久| www.五月.com| 五月婷婷视频| 日日夜夜小色哥| 九九热思思热| 五月天婷a在线| 婷婷五月激情四月综合| 黄网网站在线播放| 超碰97久久| 停停五月色宗合| 夜夜爱爱亚洲| 最新国产AV| 九色成人AV在线| 91午夜婷婷狠狠久久综合9色| 另类天堂| 欧美性做爰大片免费看办公室 | 开心婷婷五月激情网小说| 亚洲成人中心| 一起草无码| 久婷婷五月综合欧美| #NAME?| 久久成人亚洲欧美电影| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 久久婷婷影院| 亚洲AV网址| 色婷婷综合久久久久| 射久久丁香五月| 操久久精| 亚欧州精品视频| 视频久久9| 99九九在线视频| 99日精品视频| 亚洲AV无码成人精品区电影网| 91人碰| 五月天综合激情网| 日韩成人电影AV| 狠狠色色| 再綫Av免费視品| 开心久久xxx色| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 99re青青草| 丁香六月成人网| 日韩黄黄| 九色视频91| 91操女| 中文字幕视频在线播放| 99九九这里有免费视频| 99热97美女| 婷婷色色欧美| 婷婷五月天中文字幕| 9色视频在线| 精品久久婷婷五月天| 99亚洲综合| 婷婷五月中文字幕国产| 久久爱婷婷| 成功精品影院| 色香欲综合| 亚洲成人影视在线| 91在线人| 亚州操操| 久久五月人人摸| 琪琪理论片| 青青草婷婷综合五月| 五月婷婷av| 开心激情综合| 无码少妇高潮喷水A片免费| 午夜AV网| 丁香五月在线自慰| 97人人草| 婷婷激情五月综合在线视频| 99久在线精品99re8热| 五月色婷婷影院| 中文字幕网伦射乱中文| WWW、日本色丁香、co m| 午夜丁香 婷婷| 婷婷五月在线综合| 99在线亚洲| 激情五月婷| 青草青草视频2免费观看| 丁香狠狠操| 在线视频你懂得| 狠狠干青青草| 狠狠色噜噜狠狠狠狠综合| 91精品无码| 亚洲激情四射色| 成人版视频在线观看| 日韩婷婷五月| 亚洲婷婷婷| 五月丁香成人| 97在线99| 久久新地此| 婷婷五月丁香基| 色婷婷先锋| 最近中文字幕在线中文视频| 人人爽欧美婷婷久久久五月丁香| 丁香五月色色色色| 色五月丁香伊人五月| 午夜天堂啪啪| 五月天丁香欧美激情| 九九热99re8热免费观看| 夜夜综合色| 丁香六月婷婷| 秋霞日本免费毛片A片| 天天在线天天综合网色| 97se视频在线| 丁香五月婷婷免费视频| 色综合久久88色综合天天看| 激情综合网激情五月欧美| 99亚洲天堂| 亚洲AV久久久久久久久久久久久久久久 | 天天操夜夜爽歪歪| 五月天成人综合| 亚洲第一av| Jh7Uf088VHafNm| 日韩性视频| 九九综合五月欧美| 日韩无码人妻一区二区三区综合 | 丁香五月天婷婷久久| 夜夜 操无码| 黄色av高清| 五月婷免费视频久久久| 99精品自拍视频| 婷婷色综合| 久久久久久久97| 天天日天天色| 任你擦免费视频| 这里只有精品网站| 婷婷五月丁香六月| 女人被躁到高潮嗷嗷叫小| 婷婷射综合| 伊人丁香花综合影院| 色五月在线观看| 婷婷婷久久久| 成 久久| 久草五月| 六月婷婷激情图片| 综合婷婷五月丁香在线观看| 九九色综合| 久久婷婷五月| 综合AV在线| 婷婷五月丁香国产| 婷婷天天综合| 丁香五月天堂网| av免费在线网站| 婷婷五月天激情诱惑| 激情 久久 婷婷| 夜夜爽日日躁| 久热只有精品| 久久狠狠欧美| 亚洲操逼网| 七月激情六月婷婷综合在线播放| 99热99热不卡| 99久久超级| 久久性爱网站| 嫩草AV久久伊人妇女超级A| xxxx五月激情| 色婷视频| 五月婷丁香花| 婷婷99狠狠躁天天| 日韩欧美成人片| 日本啪啪网| 狠狠草网| 婷婷丁香五月综合免费视频百花| 综合九九久久| 色婷婷丁香五月天在线观看| 亚州成人综合在线| 天天日天天日天天搞| 婷婷五月综合丁香久久| 激情五月综合免费| 伊人久久婷婷| 午夜理论片最新午夜理论剧| 国产精品电影| 婷婷六月丁香在线| 久色网| WWW.桔色成人.COM入口| AV片一区在线观看| 久久久五月激| SS丁香五月婷婷| AV片一区在线观看| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 婷婷五月精品| 丁香5月婷婷| 久久久久久久久久久久久久久久久精典| 婷婷开心久久| 综合激情专区| 天天插天天日| 色婷婷9| AV性爱网| 丁香五月六月婷婷自拍| 黄桃AV无码免费一区二区三区| 久久人人人人妻| 婷婷丁香婷婷97| 天天摸天天舔| 婷婷色网站| 天堂成人A片永久免费网站| 婷婷五月开心中文字幕在线| 666555。COm毛片| 婷婷色爱| 丁香六月婷婷综合啪啪| 亚洲天堂久久| 天天做天天爱天天日| 免费观看全黄做爰的视频| 草做免费在线观看| 亚洲色婷婷五月天| 五月婷婷啪啪啪| 丁香六月AV| 婷婷五月天综合久久日| 婷婷综合五月天| 五月婷亚洲精品AV天堂| 日本va欧美va欧美va| 成人免费在线电影| 五月丁香综合啪啪| 九九热免费视频| 五月天另类小说久久小说网| 国产免费av在线| 亚洲精品视频在线播放| 国产综合激情五月久久| 日本99婷婷| 日日夜夜婷婷| av在线色五月丁香婷区久| 天天透天天干| 亚洲综合五月| 人妻久久久久久久久久| 五月婷婷色影院| 丁香五月天啪啪| 99久久久国产精品免费蜜乳tv| 色五月天丁香婷婷| 大战熟女丰满人妻AV| 天天色综合图片| 久操干| 久久久久亚洲AV无码网影音先锋| 久久激情天堂| 久99热| 欧美性丁香色色五月天干干| 激情婷婷色小说| 日韩久操婷婷| 色五月在线|