オッサンはDesktopが好き

自作PCや機械学習、自転車のことを脈絡無く書きます

RTX 2080Tiを2枚刺しして,ディープ・ラーニングしてみる

 こんにちは.changです. 今回はRTX 2080Tiを2枚刺ししてディープ・ラーニングを行い,1枚刺し,およびRTX 2080Ti + RTX 1080の組み合わせの場合との速度比較を行いました. 結果としては,RTX 2080Tiの2枚刺しが(条件付きで)最強でした.

0. 装着

 以前から使っているASUS*1の下に,先日購入したZotac*2を刺しました. Zotacはイルミネーションが無くて地味渋い感じですね. 2本とも外排気なので,空調もスッキリします^^.

f:id:changlikesdesktop:20201208063742p:plain:w400
ASUTとZOTAC(共にRTX 2080Ti)を装着

 GPUが認識されているか確認します.

f:id:changlikesdesktop:20201208060035p:plain:w400
nvidia-smiを実行.2本のRTX 2080Tiが認識されている

 tensorflowからも確認します.

$ python3  
from tensorflow.python.client import device_lib  
device_lib.list_local_devices()

f:id:changlikesdesktop:20201208060252p:plain:w400
tensorflowからdeviceをチェック.こちらでも2本のRTX 2080Tiが認識されている.

1. mnist

 先日,RTX 2080Ti と RTX1080 の組み合わせを試した*3ときと同じ条件(epoch=200,batch=512)でテストしました. 結果としては,41秒→35秒で約15%の削減となりました. 削減幅はRTX 1080を使った前回と変わらないのですが,シングルGPUでの計算時間が前回の68秒よりも遥かに短くなりました. 理由はわかりません. 計算時間にも秒単位のばらつきがありました. やはり,高負荷で比較しないと効果が分かり難いのかも知れません.

f:id:changlikesdesktop:20201208061212p:plain:w400
シングルGPUでの計算時間

f:id:changlikesdesktop:20201208061302p:plain:w400
マルチGPUでの計算時間

2. U-Net

 負荷の高い256×256画像のU-Netを使って,速度を比較してみました. シングルGPU かつbatch=8での1サイクル当りの計算時間は4.3 sec程で,RTX 2080Ti + RTX 1080時と変わりませんでした. 一方,batch=32は飛躍的に早くなり,2.15 sec程になりました(RTX 2080Ti + RTX 1080では3.25sec). シングルと比較すると,計算時間を半分相当に削減できることになります. やはり,マルチGPUは高負荷条件でこそ効果があり,また,効果を得るためには同じチップを使う必要があるようです

f:id:changlikesdesktop:20201208062448p:plain:w400
U-NetのおけるシングルGPU,batch=8での計算時間.

f:id:changlikesdesktop:20201208062504p:plain:w400
U-NetにおけるマルチGPU,batch=32での計算時間.

3. 結び

 やはり,RTX 2080Tiが最強なんですね. 何としても,もう何枚か買わないと!!!

 今回使ったソースはここ*4*5です.