hans

hans

【Linux】【Docker】CentOS6.9ホスト、Ubuntu14.04のDockerコンテナでCUDAのインストールエラーが発生


CUDA: 8.0

CUDNN: 5.1

NVIDIA: 375.66

この問題は本当に面倒です....

おそらくサーバーの問題だと思います。

少し時間がかかりましたが、解決しました。

最初は ./deviceQuery

問題が発生しました:

CUDA Device Query (Runtime API) version (CUDART static linking)

modprobe: FATAL: Module nvidia-uvm not found.

cudaGetDeviceCount returned 30

-> unknown error

Result = FAIL 

解決策 1:#

まず、この方法を試してみて、効果がなければ解決策 2 を試してください。

nvidia-uvm をコンパイルしてインストールしましたが、正しい場所を見つけられませんでした。

sudo modinfo nvdia
sudo modinfo nvidia-uvm

まだ nvidia-uvm が見つからないというエラーが表示されます。

sudo update-alternatives --config x86_64-linux-gnu_gl_conf

表示される内容:

  Selection    Path                                       Priority   Status
------------------------------------------------------------
* 0            /usr/lib/nvidia-375/ld.so.conf              8604      auto mode
  1            /usr/lib/nvidia-375-prime/ld.so.conf        8603      manual mode
  2            /usr/lib/nvidia-375/ld.so.conf              8604      manual mode
  3            /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf   500       manual mode

数字を入力するように求められます。もし星印が 3 の前にある場合は、0、1、2 のいずれかを入力して問題が解決します。

問題が解決しない場合、または 0、1、2 のような選択肢がない場合は、解決策 2 を参照してください。

解決策 1 の参考文献: https://devtalk.nvidia.com/default/topic/760872/cuda-setup-and-installation/ubuntu-12-04-error-cudagetdevicecount-returned-30/

http://blog.csdn.net/ddqqfree123/article/details/52388337

解決策 2:#

サーバーの CentOS6.9 システムで実行されている Ubuntu14.04 システムの Docker ですね... ちょっと複雑ですね...

確認したところ、Ubuntu のカーネルは CentOS6.9 と同じです。CentOS6.9 のカーネルを 3.10.107 にアップグレードしましたが、Ubuntu システムには 3.10.107 のカーネルのヘッダーファイルなどがないため、nvidia-uvm もありません。

以下、これらの問題を解決する方法を説明します。

いくつかのフォルダの内容をチェックし、Ubuntu に関連するカーネルのフォルダがない場合は、CentOS ホストからコピーします。

CentOS システムの場合は、次のコマンドを実行します:

sudo yum install -y kernel-devel kernel-headers

主要なフォルダのパスは次のとおりです:

/var/lib/dkms/nvidia/original_module
/var/lib/dkms/nvidia/kernel-3.10.107-1.el6.elrepo.x86_64-x86_64  このディレクトリはシンボリックリンクです
/var/lib/dkms/nvidia/375.66/3.10.107-1.el6.elrepo.x86_64

/lib/modules/3.10.107-1.el6.elrepo.x86_64
/lib/modules/3.10.107-1.el6.elrepo.x86_64/build このディレクトリを削除し、シンボリックリンクの下のディレクトリにします
/usr/src/kernels/3.10.107-1.el6.elrepo.x86_64/

上記のいずれかのディレクトリがない場合は、CentOS ホストからコピーしてください!

Docker のコピーのコマンド:

sudo docker cp FILENAME CONTAINER-ID:/PATH/

nvidia-uvm のコンパイルとインストールを開始します:

sudo dkms status

表示される内容:

nvidia-375, 375.66: added

次に、次のコマンドを実行します:

sudo dkms build -m nvdia-375 -v 375.66
sudo dkms install -m nvdia-375 -v 375.66

その後、再起動してください。

sudo modinfo nvdia
sudo modinfo nvidia-uvm

./deviceQuery を試してみてください。

合格です!

解決策 2 の参考文献: http://blog.csdn.net/yijuan_hw/article/details/53439408

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。