Tensorflow + GPU 환경을 nvidia-docker를 사용하여 손쉽게 만들기 (on Ubuntu 17.04)
배경 & 목적
Tensorflow + GPU 환경을 nvidia-docker를 사용하여 손쉽게 만들기 (on CentOS 7.2)
위 기사의 우분투 버전입니다.
배경과 목적은 여기를 참조하십시오.
사용하는 것
도입 절차
다음 절차에 따라 도입할 수 있습니다.
1. 드라이버 설치
nouveau 그래픽 드라이버를 비활성화한 후 NVIDIA 드라이버를 설치합니다.
(nouveau를 비활성화하지 않으면 드라이버 설치가 실패하기 때문에)
## nouveau ドライバーを無効にする
sudo su -
# nouveauが読み込まれていることを確認
lsmod | grep nouveau
---
nouveau 1403757 0
video 24400 1 nouveau
mxm_wmi 13021 1 nouveau
i2c_algo_bit 13413 1 nouveau
drm_kms_helper 125008 1 nouveau
ttm 93441 1 nouveau
drm 349210 3 ttm,drm_kms_helper,nouveau
i2c_core 40582 5 drm,i2c_i801,drm_kms_helper,i2c_algo_bit,nouveau
wmi 19070 2 mxm_wmi,nouveau
---
# kernelをビルドするためのパッケージをインストール
sudo apt-get install dkms build-essential linux-headers-generic
# nouveauを含まないように設定
sudo vi /etc/modprobe.d/blacklist.conf
---
# disable nouveau
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
---
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
# nouveauなしの起動イメージ生成
sudo update-initramfs -u
# 再起動
reboot now
# nouveauが読み込まれていないことを確認
lsmod | grep nouveau
## nvidia drive のインストール
sudo su -
apt-get install pciutils gcc linux-headers-$(uname -r)
# GPUの型番を確認
lspci | grep -i nvidia
---
05:00.0 VGA compatible controller: NVIDIA Corporation GM200 [GeForce GTX TITAN X] (rev a1)
---
# http://www.nvidia.co.jp/Download/index.aspx?lang=jp
# ここからGPUに合った最新のドライバを探す
# 今回はこれ
# http://www.nvidia.com/Download/driverResults.aspx/118290/en-us
# http://jp.download.nvidia.com/XFree86/Linux-x86_64/384.98/NVIDIA-Linux-x86_64-384.98.run (2017/12/07最新版)
cd /tmp/
wget http://us.download.nvidia.com/XFree86/Linux-x86_64/375.66/NVIDIA-Linux-x86_64-375.66.run
sh NVIDIA-Linux-x86_64-375.66.run
# 誘導にしたがってインストールする
# 再起動
reboot now
# GPUが認識されているかを確認
nvidia-smi
# 以下の様な出力を確認
---
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.66 Driver Version: 375.66 |
|-------------------------------+----------------------+----------------------+
| 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 TIT... Off | 0000:05:00.0 Off | N/A |
| 0% 56C P0 54W / 250W | 0MiB / 12205MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
2. Docker 설치
공식 설치 매뉴얼에 따라 설치합니다.
sudo없이 docker 명령을 사용할 수 있도록 사용자를 그룹에 추가.
sudo gpasswd -a $USER docker
sudo service docker restart
docker-compose도 설치해 둡시다.
Install Docker Compose
3. nvidia-docker 설치
공식 QuickStart 에 따라 인스톨하고 싶습니다만, 공식은 Ubuntu17을 아직 서포트하고 있지 않기 때문에, 편집된 deb 파일을 사용해 인스톨 합니다.
참고)
htps : // 기주 b. 코 m / 응 ぃ ぢ 아 / 흠
htps : // 기주 b. 코 m / 응 ぃ ぢ 아 / 음
### nvidia-docker install
# Install nvidia-docker and nvidia-docker-plugin
wget -P /tmp https://github.com/NVIDIA/nvidia-docker/files/818401/nvidia-docker_1.0.1-yakkety_amd64.deb.zip
unzip /tmp/nvidia-docker_1.0.1-yakkety_amd64.deb.zip -d /tmp/
sudo dpkg -i /tmp/nvidia-docker*.deb && rm /tmp/nvidia-docker*.deb
# Test nvidia-smi
nvidia-docker run --rm nvidia/cuda nvidia-smi
# 以下の様な出力を確認
---
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 375.66 Driver Version: 375.66 |
|-------------------------------+----------------------+----------------------+
| 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 TIT... Off | 0000:05:00.0 Off | N/A |
| 22% 48C P8 28W / 250W | 0MiB / 12205MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
4. Tensorflow + GPU 이미지 생성 및 실행
htps // // 후 b. 도 c r. 코 m/r/텐소 rfぉw/텐소 rfぉw/
Tensorflow에서 제공하는 Dockerhub 이미지를 사용합니다.
## run tensorflow docker
nvidia-docker run -it -p 8888:8888 gcr.io/tensorflow/tensorflow:latest-gpu
Docker를 시작한 후
http://${HOST_IP}:8888/
에 액세스하면 jupyter 화면을 확인할 수 있습니다.
3_mnist_from_scratch.ipynb의 노트북을 시작하여 Cell -> Run All에서 샘플이 움직이는지 확인합니다. 결과를 확인.
jupyter 로그에서 GPU를 사용하여 계산되었는지 확인합니다.
2017-08-17 08:02:43.311687: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:893] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero
2017-08-17 08:02:43.312309: I tensorflow/core/common_runtime/gpu/gpu_device.cc:940] Found device 0 with properties:
name: GeForce GTX TITAN X
major: 5 minor: 2 memoryClockRate (GHz) 1.076
pciBusID 0000:05:00.0
Total memory: 11.92GiB
Free memory: 11.81GiB
2017-08-17 08:02:43.312328: I tensorflow/core/common_runtime/gpu/gpu_device.cc:961] DMA: 0
2017-08-17 08:02:43.312346: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0: Y
2017-08-17 08:02:43.312358: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1030] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX TITAN X, pci bus id: 0000:05:00.0)
이상입니다.
Reference
이 문제에 관하여(Tensorflow + GPU 환경을 nvidia-docker를 사용하여 손쉽게 만들기 (on Ubuntu 17.04)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/t14i/items/b3be56d4df5f80c555af텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)