NVIDIA-SMI потерпел неудачу, поскольку не смог связаться с драйвером NVIDIA

Я запускаю экземпляр 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                                                 |
+-----------------------------------------------------------------------------+

Ответ 1

Я решил, что "NVIDIA-SMI не удалось, потому что он не мог связаться с драйвером NVIDIA" на моем ноутбуке ASUS с GTX 950m и Ubuntu 18.04, отключив Secure Boot Control из BIOS.

Ответ 2

Я получал ту же ошибку на моем 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 должно работать.

Ответ 3

Выполните следующее, чтобы получить правильный драйвер NVIDIA:

устройства sudo ubuntu-drivers

Затем выберите право и запустите:

sudo apt install

Ответ 4

Я работаю с экземпляром AWS DeepAMI P2 и неожиданно обнаружил, что команда драйвера Nvidia не работает и в GPU не найдена библиотека torch или tenorflow. Тогда я решил проблему следующим образом,

Запустите nvcc --version если он не работает

Затем запустите следующее

apt install nvidia-cuda-toolkit

Надеюсь, что это решит проблему.

Ответ 5

Я просто хочу поблагодарить @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

Ответ 6

Мне пришлось установить драйвер 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

Ответ 8

Ничто из перечисленного не помогло мне.

Я использую Kubernetes в Google Cloud с Tesla K-80 GPU.

Следуйте этому руководству, чтобы убедиться, что вы все правильно установили: https://cloud.google.com/kubernetes-engine/docs/how-to/gpus

Мне не хватало нескольких важных вещей:

  1. Установка драйверов устройств NVIDIA GPU На ваших узлах. Для этого используйте:

Для узла 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

Убедитесь, что обновление было передано на ваши узлы. Перезапустите их, если обновления отключены.

  1. Я использую это изображение nvidia/cuda: 10.1-base-ubuntu16.04 в моем докере

  2. Вы должны установить лимит GPU! Это единственный способ, которым драйвер узла может общаться с модулем. В вашей конфигурации yaml добавьте это под свой контейнер:

    resources:
      limits:
        nvidia.com/gpu: 1
    

Ответ 9

Один из важных фактов о драйверах NVIDIA, который не очень известен, заключается в том, что его сборка выполняется DKMS. Это позволяет автоматически перестраивать в случае обновления ядра, это происходит при запуске системы. Из-за этого довольно легко пропустить сообщения об ошибках, особенно если вы работаете на облачной виртуальной машине или на сервере без дополнительного интерфейса IPMI/управления. Однако можно запустить сборку DKMS, просто выполнив dkms autoinstall сразу после установки пакетов. Если это не удастся, у вас будет значимое сообщение об ошибке об отсутствующей зависимости или о чем-либо еще. Если dkms autoinstall правильно собирает модули, вы можете просто загрузить его с помощью modprobe - нет необходимости перезагружать систему (что часто используется для запуска перестройки DKMS). Вы можете проверить пример здесь

Ответ 10

Попробуйте вытащить видеокарту NVIDIA и заново установить ее.