AIプログラムとかUnityゲーム開発について

探索や学習などを活用したAI系ゲームを作りたいと思います。

いまさらRTX2080Ti買って、CUDAで機械学習

色々と迷ったがRTX2080Ti中古を購入しました。税込み79800円
新品だといまだに15万円ぐらいで売ってるので約半額

ただ、RTX3080が10万円ぐらいで売ってるので微妙ではある
RTX3070も10/29の深夜販売が予定されていて、価格もおそらく79800円ぐらい
CUDA数は2080Tiより多い(ただしVRAMは少ない)
ドスパラ、GeForce RTX 3070の夜間販売を29日22時から実施 - AKIBA PC Hotline!


ただ、色々とググってみる限りRTX30xxでTensorflowはうまく行ってないって人が多い
Ubuntu上ならなんとかなる気もしたけど、Unityのゲーム開発はWindows上でやってるのでできれば環境はWindowsで作りたい
ということで、RTX2080Tiにしました。
電源の650Wのゴールド買ってるんでなんとかなるでしょうし
本当は、GTX1080あたりでもいいんだけど、価格差が5万円でCUDA数は激増するんで

GPUで動くように色々ダウンロード

まずはCUDA Toolkitをダウンロードする

qiita.com

Unityの中の人の記事を参考にtoolkit 9.0.176をダウンロードしてみたが、インストールしてみると、RTX2080Tiが新しすぎて対応してないエラーが出るので断念
10.1をインストールしてみる(現状11が出ているが、最新版は避ける)問題なくインストールできたらしい
cuda_10.1.243_426.00_win10.exe
というのをDLした

次はCUDA Toolkit10.1に合う、cuDNNをダウンロードする
これにはnVidiaのアカウントが必要。以前GTX1060を買った時にすでにアカウントは作っていたらしい
for 10.1になってるcuDNNをダウンロードする
cudnn-10.1-windows10-x64-v8.0.3.33.zip
というのをDLした

CUDA Toolkitのインストール先にcuDLLを解凍したものを上書きコピーする

あとは、以前と同じmlagents-learnからconfigファイルを指定して学習を開始
Unity editor側でplayを押せとでるので学習を開始する
RTX2080Tiの名前も出てるし、特にエラーになってない
学習自体も速くなっている気がする(前回のCPUでの学習で時間を計っておけばよかった)

f:id:yasu9780:20201028095946p:plain

実はcuDNNをCUDA toolkitにコピーするのを忘れててml-agentsやってみたんだけど
GPUも検出してたし、学習も速くなっていた
cuDNNをコピーして再度学習やってみたが、速度的には同じぐらいだった
cuDNNって本当にいるんだろうか? じつはCUDA ToolkitだけでGPU機械学習できるようになってるのかもしれない?

8万円も払ったありがたみを感じるためにもCPUだけの学習と速度比較をしたかったが
CPUのみの学習環境をまた作るのは面倒くさいので、もういいや
確かに速くなっているんだから ( ^ω^ )

DLLが無いってエラーが出ている?

コンソールの出力をよく見ると、cudnn54_7.dllが見つからないってエラーが出ている
ちょっと調べてみる
初めDLLにパスが通ってないだけかと思ったら、ダウンロードしたcuDNNがcudnn64_8.dllでバージョンが違うみたい
該当するcuDNNを再度ダウンロードしてみる

cudnn54_7に合うバージョンをNVIDIA GPU Computing Toolkit\CUDA\v10.1にコピーし直したらDLLがnot foundのエラーは出なくなった
環境構築成功

GPUの効果はあるのか?

深層学習 TensorFlow GPU を入れてみました | ecobioinfo.com – 環境・生物・情報処理 -

GTX1030みたいな1万円以下のビデオカードで学習が2時間→6分になったって書いてる記事があったけど
うちの環境大丈夫かな? そこまで速くなった気がしないんだけど。・゚・(ノ∀`)・゚・。 
学習中にGPUのパフォーマンスも全然上昇しないし
ml-agentsでGPU使っても速くならないって記事も見た覚えがあるんだけど?
大丈夫かなあ?。・゚・(ノ∀`)・゚・。 

ML-Agentsで強化学習サンプル動かしてみる - AIプログラムとかUnityゲーム開発について
CPUだけで学習した時の学習時間と比較してみたけど2倍ぐらいしか速くなってないんでは?
ちょっとまってよUnityさん大丈夫なの? 。・゚・(ノ∀`)・゚・。 


3Dballは2倍しか速くなってないけど、前に試したCPUだけのサッカー学習だと4倍ぐらい速くなってたんで
CUDAの効果は出てるっぽい
サッカーはエージェントが4人いてRayも出しまくってて学習データがでかいので、より効果があるのかな?
3dBallは単純なんで、CPUとGPUのやり取りとかのオーバーヘッドで効果が出にくいのかもしれない。
一応RTX2080Tiを買った意味はありそうなんで良かったです(*'ω'*)

ML-Agentsで強化学習サンプル動かしてみる - AIプログラムとかUnityゲーム開発について

サッカーは10分で40万stepsぐらい学習出来てるので、1時間で240万steps、24時間で5760万stepsぐらい学習できる感じ
でもタスクマネージャーで見るとGPUは8%ぐらいしか働いてないので、絶対遊んでるんだけどなあ
100%近く行けば、まだ10倍速くなるんじゃないのかねえ? どっか間違ってる気がする

RTX中古を安く買うには

古通販を色々と調べた限り、ねらい目はドスパラ古通販である

ドスパラPalitってメーカーと独占契約をしているので、BTO機などにPalitGeForceを採用している
そのせいか、中古ショップにPalitGeForceが山ほどある
現在(2020/10/28)RTX2080Tiが税抜き70900円で選び放題
ZOTACでLED点灯が故障してる奴は税抜き64900円という激安

今回はじゃんぱらで買ったが、Palit 77800円 Palit Gaming 79800円という値付け
他の中古でRTX2080Tiを7万円台で売ってる店は現状はほぼ無い
メルカリの個人だと75000円前後で買えるが、個人だと保障の面で問題がある
じゃんぱらは会員購入すれば初期不良1カ月)
ただ、RTX3070の販売が開始されれば中古RTX2080Tiはさらに値下がりするかもねえ
ただ、VRAMの大きさの違いは大きい

used.dospara.co.jp