UnityをGPUインスタンスで動かす時nvidia driverの選択には気をつけろ
可なり稀なケースかもしれないですが、AWSのGPUインスタンスを積んだインスタンスを使ってUnityを動かしたいと思った時に苦労した話と簡単なTipsを備忘録として残します。
cloudXRなどの実現のために困っている方は使えるかもしれないです。
特にNvidia driverをAWSの手順通り入れようとして困った方には役に立つかと思います。
あと調べると意外とAWSのインスタンス上でUnity動かす話は出てこないので、役に立てば幸いです。
対象
Unityのことはわかるけどインフラ周りなどAWSはわからんの人
結論
windows serverで動かすなら、公式AMIsを使った方がいい。
https://aws.amazon.com/marketplace/pp/prodview-xrrke4dwueqv6
Ubuntuで動かすなら公式AMIsはおすすめできない。
こちらでインスタンスを立てて、UnityをDLするのが現状おすすめ。
どうしてもの方は「NVIDIA ゲームドライバー」を使っていれてみてください。
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/install-nvidia-driver.html
ubuntuは検証中(後日追記します)
やりたかったこと
OS縛りなしでGPUインスタンス(G4dn)上でUnityEditorの起動
躓いたこと
Amazon linux2で動かそうとした
結果…失敗
MateによりリモートDesktop環境を構築してUnityをDLするところまでは行ったが、
Unityがクラッシュを繰り返す。
原因として考えられるのはUnityがOSに対応していない可能性(ベースがCentOSなので行けるかと思ったが無理でした)
Ubuntu で動かそうとした
結果…ドライバーを間違えると処理が遅くなる。
awsの提供しているNividaドライバーには3種類のものがある
・Tesla ドライバー
・GRID ドライバー
・ゲームドライバー
どれでも公式ドライバーなのだから問題なく動くのだが、
3Dグラフィックを用いる場合には問題なく動いているように見えて、パフォーマンスを最大限発揮できないということがあるので、この選択は注意
G4dnのインスタンススペックは以下のような値
・OS:Ubuntu20
・CPU: Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz ×4
・RAM:16GB
・GPU:Tesla T4
初めTeslaドライバーを入れて動かそうとしたが、
エラーなどで落ちることなくUnity自体は動く。
ただし処理が異様に遅くなる。
Mateなどの関係によるものかと考えたがそうではなく単純に処理できていないといった様子で、
CPU使用率が常にフルのような状態になる。
cubeを置いた初期プロジェクトでfps値は1661ms
次にGRIDドライバーを入れて動かしたがこれもTelaドライバーと同じような結果になる。
Windows serverで動かそうとした
Ubuntuと同じくTeslaドライバーで動かそうとしたが、Ubuntuで同様にfpsが以上に低いため動かない。
GRIDドライバーではまだ検証できていない。
公式AMIsで試した
公式AMIsを用いてインスタンスを立てれば問題ないかと思い、
Ubuntuの方のAMIsを使用したが
ただしこれは、VNCのタスクがキルされてるよくわからないエラーによって阻まれた。
下記にVNCが構成できないみたいコメントを見かけたのでいったん保留
https://aws.amazon.com/marketplace/pp/prodview-p64lyuknl2pys
windowsserverのNividia公式AMIsのみが快適にUnityを使うことが出来た。