CUDA
ツールキットとcuDNN
を問題なく正常にインストールした後、いつでも実行します。
Sudo ldconfig
私は得る:
/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.7 is not a symbolic link
エラーメッセージ。
理由は何ですか。これを解決するにはどうすればよいですか?
ところで、次のようにcuDNN
をインストールしました:
# cuDNN, extracts to a folder named cuda
tar xvf cudnn*.tgz
cd cuda
Sudo cp lib64/* /usr/local/cuda/lib64
Sudo cp include/* /usr/local/cuda/include
ls -lha libcudnn*
の/usr/local/cuda/lib64
の出力は次のとおりです。
breeze@breeze:/usr/local/cuda/lib64$ ls -lha libcudnn*
-rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so
-rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so.7
-rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so.7.0.5
-rw-r--r-- 1 root root 268M آوریل 15 12:03 libcudnn_static.a
親愛なる神のおかげで、私はこれを使用して解決策を見つけました link 。
これは、cuDNNファイルのコピー後にSudo ldconfigを実行したときに発生する可能性があります。
cuDNN
をインストールし、抽出したファイルを/usr/lib/cuda/lib64
にコピーしてシンボリックリンクを作成した後、シンボリックリンクで問題が発生する場合があります。
/usr/local/cuda/lib64/
に移動して、ls -lha libcudnn*
を実行します。2つのシンボリックリンク(太字のティール)と1つのファイルが表示されます。このようなもの:
/usr/local/cuda/lib64$ ls -lha libcudnn* lrwxrwxrwx 1 root root 13 Dez 25 23:56 libcudnn.so -> libcudnn.so.5 lrwxrwxrwx 1 root root 17 Dez 25 23:55 libcudnn.so.5 -> libcudnn.so.5.1.5 -rwxr-xr-x 1 root root 76M Dez 25 23:27 libcudnn.so.5.1.5
Libcudnn.so.5.1.5の正確なバージョンは、少し異なるかもしれません(おそらくlibcudnn.so.5.1.10)。その場合、それに応じてコードを適合させます
libcudnn.so
とlibcudnn.so.5
がシンボリックリンクではない場合、これがこのエラーが発生した理由です。もしそうなら、これはあなたがする必要があるものです:/usr/local/cuda/lib64$ Sudo rm libcudnn.so /usr/local/cuda/lib64$ Sudo rm libcudnn.so.5 /usr/local/cuda/lib64$ Sudo ln libcudnn.so.5.1.5 libcudnn.so.5 /usr/local/cuda/lib64$ Sudo ln libcudnn.so.5 libcudnn.so Run Sudo ldconfig again and there should be no errors
ls -lha libcudnn*
で/usr/local/cuda/lib64
を実行し、以下を確認した後:
breeze@breeze:/usr/local/cuda/lib64$ ls -lha libcudnn*
-rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so
-rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so.7
-rwxr-xr-x 1 root root 275M آوریل 15 12:03 libcudnn.so.7.0.5
-rw-r--r-- 1 root root 268M آوریل 15 12:03 libcudnn_static.a
私がしなければなりませんでした :
breeze@breeze:/usr/local/cuda/lib64$ Sudo rm libcudnn.so
[Sudo] password for breeze:
breeze@breeze:/usr/local/cuda/lib64$ Sudo rm libcudnn.so.7
breeze@breeze:/usr/local/cuda/lib64$ Sudo ln libcudnn.so.7.0.5 libcudnn.so.7
breeze@breeze:/usr/local/cuda/lib64$ Sudo ln libcudnn.so.7 libcudnn.so
breeze@breeze:/usr/local/cuda/lib64$ Sudo ldconfig
そして、すべてが正常に戻りました:)
小切手
wxf:/usr/local/cuda/lib64$ ls -al
...
...
-rwxr-xr-x 3 root root 302770160 Jan 27 14:30 libcudnn.so NO link
-rwxr-xr-x 3 root root 302770160 Jan 27 14:30 libcudnn.so.7 NO link
-rwxr-xr-x 3 root root 302770160 Jan 27 14:30 libcudnn.so.7.3.1
-rwxr-xr-x 1 root root 349141232 Jan 27 14:30 libcudnn.so.7.4.2
...
...
リンクなし->
(すべてのリンクを確認:Sudo ldconfig -v
)
なぜなら
(nvidiaからダウンロードしたcudnnにはシンボリックリンクがあります)
wxf:~/cudnn/cuda/lib64$ ls -al
total 974632
drwxrwxr-x 2 wxf wxf 4096 Jan 19 19:50 .
drwxrwxr-x 4 wxf wxf 4096 Jan 19 19:50 ..
lrwxrwxrwx 1 wxf wxf 13 Dec 12 01:58 libcudnn.so -> libcudnn.so.7
lrwxrwxrwx 1 wxf wxf 17 Dec 12 01:58 libcudnn.so.7 -> libcudnn.so.7.4.2
-rwxrwxr-x 1 wxf wxf 302770160 Sep 21 01:36 libcudnn.so.7.3.1
-rwxrwxr-x 1 wxf wxf 349141232 Dec 12 01:30 libcudnn.so.7.4.2
-rw-rw-r-- 1 wxf wxf 346085818 Dec 12 01:30 libcudnn_static.a
コピーすると、シンボリック情報が失われました。
メモ:ln -s A <-- B
/usr/local/cuda/lib64
に移動します
Sudo ln -sf libcudnn.so.7.4.2 libcudnn.so.7
Sudo ln -sf libcudnn.so.7 libcudnn.so
さて、
wxf:/usr/local/cuda/lib64$ ls -al
...
...
lrwxrwxrwx 1 root root 13 Jan 27 14:43 libcudnn.so -> libcudnn.so.7
lrwxrwxrwx 1 root root 17 Jan 27 14:43 libcudnn.so.7 -> libcudnn.so.7.4.2
-rwxr-xr-x 1 root root 302770160 Jan 27 14:30 libcudnn.so.7.3.1
-rwxr-xr-x 1 root root 349141232 Jan 27 14:30 libcudnn.so.7.4.2
...