Установка NVIDIA CUDA в Linux

Официальные страницы

  • CUDA: https://developer.nvidia.com/cuda-toolkit
  • Архив CUDA: https://developer.nvidia.com/cuda-toolkit-archive
  • Установить CUDA: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#runfile
  • cuDNN: https://developer.nvidia.com/cudnn
  • Установить cuDNN: https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#installlinux-tar
  • TensorRT: https://developer.nvidia.com/tensorrt-getting-started
  • Установить TensorRT: https://docs.nvidia.com/deeplearning/tensorrt/install-guide/index.html#installing-tar

Предварительные условия

Проверьте текущую спецификацию системы Linux

  • Проверьте наличие графического процессора NVIDIA:
## Use lshw:
lshw -C display

# Only for Ubuntu/Debian:
sudo apt-get update --fix-missing -o Acquire::CompressionTypes::Order::=gz
sudo apt-get install -y pciutils mesa-utils
# Or use lspci:
lspci | grep -i vga && lspci | grep -i nvidia
# Or use glxinfo:
glxinfo | egrep "OpenGL vendor|OpenGL renderer"
Войдите в полноэкранный режим Выйти из полноэкранного режима
  • Проверьте информацию об ОС linux:
## Check linux OS version and distro:
uname -a && cat /etc/*release

## Check kernel version:
uname -r
# Or:
hostnamectl

## Check GCC and make compiler version:
gcc --version && make -v

## Check glibc version:
ldd --version
Войти в полноэкранный режим Выйти из полноэкранного режима

Проверьте совместимость версий CUDA

  • [ВАЖНО] Найдите и проверьте последнюю стабильную версию драйвера NVIDIA для вашей модели (моделей) GPU:
    • Загрузка драйверов NVIDIA: https://www.nvidia.com/Download/Find.aspx?lang=en-us
  • [ВАЖНО] Проверьте совместимость версии драйвера NVIDIA с версиями CUDA:
    • CUDA release note: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
    • PDF о совместимости с CUDA: https://docs.nvidia.com/pdf/CUDA_Compatibility.pdf
    • Совместимость CUDA: https://docs.nvidia.com/deploy/cuda-compatibility/#minor-version-compatibility
  • [ВАЖНО] Проверьте системные требования для версий CUDA:
    • CUDA последней версии: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#system-requirements
    • Архив старых версий CUDA: https://developer.nvidia.com/cuda-toolkit-archive
  • [РЕКОМЕНДУЕТСЯ] Проверьте вычислительные возможности вашей модели (моделей) GPU:
    • Вычислительные возможности GPU: https://developer.nvidia.com/cuda-gpus
    • CUDA Wikipedia: https://en.wikipedia.org/wiki/CUDA
  • [РЕКОМЕНДУЕТСЯ] Проверьте версию cuDNN с вычислительными возможностями вашей модели(ей) GPU:
    • cuDNN support matrix: https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html
  • [OPTIONAL] Проверьте совместимость версий TensorRT с версиями CUDA и cuDNN:
    • TensorRT последней версии: https://docs.nvidia.com/deeplearning/tensorrt/support-matrix/index.html
    • Архивы старых версий TensorRT: https://docs.nvidia.com/deeplearning/tensorrt/archives/index.html
  • [РЕКОМЕНДУЕТСЯ] Проверьте совместимость версий CUDA для необходимых фреймворков/библиотек машинного обучения/глубокого обучения, которые вы хотите использовать:
    • Tensorflow-gpu: https://www.tensorflow.org/install/source#gpu
    • Pytorch: https://pytorch.org/get-started/previous-versions
    • И т.д…

Установите драйвер NVIDIA GPU

  • [REQUIRED] Установите драйвер NVIDIA GPU Driver: https://github.com/bybatkhuu/wiki/blob/main/posts/manuals/installs/nvidia-driver-linux.md.

Установите набор инструментов CUDA

Скачать CUDA

  • ВАЖНО! Скачайте и используйте файл .RUN! Он может предотвратить установку несовместимых драйверов NVIDIA и предотвратить перезапись предыдущей символической ссылки /usr/local/cuda (если вы уже установили другую CUDA).
  • ВАЖНО! Не загружайте и не используйте файл .DEB! Он перезапишет текущий каталог CUDA по умолчанию (если вы уже установили его) (/usr/local/cuda), а также перезапишет уже установленную последнюю совместимую версию драйвера NVIDIA на старый или несовместимый драйвер. Более того, если вы хотите использовать другую версию CUDA, никогда не устанавливайте файл CUDA.DEB!
  • Найдите и скачайте установочный файл нужной версии CUDA (cuda_***_linux.run) по этой ссылке: https://developer.nvidia.com/cuda-toolkit-archive.
  • Если вы используете интерфейс командной строки, просто скопируйте ссылку на скачивание с сайта NVIDIA и используйте wget для загрузки. Например:
mkdir -v ~/Downloads
cd ~/Downloads
# 1. (Skip this, if you've already downloaded) Download CUDA .run installer file by wget:
wget https://developer.download.nvidia.com/compute/cuda/[CUDA_VERSION]/local_installers/cuda_[CUDA_VERSION]_[DRIVER_VERSION]_linux.run
# For example:
wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run
Войти в полноэкранный режим Выйти из полноэкранного режима

Установите файл CUDA.run

При установке CUDA.run выполните следующие действия:

  • Введите ‘accept’ и ENTER.
  • ВАЖНО! Снимите галочку и отключите установку драйвера NVIDIA, чтобы предотвратить перезапись уже установленной последней совместимой версии драйвера NVIDIA на старый или несовместимый драйвер.
  • ВАЖНО! Снимите флажок и отключите установку символической ссылки CUDA, чтобы предотвратить перезапись текущего каталога CUDA по умолчанию (если он уже установлен) (/usr/local/cuda).
  • Выберите install и нажмите!
# Change directory to cuda_***.run file downloaded directory. For example:
cd ~/Downloads

# 2. IMPORTANT! Install cuda_***.run file:
sudo sh cuda_[CUDA_VERSION]_[DRIVER_VERSION]_linux.run
# For example:
sudo sh cuda_11.0.3_450.51.06_linux.run

# 3. Remove downloaded file:
rm -vrf cuda_[CUDA_VERSION]_[DRIVER_VERSION]_linux.run
# For example:
rm -vrf cuda_11.0.3_450.51.06_linux.run
Войдите в полноэкранный режим Выход из полноэкранного режима

После установки

Отредактируйте файл ~/.bashrc:

# 4. Add CUDA environment variables to current user .bashrc file:
# (It loads environment variables, whenever current user opens a new bash session/new terminal)
nano ~/.bashrc
Войти в полноэкранный режим Выйти из полноэкранного режима

и добавьте следующие строки в файл ~/.bashrc (не забудьте изменить [CUDA_VERSION] на установленную версию):

## CUDA ##
# Change to installed CUDA version:
# export CUDA_VERSION=[CUDA_VERSION]
export CUDA_VERSION=11.0
export CUDA_HOME="/usr/local/cuda-${CUDA_VERSION}"
export CUDA_PATH="${CUDA_HOME}"
export PATH="${CUDA_PATH}/bin:${PATH}"
export LIBRARY_PATH="${CUDA_PATH}/lib64:${LIBRARY_PATH}"
export LD_LIBRARY_PATH="${CUDA_PATH}/lib64:${LD_LIBRARY_PATH}"
export LD_LIBRARY_PATH="${CUDA_PATH}/extras/CUPTI/lib64:${LD_LIBRARY_PATH}"
export NVCC="${CUDA_PATH}/bin/nvcc"
export CFLAGS="-I${CUDA_PATH}/include ${CFLAGS}"
Войти в полноэкранный режим выйти из полноэкранного режима

сохраните изменения и выйдите из редактора файлов.

# 5. Load .bashrc file to init environment variables into the current bash session:
source ~/.bashrc

# 6. Check CUDA compiler version:
nvcc -V
# Or:
cat ${CUDA_PATH}/version.txt
# Or:
cat ${CUDA_PATH}/version.json
Войти в полноэкранный режим Выйти из полноэкранного режима

[РЕКОМЕНДУЕТСЯ] Установите cuDNN (для глубокого обучения)

Скачать cuDNN

  • ВАЖНО! Скачайте и используйте файл .TGZ или .TAR.XZ! Вы можете установить cuDNN в пользовательский каталог, что означает, что вы можете контролировать, какую версию cuDNN вы хотите использовать и куда ее установить.
  • ВАЖНО! Не скачивайте и не используйте файл .DEB! Он перезапишет библиотеку cuDNN в текущий каталог CUDA по умолчанию (/usr/local/cuda).
  • Скачайте файл cuDNN .TGZ или .TAR.XZ по этой ссылке: https://developer.nvidia.com/rdp/cudnn-download.

Установите файлы пакетов cuDNN .tgz или .tar.xz

# Change directory to cudnn_***.tgz or .tar.xz file downloaded directory. For example:
cd ~/Downloads

## Extract cuDNN .tgz or .tar.xz package file:
# New versions:
tar -xf cudnn-linux-x86_64-[CUDNN_VERSION]_cuda[CUDA_VERSION]-archive.tar.xz
# For example:
tar -xf cudnn-linux-x86_64-8.3.1.22_cuda11.5-archive.tar.xz

# Or older versions:
tar -xzf cudnn-[CUDA_VERSION]-linux-x64-v[CUDNN_VERSION].tgz
# For example:
tar -xzf cudnn-11.0-linux-x64-v8.0.5.39.tgz


# Copy extracted files into specific CUDA directory:
sudo cp -v cud*/include/cudnn*.h /usr/local/cuda-${CUDA_VERSION}/include
sudo cp -v cud*/lib*/libcudnn* /usr/local/cuda-${CUDA_VERSION}/lib64

