任意のNVIDIAドライバとCUDAバージョンがインストールされているDebian 11サーバーにアクセスできます。しかし、多くの人がサーバーを使用しているため、多くの人にはさまざまなバージョンのCUDAとcuDNNが必要です。だから私はdockerから私の環境を分離し、イメージからコンテナを作成することにしました。ここ。
オンラインガイドによると、ホストにはNVIDIAドライバをインストール(移行)してインストールnvidia-container-toolkit
(移行)する必要があります。その後、次を実行してイメージからコンテナを作成しました。
docker run -it --rm --gpus all nvidia/cuda:11.2.0-cudnn8-runtime-ubuntu20.04
イメージに接続すると正常に実行できますが、nvidia-smi
CUDAのバージョンがホストシステムと同じで、cuDNNがまったくないようです(ホストには現在cuDNNはありません)。画像に両方をプリインストールする必要があることを正確に理解しています。
何が間違っているのか、必要に応じて特定のCUDA / cuDNNとドライバのバージョンを使用して孤立したコンテナを実装する方法を知っていますか?
ベストアンサー1
nvidia-smi
コンテナ内でshow CUDAバージョンを呼び出すと、ホストのCUDAバージョンが表示される理由がわかりませんが、間違った場所でcuDNNを探していることに気づきました。https://github.com/NVIDIA/nvidia-docker/issues/53
画像は次のようになります。 (nvidia-docker2もインストールしました)
何らかの理由でトレーニング時間が非常に遅くなりますが、これについてさらに調査する必要があり、イメージの設定とは関係がないようです(少なくともGPUはTensorflowで正しく表示されます)。