Accel: GPGPU Framework for Rust
CUDA-based GPGPU framework for Rust
Features
- Compile PTX Kernel from Rust using NVPTX backend of LLVM (demonstrated in japaric/nvptx)
- proc-macro-attribute-based approach like futures-await
- Simple memory management using Unified Memory
Sub Crates
- accel-derive: Define procedual macro
#[kernel]
- accel-core: Support crate for writing GPU kernel
- nvptx: Compile Rust into PTX using LLVM/NVPTX backend
- cuda-sys: Rust binding to CUDA Driver/Runtime APIs
Pre-requirements
- Install CUDA on your system
- Install LLVM 6.0 or later (use
llc
andllvm-link
to create PTX) - Install Rust using rustup.rs
- Install xargo, a sysroot manager
Or, you can use termoshtt/rust-cuda container whith satisfies these requirements.
docker run -it --rm --runtime=nvidia termoshtt/rust-cuda
See also nvidia-docker
Example
extern crate accel;
extern crate accel_derive;
use kernel;
use *;
pub unsafe
Licence
MIT-License