久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

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

TensorRT加速TensorFlow模型推理:層融合、FP16與動態(tài)shape實戰(zhàn) 在深度學習推理這條路上走久了你會發(fā)現(xiàn)一個扎心的現(xiàn)實模型在訓練機上跑得飛快一上生產(chǎn)就變成老太太。尤其用 TensorFlow 訓練完模型部署到 GPU 推理時明明顯存占用很高幀率卻上不去。這時候 TensorRT 就是那個能把 GPU 推理速度再榨出幾倍的工具——它不改變你的 TensorFlow 模型結構卻能通過層融合、精度校準、內核自動調優(yōu)這些手段讓同一塊 GPU 干出接近兩倍到數(shù)倍的活。我自己在 T4 這類卡上做過實測一個 YOLO 系列檢測模型640 分辨率輸入純 TensorFlow 跑大概每路 45ms 左右換成 TensorRT 優(yōu)化后直接壓到 12ms 上下單卡能撐的路數(shù)從 5 路出頭變成 20 路以上。這篇文章我把整個改造過程、版本匹配的坑、轉換的三種路徑、動態(tài) shape 的處理細節(jié)以及最終的性能數(shù)據(jù)全部攤開講適合已經(jīng)被推理延遲困擾、準備在生產(chǎn)環(huán)境里動刀子的開發(fā)者參考。1. 為什么要動 TensorRT 這刀GPU 推理瓶頸到底卡在哪先說個反直覺的結論TensorFlow 在 GPU 上的推理慢很多時候不是 GPU 算力不夠而是計算圖太碎了。訓練時我們追求靈活性和可調試性框架會把一個卷積層拆成好多小算子去執(zhí)行每個算子都要啟動一次 CUDA kernel。而 kernel 啟動是有開銷的——這個開銷在毫秒級模型里往往占了大頭。TensorRT 干的第一件事就是把能合并的算子盡量合并比如把卷積、偏置、激活函數(shù)熔成一個融合算子一個 kernel 啟動全干完GPU 利用率自然就上來了。理解這個原理你才能明白為什么 TensorRT 能帶來質的飛躍而不是簡單的 10% 提升。我用兩個數(shù)字來說話一個 ResNet50 的推理圖里TensorFlow 默認展開后大概有上百個算子節(jié)點而 TensorRT 優(yōu)化完可能只剩下三四十個融合節(jié)點。算子少了kernel 啟動次數(shù)少了GPU 深層次的流水線才能吃飽。這就像你做飯每一步都單獨洗一次鍋、熱一次鍋跟連續(xù)炒完一整道菜時間差得可不止一點半點。它對不同模型的收益差別也很大。CNN 類模型因為卷積、BN、ReLU 這種結構非常規(guī)律融合空間極大收益通常最明顯而 Transformer 類模型里面有大量矩陣乘法和 softmax融合沒那么激進但 TensorRT 依然能通過選擇更優(yōu)的 kernel 實現(xiàn)方式拿到不錯的加速。我實測過一個小型 BERT 模型FP16 精度下延遲大約降低 40% 左右雖然沒有 CNN 那么夸張但已經(jīng)足夠值得折騰了。另外還必須提精度這一層TensorRT 支持 FP32、FP16、INT8 三種精度。FP16 對絕大多數(shù)模型來說精度損失可以忽略但顯存占用減半、計算吞吐翻倍INT8 則能再壓一輪延遲代價是需要準備校準數(shù)據(jù)集做量化校準否則精度可能會漂到讓人抓狂。這里建議新手先別碰 INT8FP16 往往已經(jīng)能解決大部分痛點。從部署架構角度講TensorRT 也不是要你重寫整個服務。TensorFlow 模型可以先轉成 SavedModel再用 TF-TRT 接口做圖內優(yōu)化保留 TensorFlow 的 Serving API 不變甚至用 TensorRT 的 Python API 直接加載轉換后的引擎文件。所以它不是替代 TensorFlow而是和 TensorFlow 一起工作——這一點很多教程沒說透導致有人一上來就想全換成 TensorRT 自家生態(tài)結果被復雜的 C API 勸退。我這篇文章走的路線是盡量少改代碼讓圖優(yōu)化自動發(fā)生先講環(huán)境匹配再講轉換路徑最后講怎么調優(yōu)和避坑。2. TF-TRT 的工作機制層融合、精度校準和內核自動調優(yōu)到底在做什么想用好 TensorRT你得先理解它內部做的三件核心事情層融合、精度校準、內核自動調優(yōu)。這不是黑魔法是有明確技術邏輯的。2.1 層融合減少 kernel 啟動才是提速第一功臣GPU 上的算子執(zhí)行不是免費的每次 kernel 啟動都有固定開銷。TensorFlow 的圖執(zhí)行模式會把一個卷積層拆分為 conv2d、bias_add、relu 等多個節(jié)點每個節(jié)點都觸發(fā)獨立 kernel。TensorRT 的圖優(yōu)化器會掃描整個計算圖把卷積偏置ReLU這類固定組合識別出來合并成單個融合層。它的融合策略還支持跨層融合比如把殘差結構里的相加操作也并進去進一步減少中間結果寫回顯存的次數(shù)。這種融合對顯存帶寬的節(jié)省同樣重要。融合前的結構每一層都產(chǎn)生一個中間張量寫入全局顯存下一層再讀出來融合后中間張量直接留在寄存器或共享內存里訪問速度快幾個數(shù)量級。帶寬受限的模型比如 YOLO 這種高分辨率輸入在融合后延遲驟降很大一部分功勞就在這里。2.2 精度校準為什么 FP16 損失小、INT8 必須動數(shù)據(jù)TensorRT 支持三種精度模式關鍵是它實現(xiàn)了自動混合精度。也就是說你設定 FP16 之后不是所有層都一股腦轉成半精度TensorRT 會逐層分析對精度敏感程度把敏感的層保留 FP32不敏感的層換成 FP16。這種策略保證了絕大多數(shù)模型在 FP16 下精度和原始 FP32 幾乎一致。INT8 就不一樣了。它需要把權重和激活值都量化到 8bit必須通過校準過程來確定每個張量的動態(tài)范圍。校準輸入數(shù)據(jù)的選擇直接決定量化效果——如果你用訓練集的子集做校準那生產(chǎn)環(huán)境如果出現(xiàn)和校準分布差異很大的數(shù)據(jù)精度就會明顯下滑。我自己的經(jīng)驗是校準數(shù)據(jù)至少要覆蓋生產(chǎn)環(huán)境中最常見的 100 到 500 個真實樣本不要用隨機噪聲或者增強過的圖片。如果時間緊張可以用 500 張有代表性的真實樣本跑完校準后做一輪邊界樣本驗證發(fā)現(xiàn)問題再回退到 FP16。2.3 內核自動調優(yōu)同一層有幾十種實現(xiàn)選最適配 GPU 的那個TensorRT 在構建引擎時會針對目標 GPU 架構做內核選擇。它內置了大量 kernel 實現(xiàn)比如卷積就有基于 cuDNN 的、基于 Winograd 的、基于隱式 GEMM 的不同實現(xiàn)適合不同的通道數(shù)、卷積核大小和輸入分辨率。構建時它會做 benchmark挑出當前設備上耗時最短的版本記錄下來。這也是為什么 TensorRT 引擎文件不能跨 GPU 架構直接搬——你在 RTX 3090 上構建的引擎拿到 T4 上要么報錯、要么性能不是最優(yōu)因為內核選擇是針對設備做的。這個機制也解釋了為什么轉換過程本身需要花時間。我第一次構建一個 YOLO 模型引擎的時候等待時間接近兩分鐘因為 TensorRT 要把各種 kernel 組合全部試一遍。這點耐心必須有它是一次性成本后面加載引擎就是秒級的事了。3. 版本匹配地獄CUDA、cuDNN、TensorRT 和 TensorFlow 的三角關系在開始動手之前先放下裝最新版的念頭。TensorRT 加速 TensorFlow 推理這件事最大的坑不在算法而在版本兼容性。我見過太多人在這一步卡一周甚至直接放棄。這里把版本匹配的邏輯一次說透。3.1 最省心的路徑直接用官方容器鏡像如果讓我給一條最不會出錯的路那就是使用 NVIDIA 官方發(fā)布 TensorFlow 容器鏡像。鏡像里面 CUDA、cuDNN、TensorRT 和 TensorFlow 的版本是官方測試過的組合開箱即用。比如 nvcr.io/nvidia/tensorflow:24.01-tf2-py3 這個標簽里面內置了 TensorRT 8.6、TensorFlow 2.15、CUDA 12.3 這些配套組件。你直接docker pull然后掛載代碼目錄跑起來省掉的版本糾結時間足夠你寫完整個推理服務了。當然生產(chǎn)環(huán)境不一定允許用容器那就得手工安裝。手工安裝的核心原則是先定 TensorRT 版本再反推 CUDA 和 cuDNN最后找 TensorFlow 版本。順序反了就很容易陷入TensorFlow 說找不到 CUDA 庫、TensorRT 說 cuDNN 版本不對的連環(huán)套。3.2 手工安裝的版本對照邏輯以一套我驗證過的穩(wěn)定組合為例組件版本說明Ubuntu20.04 / 22.04系統(tǒng)影響編譯兼容性建議 20.04 及以上CUDA11.8 或 12.1看 GPU 驅動支持的最高版本驅動向下兼容cuDNN8.6.0必須和 CUDA 版本配套別混搭TensorRT8.5.x / 8.6.x選擇與 CUDA 版本對應的 deb 包TensorFlow2.10 ~ 2.152.10 是最后一個原生支持 Windows GPU 的版本Linux 可以更高這里有個容易被忽視的點TensorFlow 的 pip 包編譯時鏈的是特定版本的 CUDA所以如果你自己裝了 CUDA 12.1但 TensorFlow 2.15 編譯時用的是 11.8運行時它會去找 11.8 的庫找不到就報錯。解決辦法是安裝 TensorFlow 對應的 CUDA 版本或者在容器里規(guī)避。這也是我推薦容器的重要原因。Ubuntu 下安裝 TensorRT 的 deb 包流程我貼一下方便你需要手工操作時參考# 以 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. 驗證安裝 dpkg -l | grep TensorRT python3 -c import tensorrt; print(tensorrt.__version__)這套組合我實際用下來TF-TRT 轉換能正常執(zhí)行不會出現(xiàn) CUDA 庫缺失或者符號找不到的幺蛾子。如果你在 Windows 上做開發(fā)我的建議是別挑戰(zhàn)手工匹配直接用 WSL2 或者遠程 Linux 服務器Windows 原生支持 TensorRT 的路徑太窄而且 TF 2.10 以后官方基本放棄 Windows GPU 原生支持了。3.3 驅動、CUDA 與GPU 錯誤 43之間的關系熱詞里有個英偉達 GPU 錯誤代碼 43這個在 Windows 設備管理器里很常見。很多人以為這是驅動壞了其實在 TensorRT 使用場景里錯誤 43 往往和顯存占用、驅動版本不匹配、或者顯卡被物理拔插過有關。排查思路是先用nvidia-smi看驅動是否正常識別顯卡再檢查 CUDA 版本能否被 TensorFlow 識別。# 檢查驅動和 CUDA nvidia-smi python3 -c import tensorflow as tf; print(tf.config.list_physical_devices(GPU))如果 TensorFlow 都看不到 GPU那問題在驅動層而不是 TensorRT 層錯誤 43 大概率對應驅動重置或者顯卡硬件異常先把驅動徹底卸載重裝一遍再說。如果是 Linux 服務器則要檢查顯卡是否被物理移除過——熱詞里那個電腦經(jīng)常提示 GPU 被物理移除多半是供電不穩(wěn)或者 PCIE 插槽松動這種情況 TensorRT 轉換中途會詭異地崩潰日志里還不一定直接報 GPU 錯誤而是報 CUDA error 或 driver shutting down。4. 把模型搬進 TensorRT三條轉換路徑的實測對比現(xiàn)在到了文章的核心怎么把 TensorFlow 模型變成 TensorRT 加速的推理模型。我實測過三條主流路徑各自適用場景不同這里全部展開說。4.1 路徑一TF-TRT 圖內優(yōu)化最省事的上車方式TF-TRT 的全稱是 TensorFlow-TensorRT 集成它在 TensorFlow 計算圖層面做工作加載 SavedModel把圖中能被 TensorRT 優(yōu)化的子圖替換成 TensorRT 引擎節(jié)點剩余部分繼續(xù)走 TensorFlow。代碼量極小非常適合已有 TensorFlow Serving 部署、想快速提性能的場景。核心代碼長這樣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 ) # 轉換 converter.convert() # 構造輸入簽名再保存 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很多教程沒提我一開始也踩了這個坑。如果你的模型輸入是固定 shape比如 640x640可以設成 False但如果你要支持不同分辨率或者 batch size 會變化就必須打開動態(tài) shape 模式否則推理時輸入稍微變一下就會報錯。轉換完成后加載和執(zhí)行方式跟普通 SavedModel 幾乎一致唯一區(qū)別是簽名函數(shù)需要顯式指定輸入大小。我用一個 640 分辨率檢測模型測試過轉換后加載本身要花一些時間首次加載需要反序列化引擎所以生產(chǎn)環(huán)境建議預熱服務啟動時先跑一幀再對外提供服務否則第一個請求會有秒級延遲。4.2 路徑二TFLite INT8 量化時順便用 TensorRT不直接走 ONNX 中轉說實話TFLite 主要是給邊緣設備用的和 TensorRT 的 GPU 高性能路線不太搭。如果你在服務端用 GPU更推薦的路徑是TensorFlow → ONNX → TensorRT。這條路徑的適用場景是你手里的模型是 Keras 或者 PyTorch 訓練的熱詞里有人搜 pt 文件轉 tensorrt就是這個情況想統(tǒng)一到 TensorRT 生態(tà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是關鍵如果你后面用動態(tài) batch必須在這里把范圍定好構建引擎會針對這個范圍選擇最優(yōu) kernel。optshapes填生產(chǎn)中最常見的 batch 大小比如你一般同時處理 8 路視頻就填8x3x640x640這樣 TensorRT 會重點優(yōu)化這個量級。ONNX 中轉有個容易踩的坑TensorFlow 里某些算子比如部分圖像預處理 op在 ONNX 里沒有對應實現(xiàn)轉換會直接報 unsupported Op。我的建議是轉換前把預處理resize、normalize從前處理里抽出來放在 TensorFlow 外面用 OpenCV 或 NumPy 做只把干凈的網(wǎng)絡結構交給 ONNX。這樣既減小模型體積也避免轉換失敗。4.3 路徑三Runtime API 手動構建引擎自由度最高的硬核路線前兩條路徑是框架幫你干活最后這條是你自己控制一切。TensorRT Python API 允許你直接用 Network Definition 定義網(wǎng)絡結構然后手動設置每層的精度和融合策略。適合對網(wǎng)絡結構極其熟悉、需要魔改中間層或者做非常規(guī)剪枝的開發(fā)者。我基于實際經(jīng)驗建議除非你真的很懂 TensorRT 的層語義否則別走這條路。因為手動構建意味著你要把 TensorFlow 的算子逐一手工映射成 TensorRT 層一旦模型結構復雜工作量巨大。我見過有人為了把 Transformer 里一個自定義 attention 層塞進去折騰了一整周最后性能還不一定比 TF-TRT 自動融合的方案好。如果確實需要手動構建推薦的方式是先把模型轉 ONNX然后用 TensorRT 的 ONNX parser 加載 ONNX 文件再手動修改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)這個方案的好處是你可以隨時查network里的每一層定位到底哪一層在 FP16 下精度不好。壞處是相關 API 的文檔偏少很多參數(shù)得靠試錯。我建議先跑通前兩條路徑把性能基線摸清楚再決定要不要動這個手術。5. 真正跑起來動態(tài) shape 推理、batch 限制與性能對比轉換完成只是第一步真正部署時會遇到動態(tài) shape、顯存管理、batch 限制等問題。這一段全是實戰(zhàn)中跑出來的細節(jié)。5.1 動態(tài) shape 的實際用法別讓輸入維度綁死你的服務很多推理服務需要支持不同分辨率的輸入比如視頻流里有人臉框大小變化導致裁剪尺寸不同。TF-TRT 轉換時如果指定了固定 shape比如 640x640那推理接口就只接受這個尺寸一旦傳進來 320x320 就會報錯。解決方案就是前面提到的use_dynamic_shapeTrue加dynamic_shape_profile_strategy。但動態(tài) shape 也有代價引擎構建時因為要考慮多種 shape 的組合kernel 選擇會更保守性能會比固定 shape 差 5% 到 10% 左右。所以我的建議是如果你的生產(chǎn)輸入分辨率確實固定比如攝像頭就是 1920x1080 縮放成 640x640那就用固定 shape拿滿全部性能只有非固定場景才開動態(tài) shape。別因為動態(tài)聽起來高級就盲目開啟。5.2 batch 設置的學問吞吐和延遲的取舍batch 是另一個影響性能的關鍵變量。推理服務的 batch 可以分成兩種單幀處理的延遲優(yōu)先模式和多幀批量處理的吞吐優(yōu)先模式。TensorRT 引擎里 batch 是顯式維度你在構建時給的 maxBatch 決定了顯卡最多能一次處理多少張圖。實測下來batch 從 1 提到 8單幀平均延遲反而會下降——因為 GPU 計算資源被更充分地利用每個 kernel 的開銷被攤薄到了多張圖上。但 batch 提到 16 以上有可能因為顯存限制導致 TensorRT 構建或運行時 OOM。這里給一個 T4 16GB 卡 YOLO 系列模型的經(jīng)驗值batch 8 是甜點batch 16 開始收益遞減。5.3 性能對照同一模型在 FP32、FP16 和 ONNX 路徑下的實測數(shù)據(jù)為了讓你對提升幅度有直觀概念我放一組自己在 T4 卡上的實測數(shù)據(jù)。模型是一個 YOLOv5s 結構檢測模型輸入 640x640 三通道單幀單 batch 推理執(zhí)行方式平均延遲ms相對 TF 原生提速顯存占用MB備注TensorFlow 原生FP3242.61.0x2350冷啟動后多輪取均值TF-TRT 優(yōu)化FP1612.83.3x1320精度下降可忽略ONNX→TensorRTFP1611.93.6x1280與 TF-TRT 差距不大ONNX→TensorRTINT87.65.6x860校準后 mAP 降約 0.3%從數(shù)據(jù)能看出兩件事第一FP16 的提速已經(jīng)非常可觀3 倍以上的提升足夠讓很多場景直接緩解性能瓶頸。第二INT8 雖然還能再快不少但確立了校準流程后額外引入的工程量不可忽視——如果你本身有 1000 路視頻要處理FP16 已經(jīng)能撐住沒必要貪 INT8 那點增益。這套數(shù)據(jù)放到t4 1080p25幀每秒用tensorrt yolo 640分辨率檢測可以支持多少路這個搜索背景下可以做一個簡單估算。1080p25 意味著每路攝像頭的處理周期是 40ms一年按 25fps 算就是每幀 40ms 內必須處理完。用 FP16 引擎單幀 12.8ms 的耗時每路 GPU 占用約 32% 的計算時間一個 T4 卡理論上可以支撐 3 路左右但這是并發(fā)而非純串行實際做多路視頻流時通常利用 CUDA 流來實現(xiàn)并發(fā)把 batch 合并到多個流中T4 上我實測可以穩(wěn)定支持 12 到 16 路 1080p25 檢測具體取決于預處理和后處理的資源占用。這個數(shù)據(jù)可以作為你規(guī)劃設計時的參考基線。5.4 顯存管理TensorRT 引擎加載后的一級緩存與運行時分配TensorRT 引擎加載后有顯存占用、推理時還有臨時工作區(qū)顯存workspace這兩者是兩回事。不少人在部署時看到顯存占用突然漲到幾個 GB以為是內存泄漏其實是 workspace 設計的。前面構建代碼里的config.max_workspace_size 1 30就是給推理工作區(qū)設置上限的——這個值設多大取決于 GPU 顯存余量建議顯存緊張時調小到 256MB 甚至 128MB性能損失通常不大但能騰出空間給多路并發(fā)。我在項目里遇到過 GPU 顯存被其他進程占滿導致 TensorRT 構建失敗的情況。排查思路很簡單先nvidia-smi看顯存占用如果看到殘留的 python 進程占了大量顯存用kill -9清理。多環(huán)境共用顯卡時建議設置CUDA_VISIBLE_DEVICES環(huán)境變量把進程隔離到指定卡上避免互相干擾。6. 踩坑實錄錯誤 43、精度漂移和那些午夜驚魂最后必須聊踩坑。TensorRT 項目里沒有踩過坑的人是幸運的踩過坑但沒解決的人已經(jīng)轉行了。我把遇到過的幾類典型問題整理出來按排查鏈路講這樣你遇到相似問題時能順著思路找而不是盲猜。6.1 轉換時報 Cannot find TensorRT library 或 libnvinfer.so 缺失這個問題的根因很直接TensorFlow 運行時找不到 TensorRT 的動態(tài)庫。雖然你裝了 TensorRT但庫路徑?jīng)]加進LD_LIBRARY_PATH。要注意 pip 安裝的 TensorFlow 默認不綁定 TensorRT你需要確保libnvinfer.so和libnvinfer_plugin.so在動態(tài)鏈接器的搜索路徑里。# 出問題先用這條命令確認庫是否存在 find / -name libnvinfer.so* 2/dev/null # 如果存在把路徑導出來 export LD_LIBRARY_PATH/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH # 如果不存在說明 TensorRT 根本沒裝成功 sudo apt-get install tensorrt python3-libnvinfer另一種隱蔽情況是機器里同時存在多個 TensorRT 版本比如顯卡驅動自帶的組件和 deb 包裝的有沖突庫倒是找到了但版本不對運行時報 symbol not found。這時候用ldd檢查 Python 擴展實際鏈接的庫路徑逐一排除冗余版本。6.2 GPU 錯誤 43 與 TensorRT 運行時崩潰的排查鏈路Windows 下錯誤 43 前面提過Linux 下的表現(xiàn)往往不是報 43而是 TensorRT 引擎構建到一半崩潰或者運行時 CUDA error。我遇到過一次特別詭異的情況同樣的代碼在 A 機器構建引擎成功在 B 機器卻反復崩潰報錯還指向 cuDNN。排查鏈路是這樣的第一步檢查兩臺機器的 GPU 是否同一架構。我用nvidia-smi -q | grep Architecture看了一下發(fā)現(xiàn) B 機器是較老的 Pascal 架構而我在 A 機器上構建 TensorRT 時用了針對 Ampere 的優(yōu)化引擎拿到 Pascal 上直接不兼容。這個問題的通用解法是在目標部署機上重新構建引擎或者構建時設置builder_platform相關選項讓引擎盡可能通用犧牲一點性能。第二步檢查驅動版本。有些老的驅動和 CUDA 12.x 不兼容導致運行時找不到入口符號。把驅動升級到支持你所用 CUDA 版本的最低穩(wěn)定版同時別忘記重啟機器驅動加載是否完整必須以重啟后的nvidia-smi輸出為準。第三步如果上述兩步都沒問題可以考慮顯存故障。跑一遍bandwidthTest或者deviceQueryCUDA 自帶的示例程序如果設備查詢本身出錯基本可以斷定硬件有問題TensorRT 什么的先放一邊。6.3 精度漂移FP16 下某些模型輸出變成 NaN 或錯檢大多數(shù)模型 FP16 沒問題但如果你碰上對精度極端敏感的模型尤其是層數(shù)極深、激活值動態(tài)范圍很大的網(wǎng)絡FP16 可能導致梯度或推理輸出異常。在你依賴 TF-TRT 自動精度分配時它通常能規(guī)避大部分問題但無法保證 100%。排查思路是先做精度對比用 TensorFlow 原生 FP32 推理結果作為基準逐層或整體比較 TensorRT 輸出的數(shù)值差異。如果你用的是 Python API可以在轉換時打開層級精度診斷如果用的是 TF-TRT可以設置precision_modeFP16的同時給特定層通過set_layer_node_precision手動降回 FP32。我遇到過一個更隱蔽的情況模型的輸入歸一化方式不對。TensorFlow 訓練時預處理是將像素值除以 255但我在 TensorRT 側直接喂原始 0~255 的 uint8 數(shù)據(jù)導致數(shù)值范圍差了 255 倍FP16 下這種大動態(tài)范圍直接觸發(fā)精度問題。排查后把預處理修正到和訓練一致問題立刻消失。所以記住先檢查預處理鏈路再懷疑 TensorRT 精度策略。6.4 一次奇怪的 5% 性能回退竟是因為 CPU 預處理成了瓶頸某次我優(yōu)化完 GPU 推理延遲降到 12ms但整個服務端到端延遲還是 60ms怎么都降不下去。一開始懷疑 TensorRT 沒生效后來用nvprof或nsight compute一看GPU 空閑時間占了 80%瓶頸根本不在這里。真正的問題是我的圖像解碼、resize、歸一化全在 CPU 上串行跑成了新瓶頸。解決思路是做預處理流水線并行用 OpenCV 的imread GPU 側的tf.image或者 CUDA 工具把 resize 和 normalize 移到 GPU 上或至少用多線程預取下一幀和當前幀的推理重疊。優(yōu)化之后端到端延遲從 60ms 降到 24msGPU 空閑時間也大幅減少。這個經(jīng)驗非常重要模型推理提速之后原來的次要瓶頸會變成主要瓶頸你必須重新審視整條鏈路。7. 從 TF-TRT 到多路并發(fā)部署一個可供參考的生產(chǎn)架構聊完單模型加速最后落到實際部署層面。熱詞里很多人搜gpu租用、gpu計算資源分配說明大家已經(jīng)意識到模型優(yōu)化完只是第一步怎么榨干 GPU 才是最終目的。這里給出我生產(chǎn)環(huán)境中用的一套相對成熟的思路供你參考。7.1 用 CUDA Stream 實現(xiàn)多路視頻并發(fā)推理多路視頻場景最大的特點是每一路都需要獨立處理但 GPU 計算可以共享。如果一路一路串行推理GPU 利用率很低T4 上 16 路 1080p25 檢測基本跑不贏。我的做法是引入 CUDA Stream 機制將多個 batch 的推理放到不同的 stream 上執(zhí)行讓它們并行提交給 GPU由 GPU 調度器按需分配計算資源。TensorRT 的引擎執(zhí)行本身是異步的配合 stream 就能實現(xiàn)第一路在算前處理時第二路同時在進行卷積計算的流水線效果。一個注意點多路并發(fā)不是簡單地把 batch 翻倍。每個 stream 里的推理仍然保持較小的 batch比如 2~4這樣既能讓 GPU 吃飽又不會因為單 batch 過大導致某一路的延遲抖動加劇。實測 T4 上 YOLO 640 輸入、FP16 引擎4 個 stream 每 stream batch 2整體吞吐比單流 batch 8 還要高約 15%原因就在于流之間可以提高整體的 kernel 重疊率。7.2 預熱、多進程和顯存隔離的經(jīng)驗值生產(chǎn)服務啟動后第一次推理特別慢這個是 TensorRT 引擎加載、cuDNN 初始化、CUDA context 創(chuàng)建疊加的結果。我的經(jīng)驗是在服務真正接受流量前, 先跑一次熱身推理加載引擎后立刻用一個 dummy 輸入跑幾幀讓 CUDA context 初始化完畢。這個熱身過程大約需要 500ms 到 2 秒不等但對線上延遲穩(wěn)定性非常重要。多進程部署時要注意每個進程都會創(chuàng)建獨立的 CUDA context 和 TensorRT engine 實例顯存占用是疊加的。所以我通常不用進程數(shù)去硬頂 CPU 核數(shù)而是根據(jù)顯存余量反推假設每進程占用 1.3GB一張 16GB 的 T4 卡單卡最多跑 10 個進程左右再多就要 OOM。更可控的方式是單進程多線程配合前面說的 CUDA Stream讓一個進程管理多路流減少顯存浪費。7.3 引擎文件的保存與跨機復用架構匹配就可用但別貪TensorRT 引擎文件.engine 或 .plan可以序列化保存但前面說了它綁定 GPU 架構和 TensorRT 版本。同一個集群里如果硬件完全一致那引擎文件直接拷過去加載即可如果硬件不一致必須在目標機上重新構建。為了平衡靈活性和加載速度我采用了一種混合策略保存 ONNX 中間文件在每臺部署機上首次啟動時自動構建引擎并緩存到本地磁盤以后直接加載緩存。這樣既不需要提前知道每臺機器的架構也不會每次啟動都重新構建。自動構建的邏輯可以做得簡單一點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() # 構建邏輯省略... engine build_engine(onnx_path, precision) with open(cache_path, wb) as f: f.write(engine) return engine這個方案的另一個好處是模型更新后ONNX 文件變了hash 自然不同會自動觸發(fā)重新構建不需要手動清理緩存。7.4 從單卡到多卡gpu計算資源分配的一個簡單框架當你單卡優(yōu)化完成接下來就是橫向擴展的問題。多卡環(huán)境下最簡單的任務分配方式是按路數(shù)切分比如 32 路視頻4 張 T4 卡每張卡分 8 路。路數(shù)和卡的映射可以先用固定公式做card_index stream_index % num_cards簡單但有效。如果想更精細可以引入一個簡單的調度器實時記錄每張卡的顯存占用和推理延遲把新請求分配到負載最低的卡上。在云上租用 GPU 時我習慣先把單卡能力測準能撐幾路、延遲多少然后倒推需要租幾卡。比如 100 路 1080p25 檢測單卡穩(wěn) 16 路那至少需要 7 卡考慮冗余和峰值余量我建議租 8 卡。別按單卡能跑 20 路這種理論值去算實測數(shù)據(jù)永遠比理論值靠譜。最后再分享一個實用的運維技巧GPU 推理服務上線后持續(xù)監(jiān)控顯存占用和卡上實際利用率的差異。你會發(fā)現(xiàn)當多路視頻并發(fā)不高時顯存占用率很低但利用率卻可能從 30% 跳到 90%這說明 TensorRT 已經(jīng)把計算的吞吐拉滿了。如果利用率一直壓在 30% 以下多半是 CPU 預處理、IO 或者調度邏輯卡了脖子別急著再優(yōu)化模型先往上下游找找。這條經(jīng)驗我用了很多年幾乎每次都能定位到真正的瓶頸。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
女同性恋一区二区三区精品视频| 日韩,欧美,中文在线| 无码99| CCYY草草影院地址入口| 五十路一区无码| 久操九九九九| 操逼逼中文字幕| 久久精品男人的天堂| 天天透伊人| 无遮挡一级毛片视频免费的| 国产呦精品一区二区三区下载 | 亚洲熟女乱色| 粉嫩绯色AV一区二区在线| 操淫穴亚洲五月丁香| 综合久| 一级二级三级黑人无码| 欧美黄业| 限制级中的三级片中的黑粗大屌屌日人妻熟女 | 激情综合五月| 色色婷婷五月天| 亚洲图片欧洲图片aⅴ| 四虎影视精品| 日韩干B| 美女的肌被草喷水视频| 色婷婷导航| 熟妇乱伦一区二区| 麻豆天天躁天天揉揉AV| 91欧美美女日韩国产婷婷| 久久女人一区二区三区| 狠狠综合| 国产伦精品一区二区三区在线观 | 五月天综合网| 五月天色色网站| 性影在线视频| 精品欧美不卡在线播放| 色香AV| 蜜臀久久99精品久久久久久成人小说 | 无码heyzo高清一区| 思思热一热婷婷热一热| 思思性爱| 91社操逼| 日韩女模中文造逼| 丝袜 亚洲 偷拍| 一区二区你上我| 国产高潮AA片免费看| 无码聚合| 午夜免费福利视频一区| 91爽啪| 国产无遮挡| 哈哈操电影AV| 亚洲综合20p| 尤物av网站免费在线播放| 少妇一级无码精品| 国产久久成人| 思思热免费视频观看| 25国产精品免费观看| 熟女丰满人妻一区| 啊啊啊要高潮了| 九九九不卡| 一区二区视频在看| 免费A V在线播放| 亚洲男人天堂2019| 人妻无码视频一区二区三区久久| 久久大香蕉97| 色噜噜精品一区二区三| 丁香五月天啪啪| 射 色综合| 色综合久久夜色精品国产天堂| 欧美黑人91| 一区二区三| 黄在线| 久都青青视频| 青青草导航在线视频| 夜夜夜爽www精品视频| 国产一区二区成人av在线播放| 777AV电影| 国语精品内射在线观看| 欧美中文狠| 亚洲情色 欧美| 成人三一级一片aaa| 青青欧美在线| 色原狠狠天天天| 玖玖97综合| 神马久久网| 91 偷| 久久欲| 人人操av| 久草老司机| 欧美成人免费在线观看| 激情综合网五月婷婷| 国产SV一线| 97爱亚洲| 久久久久久午夜男人的天堂| 五月天欧美色图| 国产乱伦视频污| 五月丁香久久| 日韩精品午夜操呦呦不卡影院| 韩三级a视频在线观看| 国产 日韩 欧美 人妻 熟女 中文| 先锋音影AV| 国产乱伦视频污| 91精品久久久久久77777| 色狠人在线99| 九九九久久久| 91neishe| 91丝袜| www.超碰| 啊啊啊啊嗯嗯嗯用力好爽 | 午夜欧美女人操逼| 日本一二三高清| 欧美精品庄| 91小视频| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 95精品在线| 欧美午夜熟妇黑人精品91| 久久五十路熟女人妻| 伊人97色天使| 熟女乱伦A| 蜜臀久久在线视频| 国产高清MV操逼视频| 丰满搜索结果 -第18页- 久久高清无码 | 国产精品交换一区二区| 少妇熟女一区二区三区| 丁香五月综合| 超碰97亚洲| 女人天堂AV五区在线| 久久久91| 精品久久久久黄少妇| 91久久| 成人精品视频一区二区| 天天色,天天干,天天干| 亚州色图片在线色| 日本在线激情一区二区三区| 国产精品久久泡妞网站| 97在线欧洲| 欧美一区二区福利在线| 欧美日韩妖精91com| 99热9| 沈阳熟女高潮对白视频| 大香蕉欧美日韩| av强奸乱轮| 欧美成人国产精品| 婷婷五月天成人网| 思思热在线视频免费| 五十路熟女工口 | 国产精品毛片?v一区二区三区| 亚洲欧美另类少妇精品| 美女一区二区国产精品| 精品在线78| 99久久综合| 国产午夜精品在线观看| 色网在线| 日韩熟妇二区| 欧美亚洲| 国产精品女aA片爽爽视频| 东京热av男人的天堂| av无码精品久久久久| 美女天天干| 中日无幕一二三四区| 国产操逼逼网| 久久欲| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 69久久| 97香焦色区| 一类无码操逼视频| 99re免费| 国产三级中文字幕粉嫩| 91艹逼精品| 中文字幕jul-617人妻熟女| 亚洲一区二区三区在线激情| 天天久久久久久| 亚洲欧美综合色| 国产 丝袜 欧美中文 另类| 国产后入| 色婷婷六月丁香七月婷婷| 台湾佬大香蕉| 麻豆区久久久久亚| 日韩情色AV| 人妻少妇精品久久久久久| 日日干夜夜操视频h| AV综合中文字幕干| 天无日色综合| 久久婷婷在线观看视频| 五月婷婷综合在线| 日韩无码极品| 97精品熟女少妇一区| 人人妻人人澡人人爽久久av| 欧美日韩人妻少妇 一区二区三区| 麻豆 欧美 日韩| 久久东京国产精品视频| 一本一道vs波多野结衣| 嫩呦国产一区二区三区AV| 国产精品久久蜜乳av| 久久噜| 97大色网| 91九九九吃| 91丝袜激情在线| 夜夜爽妓女| 午夜精品久久久久久久| 亚洲无码国产精品久久| 国产怡红院在线| 五月丁香六月激情| 亚洲av总站| 婷婷在线精品| 国产大学生高潮在线播放| 日本成人A片免费看| 97爱综合| 国产精品999aaa| 草草草视频| 熟妇色99| 日韩免费簧片| 日韩精品碰碰| 大香蕉啪啪啪| 超碰亚洲97| 极品粉嫩一区二区| 日本久久超碰| 精品视频97| 久久香蕉超碰97国产精品| 国产专区路线| 久久中久文96| 久久春色| 日韩无码一级黄色av片| 精品成人亚洲午夜电影| 国产精品久久久久亚洲av| 欧美一区91大爱| 91黑丝美女| 亚洲第一综合| 日韩黄片视频试看| 欧美日产国产在线成人第一区| 91精品人妻偷情| 美国日韩黄片| 久久久亚洲欧美综合| 男人高清无码一区二区| 极品美女福利在线观看| 亚洲成人综合在线| 日本人体九九九九九九| 日日AV加勒比| 亚洲校园激情| 人人看黄色视频| 成人小说视频在线精品欧美| 天天干天天操天天干天天操| 国产伦精品一区二区三区视频女| 日本午夜福利视频| WWW美腿丝袜香蕉中文| 东京男人天堂| 91丨豆花丨熟女| 日本99久久| 亚洲AV乱码专区国产噜噜亚洲| 91爰爱欧美| 亚洲欧美97| 蜜乳视频网站| 久久国产视频性吧| 色悠久久久av| 国产高清成人免费视频| 91精品伊人久久久大香线蕉91| 丁香九月激情| 91网站在线播放| 日日爱99| 国产无马av| 91九九九小逼| 粉嫩av平台| 熟妇操花| 亚洲日韩欧美一区二区| 国产家庭乱伦表演| 玖玖婷婷五月天| 免费成人在线熟妇网| 五月天伊人网| 人妻精品视频一区二区| 97精品久久久久中文字幕| 欧美天天干| 日韩人妻中文视频| 欧美色图 人妻| 天天插网| 超碰国产情侣自拍网| 情色五月天就去干| 啪啪AV导航| 青青草原综合久久大伊人精品| 久久久久久久久久久精| 亚洲最大无码中文字幕网站| 好爽免费视频,| 国产女同在线观看视频| 青青草视频久久| 欧美综合综合| 五月香婷婷| 亚洲脚交| 伊人网av| 日韩精品人妻| 熟妇人妻一区二区| 欧美区亚洲区偷拍区| 色婷婷aV一区二区三区麻豆综合| 久这精品中文在线观看视频| 亚洲图片欧美91N| 97美日韩视频| 亚洲熟妇图片| 激情小说日韩无码| 欧美日韩亚洲五月天婷婷| 国产精品区在线12p| 黄总AV色图| 久久精品国产AV一区二区三区| 欧美日韩夜夜| 麻豆视频国产一区二区| 亚拍在线| 日韩中文字幕二区| 啪啪啪男女亚洲中文字幕99| 玖玖视频在线资源一区二区三区| 操东北女人| 青青操97| 欧美性生活免费网| 久久9999| 男人兔费天堂| 少妇熟女1区2区3区| 极品粉嫩一区二区| 久操网无码在线| 操老熟女AV| 中文字幕jul-617人妻熟女| 韩日欧亚a级| 99热免费| 日韩黄色av中文字幕| 一区二区三区色综合| 欧美,日韩,亚洲视频| 欧美瑟综合| 中亚精品极乱| 亚洲囯产精品女人久久久| 在线小视频| 国产女人高潮视频| 国产精品久久久久久无码红治院| 久久婷婷一区| 国产精品亚洲四五区在线观看| 高潮的A片激情扒开一区| 熟妇国产免费一区| 五月天色综合| 玖玖玖玖精品国产剧情| 欧美成人精品欧美一级乱黄一区二…| 操人妻丝袜高跟| 天天操天天射天天日| 欧美,日韩,中文,另类| 熟女丰满人妻一区| 午夜影美女日鸡鸡天天视频国产| 啊啊啊爽爽| 传媒免费一区二区三区| 久久婷婷五月天| 一级毛片久久久久久久女人18| 91美女视频。| 亚洲天天影视色综合| 免费视频无码| 日韩不卡毛片Av免费高清| 性猛交| 久久久久久久久久久999| 亚洲欧洲综合视频在线| 久久精品福利影院| 无码人妻精品酒店| 96国产精品| 躁躁日曰躁2020| 久久激情视频| 日韩性爱视频免费在线 | 色官网在线| 天天草天天日| 亚洲精品国产拍免费91在线| 操死我了嗯嗯嗯| 欧美午夜精品久久久久久超碰| 国产精品无码久久久久2028| 亚洲中文字幕精品一区| 国产精品九九九| 国产怡红院在线| 强奸熟女一区二区三区| 9999九九九久久久| 日日噜噜夜夜久久亚洲一区二区 | WWW.加勒比人妻一区不卡.com| 色色综合网站| 天天射影院| 精品-91人妻子系列| 欧美视频一区二区在线| 久久一区二区高清免费| 岛国大片在线观看网站入口| 操人人| 久久这里只精品免费福利| 国内外内射高清视频| 中文字幕视频在线观看| 婷婷国产精品一区二区| 理论久久婷婷网8| 97在线日韩中文字幕| 无码操逼天堂| BBBBB97COM| 亚91网| 美女黄色91| 96国产精品| 欧美日韩亚洲少妇寂寞影院正在播放| 全国男人天堂网| 久九九九九九九九热| 中出在线视频| 就去色综合| 精品国产乱码久久久久久久| 91五十路| a片久久久久久久久久久久 | 99热99在线播放激情| 制度丝袜99| 啪啪AV导航| 欧美另类综合久久| 六月激情婷婷| 少妇同性| 日本熟妇精品九九| 9I1性色影院| 啊啊啊啊啊啊好多水| 色婷婷国产精品一区在线观看| 好爽免费视频| 日韩精品一区二区高清| 小情侣高清国产在线视频| 婷婷色中文字幕| 天天操av懂色| 亚洲精品 欧美精品| 亚洲欧美日韩国产丝袜自拍中文| 亚洲国产97在线精品一区| 人妻一区二区三区熟女| 亚洲AV成人无码一二三久久| 手机在线播放国产福利| 狠狠操天天干| 久草精品一区| 91高潮| 91色人妻| julia高潮后不停追击中出| 无码99| 超碰在97| 国产偷拍网站| 久久久97| 密臀视频一区二区三区| 色约约一区=区三区| 97超碰人人操人人操| 中日韩熟女| 狠狠 91| 亚洲人综合| 欧美999| 无码人妻丰满热妇又大又粗| 韩国一区二区精品亚洲| 色97国产69香蕉| 欧美成人免费在线观看| 日韩中文字幕二区| 国产熟女精品区| 国产传媒日韩| 丁香六月婷婷综合| 九一综合网| A级片一区| 国产67194| 91l欧美在线| 精品99999| 激情丁香婷婷| 超碰偷拍| 青草青草久热| 伊人991| 成人小说另类在线| 色妺妺在线视频| 伊人性在线视频| 亚洲97久久精品亚洲| 禁十八久久| 校园春色亚洲| 亚洲 欧美 91| 欧美色院| 激情五月天网站| 99re这里只有精品2| 中文字幕丝袜国产第一页不卡| 中文字幕 一区二区 亚洲无码| 国产2.3.4区| 最近2019中文字幕国语免费版| 精品97精品97| 成人无码在线超碰网| 亚洲综合113页| a片自拍直播视频| 夜色五月天| 国产免费内射视频| 久久一二三四五六七八九区区区 | 自拍偷拍 日韩欧美| 韩国久久97| 精品视频在线观看| 欧美淫穴| 被窝影院午夜看片无码| 五月天伊人| 黄片免费视频2019| 桃色人妻在线视频| 午夜福利成人免费视频| 97色欧洲| 日本一区三级韩国| 欧美高清无码免费视频高清版| 日韩在线女优天天干| 亚洲无992tv| 一区二区三区四区姦女| 大香蕉专区| 丝袜色综合| 狠狠色色| 精品三级在线专区| 丝袜av一区二区三区| 免费一级特黄特色大片在线观看看 | 久久人人爽人人爽人人片Ⅴ| 蜜区区视频79 | 国产精品乱码久久久久久久久久久久| 成人无码在线视频网站| 亚洲人久久久网| 岛园激情| 97精品国产| 91精品成人| 嫩草影院在线观看精品| 性欧美999| 亚洲欧洲视频小说在线观看| 手机在线中文字幕国产| 亚洲午夜精品久久久中文影院| 97人人操人人干| 综合伊人网12色| 久久9精品网站| 九九热精品视频在线观看| 国产呦精品系列在线观看| 欧美在线55555| 成片免费播放| 在线无码视频| 9丨久久九九九| 亚洲精品骚逼| 另类小说五月天| 国产又黄又爽又刺激久久久久久| 蜜臀99久久精品| 丝袜制服字幕在线| 国产麻豆一级精品视频| 日韩一区二区精彩视频| 999热这里只有精品| www.91欧美| 又黄又爽在线观看视频| 91 亚洲 欧美 日韩 国产 综合| 超碰2017| 97欧美日韩精品| 欧美情色贴图| 色九九九| 日本熟妇熟色97一本在线观看| 久操网线| 色色网91| 国产午夜精品理论片一二三区区 | 色999亚洲人成色| 日韩欧美aⅴ综合网站发布| 人妻丝袜二区| 青青草原成人| 久久精品中文| 日韩av色图综合| 69超碰综合| 欧美日韩91| 亚洲国产一级精品毛一级精品看免费视频| 亚洲巨爆乳一区二区三区四季网| 蜜臀网 一区| 久久亚洲日韩国产欧| 青草香蕉网| 国产欧美一区二区| 久久精品亚洲婷婷| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 人妻乱仑一区二区三区| 自拍偷拍草一草| 少妇久久久| 蜜臀久久99精品久久久久| 亚洲激情在线| 丝袜 中出 制服 人妻 美腿 中文字幕| 任我爽在线视频免费观看| 欧洲与亚洲欧美精品中文字幕| 91老熟女逼| 人人操天天爽| 欧美一二在线| 新视频sss国产| 天天舔天天日天天射| 吉川爱美亚洲二区在线| 高跟伊人julia ann| 99综合自拍| 日韩钢筋无码高清啾啾啾| 久草资源欧美在线视频| 久热精品色情| 欧美熟女丝袜| 精品久久久一本一道| 亚洲做性| 九九久久玖玖| 日韩字幕一区| 久久夜黄色无码A级大片| 人人妻人射| 福利色色| 亚洲日韩一区电影| 爱干爱射网啊啊啊| 久久精品99久久久久久| 九九九不卡| 女色综合| 亚洲免费成人在线高清无码视频| 秋霞久久亚洲精品成人| 五月婷婷AV| 日本一本一区二区三区四区五区欧美日韩中文字幕| 中文字暮97| 青青国产在线拍揄自揄拍| 欧美亚州色的图| 欧美自拍网| A 天堂| 国产精品婬乱一级毛片彝族| 综合色色婷婷| 狠肏骚人妻| 亚洲天堂久| 成人怡红院| 亚洲国产ⅴ高清在线观看| 97摸视频| 男人的天堂成人的社区| 美女网站黄页| 草草电影院| 日韩不卡a级视频专区| 99re视频在线观看这里只有精品| 色天使大香蕉| 久久9精品| 正在播放国产精品一区| 婷婷五月天激情网| 91精品成人| 性欧美91| 国产 亚洲 丝袜 制服| 亚洲有码 视频一区| 99热8| 家庭乱伦麻豆| 人人透人人操| 亚洲情色一区二区三区| 欧美色就是色| 在线看免费无码AV天堂的| 秋霞男人网| 春色综合网| 午夜福利免费精品视频| 一区二区精品更新提醒| 中文字幕在线免费观看 | 日韩精品中文字幕一| 色妹子A V| AV女资源| 自拍大香蕉乱插| 神马久久网| 男人的天堂网页| 99久久99九九99九九九| 亚洲涩图欧美| 99色热国产视频精品| 欧美内射少妇| 国产熟女精品一区二区| 99综合网| 国产sv美女内射| 岛园激情| 色偷偷综合91久久噜噜| 黄片免费看的| AV99热18这里只有精品| 中文字幕日韩电影人妻| 人人操天天爽| 中文?日韩?免费?精品| 蜜臀久久一区二区| 亚洲久久久| 992这里有精品| 欧美性爱超碰97| 天天色播| 性色综合网| 一区二区日韩欧美久久| 91亚洲综合| 国产9 9在线 | 亚洲| 久久老子无码午夜伦不卡| 日韩不卡一二三四| 少妇xx精品| 在线免费试看60秒| 精品黑人一区二区| 久久熟女精品不卡一区| 亚洲啪啪性视频| 成人草草视频| 日本三级韩三级99久久| 9久精品| 久jiu久神马影院| 久久精品国产Aⅴ| 色爱欲亚洲| 国产中文大片资源中文字幕| 青青三级视频| 天堂种子在线www网资源| 精品无av| 麻豆久久久久久久久丝袜 | 无码精品啪啪啪一区二区三区三州| 一起草日韩| 精品久操| 中文字幕老熟妇黄色视频| 3PAV乱伦视频| 久久精品99久久久久久| 六月激情网| 日本熟妇浓毛hdsex| 亚洲精品欧洲精品| 国产懂色精品国产av| 久久精品无码专区| 插老姨肥穴| 在线强奷到舒服的无码视频| 97日亚洲欧美| 97欧美色资源| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 素人一区二区三区日韩| 俺也射| 青青青国产| 亚洲高清无码在线桃色| 91人人操| 日韩一级二级三级免费看完整版国语版| 日韩人妻一区二区精品| 搡老熟女免费视频 | 日本一级婬片试看三分钟| 日韩欧美麻豆| 青青草日本中文字幕| 一个人免费HD91视频| 亚洲综合电影| 后入式999| 欧美在线伊人色| JULIA一区二区三区在线播放| 91精品国产91综合久久蜜臀| 果冻传媒A片一二三区| 日韩97视频!在线| 色官网在线| 蜜臀AV秘一区翔田千里| 亚洲美女精品九九视频| 久久熟女久| 成年男人的天堂| 99久久99久久综合| 国产精品久久久久久久毛片1| 大香蕉78| 蜜臀99久| 色偷偷2020免费视频播放| 熟女欧美日韩综合婷婷| 欧美天天拍| 五月婷婷久久综合| 操逼逼福利视频| 91精品亚洲内射孕妇| 日本大香蕉综合网| 一区二区三区男人的天堂| 91久久国产综合精品| 高清不卡一二三区视频......| 蜜乳av首页| 欧美日本国产日韩激情视频| 被男人吃奶很爽的毛片| 久久精品人妻一区| 天天影视亚洲| 大香久久| 老熟女91视频| 欧色网址| 大香蕉狠狠爱| 欧美性性性| 偷偷人人精品女女久久| 美女上床网站| 男人天堂无码| 亚洲精品久久久久久| 97精品中文字幕| 老女人碰碰在线碰碰视频| 在线综合 亚洲 欧美中文字幕 | 国产 日韩,欧美 自拍| 麻豆精品.欧美精品.日韩精品.| 91精品国| 欧美亚州综合网图片| 男人天堂最新手机版在线青青草| 色老久久| 天天碰久久入| 日韩无码第3页| 亚洲天堂另类| 日韩小电影| 精品福利| 久久av无码| 国产日韩区| 啪啪免费| 在线看免费无码AV天堂的| 丁香九月激情啪| 在线99热| 人妻夜夜爽天天爽麻豆三区网站 | 国模不卡一本二本三电影| 青青操少妇| #NAME?| 超碰97人人乐| 国产日韩久久| 91东京热男人的天堂| 天天干干天天干干| 国产激情av女片自拍| 国产精品秘 福利姬在线观看| 色色色五月婷婷| 天天综合AV| 天天干天天中出av| 4tube欧美女厕所| 老熟女91| 亚洲毛片一级带毛片基地| 欧美黄色片AAAAA| 婷婷香蕉欧美在线一区二区三区| 嗯嗯嗯,草死我| 超碰97在线中文| 外国91| 一二三四视频中文字幕在线看| 国产操逼逼网| 97精品国产97久久久久久| 伊人久久大香线综合无码| 色综合 加勒比| 在线亚洲欧美| 久久性爱网站| 青青草日逼视频| 精品一区二区久久| 男人的天堂 在线一区| 乱伦图一区| 麻豆精品久久久久久久| 91nbbbbbb| 熟女人妻一区二区三区免费看 | 色欧美天天| 青青草字幕AV| 欧美天天综合网| 人妻乱仑一区二区三区| 欧美久久婷| 91成人亚洲色图| 久久久久亚洲三级电影| 国产成人+综合亚洲+天堂| 97超碰色屌| 欧美 亚洲 在线| 欧美日韩香蕉| 97这里都是精品| 98久久超碰| 中日韩欧美精品无码AⅤ一区二区| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 天天干天天操天天拍| 中出在线视频| 宅男影院久久久,99| 日韩欧美女优电影| 丝袜美腿91| 久久久久久国产精品免费网站| 澳门人妻久久| 易易A毛视频| 伊人女女资源在线观看| 九九热超碰97亚洲最新香蕉| 亚洲色人阁| 国模精品娜娜一二三区 | 亚卅熟女乱色| 99热日| 亚洲精品国产熟女久久久久久| 7月婷婷综合| 天天噜| 日日夜夜干| 就去色综合| 婷婷五月天久久久| 久艹视频在线| 精品伊人久久久大香线蕉小说| 精品国产乱码久久久兰草影视| 美国日韩黄片| 国产精品久久久久绯色| 免费a v| 无码99| 热99这里有精品综合久久| 天天射影院| 黄页| 97人肏| 操逼A∨| 日韩AV中文字幕电影| 亚洲人成网站7777| 久久超碰亚洲人| 亚洲国产精品无码AV久久久| 欧美 亚洲 大香| 成人无遮挡毛片免费看| 女生自91网站| 久久人人爽爽人人爽人人片αV| 欧美精品第四五页中文字幕在线观看| 男人天堂网站| 免费人人搞97| 神马久久久久久伦理片| 内射卯月麻衣| aaa一级黄片| 99999国产精品| 在线人妻熟女一区二区三区四区五区| 久久AV无码AV| 亚州综合色图| 国产视频一区二区免费| 天美传媒麻豆一区二区三区国产精| 五月天久久久| 超碰免费97| 91成人在线| 大香蕉免费乱伦视频| 大香蕉2017| 蜜臀久久一区二区| 大香蕉乱级| 超碰69| 欧美在线视频99| 欧美精品精品一区二区| www.男人天堂| 久久久中文| 边做饭边操逼逼| 亚洲人久久久网| 久久99热这里只频精品6学生| 欧美乱伦专区| 九九九草| 狠狠躁AV| 日韩探花精品在线视频| 日韩十八禁| 97久久久精品| 我要看免费韩日黄片| 亚洲男人天堂网| 亚洲怡春院| 高清不卡视频| 亚洲码专区| 亚洲最新Av| 人人九九精| 熟女一区二区| 色五月首页| 亚洲图片色图欧美另类| 校园激情狠狠四射| 久久久久久久久久精| 五月婷婷综合在线| 萌白酱自拍视频| 日韩一级二级三级免费看完整版| 久污| 久草视频制服诱惑| 婷婷综合久久| 乱欲一区二区| 国产在线能看的你懂的| 超碰人人干天天射| 老司机午夜福利视频一区二区| 玖色AV| 亚洲精品国产精品乱码不99| 国产乱伦性爱区| 日韩一级二级三级在线不卡观看完整| 噜噜噜亚洲精品| 日韩久久超碰色| 天天流夜夜操| 激情丁香婷婷| 蜜乳AV网址| 中文字幕精品一区欧美| 中文字幕蜜乳av| 伊人九九| 亚洲美腿丝袜香蕉影视欧美成人| 久久超碰大香蕉| 丰满少妇一区二区三区专区| 久久精品99| 欧美精品久久久久久久久88| 俄罗斯一区二区视频在线观看| 日日夜夜免费| 草草草视频| 激情综合 婷婷五月 红杏| 精品无码产区一区二| 欧美少妇色综合| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 久久久98网站免费视频| 狠狠色婷婷7777久| 亚洲欧美经典一区二区| 爱av免费| 人妻乱仑一区二区三区| 鸡巴插逼视频| 国产精品欧美日韩久久| 先锋色眉乱伦资源| 成人七区| 奇米狠999| 91小视频| 欧美丰满熟妇XXXX性ppX人交| 黑人无码一区二区| 人人摸人人摸人人干| 欧美日韩性爱无码| 日本熟妇人妻中出视频| 亚洲精品aa久久伊人| 国产黄色 A 片免费看| 狠狠中文字幕| 亚洲国产成人精品无码专区| 午夜影美女日鸡鸡天天视频国产 | 国产精品第一页国产大屁股视频免费区i| 久久超碰大香蕉| 国产第11页| 熟妇高潮二区三区| 久久久无码精品人妻二区 | 日韩精品一区的| 婷婷综合网| 久久久久成人蜜桃精品| 色哟哟国产精品免费网址| 少妇被玩视频二三区| 精品无码一二三四区| 伊人色综合欧美| 香港久久久| 中文字幕97| 2017人人操,人人摸| 亚欧无码在线| 91九色精品熟女内射| 麻豆天美电影一区二区| 久久欧洲| 欧美线天码中字| 久久久久久久| 三男一女不戴套的A片| 99re公开精品免费视频| 中文字幕一区日韩精| 青青操青娱乐| 亚洲欧洲无码97久久精品| WWW美腿丝袜香蕉中文| sewuyueav| 9国产超碰| 99日精品欧美国产| 91女人的网站| 天天综合网合集91| 97爱爱爱| 国产区性爱在线视频秋霞豆| 蜜桃成人1区2区3区| 日本超碰97日韩精品人妻| 蜜桃臀av一区二区| 日韩免费三级黄片电影| 国产高清成人传媒影视| 日本天天人人狠狠在线日美女 | 亚洲好色人妻| 黄片免费日韩| 中文字幕jul-617人妻熟女| 日本三级人妻a人妻一在线| 欧美最大综合网| 男女一进一出视频久久| 中国国国产一级特黄毛片| 一牛影视久久久一区二区三区| 天天天操天天天爱| 午夜舔阴达高潮视频免费看| 极品美女福利在线观看| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 青娱乐手机日韩在线视频| 91女色| 岛国黄| 亚洲天堂另类美腿| 日本高清视频在线观看黄已三辽| 97超碰磁| 亚洲老熟妇xxx| 久草线上视频免费看| 大屁股人妻女教师撅着屁股| 99色在线视频| 天欧美在线| 丰满人妻一区二区三区性色| 久7色| 国产精品在线免费| 人人操人人大香蕉| 丝袜美腿校园春色| 97免费视频在线观看| 久久男女激情视频网站 | 欧美人妻久久精品二区三区| 蜜桃久久久久久久| 97欧美| 亚洲欧洲综合视频在线| 欧美第二页午夜| 1级黄色夫妻对换性交免费看| 极品五月天噜噜| 91亚洲综合在线| 99九九精品| 久久九九精品一区二区 | 亚洲 欧美 另类 日韩 人妻一区| 欧美91精品国产自产| 人人操av| 日韩有码中文字幕女同性恋| 欧美日韩性爱操大逼| 无码男人天堂| 黑人狂躁日本妞一区二区三区| 亚洲av热热色| 日韩欧洲操屄视频| 亚洲瓯美色图| 免费成人在线观看91| 极品粉嫩一区二区| 人妻9117c| 亚洲色欲一区二区三区| 精品九九九九| 亚洲城人男人的天堂| 男女一进一出视频久久| 97亚洲一区| 2023天天操夜夜操| 久久久穴999| 国产极品精品美女视频| 97久久久精品| 亚洲成人久久一区二区| 亚洲男人的天堂网| 国产真实野战在线视频| 亚洲色综网| 欧美成va视频网站| 外国免费性情大片| 天天欧美色| 超碰97人妻免费在线| av在线浏览| 人人操人人插人人摸人人干| 久久6热精品99视频| 不卡啪啪视频| 熟女精品日韩一区二区三区| 精品无码一区二区| 亚洲国产成人精品999| 天堂伊人久久| 一起草精品人妻| 男人的天堂com| 久久久久久性爱片| 99久久久无码精品国产人| 99热日| 另类小说五月天| a'v在线资源| 日韩欧美偷拍美女视频| 人人考人人摸人人干| 美女91在线| 躁躁日曰躁2020| 麻豆国产96在线| 久热一区二区| 成人欧美日超碰| 国产高清在线自在拍69| 色五月综合| 日韩极品无码B| 2020中文字幕在线| Av色五月| 免费在线观看国内色片网站网址| 极品色综合| 久久精品72| 国产精品久久久三级无码| 十八禁啪啪视频| 好爽要喷了| 久久久久久久久久久人妻| 人摸人人操人| 日本不卡二区| 后入日本1234| 欧美第38页| 久久九九网| 九九精品99| 九七色图| 美女网站黄页| 99re不伦| 色色热| 日操粉逼逼| 性色AV蜜色av色欲av| 人人妻人人色一区二区三区| 欧美亚综合色图| 深爱五月天| 婷婷视频在线免费观看| 蜜乳AV免费观看| 欧美精品庄| 夜夜夜夜爽| 久久鲁夜| 日韩熟女精品无码专区一区二区| 亚洲精品美女久久久久久久久| 日韩黄片影院| 欧美少妇人妻| 黑人性欧美| 婷婷精品国产欧美精品亚洲人人爽| 国产av青草| 久久,精品一二三| 综合久久中文字幕综合日韩精品| 人妻丰满熟妇一区二区三| 色五月AV| 亚洲天堂加勒比| 亚州色图欧美色图| 99re在线视频国产| 久久超碰98| 色第一页| 人人爱夜夜爱| 无码人妻一区二区一牛影视| 开心激情婷婷| 久久精品99| 日韩精品一区二区三区色欲| 国人欧美精品一区二区| 日韩色欲久久一二三四区| 无码高清操逼网址| 99久久久无码国产精品性啊聊| 97在线免费视频观看| 超碰在线免费一区二区三区| 91精品国产91久久久久久久久久久久| 综合97久久| 亚洲少妇激情一区二区三区| 欧美一级专区免费大片 | 亚洲色图欧美色图日韩色图| 欧美成人A√在线一区二区| 人人摸人人入| 亚洲欧美日韩免费观看| 精品一区二区三区国产| 无码精品久久久久久亚洲| 呦呦一区| 日本东京热久久久电影| 在线毛片片免费观看| 亚洲密乳AV| 国产中文大片资源中文字幕| 老司机天天操| 精品一区二区综合熟妇| 探花熟女,姿勢到位,體驗感也到位| 综合五月婷婷亚洲一区| av在线不卡一区二区三区| 欧美日韩香蕉| 日本韩欧美在线播放a| 亚洲激情综合| 日韩美一区| 超碰 av 女人天堂|