NVIDIA TensorRT研究及模型加速使用

发布时间:2026/6/10 18:13:20

NVIDIA TensorRT研究及模型加速使用 背景说明在已有的服务器上部署了自己的项目代码显卡是最新的PRO2000但是处理的图像分辨率是1920*1080视频帧频是20fps进过分析代码发现在直接使用pytorch训练的模型.pt算力有点吃紧于是考虑通过转换模型格式来优化程序处理速度从而改变前台画面的显示流畅度。值得一提的是直接在windows上使用pip命令安装很多时候编译都是错误额因此考虑使用编译好的文件来安装。分析说明一般用pip install tensorrt會報錯並且卡在編譯失敗這完全不是你的問題。在 Windows 系統下直接用pip安裝 TensorRT 會試圖在你的電腦上進行 C 源碼編譯。如果你沒有完美安裝好對應版本的 Visual Studio C 編譯工具、環境變數它 100% 會報錯。既然這條路不通我們就用工業界最正統的繞道方案。以下我為你準備了三個最有效的替代方案強烈建議你優先使用方案一 方案一官方 Zip 壓縮檔 本地安裝 Wheel (最推薦絕對不用編譯)NVIDIA 官方其實早就幫你把 Python 的安裝檔編譯好了只是它藏在官方的 Zip 壓縮檔裡而不是放在 PyPI (pip) 伺服器上。執行步驟前往英偉達官網登入 NVIDIA Developer 網站進入 TensorRT 下載頁面。選擇正確版本根據你電腦上目前的CUDA 版本(例如 CUDA 11.8 或 12.1)下載對應的Windows Zip 壓縮包(通常叫做TensorRT-x.x.x.x.Windows10.x86_64.cuda-x.x.zip)。解壓縮與設定環境變數* 將下載的檔案解壓縮到 C 槽 (例如C:\TensorRT)。把C:\TensorRT\libC:\TensorRT\bin這路徑加入到你 Windows 系統的「環境變數 - Path」裡面 (這一步極度重要否則 Python 找不到底層 DLL)。手動安裝現成的 Python 套件 (避開編譯)打開終端機 (cmd)進入你解壓縮的目錄下的python資料夾cd C:\TensorRT\python裡面會有很多.whl檔案 (Wheel 檔就是已經編譯好的二進制套件)。找到對應你 Python 版本的檔案 (例如 Python 3.10 就是cp310)然後執行Bashpip install tensorrt-x.x.x-cp310-none-win_amd64.whl搞定這樣安裝完全不會觸發編譯1 秒鐘直接裝好 方案二轉戰 WSL2 (Windows Subsystem for Linux)如果你發現在 Windows 下搞這些 CUDA、cuDNN、TensorRT 的路徑配置快讓你瘋掉那我強烈建議你安裝 Windows 內建的WSL2 (Ubuntu)。為什麼Linux 是深度學習的「一等公民」。在 Ubuntu 下NVIDIA 的套件支援度極高。在 WSL2 裡面你甚至不需要自己去官網抓檔案只要透過 Ubuntu 的apt-get或是直接pip install tensorrt成功率都比 Windows 本機高出 90% 以上省下極大的心力。 方案三使用 C 轉換工具trtexec.exe(最硬核)如果你只是為了「把 .pt 轉成 .engine」而沒有要在 Python 程式碼裡import tensorrt進行二次開發那你根本不需要在 Python 裡安裝 TensorRT做法按照方案一的步驟把 TensorRT 的 Zip 檔解壓縮。直接轉換進入C:\TensorRT\bin目錄你會看到一個trtexec.exe檔案。先用 Python 把模型轉成 ONNXyolo export modelyour_model.pt formatonnx halfTrue然後直接用 CMD 呼叫這個.exe執行檔幫你編譯 EngineBashtrtexec.exe --onnxyour_model.onnx --saveEngineyour_model.engine --fp16這樣完全繞開了 Python 環境的依賴泥淖這三種方案都能幫你擺脫pip編譯失敗的噩夢。在你去 NVIDIA 官網下載之前請問你目前電腦上安裝的 CUDA 版本是多少呢 (可以在終端機輸入nvcc -V查看)確認版本後我能告訴你下載哪一個 TensorRT 最不會踩坑资源分享下载网址NVIDIA TensorRT | NVIDIA 开发者需要先注册账号如果已经有账号登录即可。可用版本如下在这里根据自己的显卡和Cuda选择时候自己的版本下载问价大概2个G左右下载后解压缩文件夹如下 為什麼 TensorRT 這麼肥大底層硬體驅動函式庫 (DLLs)裡面塞滿了可以直接跟你的 RTX Pro 2000 顯示卡晶片對話的底層 C 編譯動態連結庫 (.dll)。這些檔案為了追求極致效能體積都非常大。多代顯卡支援 (Fat Binaries)NVIDIA 為了讓這個安裝包能跑在不同世代的顯卡上例如你的 Turing/Ampere 架構、最新的 Ada/Hopper 架構裡面包含了針對每一種晶片架構單獨編譯的指令集。神兵利器trtexec.exe我們上一回合提到的那個可以直接繞過 Python、用 C 底層幫你把.onnx暴力轉成.engine的官方編譯器就藏在裡面的bin資料夾下。全套 Python Wheel 檔合集為了不用編譯它在python資料夾裡面直接塞滿了給 Python 3.8、3.9、3.10、3.11、3.12 所有版本的免編譯安裝檔 (.whl)。结果成功重启后第一张图片处理会比较慢因为要加载后续处理速度明显提高推理速度从40-60ms降低到了15-25ms左右。

相关新闻