- Вопрос или проблема
- Ответ или решение
- Шаг 1: Убедитесь, что GPU правильно установлен
- Шаг 2: Установка драйверов NVIDIA
- Шаг 3: Убедитесь, что драйверы работают
- Шаг 4: Установка CUDA Toolkit
- Шаг 5: Установка и настройка PyTorch
- Шаг 6: Проверка доступности GPU в PyTorch
- Шаг 7: Настройка Singularity
- Шаг 8: Дополнительные проверки
- Заключение
Вопрос или проблема
Я испытываю трудности с правильной настройкой графического процессора nvidia на своем сервере:
У меня есть:
lpuggini@srv-safu-24:~/ProgrammingProjects/nextflow_example$ lshw -C display
ПРЕДУПРЕЖДЕНИЕ: вам следует запустить эту программу от имени суперпользователя.
*-дисплей
описание: VGA совместимый контроллер
продукт: Интегрированный графический контроллер Matrox G200eW3
производитель: Matrox Electronics Systems Ltd.
физический ид: 0
информация о шине: pci@0000:04:00.0
логическое имя: /dev/fb0
версия: 04
ширина: 32 бита
тактовая частота: 66MHz
возможности: vga_controller bus_master cap_list rom fb
конфигурация: глубина=32 драйвер=mgag200 задержка=64 максимальная задержка=32 минимальная задержка=16 разрешение=1024,768
ресурсы: irq:16 память:94000000-94ffffff память:95808000-9580bfff память:95000000-957fffff память:c0000-dffff
*-дисплей
описание: 3D контроллер
продукт: AD104GL [L4]
производитель: NVIDIA Corporation
физический ид: 0
информация о шине: pci@0000:ae:00.0
версия: a1
ширина: 64 бита
тактовая частота: 33MHz
возможности: bus_master cap_list
конфигурация: драйвер=nouveau задержка=0
ресурсы: iomemory:2d000-2cfff iomemory:2d180-2d17f irq:16 память:e2000000-e2ffffff память:2d0000000000-2d07ffffffff память:2d1800000000-2d1801ffffff память:e3000000-e37fffff память:2d0800000000-2d17ffffffff память:2d1802000000-2d1841ffffff
ПРЕДУПРЕЖДЕНИЕ: вывод может быть неполным или неточным, вам следует запустить эту программу от имени суперпользователя.
lpuggini@srv-safu-24:~/ProgrammingProjects/nextflow_example$
и
lpuggini@srv-safu-24:~/ProgrammingProjects/nextflow_example$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Авторские права (c) 2005-2023 NVIDIA Corporation
Собрано в Fri_Jan__6_16:45:21_PST_2023
Инструменты компиляции Cuda, выпуск 12.0, V12.0.140
Собрано cuda_12.0.r12.0/compiler.32267302_0
lpuggini@srv-safu-24:~/ProgrammingProjects/nextflow_example$
Я не могу использовать графический процессор ни в одном из своих инструментов. Например, посмотрите pytorch:
lpuggini@srv-safu-24:~/ProgrammingProjects/nextflow_example$ poetry shell
Запуск оболочки в /home/lpuggini/.cache/pypoetry/virtualenvs/nextflow-example-jopvkqXR-py3.12
lpuggini@srv-safu-24:~/ProgrammingProjects/nextflow_example$ . /home/lpuggini/.cache/pypoetry/virtualenvs/nextflow-example-jopvkqXR-py3.12/bin/activate
(nextflow-example-py3.12) lpuggini@srv-safu-24:~/ProgrammingProjects/nextflow_example$ ipython
Python 3.12.3 (main, 11 сентября 2024, 14:17:37) [GCC 13.2.0]
Введите 'copyright', 'credits' или 'license' для получения дополнительной информации
IPython 8.28.0 -- Улучшенный интерактивный Python. Введите '?' для помощи.
В [1]: import torch
В [2]: torch.cuda.is_available()
Out[2]: False
но также singularity не видит графический процессор. Как я могу это исправить?
ИЗМЕНЕНИЕ:
По просьбе, вот список драйверов:
lpuggini@srv-safu-24:~$ ubuntu-drivers list
udevadm hwdb устарел. Используйте systemd-hwdb вместо него.
udevadm hwdb устарел. Используйте systemd-hwdb вместо него.
udevadm hwdb устарел. Используйте systemd-hwdb вместо него.
udevadm hwdb устарел. Используйте systemd-hwdb вместо него.
udevadm hwdb устарел. Используйте systemd-hwdb вместо него.
udevadm hwdb устарел. Используйте systemd-hwdb вместо него.
udevadm hwdb устарел. Используйте systemd-hwdb вместо него.
udevadm hwdb устарел. Используйте systemd-hwdb вместо него.
udevadm hwdb устарел. Используйте systemd-hwdb вместо него.
ОШИБКА:root:Команда aplay не найдена
nvidia-driver-560-open, (ядерные модули предоставлены nvidia-dkms-560-open)
nvidia-driver-550, (ядерные модули предоставлены linux-modules-nvidia-550-generic)
nvidia-driver-550-open, (ядерные модули предоставлены linux-modules-nvidia-550-open-generic)
nvidia-driver-555-open, (ядерные модули предоставлены nvidia-dkms-555-open)
nvidia-driver-560, (ядерные модули предоставлены nvidia-dkms-560)
nvidia-driver-535-server, (ядерные модули предоставлены linux-modules-nvidia-535-server-generic)
nvidia-driver-535-server-open, (ядерные модули предоставлены linux-modules-nvidia-535-server-open-generic)
nvidia-driver-535-open, (ядерные модули предоставлены linux-modules-nvidia-535-open-generic)
nvidia-driver-555, (ядерные модули предоставлены nvidia-dkms-555)
lpuggini@srv-safu-24:~$
Ответ или решение
Настройка графического процессора (GPU) NVIDIA на сервере Ubuntu может быть сложной задачей, особенно если вы испытываете проблемы с распознаванием GPU в таких инструментах, как PyTorch и Singularity. Давайте разберем процесс настройки и устранения неполадок по шагам.
Шаг 1: Убедитесь, что GPU правильно установлен
Сначала убедитесь, что ваш NVIDIA GPU правильно распознается операционной системой. Вы уже использовали команду lshw -C display
, которая показывает, что ваш GPU NVIDIA (AD104GL [L4]
) обнаружен, но в состоянии "driver=nouveau", что означает, что используется открытый драйвер. Для полноценной работы рекомендуется установить проприетарные драйвера NVIDIA.
Шаг 2: Установка драйверов NVIDIA
-
Удалите старые драйверы (если они есть):
sudo apt-get purge nvidia*
-
Добавьте PPA для драйверов NVIDIA:
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update
-
Установите рекомендуемые драйверы:
Используйтеubuntu-drivers devices
, чтобы получить список доступных драйверов, затем установите рекомендованный драйвер (например,nvidia-driver-550
):sudo apt-get install nvidia-driver-550
-
Перезагрузите сервер:
sudo reboot
Шаг 3: Убедитесь, что драйверы работают
После перезагрузки проверьте, что драйверы установлены и работают корректно:
nvidia-smi
Вы должны увидеть информацию о вашем GPU. Если команда не распознается или вы видите ошибки, это может указывать на проблемы с установкой драйверов.
Шаг 4: Установка CUDA Toolkit
Поскольку у вас уже установлен CUDA
(версией 12.0), вам может потребоваться убедиться, что он совместим с вашим установленным драйвером NVIDIA. Как правило, вам нужно использовать версии драйвера, соответствующие вашей версии CUDA.
- Проверьте совместимость на официальном сайте NVIDIA.
Шаг 5: Установка и настройка PyTorch
Чтобы PyTorch мог распознавать GPU, необходимо установить соответствующую версию, которая поддерживает CUDA. Если вы еще этого не сделали, вот как это сделать с использованием Poetry:
poetry add torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu120
Обратите внимание на cu120
в команде – это означает, что PyTorch будет собираться с поддержкой CUDA 12.0.
Шаг 6: Проверка доступности GPU в PyTorch
После установки PyTorch выполните в вашей Poetry-среде следующую команду:
import torch
print(torch.cuda.is_available())
Если вывод будет True
, значит PyTorch успешно видит ваш GPU.
Шаг 7: Настройка Singularity
Для использования GPU с Singularity убедитесь, что вы используете правильные опции запуска. Например:
singularity exec --nv your_image.sif your_command
Опция --nv
указывает Singularity, что необходимо смонтировать драйвера NVIDIA и обеспечить доступ к GPU.
Шаг 8: Дополнительные проверки
При возникновении дальнейших проблем, проверьте:
- Логи Xorg: Они могут содержать ошибки, которые помогут в диагностике проблем с драйверами.
- Убедитесь, что в вашем
docker
илиsingularity
обязательной зависимостью является поддержка NVIDIA, если ваша среда контейнеризации требует этого.
Заключение
Эти шаги должны помочь вам настроить GPU NVIDIA на вашем сервере Ubuntu для работы с PyTorch и Singularity. Если проблемы продолжают возникать, возможно, вам стоит обратиться к форумам поддержки NVIDIA или к документации сообществ с подробным описанием ваших проблем.