CUDA

From David's Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
\( \newcommand{\P}[]{\unicode{xB6}} \newcommand{\AA}[]{\unicode{x212B}} \newcommand{\empty}[]{\emptyset} \newcommand{\O}[]{\emptyset} \newcommand{\Alpha}[]{Α} \newcommand{\Beta}[]{Β} \newcommand{\Epsilon}[]{Ε} \newcommand{\Iota}[]{Ι} \newcommand{\Kappa}[]{Κ} \newcommand{\Rho}[]{Ρ} \newcommand{\Tau}[]{Τ} \newcommand{\Zeta}[]{Ζ} \newcommand{\Mu}[]{\unicode{x039C}} \newcommand{\Chi}[]{Χ} \newcommand{\Eta}[]{\unicode{x0397}} \newcommand{\Nu}[]{\unicode{x039D}} \newcommand{\Omicron}[]{\unicode{x039F}} \DeclareMathOperator{\sgn}{sgn} \def\oiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x222F}\,}{\unicode{x222F}}{\unicode{x222F}}{\unicode{x222F}}}\,}\nolimits} \def\oiiint{\mathop{\vcenter{\mathchoice{\huge\unicode{x2230}\,}{\unicode{x2230}}{\unicode{x2230}}{\unicode{x2230}}}\,}\nolimits} \)

Installation

I suggest using conda to install cuda for version control your project.

Note that nvidia-smi lists the maximum CUDA version supported by the GPU driver, not the installed version of CUDA.
You can have a different version of CUDA installed in each conda environment, independently of the version supported by the GPU driver.

Conda

See nvidia/cuda-toolkit and nvidia/cuda-libraries-dev

For example:

# Install the runtime only
conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit
# Install the runtime and the development tools
conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit cuda-libraries-dev cuda-nvcc

Ubuntu

CUDA Toolkit

# Install drivers
sudo apt install nvidia-driver-565-open

GCC Versions

nvcc sometimes only supports older gcc/g++ versions.
To make it use those by default, create the following symlinks:

  • sudo ln -s /usr/bin/gcc-6 /usr/local/cuda/bin/gcc
  • sudo ln -s /usr/bin/g++-6 /usr/local/cuda/bin/g++

Alternatively, you can use -ccbin and point to your gcc:

-ccbin /usr/local/cuda/bin/gcc

References