数か月前に4Kテレビを購入したのをきっかけに、RTX3070を搭載したゲーミングマシンを購入しました。Windows11にアップデートするとWSL2のUbuntuでGPUが使えるようになったので、nvidiaのDockerランタイムを使ってどの程度のパフォーマンスが出るのか調べてみました。ベンチマークに使用したのは、以前の記事で使用したソースと同じで、比較のためほかにも3種類の環境で測ってます 。結果は以下の通り。
| GPU | CPU | OSまたはDockerイメージ | Python | cuda | TensorFlow | time/1Epoc(秒) | 備考 |
| nvidia GeForce GTX 970 | Intel Corei7 6700 | Ubuntu20.04 | 3.9 | 11.5 | 2.6 | 5 | 数年前に購入したゲーミングPC |
| nvidia GeForce RTX 3070 | Ryzen7 3700X | Windows11 | 3.8 | 11.6 | 2.6 | 2 | 今年購入したゲーミングPC |
| nvidia GeForce RTX 3070 | Ryzen7 3700X | nvcr.io/nvidia/tensorflow:21.09-tf2-py3 | 3.8 | 11.6 | 2.6 | 7 | 上のPCにWindows11+WSL2+Ubuntu20.04+Docker CE+Nvidia-Dockerをいれた |
| Tesla K80 | 不明 | Ubuntu18.04 | 3.7 | 11.2 | 2.6 | 7 | Google Colaboratory |
上から3つ目が今回WSL2のubuntuの上のdockerで動かした結果になります。2つ目と3つ目は同じPCで測定しているのですが、直接WindowsにインストールしたPythonで実行したときに比べて3倍以上遅くなってしまいました。環境構築方法がまずかったのか、あるいはWindows11が出たばかりでチューニングがされていないのか、それともやっぱりWSL2は遅いのか。原因はまだわかっていませんが、ずっと期待して待っていただけに残念です。
予想に反して健闘したのは、以前に購入したゲーミングPC(GTX970)です。Windows10からUbuntu20.04に変更したのですが、そのためか1秒だけ速くなりました。一方、Google Colaboratoryは前回測定時は4秒だったのに今回は7秒まで落ち込んでしまいました。割り当てられるGPUはその時によって違うらしいので、そのためかもしれませんが、こんなに違うものなのですね。ちなみに、今回ベンチマークに使用したノートブックはこちらです。