#tensor-rt #wrapper #bindings #low #level #nvidia #warnings

sys tensorrt-sys

围绕Nvidia的TensorRT库的低级包装

4个版本 (2个破坏性版本)

0.3.0 2020年9月26日
0.2.1 2020年9月13日
0.2.0 2020年9月12日
0.1.1 2020年9月10日

#31 in #low

每月25次下载
tensorrt-rs 中使用

MIT 许可证

2.5MB
855

包含 (静态库, 2.5MB) libnvinfer_plugin_static.a

TensorRT-sys

Crates.io

⚠️ 此crate目前仅支持Linux ⚠️

C++包装器和Rust绑定到TensorRT C++库。请参阅此处关于C++ TensorRT库的文档

先决条件

CUDA 10.1

TensorRT 5.1.5

CMake > 3.10

TensorRT-sys的绑定依赖于TensorRT 5.1.5,以便正确工作。虽然其他版本的TensorRT 可能 与绑定一起工作,但没有保证,因为绑定的函数可能在TensorRT的未来版本中已被弃用、删除或更改。

上述先决条件预计将安装在Linux的默认位置。有关TensorRT的进一步安装信息,请参阅nvidia文档

注意: TensorRT文档中描述的tarball安装方法可能会在链接正确时引起重大头痛。如果可能,强烈建议使用包管理器方法。

如果加载默认的TensorRT插件存在问题,似乎缺少了一些在某个时间点未随5.1.5二进制安装提供的插件。要获取这些插件,请按照从此处构建和安装TensorRT OSS组件的说明进行操作。

目前不支持Windows,但应该很快就会提供支持!

TensorRT类的支持矩阵

下面未列出的任何内容目前都没有支持。

类名 状态
nvinfer1::ILogger 完成
nvinfer1::IBuilder 部分
nvinfer1::IExecutionContext 部分
nvinfer1::IRuntime 部分
nvinfer1::ICudaEngine 部分
nvinfer1::INetworkDefinition 部分
nvinfer1::IHostMemory 部分
nvinfer1::IDims (和所有子维度) 完成
nvuffparser::IUffParser 部分

结构

用于在Rust和TensorRT本身之间通信的所有C++代码都包含在trt-sys子文件夹中。此代码公开了一个C接口,该接口可以被Rust消耗,并将该接口与TensorRT C++库公开的API之间进行转换。

使用bindgen命令生成C++包装库的绑定,命令如下:bindgen --size_t-is-usize trt-sys/tensorrt_api.h -o src/bindings.rs。所有组成C API的头文件都包含在文件tensorrt_api.h中,bindgen读取这些头文件以创建Rust绑定。这些绑定保存在src/文件夹中,并通过lib.rs导入以创建tensorrt-rs使用的crate。

依赖项