termoshtt / Accel
Licence: other
(Mirror of GitLab) GPGPU Framework for Rust
Stars: ✭ 420
Programming Languages
rust
11053 projects
Projects that are alternatives of or similar to Accel
Occa
JIT Compilation for Multiple Architectures: C++, OpenMP, CUDA, HIP, OpenCL, Metal
Stars: ✭ 230 (-45.24%)
Mutual labels: gpgpu, cuda
Babelstream
STREAM, for lots of devices written in many programming models
Stars: ✭ 121 (-71.19%)
Mutual labels: gpgpu, cuda
Hipsycl
Implementation of SYCL for CPUs, AMD GPUs, NVIDIA GPUs
Stars: ✭ 377 (-10.24%)
Mutual labels: gpgpu, cuda
Arrayfire
ArrayFire: a general purpose GPU library.
Stars: ✭ 3,693 (+779.29%)
Mutual labels: gpgpu, cuda
Futhark
💥💻💥 A data-parallel functional programming language
Stars: ✭ 1,641 (+290.71%)
Mutual labels: gpgpu, cuda
Arraymancer
A fast, ergonomic and portable tensor library in Nim with a deep learning focus for CPU, GPU and embedded devices via OpenMP, Cuda and OpenCL backends
Stars: ✭ 793 (+88.81%)
Mutual labels: gpgpu, cuda
Awesome Cuda
This is a list of useful libraries and resources for CUDA development.
Stars: ✭ 274 (-34.76%)
Mutual labels: gpgpu, cuda
MatX
An efficient C++17 GPU numerical computing library with Python-like syntax
Stars: ✭ 418 (-0.48%)
Mutual labels: cuda, gpgpu
Hashcat
World's fastest and most advanced password recovery utility
Stars: ✭ 11,014 (+2522.38%)
Mutual labels: gpgpu, cuda
Amgcl
C++ library for solving large sparse linear systems with algebraic multigrid method
Stars: ✭ 390 (-7.14%)
Mutual labels: gpgpu, cuda
Parenchyma
An extensible HPC framework for CUDA, OpenCL and native CPU.
Stars: ✭ 71 (-83.1%)
Mutual labels: gpgpu, cuda
Ilgpu
ILGPU JIT Compiler for high-performance .Net GPU programs
Stars: ✭ 374 (-10.95%)
Mutual labels: gpgpu, cuda
Optical Flow Filter
A real time optical flow algorithm implemented on GPU
Stars: ✭ 146 (-65.24%)
Mutual labels: gpgpu, cuda
Taskflow
A General-purpose Parallel and Heterogeneous Task Programming System
Stars: ✭ 6,128 (+1359.05%)
Mutual labels: gpgpu, cuda
Vexcl
VexCL is a C++ vector expression template library for OpenCL/CUDA/OpenMP
Stars: ✭ 626 (+49.05%)
Mutual labels: gpgpu, cuda
node
GPU-accelerated data science and visualization in node
Stars: ✭ 85 (-79.76%)
Mutual labels: cuda, gpgpu
Arrayfire Python
Python bindings for ArrayFire: A general purpose GPU library.
Stars: ✭ 358 (-14.76%)
Mutual labels: gpgpu, cuda
Accel: GPGPU Framework for Rust
crate | crates.io | docs.rs | GitLab Pages | |
---|---|---|---|---|
accel | CUDA-based GPGPU framework | |||
accel-core | Helper for writing device code | |||
accel-derive | Procedural macro for generating kernel code |
Requirements
- Minimum Supported Rust Version (MSRV) is 1.42.0
- Install CUDA on your system
- accel depends on CUDA Device APIs through rust-cuda/cuda-sys
- accel does not depend on CUDA Runtime APIs. It means that a compiled binary requires only
libcuda.so
at runtime, which is far lighter than entire CUDA development toolkit.
- Setup NVPTX target of Rust
- Install
nightly-2020-05-01
toolchain withnvptx64-nvidia-cuda
target, and rust-ptx-linker - There is an setup script for them:
- Install
curl -sSL https://gitlab.com/termoshtt/accel/raw/master/setup_nvptx_toolchain.sh | bash
Or, you can use docker container
Limitations
This project is still in early stage. There are several limitations as following:
-
For runtime on CPU
- Windows and macOS are not supported
- f64 and Complex number supports are missing
- Texture/Surface object handling is missing
- Async features based on CUDA Stream and Events are disabled until async/.await support
-
For writing GPU kernel code
Contribution
This project is developed on GitLab and mirrored to GitHub.
Sponsors
-
RICOS Co. Ltd
- GPU instances for CI and development
Links
Projects which accel depends on:
- rust-cuda/cuda-sys: CUDA Runtime and Driver API binding to Rust
-
denzp/rust-ptx-linker: Linker for PTX files generated by
rustc
Related Projects:
- rust-cuda/wg: Working group for Rust CUDA Team
- denzp/rust-ptx-builder: Another CUDA kernel builder from Rust crate
- bheisler/RustaCUDA: Another CUDA-based Rust framework
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].