pandazx's blog

データ分析など雑多な技術ブログ

nvidia-dockerでコンテナからGPUアクセス環境構築

(作業中。ローカルにGPU環境を作らずに、Docker上で作れば、すんなり行くのかもしれないが、未確認)

前提

以下のサイトの通り、一通り、CUDA, cuDNNが使える状態になっていること

Ubuntu 14.04 にChainer1.7.0環境構築 - pandazx's blog

目標

Dockerコンテナ上からGPUを使える環境を構築する。

そのために、nvidia-dockerで環境構築し、Chainerで動作確認する。

作業ログ

  • Docker, nvidia-dockerをインストール
  • コンテナ起動
    • sudo nvidia-docker run -v local_dir:mount_dir:ro --device /dev/nvidia0:/dev/nvidia0 --device /dev/nvidiactl:/dev/nvidiactl --device /dev/nvidia-uvm:/dev/nvidia-uvm -i -t nvidia/cuda /bin/bash
    • -v optionはホストとコンテナの共有ディレクトリ設定
    • -v の :ro は read only 設定
    • local_dirには、CUDAインストール時に作成しているcudaのsampleがあるディレクトリを指定
    • --device はローカルのGPU deviceを指定. 通常、同じパスで問題ないはず
  • 動作確認(以下はコンテナ上での操作)
    • コンテナからGPUが見えるか確認
    • CUDA動作確認
      • cudaのsampleについて、cuda/samples/1_Utilities/deviceQuery/deviceQuery を実行
  • cuDNNインストール
    • インストーラは共有したディレクトリに置いておく
    • あとは、ローカルでやったのと同じようにcuDNNをインストール
  • Chainerインストール
    • train_mnist.py を実行したところ、以下のエラーが発生

RuntimeError: CUDA environment is not correctly set up (see https://github.com/pfnet/chainer#installation).cannot import name core

調査中