Вопрос или проблема
Я установил cuda8.0, последнюю версию. Я следовал процедуре, предоставленной Nvidia; но, когда я ввожу команду nvcc --version
, он говорит, что nvcc не установлен!
Что мне теперь делать?
Проблема в том, что [ основываясь на предоставленной вами ссылке ] вы не добавили ее в файл .bashrc
, поэтому она не видна:
-
Из терминала:
nano /home/username/.bashrc # или nano /home/$USER/.bashrc
-
Внутри добавьте следующее: (замените
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"
-
Затем выполните следующее, чтобы сохранить и закрыть редактор:
На клавиатуре нажмите следующее: ctrl + o --> сохранить enter или return --> принять изменения ctrl + x --> закрыть редактор
-
Теперь либо выполните
source .bashrc
, либозакройте и откройте новый терминал
-
Теперь выполните
nvcc --version
Информация:
.bashrc
: это файл, который считываетсятерминалом
перед открытием и находится в каталоге/home/$USER
соответствующего пользователя..
перед файлом означает, что он скрыт из виду, если вы не укажете вашему файловому менеджеру показатьскрытые
файлы.
Приведенное выше решение от @George Udosen в порядке. Если вы хотите сохранить эту процедуру вручную, вы можете автоматизировать это следующим образом:
-
Создайте файл
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
-
Не забудьте проверить, работает ли ссылка CUDA правильно. Просто выполните:
ls /usr/local/cuda
Для более поздних версий CUDA (например, 11.7 для меня) я следовал следующими шагами:
-
Перейдите на https://developer.nvidia.com/cuda-downloads и следуйте инструкциям по установке.
-
В файле
~/.bashrc
обновите путь следующим образом:export PATH="/usr/local/cuda-11.7/bin:$PATH"` export LD_LIBRARY_PATH="/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH"
-
Вывод
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 или вашего любимого редактора:
-
emacs $HOME/.zshrc
-
Добавьте следующие строки в файл .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
- Затем откройте новую оболочку или выполните команду для применения ресурсного файла оболочки (например, 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, что и приводит к ошибкам, подобным вашей.
Пример
Рассмотрим шаги, которые нужно предпринять для ручной настройки переменных окружения:
-
Откройте ваш файл
.bashrc
:nano /home/username/.bashrc
-
Добавьте пути к 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"
-
Сохраните и закройте файл. В
nano
вы можете это сделать следующими клавишами:Ctrl + O # Сохранить изменения Enter # Подтвердить Ctrl + X # Закрыть редактор
-
Примените изменения:
source ~/.bashrc
Или закройте и откройте новый терминал.
-
Проверьте версию:
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.