2014年2月26日水曜日

GPUと仮想化

近頃のパソコンは仮想化関係の機能がとても進んでいて驚いてます.
Parallels Desktopの現行バージョンでは,FireWireデバイスを仮想マシンに直接接続できるので,オーディオI/FをASIOで直接鳴らすことまでできてしまいました.

しかし,一番驚いたのがDirectX 10のサポート.
DirectXは,バージョン10でハード/ソフトの両レベルにプリエンプティブマルチタスクみたいな機構を取り入れたようで,「決め打ち一本処理ぶんまわし器」のようなDSP的な処理機構だったGPUも,なにやら抽象化されたタスクやメモリ空間を扱うような時代に.
仮想化界隈もこの技術の恩恵を受けて,劇的な実効性能の改善が図られているようです,

当初,最新のOSを仮想マシンで動かしても処理のオーバーヘッドが大きくなるだけで速くならないだろうと思ってたんですが,そんなこんなで話はもうすこし複雑でした

Windows XPがサポートしているのはDirectX 9まで.
最新のWindows 8.1を導入して,DirectX 10アクセラレーションを効かせてみると…

Parallels Desktop 9 on OS X Mavericks 10.9.1 
Xeon X5650 2.66GHz 6コア中2コア割り当て
Radeon HD7850 1GB中512MB割り当て
「ファイナルファンタジーXIV: 新生エオルゼア ベンチマーク キャラクター編」でテスト

Windows XP SP3


Windows 8.1


凄い!
最新のモバイル&ミニデスクトップ向け内蔵GPUであるIntel Iris Pro 5200を上回る性能.
MacBook Proのトップモデルでネイティブ起動したWindowsと同等以上のパフォーマンスが,仮想マシン上で手に入っていることになります.

(ちなみにネイティブ動作では,フルHDの最高品質設定でスコアは7400らへんでした)


2014年2月20日木曜日

x86のAndroidエミュレータでlibGDXを走らせてみた

Androidでのテストは「Nexus 7」の実機で行っているので,仮想環境は今のところ不要.
とはいえ,前のマシンで話にならなかったのがどの程度改善したかなと思い,仮想環境での動作を試してみました.

Atom仮想マシンを使ってAndoidを起動.ホーム画面やブラウザは結構スムーズに動く!

これはちょっと期待できるかもと思い,制作中のプロジェクトをx86向けにビルド.
libpdのpd-for-androidはx86向けのコンパイルオプションが最初から入っているので何も考えなくてOK.
libGDXは現在の安定板ではx86非対応ですが,タイミングの良いことに開発中のnightly buildがサポートを始めているので,ライブラリを最新のものに差し替え.ビットマップフォント表示の関数でバグが出ましたが,そこだけコメントアウトしてあっさり起動しました.



描画はせいぜい30fps.マシンパワーにはまだ余裕があるのでAVD側で間引いている気がします.音も一緒に間引かれたような感じで潰れた音になってますが,一応は止まらずに動いてます.取り急ぎのテストということで.

MacのGPU事情に関する疑問

Eclipseが重すぎるので、制作環境をMac Pro(アルミメッシュ筐体の旧式)にアップグレードしました。
DAWでゴリゴリ曲作るよりもテキストベースのコーディングのほうがマシンパワーを食うというのは,なんかすごい時代だなぁとつくづく思いますが…

旧式とはいえ久々のニューマシン.EclipseとLogicとPdを立ち上げて音楽プログラミングをしながら、ブラウザのタブを何十個も出してヘルプサイトを参照しつつ、ニコ動巡回しながらParallelsでエロゲやっててもまだまだ余裕があります!!すごい!!(集中しろよ


さて,Mac ProはCPUやビデオカードの換装が可能なので、中古相場が落ちついてきた2009年モデルをベースに色々とカスタムしたのですが、ビデオカード選びで少々悩みました.