1 个不稳定版本

使用旧的 Rust 2015

0.0.0 2018年9月8日

#19#神经网络

MIT/Apache

2KB

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 后端仍然是 WIP,将在稍后详细介绍。

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 软件包以修复。

无运行时依赖