# Add read permissions to extracted files:
sudo chmod a+r /usr/local/cuda-${CUDA_VERSION}/include/cudnn*.h /usr/local/cuda-${CUDA_VERSION}/lib64/libcudnn*

# Remove downloaded files:
rm -rf cud*

# Check installed cuDNN version:
cat /usr/local/cuda-${CUDA_VERSION}/include/cudnn.h | grep CUDNN_MAJOR -A 2
# Or:
cat /usr/local/cuda-${CUDA_VERSION}/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

# cuDNN installation complete!
Войдите в полноэкранный режим Выйти из полноэкранного режима

[ВАРИАНТ] Установите TensorRT

Скачать TensorRT

  • ВАЖНО! Скачайте и используйте файл .TAR.GZ! Вы можете установить TensorRT в пользовательский каталог, что означает, что вы можете контролировать, какую версию TensorRT вы хотите использовать и куда ее устанавливать.
  • ВАЖНО! Не скачивайте и не используйте файл .DEB! Вы не можете контролировать библиотеки TensorRT.
  • Скачайте файл cuDNN .TAR.GZ по этой ссылке: https://developer.nvidia.com/nvidia-tensorrt-download.

Установите файлы пакета TensorRT .tar.gz

# Change directory to TensorRT-***.tar.gz file downloaded directory. For example:
cd ~/Downloads

