Команда nvcc –version сообщает, что nvcc не установлен.

Вопрос или проблема

Я установил cuda8.0, последнюю версию. Я следовал процедуре, предоставленной Nvidia; но, когда я ввожу команду nvcc --version, он говорит, что nvcc не установлен!

Что мне теперь делать?

Проблема в том, что [ основываясь на предоставленной вами ссылке ] вы не добавили ее в файл .bashrc, поэтому она не видна:

  1. Из терминала:

     nano /home/username/.bashrc
    
     # или
    
     nano /home/$USER/.bashrc
    
  2. Внутри добавьте следующее: (замените cuda-8.0 на вашу версию)

     export PATH="/usr/local/cuda-8.0/bin:$PATH"
     export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH"
    
  3. Затем выполните следующее, чтобы сохранить и закрыть редактор:

     На клавиатуре нажмите следующее:
    
     ctrl + o             --> сохранить 
     enter или return     --> принять изменения
     ctrl + x             --> закрыть редактор
    
  4. Теперь либо выполните source .bashrc, либо закройте и откройте новый терминал

  5. Теперь выполните nvcc --version

Информация:

  • .bashrc: это файл, который считывается терминалом перед открытием и находится в каталоге /home/$USER соответствующего пользователя.
  • . перед файлом означает, что он скрыт из виду, если вы не укажете вашему файловому менеджеру показать скрытые файлы.

Приведенное выше решение от @George Udosen в порядке. Если вы хотите сохранить эту процедуру вручную, вы можете автоматизировать это следующим образом:

  1. Создайте файл add_to_bashrc и добавьте в него следующее:

    export CUDA_HOME=/usr/local/cuda
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64
    export PATH=$PATH:$CUDA_HOME/bin
    
  2. Создайте сценарий оболочки automate.sh:

    (... некоторая процедура установки ...)
    
    cat add_to_bashrc >> ~/.bashrc
    . ~/.bashrc
    
  3. Затем просто запустите ваш скрипт оболочки:

    sh automate.sh
    
  4. Не забудьте проверить, работает ли ссылка CUDA правильно. Просто выполните:

    ls /usr/local/cuda
    

