当ブログでは、以前「Intel NUCとAKiTiO Node Pro & NVIDIA GeForce GTX 1080の組み合わせでディープラーニング環境を作ってみた!」というタイトルで、ディープラーニング環境構築の事例をご紹介しました。
あれから2年、CPUもGPUも世代交代、TensorFlowもメジャーバージョンアップされています。

そこで、最新の第 10 世代インテル® Core™ i5 プロセッサーを搭載したNUCとGeForce® RTX 2070 SUPER™ を搭載した外付けGPUボックスとの組み合わせでディープラーニングの環境構築を行いました。
結論から言いますと、前回よりも簡単にディープラーニングの環境構築ができるようになりました!
これまでディープラーニングの環境構築ができなかった方々も、この機会にぜひチャレンジしてみてください。

なお、今回は必要なところだけ簡単に説明していきますので、機械学習やGPUなどの詳しい用語解説は前回のブログをご参考ください。それでは、「ディープラーニング環境を作ってみた!2020年度版」を始めます!

今回の目標

「最新のUbuntuと外付けGPUボックスを使ったディープラーニング環境の構築」

なぜディープラーニングにGPUが必要なのか?

そもそもGPUとは、画像や映像などの グラフィック処理を行うために使用されるパーツです。それなのになぜディープラーニングに欠かせないのかと言いますと、ディープラーニングは高度な計算処理(行列の積和演算)を並行して行う必要があります。この計算は3次元グラフィックスのポリゴン計算処理と同様のため、積和演算に特化した構造のGPUと大変相性が良いとされています。
いわゆる「3D」と呼ばれる動画・静止画の計算処理とディープラーニングの計算処理は、実はほぼ同じなんですね!

使用する機材

■POWERSTEP VESA T3(デスクトップパソコン)

画像は36mm厚のショート型。とにかく薄いです!

弊社取扱製品です。最新の第 10 世代インテル® Core™ i5 プロセッサーを搭載し、DDR4-2666 16GBメモリとIntel 256GB M.2 NVMe SSDを組み合わせた、小型のデスクトップパソコンです。写真のとおり薄くて軽いです。外付けGPUボックスがそれなりの大きさになりますし、場所を取らないためにもパソコンはこのくらいの小型サイズにしたいですね。VESAマウントに準拠していますので、ディスプレイの背面に取り付けられるのも美点です!

ディスプレイ背面にVESA T3を取り付けた図

■外付けGPUボックス

こちらも弊社で販売しているAKTiO Node (500W)を使用。
電源が500Wに強化され、筐体が大きい分、ボードサイズはフルレングス/フルハイト(312mm x 107mm)・2スロット占有タイプまで対応しています。

【参考:Which GPU(s) to Get for Deep Learning: My Experience and Advice for Using GPUs in Deep Learning (英語)】
こちらの記事に、総合的に見てDeep LearningにはRTX2070がおすすめ(原文では“Best GPU overall: RTX 2070”)とありましたので、グラフィックボードはGeForce RTX 2070 SUPERを使用します。

■その他
モニター、キーボード、マウスなど。

使用するソフトウェア

■OS:Ubuntu 20.04 LTS(最新バージョン)
Windows 10でも構築可能ですが、前回Ubuntuを使用していますので、比較のために今回もUbuntuをインストールします。

■TensorFlow 2.0(最新バージョン)

■その他
その他のソフトウェア要件については、TensorFlow公式サイトに情報があります。

ソフトウェア要件
以下の NVIDIA® ソフトウェアをシステムにインストールする必要があります。
• NVIDIA® GPU ドライバ – CUDA 10.1 では 418.x 以降が必要です。
• CUDA® ツールキット – TensorFlow は CUDA 10.1 に対応しています(TensorFlow は 2.1.0 以降)。
• CUPTI は CUDA ツールキットに同梱されています。
• cuDNN SDK(7.6 以降)
• (省略可)TensorRT 6.0 は一部のモデル上での推論のレイテンシとスループットを改善します。

環境構築手順

VESA T3 と外付けGPUボックスをThundebolt 3でつないだところ

(1)インストール前に、POWERSTEP VESA T3のBIOSでSecure bootを外します。
 Boot ⇒ Secure Boot ⇒ Secure Boot Configで、
 Secure Boot の ✔を外す。

(2)OSインストール
 Ubuntuインストールするときのオプションは、以下の3つを選択。

  • 通常のインストール
  • Ubuntuのインストール中にアップデートをダウンロードする。
  • グラフィックスとWiFiハードウェアと追加のメディアフォーマットのサードパーティ製ソフトウェアをインストールする。 

(3)OS更新
Ubuntuのインストールが完了したら、再起動してOSを更新します。

$ sudo apt update

(4)Nvidiaドライバーのインストール

