web-dev-qa-db-ja.com

NVIDIA-SMIは、NVIDIAドライバーと通信できなかったため失敗しました

Ubuntu 14.04 LTSでAWS EC2 g2.2xlargeインスタンスを実行しています。 TensorFlowモデルのトレーニング中にGPUの使用率を観察したいと思います。 「nvidia-smi」を実行しようとするとエラーが発生します。

ubuntu@ip-10-0-1-213:/etc/alternatives$ cd /usr/lib/nvidia-375/bin
ubuntu@ip-10-0-1-213:/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
ubuntu@ip-10-0-1-213:/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.


ubuntu@ip-10-0-1-213:/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's Prime
ii  nvidia-settings                                       375.26-0ubuntu1                                     AMD64        Tool for configuring the NVIDIA graphics driver
ubuntu@ip-10-0-1-213:/usr/lib/nvidia-375/bin$ lspci | grep -i nvidia
00:03.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)
ubuntu@ip-10-0-1-213:/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

================================================== ======================

再起動後、「$ Sudo update-initramfs -u」を実行してinitramfsを更新します

ここで、/ etc/modprobe.d/blacklist.confファイルを編集してnouveauをブラックリストに追加してください。エディターでファイルを開き、ファイルの最後に次の行を挿入します。

ブラックリストnouveauブラックリストlbm-nouveauオプションnouveau modeset = 0 alias nouveau off alias 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

ただし、Tensorflowがモデルをトレーニングしている間、「nvidia-smi」はまだGPUアクティビティを表示しません。

ubuntu@ip-10-0-1-48:~$ 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's features.
%quickref -> Quick reference.
help      -> Python's 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



ubuntu@ip-10-0-1-48:~$ 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                                                 |
+-----------------------------------------------------------------------------+
18
dbl001

BIOSからのセキュアブートコントロールを無効にすることで、GTX 950mおよびUbuntu 18.04を搭載したASUSラップトップで「NVIDIAドライバと通信できなかったため、NVIDIA-SMIが失敗しました」を解決しました。

23
nuicca

K80 GPUを搭載したGoogle Compute EngineのUbuntu 16.04(Linux 4.14カーネル)でも同じエラーが発生していました。カーネルを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が機能することを願っています。

6
Heapify

以下を実行して、適切なNVIDIAドライバーを取得します。

Sudo ubuntu-driversデバイス

次に、正しいものを選んで実行します。

Sudo apt install

4
gowin

AWS DeepAMI P2インスタンスを使用していますが、Nvidia-driverコマンドが機能せず、GPUがトーチまたはtensorflowライブラリを見つけられないことが突然わかりました。その後、次の方法で問題を解決しました。

nvcc --versionが機能しない場合は実行します

次に、以下を実行します

apt install nvidia-cuda-toolkit

問題が解決することを願っています。

4

添付のリンクが最新ではないため、実用的な回答を提供してくれた@Heapifyに感謝し、彼の回答を更新したいと思います。

ステップ1:Ubuntu Linuxの既存のカーネルを確認します。

uname -a

ステップ2:

Ubuntuは、リリースされたカーネルのすべてのバージョンのWebサイトを維持しています。この記事の執筆時点では、Ubuntuカーネルの最新の安定版リリースは4.15です。次のリンクにアクセスすると、 http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.15/ に、ダウンロード用のリンクがいくつか表示されます。

ステップ3:

使用しているOSのタイプに基づいて適切なファイルをダウンロードします。 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
1
Lexi_GIS-RS

NVIDIA 367.57ドライバーとCUDA 7.5をTensorflowとともにg2.2xlarge Ubuntu 14.04LTSインスタンスにインストールする必要がありました。例えばnvidia-graphics-drivers-367_367.57.orig.tar

テンソルフローモデルのトレーニング中に、GRID K520 GPUが動作するようになりました。

ubuntu@ip-10-0-1-70:~$ 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 |
+-----------------------------------------------------------------------------+

ubuntu@ip-10-0-1-70:~/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
0
dbl001

上記のどれも私を助けませんでした。

私はKubernetesGoogle Cloudテスラ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
    
0
Montoya

上記の解決策を試してみましたが、私にとっては以下が有効でした。

Sudo apt-get update
Sudo apt-get install --no-install-recommends nvidia-384 libcuda1-384 nvidia-opencl-icd-384
Sudo reboot

クレジット-> https://deeptalk.lambdalabs.com/t/nvidia-smi-has-failed-because-it-couldnt-communicate-with-the-nvidia-driver/148

0
virtuvious