Для более поздних версий CUDA (например, 11.7 для меня) я следовал следующими шагами:

  1. Перейдите на https://developer.nvidia.com/cuda-downloads и следуйте инструкциям по установке.

  2. В файле ~/.bashrc обновите путь следующим образом:

    export PATH="/usr/local/cuda-11.7/bin:$PATH"`
    export LD_LIBRARY_PATH="/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH"
    
  3. Вывод nvcc -V затем выглядит следующим образом:

    nvcc: NVIDIA (R) Cuda компилятор
    Copyright (c) 2005-2022 NVIDIA Corporation
    Built on Wed_Jun__8_16:49:14_PDT_2022
    Cuda compilation tools, release 11.7, V11.7.99
    Build cuda_11.7.r11.7/compiler.31442593_0
    

Ответ от @George Udosen идеально подходит.

Для увеличения, вы можете экспортировать в /usr/local/cuda, который является символической ссылкой на /usr/local/cuda-10.1, на основе этого ответа. Так что вы можете также написать:

export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}$ 
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

Терминал:

sudo gedit /home/$USER/.bashrc

Добавьте в конец файла

export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64
export PATH=$PATH:$CUDA_HOME/bin

Затем в терминале:

source .bashrc

Теперь выполните

nvcc --version

Первое редактирование написано 16 марта 2024 г.

Я использую Asus VivoBook X540UBR (дата: 01/08/2020), который поставляется с начального уровня NVIDIA GeForce MX110.

2 года назад я бросил Windows 10 и заново установил ноутбук с Linux Mint 21.2 Cinnamon.

К моему удивлению, Linux правильно установил и поддерживает драйверы NVIDIA через

$ sudo apt update
$ sudo apt dist-upgrade

Мне не нужно явно устанавливать инструментарий Cuda с https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_local и явно не настраивать путь окружения.

Однако я установил инструментарий Cuda, как предложил apt через

$ sudo apt install nvidia-cuda-toolkit

Затем моя среда GPU готова.

Чтобы проверить версию Cuda в Ubuntu/Mint:

$ nvidia-smi
+--------------------------------------------------------------------------+
| NVIDIA-SMI 535.161.07  Driver Version: 535.161.07  CUDA Version: 12.2    |
|----------------------------+----------------------+----------------------+
... (игнорируйте остальное) ...

Чтобы проверить, установлен ли инструментарий Cuda:

$ nvcc --version
nvcc: NVIDIA (R) Cuda компилятор
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Thu_Nov_18_09:45:30_PST_2021
Cuda compilation tools, release 11.5, V11.5.119
Build cuda_11.5.r11.5/compiler.30672275_0

Я в процессе изучения https://youtu.be/Z_ikDlimN6A?t=4906 и установил pytorch=1.10.0.

>>> import torch
>>> print(torch.cuda.is_available())
>>> print(torch.__version__)

True
1.10.0

Второе редактирование написано 3 февраля 2025 г.

У меня есть другой Lenovo Yoga 500 (купленный 31 июля 2016 г.), установленный с Ubuntu 24.04. NVidea GPU не распознается автоматически.

Я выполняю следующие действия:

$ ubuntu-drivers devices
(игнорируйте...)
vendor   : NVIDIA Corporation
model    : GM108M [GeForce 940M]
driver   : nvidia-driver-535 - distro non-free
driver   : nvidia-driver-470-server - distro non-free
driver   : nvidia-driver-550 - distro non-free **рекомендуется**
driver   : nvidia-driver-535-server - distro non-free
driver   : nvidia-driver-470 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

Мы видим, что nvidia-driver-550 рекомендован.

Я выполняю следующее, чтобы установить драйвер nvidia,

$ sudo apt install nvidia-driver-550

или вы можете запустить следующую команду для автономной установки,

$ sudo ubuntu-drivers autoinstall

Во время установки появляется синий экран MOK Enroll (Machine Owner Key), на котором необходимо ввести случайный пароль. После установки перезапустите машину.

$ sudo reboot

Во время загрузки машины снова появится синий экран MOK Enroll. Вы должны выбрать MOK Enroll и ввести предыдущий случайный пароль.

В случае, если вы случайно пропустили синий экран MOK Enroll, выполните следующую команду, чтобы вручную вызвать состояние MOK Enroll для следующего запуска.

$ sudo update-secureboot-policy --new-key
$ sudo update-secureboot-policy --enroll-key
$ sudo reboot

Приведенное выше решение от @Agile Bean превосходно. Если хотите, вы можете использовать переменную среды CUDA_HOME вместо /usr/local/cuda в LD_LIBRARY_PATH и редактировать ваш файл .bashrc или .zshrc или ресурсный файл для вашего оболочки с помощью emacs, vi, nano или вашего любимого редактора:

  1. emacs $HOME/.zshrc

  2. Добавьте следующие строки в файл .zshrc
    export CUDA_HOME=/usr/local/cuda

export LD_LIBRARY_PATHlrwxrwxrwx 1 root root 20 Sep 11 19:59 =$LD_LIBRARY_PATH:$CUDA_HOME/lib64:$CUDA_HOME/extras/CUPTI/lib64

export PATH=$PATH:$CUDA_HOME/bin

  1. Затем откройте новую оболочку или выполните команду для применения ресурсного файла оболочки (например, source .zshrc) из текущей оболочки.

(base) ➜ ~ nvcc –version
nvcc: NVIDIA (R) Cuda компилятор
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Jun__8_16:49:14_PDT_2022
Cuda compilation tools, release 11.7, V11.7.99
Build cuda_11.7.r11.7/compiler.31442593_0
(base) ➜ ~ which nvcc
/usr/local/cuda/bin/nvcc

Где действительно находится cuda?
Давайте последуем за символическими ссылками, чтобы выяснить это.

(base) ➜ ~ ls -ld /usr/local/cuda

/usr/local/cuda -> /etc/alternatives/cuda

(base) ➜ ~ ls -ld /etc/alternatives/cuda

/etc/alternatives/cuda -> /usr/local/cuda-11.7

Ответ или решение

Когда вы сталкиваетесь с проблемой, связанной с командой nvcc --version, которая сообщает, что nvcc не установлен, даже после установки CUDA 8.0, это может указывать на неправильно настроенные переменные окружения. Давайте рассмотрим, как можно исправить эту проблему и убедиться, что все настроено должным образом.

Теория

nvcc — это компилятор для платформы CUDA, позволяющий разрабатывать программы, которые запускаются на GPU от NVIDIA. После установки CUDA необходимо убедиться, что исполняемые файлы CUDA находятся в переменной окружения PATH, а также задать корректные пути для LD_LIBRARY_PATH. Это позволяет системе находить библиотеки и исполняемые файлы, необходимые для работы ваших приложений с CUDA.

Если переменные окружения настроены некорректно, система может не "видеть" и не распознавать утилиты и библиотеки CUDA, что и приводит к ошибкам, подобным вашей.

Пример

Рассмотрим шаги, которые нужно предпринять для ручной настройки переменных окружения:

  1. Откройте ваш файл .bashrc:

    nano /home/username/.bashrc
  2. Добавьте пути к CUDA в .bashrc. В зависимости от версии CUDA ваши пути могут отличаться. Для CUDA 8.0 добавьте следующие строки:

    export PATH="/usr/local/cuda-8.0/bin:$PATH"
    export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH"
  3. Сохраните и закройте файл. В nano вы можете это сделать следующими клавишами:

    Ctrl + O  # Сохранить изменения
    Enter     # Подтвердить
    Ctrl + X  # Закрыть редактор
  4. Примените изменения:

    source ~/.bashrc

    Или закройте и откройте новый терминал.

  5. Проверьте версию:

    nvcc --version

После выполнения этих действий nvcc должен распознаваться системой. В качестве дополнительной проверки, можно использовать команду which nvcc для убеждения, что она указывает на правильный путь.

Применение

При обнаружении проблем с настройкой CUDA и командой nvcc, важно среди прочего учитывать версию используемой операционной системы и самих драйверов NVIDIA. Последние версии дистрибутивов, таких как Ubuntu, могут иметь другие методы интеграции и управления драйверами. Регулярное обновление и управление пакетами через менеджеры пакетов, такие как apt, теперь часто может покрывать многие задач, которые ранее требовали ручных настроек.

Также, для автоматизации процесса вы можете использовать скрипт, который добавляет необходимые пути в файл .bashrc автоматически. Вот простой пример того, как можно использовать скрипт для добавления путей:

Создайте файл add_to_bashrc с содержимым:

export CUDA_HOME=/usr/local/cuda
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64
export PATH=$PATH:$CUDA_HOME/bin

Создайте automate.sh:

cat add_to_bashrc >> ~/.bashrc
. ~/.bashrc

Запустите скрипт:

sh automate.sh

Это способ автоматизировать процесс добавления путей, что упрощает настройку в более масштабных и сложных системах. Учитывая, что среды разработки могут часто изменяться, такая автоматизация может быть чрезвычайно полезной.

В случае проблем с драйверами видеокарты или если графическая карта не распознается системой, может потребоваться установка или обновление драйверов NVIDIA, что также может повлечь за собой изменения в пути расположения библиотек или изменении окружения. Убедитесь, что выбранный драйвер соответствует вашей конфигурации оборудования.

Использование утилиты nvidia-smi может помочь в диагностике установленных драйверов и версии CUDA, предоставляя подробную информацию о системе.

Рекомендации по настройке CUDA и nvcc могут также зависеть от специфических требований проектов или используемых библиотек, таких как TensorFlow или PyTorch, которые могут иметь свои собственные требования к версиям CUDA и драйверов.

Соблюдение этих рекомендаций обеспечит корректную работу с CUDA и упростит управление средой разработки, позволяя сосредоточиться на эффективной разработке приложений для GPU.

Оцените материал
Добавить комментарий

Капча загружается...