Geforce RTX 3090でAIのクリスマス

今年も残りわずか

今年は何といっても新型コロナを発端にして、100年に1度の歴史的な年になりました。感染防止の観点から人との接触をできるだけ避けることが推奨され、今尚、社会は大混乱に巻き込まれています。歴史的な出来事として、リモートワークやweb会議が普及したことも挙げられますね。私自身リモートワーク中心の生活を9か月以上続けております。学会をはじめ、各種セミナーもzoom等を利用したリモート開催に切り替わったおかげで、移動せずに多くの会議に出席することができ、いつもの年より多くの情報を得ることができました。ただし、コミュニケーションが激減したことにより得た知識の定着率を押し下げているので、成長率は年相応にマイナス成長なんだと思います。

WSL2でGPUが使えるようになりました

話は変わりますが、6月中旬にWindows 10 Insider Preview Dev Channel からGPU対応WSL2を利用可能なビルドが降ってきました。
WSL2は仮想マシンプラットフォームを利用した誘う環境で、UbuntuなどのLinux環境をWindowsマシン上で利用できるようになります。
WSL自体は以前からあったので使っている方も多いのではないかと思いますが、GPUが利用できるようになったので、Windows環境でLinux版のディープラーニングを簡単に動かすことができるようになりました。

次世代アーキテクチャ「Ampere(アンペア)」発売


今年5月にはハイエンドGPU「NVIDIA A100」が発売になり、同じく9月にはGeforce RTX 30シリーズが発売になりました。深層学習で利用する場合、クロック、コア数、メモリが重要な要素にありますが、Geforce RTX 3090は、CUDAコアが10496もあり、今でのハイエンドGPUの倍以上コア数になりました。またメモリも24GBと今までの11GBと比べ2倍以上になっています。(メモリはネットワークのノード数・深さ・バッチサイズに影響します。)さぞかし速いのだろう・・・「発売日は前夜から並んで購入」というのがパーツ屋さんの恒例行事でありましたが、今年はコロナ禍・・・密はいけないということで、抽選販売(PS5なんかもそうですよね)がインターネット上で繰り広げられていました。
当たらないだろうなと思いながらも応募してみたところ、運よく(?)購入できることになりました。(今年の運を全部使い果たしたのではないか)

CUDA 11.0以降でないと認識されない

しかし、CUDA11.0以上でないと認識されない問題とかがあって、購入後しばらく使えない状態が続いていました。CUDA自体のバージョンアップはすぐできるのですが、深層学習に使うフレームワーク(TensorFlowとかnnablaとか)がCUDA11に対応していないと計算できない問題があるため、フレームワークの新バージョン提供待ちに相成りました。(そうこうしているうちにどんどんGPUの値段が下がってかなり損した気分ですw)

SONY Neural Network Libralies 1.14.0 がリリース

先週、やっとCUDA11対応のnnabla1.14.0がリリースされましたので、ベンチマークしてみました。
以下のようにwindows10のWSL2にUbuntu18.04を入れて、いくつか学習時間を計測しました。

対象
Graphics Card: Geforce RTX 3090 空冷 OCモデル
DriverVersion: 465.12
Base OS: Windows 10 Pro Build_20277.fe_release.201207-1545
OS: Ubuntu 18.04 on WSL2
CUDA runtime version: cuda-repo-wsl-ubuntu-11-1-local_11.1.0-1_amd64.deb
cuDNN version: cudnn-11.1-linux-x64-v8.0.5.39.tgz
比較対象
pascal Geforce GTX 1080Ti 11GB 水冷
volta DGX-Station V100-32GB (single・水冷)

nnablaとサンプルプログラムをpipでインストールしました。

以下の3つでベンチマークを行いました。
1. nnc1.9付属のセマンティックセグメンテーションサンプルプログラム
unetlike_125px.sdcprojでできるnet.nntxtをnnabla_cliで学習させてみました。

2. nnablaのサンプルプログラム:GANs/cycle-gan
cycleGANのサンプルです。

シマウマ<->馬変換で有名なGANsです

ICCV 2017
“Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks”
Jun-Yan Zhu, Taesung Park, Phillip Isola, Alexei A. Efros
Berkeley AI Research (BAIR) laboratory, UC Berkeley

 

3. 異常検知のオリジナル学習
異常検知用に開発したオリジナルサンプル

結果

case 3090 1080ti v100
1 1 h 08 m 00 s 2 h 16 m 06 s 1 h 22 m 46 s
2 9 h 31 m 24 h 30 m 13 h 30 m
3 38 m 55 s 1 h 32 m 28 s 36 m 46 s

コア数が効いているので、DGX-StationのシングルGPUより速い場合もありました。今回はバッチサイズをデフォルトのまま動かしましたが、メモリ容量の限界まであげることで更なる高速化も見込めるかもしれません。ただし、高温注意中です。83℃位まであがり、途中からNVIDIA GPU Boostが効かなくなる場合がありました。その点、水冷は60℃未満で推移しますので、常にNVIDIA GPU Boostが効いているようです。(Case3が遅くなっている原因かもしれません)

まとめ

Geforce RTX 3090は、V100-32GBと比べてほぼ同じか速く、定価も約1/8程度とかなりお安いので、クリスマスプレゼントにオススメですねwww
1080Ti(3世代前)の2倍以上速いですが、定価は2倍程度です。ただし、1080Tiは中古も出回っているため、1080Tiの方が3090の1/4以下で購入できるかもしれません。(そういった意味では1080Tiの2枚刺がコスパが高いのかも)
どうせ巣ごもりなので、GPUで暖を取りディープラーニングで面白空間を学習しながらクリスマス・お正月を過ごすのも悪くはありませんね。

おまけ

エコモット(株)データアナリティクス部では、絶賛、課題解決エンジニア(研究員)を募集しています。来年、札幌でディープラーニング生活を送りたい方の応募お待ちしております。