デル アンバサダープログラムに当選したのでゲーミングPCのレビューしてみました(その3)

ようやくうまくいきました。うまく行かなかったら【ゲーミングPCでWSL2でGPUを使う設定を試してみた】とする予定でした。 設定がうまく行かず10回以上もUbuntu を入れたりDockerをいれたりとしていて、やっているうちにグダグダになり力尽きた感じになっているので割と淡白な内容になっています。

f:id:ueponx:20210224010810p:plain

今回はゲーミングPCのGPUTensorFlowからも使用できないか試してみたというものです。Linuxを入れるというのも当然ありですが、今回はWSL2環境でのUbuntuから使用しています。最近のWindows 10 Insider ProgramのバージョンからWSL2上のOSからもGPUが使用できるようになったようです。正式リリースまではまだあると思いますが、ちょっと試してみた。そして今回もハマったとなります。NVIDIAサイトにも情報があるのでこちらも参考にしてください。

docs.nvidia.com

実際に使用した環境

  • PC : DELL ALIENWARE M15 R3ゲーミング ノートパソコン
  • OS : Windows 10 Home(64bit)
  • GPU : NVIDIA GeForce RTX 2080 SUPER 8GB GDDR6 with Max-Q Design

やったこと(その1)

以下を参考にさせていただきました。

www.kkaneko.jp

Windows 10 Insider Programの有効化(Windows 10 Insider Preview 20150以降)

既に行っているようであれば不要

自分が行ったときのバージョンをwinverコマンドで表示すると以下の様になっていました(2021.02.20現在)。

f:id:ueponx:20210223235357p:plain

WSL2の有効化

既に行っているようであれば作業は不要です。

過去にも同様の作業を行っているのでそちらを参考にして設定を行ってください。

uepon.hatenadiary.com

Ubuntu のインストール

Microsoft StoreアプリからUbuntuを検索してバージョン20.04LTSをインストールします。

18.04LTS(以下18.04)も表示されますが今回は20.04LTSをインストールします。バージョンによって必要になるドライバやライブラリの依存関係が異なるので注意してください。同じ手順では18.04ではTensorFlowは動作していません。

画面上部の【インストール】ボタンをクリックするとUbuntuがインストールされます。

f:id:ueponx:20210223235727p:plain

インストールが完了したらボタンが【起動】と表示が変更になるのでそれをクリックするとコンソールが開きます。 スタートメニューにもUbuntu20.04LTSは表示されているのでそれをクリックしても同様にコンソールが開きます。

f:id:ueponx:20210224000200p:plain

起動すると初期ユーザ名とパスワードを尋ねるので、入力をしておきましょう。

f:id:ueponx:20210224005024p:plain

WSL の Ubuntu の更新の確認

Powershellなどで以下のように実行します。

wsl uname -r

バージョンが4.9.121以降になっていることを確認します。今回確認したところ以下のような表示になっていました。

f:id:ueponx:20210224000532p:plain

異なっていれば以下を実行して更新作業を行ってください。

wsl --update

プレビュー版の NVIDIA グラフィックスドライバのインストール

一旦、Ubuntuを停止させるために以下をPowershellから実行します。

wsl --shutdown

つづいて、プレビュー版の NVIDIA グラフィックスドライバは以下よりダウンロードを行います。(要ユーザ登録)

developer.nvidia.com

ドライバは2つありますが、必ずGeForce用のものを使用することに注意をしてください。

f:id:ueponx:20210224000944p:plain

Ubuntu上ではドライバは必要ありませんのでインストールする作業は不要です。

インストール後にドライババージョンは以下のようになっていました。

f:id:ueponx:20210224004653p:plain

WSL2上のUbuntuでの初期設定

以下を行っておきます。apt関係の初期化とパッケージのアップグレードです。また、この時点でPython3のバージョンアップを行っておきます。

sudo apt update
sudo apt -yV upgrade
sudo apt -y install python3-dev python3-pip python3-setuptools python3-numpy

NVIDIA CUDA ツールキットのインストール

以下のサイトからCUDAツールキットのダウンロードとインストールを行います。サイト上で、OSや入れるツールキットのバージョンを尋ねられるので、

developer.nvidia.com

それに答えると以下のような作業手順が表示されるのでこれを実行していきます。 今回はUbuntu20.04LTSに入れるTensorFlowがCUDAツールキットのバージョン11.0を必要とするので以下のようになっています。

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget http://developer.download.nvidia.com/compute/cuda/11.0.2/local_installers/cuda-repo-ubuntu2004-11-0-local_11.0.2-450.51.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-0-local_11.0.2-450.51.05-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-0-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda

※参考にしたサイトのそのままを行うとバージョン10.1がインストールされます。そのまま作業を行ってもTensorFlowがライブラリバージョンを確定的に行っているようなのでそのままでは以降で失敗するようです。

