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 中使用
2.5MB
855 行
包含 (静态库, 2.5MB) libnvinfer_plugin_static.a
TensorRT-sys
⚠️ 此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。