CUDA: Difference between revisions
(36 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==Installation== | ==Installation== | ||
I suggest using conda to install cuda for version control your project. | |||
Note that <code>nvidia-smi</code> lists the maximum CUDA version supported by the GPU driver, not the installed version of CUDA.<br> | |||
You can have a different version of CUDA installed in each conda environment, independently of the version supported by the GPU driver. | |||
===Conda=== | |||
See [https://anaconda.org/nvidia/cuda-toolkit nvidia/cuda-toolkit] and [https://anaconda.org/nvidia/cuda-libraries-dev nvidia/cuda-libraries-dev] | |||
For example: | |||
<syntaxhighlight lang="bash"> | |||
# 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 | |||
</syntaxhighlight> | |||
===Ubuntu=== | |||
[https://developer.nvidia.com/cuda-toolkit CUDA Toolkit] | |||
{{hidden | Details | | |||
See [https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#ubuntu-installation CUDA Ubuntu Installation] | |||
<syntaxhighlight lang="bash"> | |||
# Set UBUNTU_VERSION to 2004 or 2204 | |||
UBUNTU_VERSION=$(lsb_release -sr | sed -e 's/\.//g') | |||
# Install nvidia driver | |||
sudo apt install nvidia-driver-545 | |||
# Add NVIDIA package repositories | # Add NVIDIA package repositories | ||
wget https://developer.download.nvidia.com/compute/cuda/repos/ | wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/cuda-ubuntu${UBUNTU_VERSION}.pin | ||
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ | sudo mv cuda-ubuntu${UBUNTU_VERSION}.pin /etc/apt/preferences.d/cuda-repository-pin-600 | ||
sudo | sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/3bf863cc.pub | ||
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/ /" | |||
# Install | # Install cuda. | ||
sudo apt install | sudo apt install cuda | ||
# Reboot | # Reboot and check that the drivers are working with nvidia-smi | ||
sudo reboot | |||
# Install | # Install cudnn if needed | ||
sudo apt install - | sudo apt install libcudnn8 libcudnn8-dev | ||
</syntaxhighlight> | |||
;Notes | |||
* For machine learning, use Anaconda or Docker's CUDA since different versions of TensorFlow and PyTorch require different CUDA versions. | |||
You may need to add <code>LD_LIBRARY_PATH=/usr/local/cuda/lib64</code> to your environment variables.<br> | |||
You can also do this in PyCharm.<br> | You can also do this in PyCharm.<br> | ||
[[File:Pycharm LD LIBRARY PATH config.png| 200x200px]] | [[File:Pycharm LD LIBRARY PATH config.png| 200x200px]] | ||
[[File:Pycharm LD LIBRARY PATH console config.png| 200x200px]] | [[File:Pycharm LD LIBRARY PATH console config.png| 200x200px]] | ||
==GCC Versions== | }} | ||
===GCC Versions=== | |||
<code>nvcc</code> sometimes only supports older gcc/g++ versions. | <code>nvcc</code> sometimes only supports older gcc/g++ versions. | ||
To make it use those by default, create the following symlinks: | To make it use those by default, create the following symlinks: | ||
Line 49: | Line 60: | ||
* <code>sudo ln -s /usr/bin/gcc-6 /usr/local/cuda/bin/gcc</code> | * <code>sudo ln -s /usr/bin/gcc-6 /usr/local/cuda/bin/gcc</code> | ||
* <code>sudo ln -s /usr/bin/g++-6 /usr/local/cuda/bin/g++</code> | * <code>sudo ln -s /usr/bin/g++-6 /usr/local/cuda/bin/g++</code> | ||
Alternatively, you can use <code>-ccbin</code> and point to your gcc: | |||
<pre> | |||
-ccbin /usr/local/cuda/bin/gcc | |||
</pre> | |||
==References== | ==References== | ||
* [https://devblogs.nvidia.com/even-easier-introduction-cuda/ An Even Easier Introduction To Cuda] | * [https://devblogs.nvidia.com/even-easier-introduction-cuda/ An Even Easier Introduction To Cuda] | ||
[[Category:Programming languages]] | |||
[[Category:GPU Programming languages]] |
Latest revision as of 16:15, 23 April 2024
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
Details
# Set UBUNTU_VERSION to 2004 or 2204
UBUNTU_VERSION=$(lsb_release -sr | sed -e 's/\.//g')
# Install nvidia driver
sudo apt install nvidia-driver-545
# Add NVIDIA package repositories
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/cuda-ubuntu${UBUNTU_VERSION}.pin
sudo mv cuda-ubuntu${UBUNTU_VERSION}.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/3bf863cc.pub
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/ /"
# Install cuda.
sudo apt install cuda
# Reboot and check that the drivers are working with nvidia-smi
sudo reboot
# Install cudnn if needed
sudo apt install libcudnn8 libcudnn8-dev
- Notes
- For machine learning, use Anaconda or Docker's CUDA since different versions of TensorFlow and PyTorch require different CUDA versions.
You may need to add LD_LIBRARY_PATH=/usr/local/cuda/lib64
to your environment variables.
You can also do this in PyCharm.
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