$ sudo apt install nvidia-driver-440

※今回は、外付けGPUボックスをOSインストール後に接続したので、ドライバを個別にインストールしましたが、あらかじめ外付けGPUボックスを接続した状態でOSをインストールすれば、自動的にドライバもインストールされます。

(5)Python関連で必要になりそうなものをインストール

$ sudo apt install python3-pip python3-setuptools python3-wheel python3-numpy python3-yaml python3-six python3-future python3-requests python3-matplotlib python3-pil python3-h5py python3-graphviz python3-pydot

$ pip3 install torch torchvision

(6)CUDAのインストール

$ wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb

$ dpkg -i libcudnn7_7.6.5.32-1+cuda10.1_amd64.deb

$ sudo apt install python3-scipy python3-sklearn python3-skimage python3-opencv python3-protobuf python3-termcolor python3-wrapt python3-werkzeug python3-markdown python3-google-auth python3-requests-oauthlib

Y

(7)TensorFlow GPUのインストール

$ pip3 install tensorflow-gpu

構築に必要なインストールはこれでOKです。

構築後の動作確認、結果

(1)まずは、GPUの確認

$ nvidia-smi

コマンドを入力すると、以下のように表示されます。

これを見ると、GeForce RTX 2070 が一枚搭載されていることがわかります。まだ何も処理を実行していないのでGPU使用率は0%であることが確認できます。

(2)TensorFlow が GPU を認識できているか確認

Tensorflow-GPUでGPUが反映されているかチェック

$ python3
Python 3.8.2 (default, Apr 27 2020, 15:53:34)
[GCC 9.3.0] on linux
Type “help”, “copyright”, “credits” or “license” for more information.
>>>import tensorflow
>>>tensorflow.test.gpu_device_name()

【Enter】とするとメッセージが表示されます。最後に

‘/device:GPU:0’

と表示されていれば、GPUが反映されています。

(3)実行できるか確認
初心者のための TensorFlow 2.0 入門
↑こちらのページのチュートリアルを参考にしながら実行したところ、正常に動作しましたので環境構築は無事成功です!

$ python3 tutorial2.py

構築バージョンは以下のとおりです。
・tensorflow-gpu 2.2.0
・Python 3.8.2
・NVIDIA® GPU ドライバ 440.64
・CUDA Version: 10.2
・cuDNN SDK 7.6.5.32

感想

筆者はTensolFlow2.0の環境構築は今回が初めてでしたが、ほとんど問題なく実に簡単にできてしまいました。ちょっと驚きです。改めてディープラーニングの構築について書き留めてくださった先人の方々に感謝感謝です。
今後は本格的な機械学習のためにほかに何が必要なのか、CPUのみの場合と外付けGPUボックスを使ったときの比較など、より深い検証を進めたいと思います。

おまけ:外付けGPUボックスの有無でゲームのベンチマークを比較

※今回のブログの趣旨とは異なるので、あくまでもおまけとしてご参照ください。

せっかくなので「外付けGPUを使うと、どのくらい性能が上がるのか?」という点をお伝えしたく、わかりやすくゲームのベンチマークを使って比較したいと思います。

ハードウェア環境は上記の機械学習環境構築と同一で、OSをWindows10に変更し、
①CPUのみ
②CPU+外付けGPUボックス

この2パターンでゲームのベンチマークを比較しました。

■FINAL FANTASY XV
公式サイトベンチマーク

①CPUのみ

標準品質で「動作困難」………

②CPU+外付けGPUボックス

外付けGPUボックスをつければ、標準品質が「普通」!

高品質でも「普通」の結果です!
ご覧の通り、外付けGPUボックスを付けるほうが圧倒的に処理能力が上がります!

タワー型のゲーミングPCをお持ちでしたら不要かもしれませんが、外付けGPUボックスがあれば、動きがガクガクしたり途中で滞りがちなゲームの映像もサクサクなめらかに動くなど、より高度な処理能力を体験できると思います。

今回はゲームのベンチマークで性能を比較しましたが、「ディープラーニングにも外付けGPUボックスを付ける方が性能が上がりそう」ということが皆さんに伝われば幸いです!
普段はVESAマウントした小型PCで日常業務をこなしつつ、ゲームやeスポーツをやるときには外付けGPUボックスを使用するなど、ご自分のライフスタイルに合わせた構成を楽しんでみてはいかがでしょうか?

アミュレットではVESA T3の新モデルを販売致します!
今回の実験に使用したVESA T3(CPUは第8世代と第10世代から選択可能)と、さらにオプションで外付けGPUボックスも一緒にお届けできます!

POWERSTEP VESA T3 製品ページ / 見積依頼ページ

外付けeGPUボックスとセットならば、画像や映像・動画編集作業、ディープラーニングのほか、eスポーツやゲームにもおすすめです。