このページのコンテンツ
GPUをコンテナから使わない場合
CentOS7上にDocker環境を整えます。GPUを載せていないコンピュータではDocker CEをインストールするだけでOKです。CEはCommunity Editionのことで、有償サポート付きのEE (Enterprise Edition)と区別されています。
Docker CEのインストール
sudo yum upgrade -y sudo yum update -y sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum makecache fast yum list docker-ce.x86_64 --showduplicates | sort -r sudo yum install docker-ce sudo systemctl start docker sudo systemctl enable docker
# dockerをsudoなしで実行できるようにする sudo groupadd docker # すでにdocker groupが存在すれば不要 sudo gpasswd -a $USER docker sudo systemctl restart docker exit
GPUをコンテナから使う場合
CentOS7上にGeForceのCUDAドライバをインストールし、CUDAを利用できるDocker環境を整えます。使用したGPUはGeForce GTX750Tiです。ドライバをCentoOS7にインストールし、CUDA ToolkitはDockerコンテナ上でインストールされるので、コンテナごとに異なるバージョンのCUDA Toolkitを導入できます。BIOSのセキュアブートはOFFにしないとうまく行きませんでした。最新のドライバでないとうまくいかないことがあります。必ずNVidiaのページで最新のドライバを確認してください。
GPUドライバのインストール
sudo yum upgrade -y sudo su - lsmod | grep nouveau ------------------------------ nouveau 1622010 3 video 24520 1 nouveau mxm_wmi 13021 1 nouveau wmi 19070 2 mxm_wmi,nouveau i2c_algo_bit 13413 1 nouveau drm_kms_helper 159169 1 nouveau ttm 99345 1 nouveau drm 370825 5 ttm,drm_kms_helper,nouveau i2c_core 40756 5 drm,i2c_i801,drm_kms_helper,i2c_algo_bit,nouveau ------------------------------ mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img dracut --omit-drivers nouveau /boot/initramfs-$(uname -r).img $(uname -r) echo 'blacklist nouveau' >> /etc/modprobe.d/modprobe.conf echo 'blacklist nouveau' >> /etc/modprobe.d/nouveau_blacklist.conf reboot now lsmod | grep nouveau ------------------------------ (何も表示されない) ------------------------------ yum -y install pciutils gcc tmux git yum -y install kernel-devel-$(uname -r) kernel-headers-$(uname -r) lspci | grep -i nvidia ------------------------------ 01:00.0 VGA compatible controller: NVIDIA Corporation GM107 [GeForce GTX 750 Ti] (rev a2) 01:00.1 Audio device: NVIDIA Corporation Device 0fbc (rev a1) ------------------------------ # http://www.nvidia.co.jp/Download/index.aspx?lang=jpからGPUに合った最新のドライバを探す mkdir tmp && cd tmp init 3 wget http://us.download.nvidia.com/XFree86/Linux-x86_64/384.98/NVIDIA-Linux-x86_64-384.98.run sh NVIDIA-Linux-x86_64-384.98.run # 上のコマンドで「unable to locate the kernel source」というようなエラーが出るときには # sh NVIDIA-Linux-x86_64-390.67.run --kernel-source-path /usr/src/kernels/3.10.0-862.6.3.el7.x86_64/ # というようにkernelの場所を指定する
Docker CEのインストール
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum makecache fast yum list docker-ce.x86_64 --showduplicates | sort -r sudo yum install docker-ce sudo systemctl start docker sudo systemctl enable docker
# dockerをsudoなしで実行できるようにする sudo groupadd docker # すでにdocker groupが存在すれば不要 sudo gpasswd -a $USER docker sudo systemctl restart docker exit
nvidia-dockerのインストールと確認
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker-1.0.1-1.x86_64.rpm
sudo rpm -i /tmp/nvidia-docker-1.0.1-1.x86_64.rpm
sudo systemctl start nvidia-docker
sudo systemctl enable nvidia-docker
nvidia-docker run --rm nvidia/cuda nvidia-smi #テスト
[root@localhost ~]# nvidia-docker run --rm nvidia/cuda nvidia-smi Using default tag: latest latest: Pulling from nvidia/cuda ae79f2514705: Pull complete c59d01a7e4ca: Pull complete 41ba73a9054d: Pull complete f1bbfd495cc1: Pull complete 0c346f7223e2: Pull complete 9bb3751211fc: Pull complete a0499c04e592: Pull complete 9c9a6ef89c66: Pull complete 6d0d5b4a91b4: Pull complete 2225646729dc: Pull complete Digest: sha256:8868904d5a8c36440af1f168ace58a044cb7df73404d9f303bdf8ef158f1a727 Status: Downloaded newer image for nvidia/cuda:latest Sun Nov 5 12:14:13 2017 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 384.98 Driver Version: 384.98 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 750 Ti Off | 00000000:01:00.0 Off | N/A | | 40% 32C P8 1W / 38W | 11MiB / 2000MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+