#cu-blas #cuda #blas #nvidia

rcublas

CUDA cuBLAS 的安全 Rust 封装

4 个版本 (重大更新)

0.6.0 2021年11月21日
0.5.0 2020年6月11日
0.3.0 2020年1月17日
0.2.0 2017年6月12日

#440 in 机器学习

Download history 18/week @ 2024-03-11 13/week @ 2024-03-18 16/week @ 2024-03-25 43/week @ 2024-04-01 6/week @ 2024-04-08 10/week @ 2024-04-15 14/week @ 2024-04-22 9/week @ 2024-04-29 13/week @ 2024-05-06 12/week @ 2024-05-13 23/week @ 2024-05-20 19/week @ 2024-05-27 10/week @ 2024-06-03 19/week @ 2024-06-10 8/week @ 2024-06-17 17/week @ 2024-06-24

每月下载量 57 次
6 个crate中使用了 (直接使用3个)

MIT/Apache

375KB
11K SLoC

Juice

这是

请查阅各个 README.md 文件以获取更多信息。

Juice 示例

运行 juice 示例的 CLI。更多示例和基准测试可以在 juice 示例目录 中找到。

安装 CLI

免责声明:目前示例需要 CUDA 和 cuDNN 才能构建。

编译并调用构建。

# install rust, if you need to
curl -sSf https://static.rust-lang.org/rustup.sh | sh
# download the code
git clone [email protected]:spearow/juice.git && cd juice/juice-examples
# build the binary
cargo build --release
# and you should see the CLI help page
../target/release/juice-examples --help
# which means, you can run the examples from the juice-examples README

依赖关系

Cap'n'Proto

capnproto 是一种数据交换格式,用于存储和加载 Juice 中的带权网络。

capnprotocapnproto-libs 以及它们的发展包是您从包管理器中需要的。

Cuda

获取 cuda 库是许多用户面临的第一道难关。

要使事情正常工作,需要设置以下环境变量

# examplary paths, unlikely to work for your local setup!
export CUDNN_INCLUDE_DIR=/opt/cuda/include
export CUDNN_LIB_DIR=/opt/cuda/targets/x86_64-linux/lib/
export CUBLAS_INCLUDE_DIR=/opt/cuda/include
export CUBLAS_LIB_DIR=/opt/cuda/targets/x86_64-linux/lib/

取决于您的本地安装设置。

目前支持的 cuda 版本是 cuda-11(详情见 #114 和 #115)

请注意,要运行 cuda 后端,您需要一个功能强大的 nvidia 设备。

OpenCL

您需要适当的加载器和设备库。由于 OpenCL 后端仍在开发中,这将在以后详细说明。

BLAS

Blas 是 native 后端使用的线性代数库。

需要存在 openblasblas。通过 BLAS_VARIANT 显式选择。

默认情况下,会尝试通过 pkg-config 解决库。

支持通过以下方式覆盖:

# examplary paths, unlikely to work for your local setup!
export BLAS_LIB_DIR=/opt/blas/lib64/
export BLAS_INCLUDE_DIR=/opt/blas/include/

也是支持的。

通过将 BLAS_STATIC 设置为 1 或取消设置 BLAS_STATIC 来确定 blas 库变体的链接方式。

ArchLinux 用户

ArchLinux 的 openblas 软件包不包括 LAPACK 符号(参见 FS#66092),因此如果您尝试使用它,将会遇到多个 cblas_* 无法解析的符号。

openblas 替换为 AUR 的 openblas-lapack 软件包以修复。

依赖关系

~0.4–1MB
~21K SLoC