sudo apt -y install nvidia-cuda-dev nvidia-cuda-toolkit nvidia-cuda-toolkit-gcc

TensorFlow 2.4.1 のインストール手順

事前にアプリケーションパッケージのアンインストール

インストールに先立ち、トラブルになりそうな現存のパッケージを一度消去します。

sudo apt -y remove python3-keras
sudo pip3 uninstall -y tensorflow tensorflow-cpu tensorflow-gpu tensorflow_datasets tensorflow-hub keras

libcudnnをインストールする

必要となるcuDNNライブラリを、以下から環境に合わせてダウンロードを行います。

https://developer.nvidia.com/rdp/cudnn-download

認証が必要なのでwgetなどでは簡単に取得できないので、一旦Windowsにダウンロードしてから、WSL環境にコピーするほうが作業が楽です。 今回はCUDA11系に合わせて以下のものをダウンロードしていきます。

f:id:ueponx:20210224002104p:plain

WSL環境に持ってきたら以下を実行してインストールを行います。

sudo dpkg -i libcudnn8_8.1.0.77-1+cuda11.2_amd64.deb

パス及びライブラリパスの環境変数設定

インストール時にライブラリの格納される場所がバージョンによってまちまちになるようです。今回は以下のようにコマンドラインから設定しました。 常用するのであれば.bashrc.profileに追記しておくのが良いでしょう。

export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"

GPU 版 TensorFlow をインストール

あとはGPUを使用できるTensorFlowをインストールしていきます。依存関係のあるライブラリも同じくインストールを行っています。testresourcesに関してはaptでもインストールできるようなエラーメッセージが表示されますが、20.04ではインストール出来ないようです。そのためpipを使用してインストールしています。また、absl-pyはTensorFlowが0.10を要求するのでバージョンを指定してインストールしています。

sudo pip3 install testresources
sudo pip3 install absl-py==0.10
sudo pip3 install tensorflow-gpu tensorflow_datasets

エラーなく終われば、インストール作業は完了します。

確認

TensorFlowの実行

python3 -c "import tensorflow as tf; print( tf.__version__ )"

実行結果

$ python3 -c "import tensorflow as tf; print( tf.__version__ )"
2021-02-23 02:55:04.207914: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0
2.4.1

メッセージが表示されますが、libcudart.soが読み込まれたと表示されているので問題はないです。

GPUの認識

以下のコマンドで実行を行います。今回はGPU対応なので、CPUとGPUのどちらもが使用できるようになっているかを調べています。

python3 -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"

ログ抜粋

[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 8503975052678194352
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 6889034240
locality {
  bus_id: 1
  links {
  }
}
incarnation: 7826019862202533636
physical_device_desc: "device: 0, name: GeForce RTX 2080 Super with Max-Q Design, pci bus id: 0000:01:00.0, compute capability: 7.5"
]

GPUもちゃんと表示されています。

CPU版だけを使用する場合には…

CPUのみを使用する場合には先程のインストールのコマンドを少し修正すればOKです。

sudo pip3 install testresources
sudo pip3 install absl-py==0.10
sudo pip3 install tensorflow-cpu tensorflow_datasets

とします。

CPUのみ対応のTensorflowの実行確認

ログ抜粋

$ python3 -c "import tensorflow as tf; print( tf.__version__ )"
2.4.1

$ python3 -c "from tensorflow.python.client import device_lib; print(device_lib.list_local_devices())"
2021-02-23 23:26:07.670924: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 17669417124090449221
]

f:id:ueponx:20210224004410p:plain

バイス情報のGPUに関しては表示されていません。あと、表示されるログが少ないです。

ベンチマーク

ではベンチマークをしてみたいと思います。今回は以下のものを使用しました。適切なのかはちょっとわからないのですが、GPUがちゃんと動作しているかを 見るのであれば問題ないと思って採用しました。

github.com

こちらも参考にしています。

direct-blog.applied-g.jp

以下のようにリポジトリを取得してベンチマークを計測しています。

git clone https://github.com/tensorflow/benchmarks.git
cd benchmarks/scripts/tf_cnn_benchmarks
python3 tf_cnn_benchmarks.py --num_gpus=1 --batch_size=32 --model=resnet50 --variable_update=parameter_server

実行結果抜粋

Done warm up
Step    Img/sec total_loss
1       images/sec: 170.0 +/- 0.0 (jitter = 0.0)        7.765
10      images/sec: 171.2 +/- 0.3 (jitter = 0.5)        8.049
20      images/sec: 171.5 +/- 0.2 (jitter = 0.4)        7.808
30      images/sec: 171.4 +/- 0.2 (jitter = 0.6)        7.976
40      images/sec: 171.3 +/- 0.1 (jitter = 0.6)        7.591
50      images/sec: 171.2 +/- 0.1 (jitter = 0.7)        7.549
60      images/sec: 171.2 +/- 0.1 (jitter = 0.7)        7.818
70      images/sec: 171.1 +/- 0.1 (jitter = 0.6)        7.820
80      images/sec: 171.1 +/- 0.1 (jitter = 0.7)        7.849
90      images/sec: 171.0 +/- 0.1 (jitter = 0.7)        8.027
100     images/sec: 170.9 +/- 0.1 (jitter = 0.9)        8.030
----------------------------------------------------------------
total images/sec: 170.76
----------------------------------------------------------------

