Ответ 1
Я решил, что "NVIDIA-SMI не удалось, потому что он не мог связаться с драйвером NVIDIA" на моем ноутбуке ASUS с GTX 950m и Ubuntu 18.04, отключив Secure Boot Control из BIOS.
Я запускаю экземпляр AWS EC2 g2.2xlarge с Ubuntu 14.04 LTS. Я хотел бы наблюдать за использованием GPU во время обучения моделям TensorFlow. Я получаю сообщение об ошибке, пытающееся запустить 'nvidia-smi'.
[email protected]:/etc/alternatives$ cd /usr/lib/nvidia-375/bin
[email protected]:/usr/lib/nvidia-375/bin$ ls
nvidia-bug-report.sh nvidia-debugdump nvidia-xconfig
nvidia-cuda-mps-control nvidia-persistenced
nvidia-cuda-mps-server nvidia-smi
[email protected]:/usr/lib/nvidia-375/bin$ ./nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
[email protected]:/usr/lib/nvidia-375/bin$ dpkg -l | grep nvidia
ii nvidia-346 352.63-0ubuntu0.14.04.1 amd64 Transitional package for nvidia-346
ii nvidia-346-dev 346.46-0ubuntu1 amd64 NVIDIA binary Xorg driver development files
ii nvidia-346-uvm 346.96-0ubuntu0.0.1 amd64 Transitional package for nvidia-346
ii nvidia-352 375.26-0ubuntu1 amd64 Transitional package for nvidia-375
ii nvidia-375 375.39-0ubuntu0.14.04.1 amd64 NVIDIA binary driver - version 375.39
ii nvidia-375-dev 375.39-0ubuntu0.14.04.1 amd64 NVIDIA binary Xorg driver development files
ii nvidia-modprobe 375.26-0ubuntu1 amd64 Load the NVIDIA kernel driver and create device files
ii nvidia-opencl-icd-346 352.63-0ubuntu0.14.04.1 amd64 Transitional package for nvidia-opencl-icd-352
ii nvidia-opencl-icd-352 375.26-0ubuntu1 amd64 Transitional package for nvidia-opencl-icd-375
ii nvidia-opencl-icd-375 375.39-0ubuntu0.14.04.1 amd64 NVIDIA OpenCL ICD
ii nvidia-prime 0.6.2.1 amd64 Tools to enable NVIDIA Prime
ii nvidia-settings 375.26-0ubuntu1 amd64 Tool for configuring the NVIDIA graphics driver
[email protected]:/usr/lib/nvidia-375/bin$ lspci | grep -i nvidia
00:03.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)
[email protected]:/usr/lib/nvidia-375/bin$
$ inxi -G
Graphics: Card-1: Cirrus Logic GD 5446
Card-2: NVIDIA GK104GL [GRID K520]
X.org: 1.15.1 driver: N/A tty size: 80x24 Advanced Data: N/A out of X
$ lspci -k | grep -A 2 -E "(VGA|3D)"
00:02.0 VGA compatible controller: Cirrus Logic GD 5446
Subsystem: XenSource, Inc. Device 0001
Kernel driver in use: cirrus
00:03.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)
Subsystem: NVIDIA Corporation Device 1014
00:1f.0 Unassigned class [ff80]: XenSource, Inc. Xen Platform Device (rev 01)
Я выполнил следующие инструкции для установки CUDA 7 и cuDNN:
$sudo apt-get -q2 update
$sudo apt-get upgrade
$sudo reboot
=============================================== ========================
После перезагрузки обновите initramfs, запустив '$ sudo update-initramfs -u'
Теперь отредактируйте файл /etc/modprobe.d/blacklist.conf в черный список. Откройте файл в редакторе и вставьте следующие строки в конец файла.
blacklist nouveau черный список lbm-nouveau опции nouveau modeset = 0 alias nouveau off псевдоним lbm-nouveau off
Сохранить и выйти из файла.
Теперь установите необходимые инструменты сборки и обновите initramfs и перезагрузитесь снова, как показано ниже:
$sudo apt-get install linux-{headers,image,image-extra}-$(uname -r) build-essential
$sudo update-initramfs -u
$sudo reboot
=============================================== =========================
После перезагрузки выполните следующие команды для установки Nvidia.
$sudo wget http://developer.download.nvidia.com/compute/cuda/7_0/Prod/local_installers/cuda_7.0.28_linux.run
$sudo chmod 700 ./cuda_7.0.28_linux.run
$sudo ./cuda_7.0.28_linux.run
$sudo update-initramfs -u
$sudo reboot
=============================================== =========================
Теперь, когда система подошла, проверьте установку, выполнив следующее.
$sudo modprobe nvidia
$sudo nvidia-smi -q | head`enter code here`
Вы должны увидеть результат как "nvidia.png".
Теперь запустите следующие команды. $
cd ~/NVIDIA_CUDA-7.0_Samples/1_Utilities/deviceQuery
$make
$./deviceQuery
Однако, "nvidia-smi" по-прежнему не показывает активность GPU, в то время как Tensorflow - это модели обучения:
[email protected]:~$ ipython
Python 2.7.11 |Anaconda custom (64-bit)| (default, Dec 6 2015, 18:08:32)
Type "copyright", "credits" or "license" for more information.
IPython 4.1.2 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython features.
%quickref -> Quick reference.
help -> Python own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: import tensorflow as tf
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.7.5 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.7.5 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally
I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.7.5 locally
[email protected]:~$ nvidia-smi
Thu Mar 30 05:45:26 2017
+------------------------------------------------------+
| NVIDIA-SMI 346.46 Driver Version: 346.46 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GRID K520 Off | 0000:00:03.0 Off | N/A |
| N/A 35C P0 38W / 125W | 10MiB / 4095MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
Я решил, что "NVIDIA-SMI не удалось, потому что он не мог связаться с драйвером NVIDIA" на моем ноутбуке ASUS с GTX 950m и Ubuntu 18.04, отключив Secure Boot Control из BIOS.
Я получал ту же ошибку на моем Ubuntu 16.04 (ядро Linux 4.14) в Google Compute Engine с графическим процессором K80. Я обновил ядро до 4.14 и бум проблема была решена. Вот как я обновил свое ядро Linux с 4.14 до 4.15:
Step 1:
Check the existing kernel of your Ubuntu Linux:
uname -a
Step 2:
Ubuntu maintains a website for all the versions of kernel that have
been released. At the time of this writing, the latest stable release
of Ubuntu kernel is 4.15. If you go to this
link: http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/, you will
see several links for download.
Step 3:
Download the appropriate files based on the type of OS you have. For 64
bit, I would download the following deb files:
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/linux-headers-
4.15.0-041500_4.15.0-041500.201802011154_all.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/linux-headers-
4.15.0-041500-generic_4.15.0-041500.201802011154_amd64.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/linux-image-
4.15.0-041500-generic_4.15.0-041500.201802011154_amd64.deb
Step 4:
Install all the downloaded deb files:
sudo dpkg -i *.deb
Step 5:
Reboot your machine and check if the kernel has been updated by:
uname -a
Вы должны увидеть, что ваше ядро было обновлено и, надеюсь, nvidia-smi должно работать.
Выполните следующее, чтобы получить правильный драйвер NVIDIA:
устройства sudo ubuntu-drivers
Затем выберите право и запустите:
sudo apt install
Я работаю с экземпляром AWS DeepAMI P2 и неожиданно обнаружил, что команда драйвера Nvidia не работает и в GPU не найдена библиотека torch или tenorflow. Тогда я решил проблему следующим образом,
Запустите nvcc --version
если он не работает
Затем запустите следующее
apt install nvidia-cuda-toolkit
Надеюсь, что это решит проблему.
Я просто хочу поблагодарить @Heapify за предоставление практического ответа и обновить его ответ, потому что прикрепленные ссылки не актуальны.
Шаг 1: Проверьте существующее ядро вашего Ubuntu Linux:
uname -a
Шаг 2:
Ubuntu поддерживает веб-сайт для всех версий ядра, которые были выпущены. На момент написания этой статьи последний стабильный выпуск ядра Ubuntu - 4.15. Если вы перейдете по этой ссылке: http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/, вы увидите несколько ссылок для скачивания.
Шаг 3:
Загрузите соответствующие файлы в зависимости от типа вашей ОС. Для 64-битной я бы скачал следующие файлы deb:
// UP-TO-DATE 2019-03-18
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/linux-headers-4.15.0-041500_4.15.0-041500.201802011154_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/linux-headers-4.15.0-041500-generic_4.15.0-041500.201802011154_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/linux-image-4.15.0-041500-generic_4.15.0-041500.201802011154_amd64.deb
Шаг 4:
Установите все загруженные файлы deb:
sudo dpkg -i *.deb
Шаг 5:
Перезагрузите компьютер и проверьте, обновлено ли ядро:
uname -aenter code here
Мне пришлось установить драйвер NVIDIA 367.57 и CUDA 7.5 с Tensorflow на g2.2xlarge Ubuntu 14.04LTS. например NVIDIA-график-драйвер-367_367.57.orig.tar
Теперь графический процессор GRID K520 работает, пока я тренирую модели тензорного потока:
[email protected]:~$ nvidia-smi
Sat Apr 1 18:03:32 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.57 Driver Version: 367.57 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GRID K520 Off | 0000:00:03.0 Off | N/A |
| N/A 39C P8 43W / 125W | 3800MiB / 4036MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 2254 C python 3798MiB |
+-----------------------------------------------------------------------------+
[email protected]:~/NVIDIA_CUDA-7.0_Samples/1_Utilities/deviceQuery$ ./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GRID K520"
CUDA Driver Version / Runtime Version 8.0 / 7.0
CUDA Capability Major/Minor version number: 3.0
Total amount of global memory: 4036 MBytes (4232052736 bytes)
( 8) Multiprocessors, (192) CUDA Cores/MP: 1536 CUDA Cores
GPU Max Clock rate: 797 MHz (0.80 GHz)
Memory Clock rate: 2500 Mhz
Memory Bus Width: 256-bit
L2 Cache Size: 524288 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 2 copy engine(s)
Run time limit on kernels: No
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Disabled
Device supports Unified Addressing (UVA): Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 0 / 3
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 8.0, CUDA Runtime Version = 7.0, NumDevs = 1, Device0 = GRID K520
Result = PASS
Я пробовал вышеуказанные решения, но у меня работало только следующее.
sudo apt-get update
sudo apt-get install --no-install-recommends nvidia-384 libcuda1-384 nvidia-opencl-icd-384
sudo reboot
Ничто из перечисленного не помогло мне.
Я использую Kubernetes в Google Cloud с Tesla K-80 GPU.
Следуйте этому руководству, чтобы убедиться, что вы все правильно установили: https://cloud.google.com/kubernetes-engine/docs/how-to/gpus
Мне не хватало нескольких важных вещей:
Для узла COS:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/nvidia-driver-installer/cos/daemonset-preloaded.yaml
Для узла UBUNTU:
kubectl apply -f https://raw.githubusercontent.com/GoogleCloudPlatform/container-engine-accelerators/master/nvidia-driver-installer/ubuntu/daemonset-preloaded.yaml
Убедитесь, что обновление было передано на ваши узлы. Перезапустите их, если обновления отключены.
Я использую это изображение nvidia/cuda: 10.1-base-ubuntu16.04 в моем докере
Вы должны установить лимит GPU! Это единственный способ, которым драйвер узла может общаться с модулем. В вашей конфигурации yaml добавьте это под свой контейнер:
resources:
limits:
nvidia.com/gpu: 1
Один из важных фактов о драйверах NVIDIA, который не очень известен, заключается в том, что его сборка выполняется DKMS. Это позволяет автоматически перестраивать в случае обновления ядра, это происходит при запуске системы. Из-за этого довольно легко пропустить сообщения об ошибках, особенно если вы работаете на облачной виртуальной машине или на сервере без дополнительного интерфейса IPMI/управления. Однако можно запустить сборку DKMS, просто выполнив dkms autoinstall
сразу после установки пакетов. Если это не удастся, у вас будет значимое сообщение об ошибке об отсутствующей зависимости или о чем-либо еще. Если dkms autoinstall
правильно собирает модули, вы можете просто загрузить его с помощью modprobe
- нет необходимости перезагружать систему (что часто используется для запуска перестройки DKMS).
Вы можете проверить пример здесь
Попробуйте вытащить видеокарту NVIDIA и заново установить ее.