6 个版本
0.3.1 | 2020 年 5 月 24 日 |
---|---|
0.3.0 | 2020 年 5 月 3 日 |
0.3.0-alpha.2 | 2020 年 4 月 5 日 |
0.3.0-alpha.1 | 2020 年 1 月 11 日 |
0.1.0 | 2017 年 11 月 20 日 |
#781 在 硬件支持
在 accel-derive 中使用
110KB
2.5K SLoC
包含 (ELF 可执行文件/库, 2KB) tests/data/sub.cubin, (ELF 可执行文件/库, 2KB) tests/data/add.cubin
Accel:Rust 的 GPGPU 框架
crate | crates.io | docs.rs | GitLab Pages | |
---|---|---|---|---|
accel | 基于 CUDA 的 GPGPU 框架 | |||
accel-core | 设备代码编写的辅助工具 | |||
accel-derive | 生成内核代码的过程宏 |
需求
- 最小支持的 Rust 版本 (MSRV) 为 1.42.0
- 在您的系统上安装 CUDA
- accel 通过 rust-cuda/cuda-sys 依赖于 CUDA 设备 API
- accel 不依赖于 CUDA 运行时 API。这意味着编译后的二进制文件在运行时只需要
libcuda.so
,这比整个 CUDA 开发工具包要轻得多。
- 设置 Rust 的 NVPTX 目标
- 使用带有
nightly-2020-05-01
工具链和nvptx64-nvidia-cuda
目标的 rust-ptx-linker 安装nightly-2020-05-01
工具链 - 还有一个用于它们的 设置脚本
- 使用带有
curl -sSL https://gitlab.com/termoshtt/accel/raw/master/setup_nvptx_toolchain.sh | bash
或者,您可以使用 Docker 容器
限制
该项目仍处于早期阶段。存在以下限制
-
对于在 CPU 上运行
- 不支持 Windows 和 macOS
- 缺少 f64 和 复数 支持
- 缺少 纹理/表面对象处理
- 基于 CUDA Stream 和 Events 的异步功能尚未启用,直到 async/.await 支持
-
对于编写 GPU 内核代码
贡献
赞助商
- RICOS Co. Ltd
- CI和开发使用的GPU实例
链接
accel所依赖的项目
- rust-cuda/cuda-sys:将CUDA运行时和驱动API绑定到Rust的绑定
- denzp/rust-ptx-linker:由
rustc
生成的PTX文件的链接器
相关项目
- rust-cuda/wg:Rust CUDA团队的工作组
- denzp/rust-ptx-builder:另一个由Rust crate提供的CUDA内核构建器
- bheisler/RustaCUDA:另一个基于CUDA的Rust框架
依赖项
~3.5MB
~76K SLoC