比較対象がよくわからないので困った感じですが、他の値と類似しているようなのでGPUはちゃんと動いているようです。 ノートPCに入っているGeForceのMax-Q Designシリーズはデスクトップ搭載のカードよりも動作が遅いようですが、今回の計測でも遅くなっているようです。

おわりに

ゲーミングPCに搭載されているGPUを、ゲーム以外でもしようしてみようというネタでした。DELLさんのモニターなのに全くゲームをやっていないというのは問題だよなあと思うのですが、 そこまで3Dのゲームをやっているというユーザでもないので、正直スマんという感じです。

とはいうものの、購入するユーザの中にはGPUを目的に購入する方も多いのかなと思いますし、そういう方の参考になればと思います。

f:id:ueponx:20210224223913p:plain

デル アンバサダープログラムに当選したのでゲーミングPCのレビューしてみました(その2)

前回からデル アンバサダープログラムでお借りしたゲーミングPCのレビューをしています。今回はその第2段です。その1では外見やポート、ACアダプタなど外見に関わる部分をみていきましたが、今回はゲーミングに関わる部分をみていきたいと思います。

自分はSTEAMでゲームをしていますが、内容はメトロイドヴァニア系と推理系のゲームしかしていません。そのため3Dバリバリのゲームに関してはあまり行っていません。STEAMのゲームは法人向けの小型中古PC(HPのものを使っています)にGTX1650 を内蔵させてやっています。それでもほとんどストレスがないので、3Dゲームに関する需要はないのかも。今回は折角のRTX2080 Superという環境なので、3Dゲームのベンチマークもとってみたいと思っています。

続きを読む

デル アンバサダープログラムに当選したのでゲーミングPCのレビューしてみました(その1)

人生初めてのPCの商品モニターができることになりました。昔はこんなことに当たることもなかったのですが、最近はこういうこともあるんだなと思う程度には当たるようになってきました。ブログに書くなどの情報を出さなければならないのですが、それでも比較的あたらしいPCを触らせてもらえるのは嬉しいものです。特にGPUが強めのPCになるという点は非常に参考になります。

今回のモニタープログラムは「デル アンバサダープログラム」のモニターとなります。今回使用させていただいたのはDELLのゲーミングPCAlienware m15 R3となります。

www.dell.com

15インチサイズですがGPUはRTX 2070 Super with MAX Qとかなり強めのものが乗っています。RTXシリーズの3000番台ののったノートPCもようやく出てきたという状況ではありますが、2000番台もまだまだ現役かなと思います。4kのグラフィックスを使用するのであれば3000番台という選択肢になるでしょうが、2kのグラフィックスであればパフォーマンスも問題なく発揮してくれることでしょう。17インチサイズの型番を借りる選択肢はありましたが、実際に使用するのであれば15インチが妥当だと思います。

続きを読む

【RaspberryPi】WEBサイネージ化してみる

もう2月。そろそろ昨年のアドベントカレンダーに関しても落ち着いてみられるようになってきたので、ちょっと気になったので試してみましたという内容のエントリーとなります。 今回はIoTLTアドベントカレンダーにてでていた内容です。放置しているRaspberry Piを使ってWebを全画面表示するようなものを表示して便利に使っちゃおうという感じの内容です。

以下を参考にさせていただきました qiita.com

hirameq.jp

数えてみると、家にRaspberryPiが数台…数えたら8台(RaspberryPi3は4台…)ありました…。流石にこれだけ台数があっても使い切れないのですが、こういうネタで用途が生まれると嬉しいです。 ということで早速やってみましょう。

続きを読む

【RaspberryPi】にもVisualStudioCodeをインストールしてみる

完全に小ネタ。昨年、Raspberry Piでも簡単にVisual Studio Codeをインストールできるという話があったので、いつかはやってみなきゃというところでしたが時間が取れずにここまで来てしまいました。少し前にChromebookにもVisual Studio Codeをインストールしていたというタイミングでもありました。

uepon.hatenadiary.com

ってことで今回はRaspberry Piにインストールしてみたというわけです。 インストールの内容は他の方も書いているのでTwitterでもいいかなと思ったけど、折角メモをしていても消えるともったいないのでこちらにおいておくことに。

以下で詳しく書かれているので、ぜひこちらを見てください。

qiita.com

続きを読む