人工知能技術戦略会議等主催 第1回AIチャレンジコンテスト[1][2]で入賞賞品としていただいたNVIDIA GTX-1060 Founders Editionを活用しようと, 「低火力コンピューティング」のPCを組み立てた.
あらから約1年, 「低火力コンピューティング」のPCはDeep Learningちょいお試しマシンとして活躍してきた.
現在, マシンのOSはUbuntu 16.04 LTSなのだが, 4月にUbuntu 18.04 LTSがリリースされたので, ディスク整理もかねて, アップデートでなく新規インストールしてみた.
前回ほどトラブらなかったが, 一応手順や設定等をメモしておく.
関連記事:
- 深層学習用に低火力PCを組み立てた(1)
- 深層学習用に低火力PCを組み立てた(2)
- 深層学習用に低火力PCを組み立てた(3)
- 深層学習用に低火力PCを組み立てた(4)
- 深層学習用に低火力PCを組み立てた(5)
1. Ubuntu 18.04 LTSのインストール
Ubuntu 16.04をインストールしたときは, OS付属のドライバ群がIntel HD Graphics 630に対応していなくて別途ドライバのインストールが必要だったが, 18.04では対応されており簡単にX Windowが動作した.
2. NVIDIAドライバ /CUDA/cuDNNのインストール[3][4]
Ubuntu 18.04では, リポジトリにNVIDIA Driver & CUDAがあるようで, aptコマンドで簡単にインストールできるのだが, この場合CUDA 9.1がインストールされてしまう.
今回インストールしようとしているTensorFlow 1.10は, 以下のバージョンで動作するとのことなので, 各インストーラをダウンロードしインストールしていくことにする.
・GPU drivers. CUDA 9.0 requires 384.x or higher.
・CUDA Toolkit 9.0.
・cuDNN SDK (>= 7.2)
2.1 NVIDIAドライバ
ここから, GTX-1060用のLinuxドライバをダウンロードし, インストールする.
前回X Windowのログインループの件があったので, 今回もOpenGL関連をはずすオプションを指定してインストールした.
$ chmod a+x NVIDIA-Linux-x86_64-390.87.run $ sudo apt install dkms $ sudo ./NVIDIA-Linux-x86_64-390.87.run --silent --no-opengl-files --no-libglx-indirect --dkms
2.2 CUDA 9.0
ここから, Linux 17.04用のCUDA 9.0をダウンロードし, インストールする.
2018/9/15時点では, Ubuntu 18.04用は準備されてないが, CUDA 9.0の最新版を使用した.
$ chmod a+x cuda_9.0* $ sudo ./cuda_9.0.176_384.81_linux.run --silent --no-opengl-libs --toolkit Error: unsupported compiler: 7.3.0. Use --override to override this check.
エラーとなるので, "--override"を付けて再度実行.
インストールが完了したら, Patch1~4もあてる.
$ sudo ./cuda_9.0.176_384.81_linux.run --silent --no-opengl-libs --toolkit --override $ sudo ./cuda_9.0.176.1_linux.run $ sudo ./cuda_9.0.176.2_linux.run $ sudo ./cuda_9.0.176.3_linux.run $ sudo ./cuda_9.0.176.4_linux.run
.bashrcにパスを追加.
export PATH="/usr/local/cuda/bin:$PATH" export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
2.3 cuDNN v7.2
ここから, CUDA 9.0用のcuDNN v7.2をダウンロードし, インストールする.
$ tar zxvf cudnn-9.0-linux-x64-v7.2.1.38.tgz $ sudo cp -a cuda/include/* /usr/local/cuda/include $ sudo cp -a cuda/lib64/* /usr/local/cuda/lib64 $ sudo ldconfig
2.4 動作確認
まずは, nvidia-smiコマンドで, GTX-1060が見えているか確認.
$ nvidia-smi Sat Sep 15 11:57:09 2018 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 390.87 Driver Version: 390.87 | |-------------------------------+----------------------+----------------------+ | 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 106... Off | 00000000:01:00.0 Off | N/A | | 42% 37C P5 6W / 120W | 73MiB / 6078MiB | 1% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | 0 1287 G /usr/lib/xorg/Xorg 71MiB | +-----------------------------------------------------------------------------+
一応GTX-1060は見えているが, X Window がGTX-1060で動いているようだ.
X Windowは, Intel HD Graphics 630側で動かしたいので, xorg.confの設定が必要そうだ.
設定の前に, TensorFlow 1.10をインストールし, TensorFlowからGPUが見えているか確認しておく.
(TensorFlowのインストールは省略)
$ python Python 3.6.6 |Anaconda, Inc.| (default, Jun 28 2018, 11:14:51) [GCC 7.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from tensorflow.python.client import device_lib >>> device_lib.list_local_devices() 2018-09-15 12:05:25.516716: I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA 2018-09-15 12:05:25.677127: I tensorflow/stream_executor/cuda/cuda_gpu_executor.cc:897] successful NUMA node read from SysFS had negative value (-1), but there must be at least one NUMA node, so returning NUMA node zero 2018-09-15 12:05:25.677544: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1405] Found device 0 with properties: name: GeForce GTX 1060 6GB major: 6 minor: 1 memoryClockRate(GHz): 1.7085 pciBusID: 0000:01:00.0 totalMemory: 5.94GiB freeMemory: 5.79GiB 2018-09-15 12:05:25.677557: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1484] Adding visible gpu devices: 0 2018-09-15 12:05:27.067888: I tensorflow/core/common_runtime/gpu/gpu_device.cc:965] Device interconnect StreamExecutor with strength 1 edge matrix: 2018-09-15 12:05:27.067922: I tensorflow/core/common_runtime/gpu/gpu_device.cc:971] 0 2018-09-15 12:05:27.067930: I tensorflow/core/common_runtime/gpu/gpu_device.cc:984] 0: N 2018-09-15 12:05:27.068509: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1097] Created TensorFlow device (/device:GPU:0 with 5566 MB memory) -> physical GPU (device: 0, name: GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0, compute capability: 6.1) [name: "/device:CPU:0" device_type: "CPU" memory_limit: 268435456 locality { } incarnation: 295793035274468906 , name: "/device:GPU:0" device_type: "GPU" memory_limit: 5836505088 locality { bus_id: 1 links { } } incarnation: 7450773681115942002 physical_device_desc: "device: 0, name: GeForce GTX 1060 6GB, pci bus id: 0000:01:00.0, compute capability: 6.1" ] >>>
TensorFlowからも, GPUがちゃんと見えているようだ.
3. X Windowの設定[4]
先ほど, X WindowがGTX-1060で動作していたので, xorg.confでグラフィックカードの設定を行う.
設定の前に, Intel HD Graphics 630のBusIDを調べておく.
$ lspci | grep VGA 00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04) 01:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)
[xorg.conf]
Section "ServerLayout"
Identifier "Layout"
Screen 0 "intel"
EndSection
Section "Device"
Identifier "intel"
Driver "intel"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "intel"
Device "intel"
EndSection
xorg.confを/etc/X11に配置しrebootすると, 今度は思ったようにX WindowがIntel HD Graphics 630で動いているようだ.
$ nvidia-smi Sat Sep 15 12:20:17 2018 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 390.87 Driver Version: 390.87 | |-------------------------------+----------------------+----------------------+ | 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 106... Off | 00000000:01:00.0 Off | N/A | | 0% 36C P0 25W / 120W | 0MiB / 6078MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
一応, これでDeep Learningのお試し環境をUbuntu 18.04 LTSにアップできた.
実際に, Deep Learningのモデル学習がGPUで動作するか確認してみよう....
----
参照URL:
[1] SIGNATE - Data Science Competition
[2] 第1回AIチャレンジコンテスト(料理分類部門)に挑戦してみた!! (3) - みらいテックラボ
[3] GPU カードドライバーのインストール - Tesla GPU サーバー(時間課金)サポートサイト
[4] Ubuntu 16.04にGTX 1080Tiドライバをインストール(外付けGPUを計算のみで使用したい)
Ubuntu はじめる&楽しむ 100%活用ガイド[Ubuntu 18.04LTS 日本語Remix対応]
| 独学プログラマー Python言語の基本から仕事のやり方まで
|
|
|