# Extract TensorRT .tar.gz package file:
tar -xzf TensorRT-[TENSORRT_VERSION].[OS_DISTRO].x86_64-gnu.cuda-[CUDA_VERSION].cudnn[CUDNN_VERSION].tar.gz
# For example:
tar -xzf TensorRT-7.2.0.14.Ubuntu-18.04.x86_64-gnu.cuda-11.0.cudnn8.0.tar.gz

# Create TensorRT base directory:
sudo mkdir -vp /opt/tensorrt

# Copy extracted files into TensorRT directory:
sudo mv -vf TensorRT-[TENSORRT_VERSION] /opt/tensorrt/TensorRT-[TENSORRT_VERSION]
# For example:
sudo mv -vf TensorRT-7.2.0.14 /opt/tensorrt/TensorRT-7.2.0.14

# Remove downloaded file:
rm -vrf TensorRT-[TENSORRT_VERSION].[OS_DISTRO].x86_64-gnu.cuda-[CUDA_VERSION].cudnn[CUDNN_VERSION].tar.gz
# For example:
rm -vrf TensorRT-7.2.0.14.Ubuntu-18.04.x86_64-gnu.cuda-11.0.cudnn8.0.tar.gz
Войдите в полноэкранный режим Выйдите из полноэкранного режима

Отредактируйте файл ~/.bashrc:

# Add TensorRT environment variables into current user .bashrc file:
# (It loads environment variables, whenever current user opens a new bash session/new terminal)
nano ~/.bashrc
Войти в полноэкранный режим Выйти из полноэкранного режима

и добавьте следующие строки в файл ~/.bashrc (не забудьте изменить [TENSORRT_VERSION] на установленную версию):

## TensorRT ##
# Change to your installed TensorRT version:
# export TENSORRT_VERSION=[TENSORRT_VERSION]
export TENSORRT_VERSION=7.2.0.14
export TENSORRT_PATH="/opt/tensorrt/TensorRT-${TENSORRT_VERSION}"
export PATH="${TENSORRT_VERSION}/bin:${PATH}"
export LD_LIBRARY_PATH="${TENSORRT_PATH}/lib:${LD_LIBRARY_PATH}"
Войти в полноэкранный режим выйти из полноэкранного режима

сохраните изменения и выйдите из редактора файлов.

# Load .bashrc file to init environment variables into current bash session:
source ~/.bashrc

# (Only for Python) Install TensorRT python packages:
cd ${TENSORRT_PATH}/python
pip install tensorrt-[TENSORRT_VERSION]-cp[PYTHON_VERSION]-none-linux_x86_64.whl
# For example:
pip install tensorrt-7.2.0.14-cp38-none-linux_x86_64.whl

cd ${TENSORRT_PATH}/uff
pip install uff-*-py2.py3-none-any.whl

cd ${TENSORRT_PATH}/graphsurgeon
pip install graphsurgeon-*-py2.py3-none-any.whl

cd ${TENSORRT_PATH}/onnx_graphsurgeon
pip install onnx_graphsurgeon-*-py2.py3-none-any.whl

# TensorRT installation complete!
Войти в полноэкранный режим Выйти из полноэкранного режима

Тестирование CUDA

# Install sample source codes to test CUDA:
cuda-install-samples-[CUDA_VERSION].sh ~
# For example:
cuda-install-samples-11.0.sh ~

# Change directory to CUDA sample source codes installed directory:
cd ~/NVIDIA_CUDA-[CUDA_VERSION]_Samples
# For example:
cd ~/NVIDIA_CUDA-11.0_Samples

# Build sample source codes:
make clean && make -j8

# Change directory to built binary directory:
cd bin/x86_64/linux/release

# Run CUDA test binaries:
./deviceQuery
./bandwidthTest

cd ~
# Remove sample source codes:
rm -rf ~/NVIDIA_CUDA-[CUDA_VERSION]_Samples
# For example:
rm -rf ~/NVIDIA_CUDA-11.0_Samples
Войти в полноэкранный режим Выйти из полноэкранного режима

? ✨

УСТАНОВКА ЗАВЕРШЕНА

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *