建構階段:
在建構階段,TensorRT采用網絡定義,執行優化并生成推理引擎。
建構階段可能需要相當長的時間,尤其是在嵌入式平台上運作時。 是以,典型的應用程式将建構一次引擎,然後将其序列化以備後用。
建構階段在層圖上執行以下優化::
消除其輸出不使用卷積,偏差和ReLU操作融合的圖層
具有足夠相似參數和相同源張量的操作聚合(例如,GoogleNet v5初始子產品中的1x1卷積)
通過将層輸出指向正确的最終目的地來合并連接配接層。
此外,建構階段還在虛拟資料上運作圖層以從其核心目錄中選擇最快的,并在适當的情況下執行權重預格式化和記憶體優化。
執行階段:
在執行階段,運作以下任務:
運作時執行優化的引擎。
引擎使用GPU上的輸入和輸出緩沖區運作推理任務。
指令行包裝器( Command Line Wrapper):
樣本目錄中包含一個名為giexec的TensorRT指令行包裝器。 它對基于随機資料的網絡進行基準測試和從這些模型生成序列化引擎非常有用。
指令行參數如下所示:
例如:
如果沒有提供模型,則生成随機權重。
TensorRT Lite:
包含在Python API中的是一個高度抽象的界面,稱為TensorRT Lite。 TensorRT Lite API在建構引擎和執行推理時處理幾乎所有事情,是以使用者隻需建立引擎并開始處理資料即可。
TensorRT Lite API位于tensorrt.lite中,包含一個名為Engine的類。 引擎構造函數接受模型定義以及輸入和輸出圖層,并建構圍繞它的完整引擎以進行推理。
在内部,Lite引擎為您建立記錄器,TensorRT引擎,運作時和上下文,然後為引擎配置設定GPU記憶體。
自定義記錄器,插件,校準器和分析器等功能可以從構造函數傳遞。