核心的C++ API包含在 NvInfer.h 中。
有四個關鍵的API如下:
1、Bulider API
Builds an engine from a network definition。build與網絡相關的engine.
2、Execution API
Context for executing inference using an engine。執行前向計算using engine。
3、Network Definition API
A network definition for input to the builder。網絡的定義。
4、Plugin API
Plugin class for user-implemented layers。用戶自己實現的層。
命名空間:nvinfer1 (個人理解為是 nvidia inference version1的意思)
命名空間里有很多members,主要涵蓋了functions、Enumerations、Enumerator
具體命名空間里的member的意思可以到https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/c_api/namespacemembers.html查閱
tensorRT中大量的類以及類的介紹、成員、方法查閱https://docs.nvidia.com/deeplearning/sdk/tensorrt-api/c_api/classes.html
下面介紹的是幾個重點的類:
IHostMemory: Class to handle library allocated memory that is accessible to the user
與分配內存相關的類庫,通過主機內存對象分配的內存由該library擁有,通過調用destroy釋放內存。注意該類是不能繼承的,否則會影響前向傳播的計算。該類有幾個成員函數:data (指針,指向數據的首地址)、size( data bytes)、type(數據類型)、destroy。