従来はAWSでGPUを使ってDAZ Studioのレンダリングを高速化するにはDAZ Studioを起動するのに2段階の接続ソフトが必要でしたが、今回はElastic GPUを使って直接DAZ Studioを起動して使う方法を紹介します。
背景
DAZ StudioをAWS EC2上でGPU付きインスタンスを使う事でレンダリングを高速化する方法を紹介してきました。
【3DCG】DAZ StudioのレンダリングをPCはそのままで高速化する方法とは?!
しかし、この方法ではWindows標準の接続ソフトである「リモートデスクトップ接続」でAWSに接続した状態ではOpenGL1.1とDAZ Studioが認識してしまい、起動ができませんでした。
この課題を解決するために、DAZ Studioを起動できる「Chromeリモートデスクトップ」で最初に接続してDAZ Studioを起動した後で「リモートデスクトップ接続」に切り替えて操作するという2段階の接続ソフトが必要でした。
さらに、「Chromeリモートデスクトップ」で接続する際には仮想Windowsへのログインのパスワード入力に自動入力マクロソフトを併用して複雑で長いパスワードを入力するという手間もかかっていました。
しかし最近になって、AWS EC2でElastic GPUという新しいタイプのGPUが使えるようになり、この場合はOpenGL 4.3までサポートされました。
これにより、DAZ Studioやスケッチアップなどの主要な3DCGソフトが「リモートデスクトップ接続」から直接起動が可能になりました。
今回はElastic GPUを使ったインスタンスの作り方と使い方を簡潔に紹介したいと思います。
Elastic GPU付きのインスタンスの作り方
概要は以下のAWSドキュメントを参考にしてください。
https://aws.amazon.com/jp/ec2/elastic-gpus/
実際の作り方は以下のドキュメントに従って行いました。
https://aws.amazon.com/jp/ec2/elastic-gpus/getting-started/
なお、AWSを初めて利用するという方は以下の記事を参考にしてください。
従来は、GPU付きのインスタンスを作成するにはアマゾンのサポートセンター経由でGPU数の制限値を1以上にする申請が必要でしたが、今回のElastic GPUの場合も申請が必要なのかは不明です。つまり、私の場合はすでに申請済みなので今回もGPU付きインスタンスがすぐに作れましたが、もしエラー表示が出た場合は申請する必要があるかもしれません。
Elastic GPUを追加する方法は、従来のインスタンスの作成プロセスの途中で「GPUの追加」にチェックを入れるのみなので簡単です。
ただし、作ったインスタンスを起動後に、仮想Windows上で以下のドキュメントを開いて「Elastic GPU インストーラ」をダウンロードしてインストールする必要があります。
実際にインスタンスを作って動かすと、上記の追加設定をしなくてもすでにGPUドライバーはインストールされていてすぐに動くことが確認できています。
インスタンスを作る上での注意点
今回のインスタンスは「t2.xlarge(4vCPU, 16GBメモリー)」を選びました。
Elastic GPUが使える最低スペックは「t2.medium(2vCPU, 4GBメモリー)」ですが、それでも一応はDAZ Studioが使えて高速レンダリングも可能でした。
ただし、無料枠からは外れます。
私の場合は、Elastic GPUの設定の下にある「T2無制限」にチェックを入れています。
クレジットが枯渇するとパフォーマンスが落ちるのを避ける意味がありますが、保険みたいなものです。
「ストレージの設定」で、AWS開始後1年以内であれば無料のストレージ(SSD 30GB)が使えるのでそのままでOKです。
しかし、DAZ Studioのような3DCGソフトは、例え無料ソフトと言えどもかなりのストレージ容量を喰うので、30GBは使っているとすぐに一杯になると思います。
Windowsシステムだけで15GB程度を使っているからです。
そこで、私の場合は「マグネティック 100GB」を追加して使っています。SSDは使わないので削除します。
マグネティックにしているのはSSDより安く付くからです。容量は必要に応じてもっと大きな値に設定してもかまいませんが、それだけ課金は高くなります。
Elastic GPU用のセキュリティーグループはすでに設定されているので新たに作る必要はありません。
以上の点以外はデフォールトのままでOKです。
実際に使ってみた感想
DAZ3Dのサイトに行き、インストールマネージャー(IM)をインストールして一連の無料コンテンツを自動インストールするとDAZ Studio 4.10が使えるようになります。
DAZ Studioを初めて利用するという方は以下の記事を参考にしてください。
Daz Studio4.9を初めてインストールするかたへ。2016.1.23
私の場合は日本人的な以下のキャラクター(Chihiro)をRenderosityから購入してインストールして使いました。
https://www.renderosity.com/mod/bcs/chihiro-g3f-for-genesis-3-female/122929/
Genesis 3 Femaleがベースなのでポリゴン数が多い分だけレンダリング時間はそれなりにかかりますが、以下の画像(431x515pix)のIrayレンダリング時間は約10分でした。
使ったパソコンは2in1ノートPCでドスパラで3万円くらいで買ったAtom CPU(4コア)/4GB/64GBと、とてもそのままでは3DCGには使えないスペックですが、AWS EC2のElastic GPU付きインスタンスに接続して使うとなんとか使い物になります。
現状では通信速度が遅い(楽天モバイル・ルーター)のでマウス操作に対する画面への反映がもたつきますが、その代わりに、サイトと仮想Windows間で実際のデータ転送が行われるので、大容量のダウンロードやインストールを行っても、モバイル・ルーターの通信容量をほとんど喰いません。
従来の面倒なDAZ Studioの起動プロセスから解放されたので、割と気軽に3DCGが楽しめる環境が整ったと言えます。
★ちなみに、Chrome OSのASUS Chromebitで接続アプリによるAWSへの接続と、Google Cloud Platformの仮想Windows経由での「リモートデスクトップ接続」によるAWSへの接続によりDAZ Studio 4.10を起動して試してみましたが、両者ともプレビュー画面のカメラ操作が意図通りに出来ず実質的に使い物になりませんでした。
2019年8月現在では、Google GCP上のNVIDIA GPU付き仮想WindowsでAdobe CCアプリやDAZ Studio、SketchUpなどの3DCGアプリがAWS Elastic GPU付き仮想Windowsと同様に使えることが確認できました。
https://chrome-vr.blogspot.com/2019/07/chromebitphotoshop-ccdaz.html
GCPはどのような高性能なインスタンスでも最初の1年間は300ドルの課金までGoogleが肩代わりしてくれるので実質無料で使えます。
実際の課金額
最初に3時間ほど使った結果は以下のような課金額になりました。
・t2.xlargeインスタンス:$0.24 $0.08/Hr
・Elastic GPU:$0.3 $0.1/Hr
・EBS(マグネティック 100GB):$0.18
合計:$0.72/3Hr $0.24/Hr
★翌日さらに3時間ほど使った後で合計6時間の課金額を確認してみました。
・t2.xlargeインスタンス:$1.42 $0.24/Hr
・Elastic GPU:$0.56 $0.1/Hr
・EBS(マグネティック 100GB):$0.73
合計:$2.71/6Hr $0.45/Hr
従来は$1/Hrくらいの時間課金と約$6/月のEBS(SSD 50GB)課金だったので、かなり安く使えるようにはなりましたが、インスタンスとEBSの時間単価が大きく変化したので、これから暫くは使わないようにして課金額の変化を見てみるつもりです。
★2018年4月末時点でのAmazonからの請求額の明細:
この程度しか使わない場合は、ディスク容量(EBS)への月額課金がほとんどを占めます。
これはほぼ固定料金なので、どう使うかは利用状況に応じて検討する必要があると思います。
まとめ
課題としては、通信速度を上げてレスポンスを良くするか、仮想Windowsは高速レンダリングに徹するようにして、デスクトップPCとデータの共有を図るようにするか?悩ましいところです。
当面は、WiMAXの使い放題を導入してレスポンスが上げられるのか試そうかと考えていますが、実際問題としては、スムーズにデスクトップPCと仮想Windowsの間でデータの共有が出来た方が現実的な気がしています。
★2018年5月時点での検討結果:DAZ StudioはデスクトップPC上で使い、レンダリング・エンジンは「LuxRender」または「LuxCoreRender」にします。
有料の「Reality」というプラグインが必要になります。これには「LuxRender」も含まれます。けっこうセールスやキャンペーンで安くなるので要チェックです。
GPUによるレンダリングの高速化は、Google Cloud Platform(GCP)で、従来はGPU付きの仮想Windows上でLuxRenderスレーブを立ち上げて分散レンダリングで実現していました。
しかし、AWSのElastic GPU付きの仮想Windows上で3DCGソフトが直接起動できるようになってからは、少々事情が変わって、LuxRenderをGPUで高速化するのが出来なくなりました。
そこで、GCPの仮想Windowsを16vCPUでGPU無しに変更する事で、vCPU数を増やしてLuxRenderの高速化が出来たので、分散レンダリングによりパソコン/AWS単独の場合より4倍以上の高速化が実現出来ました。
こうすれば、レンダリング時だけ仮想Windowsを利用すれば良いので効率的です。
以下の記事でIrayとLuxRenderの画質の違いが確認できます。
【DAZ Studio】AWS EC2とGCP GCEでIrayとLuxRenderの速度と画質を比較?!
Irayの場合は、AWSのElastic GPUで10倍以上の高速化が可能なので、DAZ StudioではLuxRenderを使う必要性は感じません。LuxRenderはスケッチアップなどの3DCGソフトで使うと良いと思います。
さらに、LuxRenderは「フィルムカメラの操作をシミュレーション」出来るので楽しみ方の幅が広がります。富士フイルムやコダックといった各種フィルムが選べます。
しかも、レンダリング中にそういったシミュレーションのパラメーター(フィルムの種類、シャッター速度や絞りなど)を変更しながら画像処理がオンザフライで可能です。
これは画像データをHDR(浮動小数点)で生成するからです。画像処理はLDR(固定小数点)へ変換するプロセスで行うので、こうした処理が可能です。
DAZ Studioで美少女CG的な作品を作りたい方には以下のサイトが参考になります。
FaceGenという1枚の顔写真から精密な3Dの顔データを生成してDAZ Studioで使う方法は以下の記事を参考にしてください。
【3DCG】DAZ Studioで顔写真からポートレートを作るポイントとは?
ではでは、きらやん