13 个版本 (7 个破坏性更新)

新版本 0.8.0 2024年8月23日
0.7.0 2024年1月9日
0.6.0 2023年10月4日
0.1.3 2023年6月15日

#219 in 异步

Download history 80/week @ 2024-05-03 79/week @ 2024-05-10 77/week @ 2024-05-17 72/week @ 2024-05-24 106/week @ 2024-05-31 78/week @ 2024-06-07 174/week @ 2024-06-14 96/week @ 2024-06-21 83/week @ 2024-06-28 108/week @ 2024-07-05 49/week @ 2024-07-12 62/week @ 2024-07-19 79/week @ 2024-07-26 83/week @ 2024-08-02 34/week @ 2024-08-09 67/week @ 2024-08-16

每月下载量276

MIT/Apache

96KB
1.5K SLoC

async-tensorrt

TensorRT的异步封装。

version license docs

ℹ️ 简介

async-tensorrt 是一个为 TensorRT 提供的异步封装。

🛠 状态

该项目仍在开发中,可能包含错误。API的一些部分尚未完善。请谨慎使用。

📦 设置

请确保已安装必要的依赖项

  • CUDA工具包11或更高版本。
  • TensorRT 8或更高版本。

然后,将以下内容添加到您的 Cargo.toml 依赖项中

async-tensorrt = "0.8"

⚠️ 安全警告

此crate是 故意不安全的。由于异步Rust当前的限制,使用此crate的异步接口在某些罕见情况下可能导致未定义的行为。用户需要遵循以下规则来防止这种情况发生

  • 此crate中函数产生的任何未来都不能泄漏(无论是通过 std::mem::forget 还是其他方式)。
  • 使用一个行为良好的运行时(不会忘记您的未来)如Tokio或async-std。

内部,此crate中的 Future 类型会在单独的运行时线程上调度CUDA调用。为了使API尽可能方便,将闭包(发送到运行时)的生命周期限制与未来对象相关联。为了强制执行此限制,如果未来被丢弃,它将阻塞并等待。此机制依赖于未来被驱动到完成,而不是被遗忘。这并不一定有保证。如果运行时放弃或忘记未来,或者调用者手动轮询未来然后忘记它,则可能发生不安全的情况。

许可证

许可如下

由你选择。

贡献

除非你明确表示,否则根据Apache-2.0许可证的定义,你故意提交以供包含在工作中的任何贡献,应如上所述双重许可,不附加任何额外条款或条件。

依赖项

~1.4–2.6MB
~48K SLoC