/cuda-sys

Rust binding to CUDA APIs

Primary LanguageRustApache License 2.0Apache-2.0

cuda-sys

name crate.io docs.rs CUDA
cuda-driver-sys Crate docs.rs 10.2
cuda-runtime-sys Crate docs.rs 10.2

Rust binding to CUDA Driver (libcuda.so) and Runtime (libcudart.so) APIs

This crate does NOT include CUDA itself. You need to install on your own.

CUDA Installation

  • You should install CUDA from the official installer.
  • or use nvidia/cuda container
    • This container does not add libcuda.so to dynamic link path. You need to add it to your ld path LD_LIBRARY_PATH=/usr/local/cuda/lib64/stubs or using ldconfig.

CUDA_LIBRARY_PATH environment variable

  • If you use system installer (e.g. apt, yum, pacman, and so on), the install path may be different.
  • $CUDA_LIBRARY_PATH (e.g. /opt/cuda/lib64) environment value adds paths to the list of library searching.
  • To verify that cuda-sys can find your CUDA installation, you can check that the CUDA_PATH environment variable has been set.

Q & A

Q. Program does not start (can be compiled) with following error message:

error while loading shared libraries: libcuda.so.1: cannot open shared object file: No such file or directory

A. Driver API (libcuda.so) is sometimes installed in a separate directory. You need to find it, and add to LD_LIBRARY_PATH:

LD_LIBRARY_PATH=/usr/local/cuda/lib64/stubs

License

Dual-licensed to be compatible with the Rust project. Licensed under the Apache License, Version 2.0 or the MIT license, at your option. This file may not be copied, modified, or distributed except according to those terms.

You should check the End User License Agreement, which describes NVIDIA Software License Agreement and CUDA Supplement to Software License Agreement.