6个版本 (3个重大变更)
0.4.0 | 2023年8月10日 |
---|---|
0.3.0 | 2023年8月8日 |
0.2.0 | 2023年8月8日 |
0.1.3 | 2023年6月15日 |
#1149 in 异步
每月75次下载
200KB
4K SLoC
async-cuda-npp
为NVIDIA二维图像和信号性能原语库提供的异步包装器。
ℹ️ 简介
async-cuda-npp
是 NVIDIA的NPP库 的异步包装器。它是 async-cuda
库系列 的一部分。
🛠 状态
此项目仍在开发中,可能存在错误。API的一些部分尚未完善。请谨慎使用。
📦 设置
确保已安装必要的依赖项
- CUDA工具包11或更高版本(NPP是CUDA工具包的一部分)。
然后,将以下内容添加到 Cargo.toml
中的依赖项
async-cuda-npp = "0.1"
⚠️ 安全警告
此crate故意不安全。由于异步Rust当前的工作限制,此crate的异步接口在某些罕见情况下可能导致未定义的行为。用户需要遵循以下规则来防止这种情况发生
- 此crate中的函数产生的任何futures都不能泄漏(无论是通过
std::mem::forget
还是其他方式)。 - 使用行为良好的运行时(不会忘记你的future,如Tokio或async-std)。
内部,本包中的 Future
类型在一个单独的运行时线程上调度 CUDA 调用。为了使 API 尽可能方便使用,闭包(即发送到运行时的闭包)的生命周期限制与未来对象绑定。为了强制执行此限制,如果未来对象被丢弃,则未来对象会阻塞并等待。此机制依赖于未来对象被驱动到完成,而不是被遗忘。这并不一定得到保证。如果运行时放弃或遗忘未来对象,或者调用者手动轮询未来对象然后遗忘它,则可能会出现不安全的情况。
许可证
根据以下任一许可证授权:
- Apache License,版本 2.0(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交的任何贡献,包括在本工作中的应用,均应以上述方式双许可,不附加任何额外条款或条件。
依赖关系
~1–2MB
~39K SLoC