TensorRT能夠加速的原因主要有兩點,一方面是支持INT8和FP16的計算;另一方面是對網絡結構進行了重構和優化。
- TensorRT支持INT8和FP16的計算
深度學習網絡在訓練時,通常使用 32 位或 16 位數據。TensorRT支持kFLOAT(float32)、kHALF(float16)、kINT8(int8)三種精度的計算,在使用時通過低精度進行網絡推理,達到加速的目的。
- TensorRT對網絡結構進行了重構和優化
TensorRT對網絡結構進行重構,把一些能合併的運算合併在一起,根據GPU的特性做了優化。
- tensorRT通過解析網絡模型將網絡中無用的輸出層消除以減小計算。
- 對於網絡結構的垂直整合,即將目前主流神經網絡的conv、BN、Relu三個層融合爲了一個層,例如將下圖1所示的常見的Inception結構重構爲圖2所示的網絡結構。
- 對網絡的水平組合,水平組合是指將輸入爲相同張量和執行相同操作的層融合一起,如圖2向圖3的轉化。
參考連接: