最強.NET開発PCを作るよ(その6)

最強.NET開発PCを作るよ(その1) はじめに
最強.NET開発PCを作るよ(その2) メモリ編
最強.NET開発PCを作るよ(その3) CPU編
最強.NET開発PCを作るよ(その4) ストレージ編
最強.NET開発PCを作るよ(その5) マザーボード編

の続き

image

時代はデュアルモニタ(マルチモニタ)ってことで、グラフィックボードを購入します。3D ゲームを全然やらないので、グラフィックボードに関しても私は素人です。なので、ZOTAC GeForce GTX 650 2GB がどれだけ高速なのか?ってのも猫に小判状態なのですが、 シミュレーターの中でマインスイーパーが動く程度に高速です。シミュレーターが GPU  を使っているかどうかが不明なので、高速な CPU のおかげかもしれないのですが。

image

さて、3D モデリング、CAD 関係、絵師、Web デザイナ、ゲーム制作などなど、とグラフィックボードの性能を引き出す仕事はたくさんあるのですが、ひとまず、Visual Studio 2012 で Windows ストア アプリを組むときに、グラフィックボード、GPU はどこにかかわってくるのか?ということを考えると、

  • Blend で XAML のデザイン環境
  • Visual Studio 2012 の XAML デザイナ?
  • Storyboard を使ったアニメーション
  • C++/CX、DirectX による画面コンポーネント開発

に関わってきます。C++/CX による画像系のコンポーネント開発は、Windows ストア アプリで直接 DirectX を扱うことができるので今後広まると思われる分野です(私的には広まって欲しい分野でもありますね)。DirectX の場合、DirectX 9 から 11 までのバージョンによってコーディングが変わってしまうのですが、Windows ストア アプリの場合、インターフェースが揃えてあるのでWindows ストア アプリの範囲内であればあれこれとバージョンに悩む必要がありません。ってことになっています。なので、今後の Windows 8 PC では、この手の DirectX 関係が入っているのが「当然」になるので、アプリにインストール時にあれこれと悩む必要がなくなるかなと。この話は、また別の機会に。

■Blend での編集

Visual Studio 2012 では、XAML のアニメーションを Flash のように作れます…といいますか、Flash のほうは作ったことがないので、XAML のアニメーション制作環境として Blend がどれだけチープなのか(リッチなのか)はわからないのですが。非力な CPU/GPU の環境だと Blend はかなり重たいです。

image

タスクマネージャで見るとわかるのですが、Blend で XAML をデザインしようとすると、2つのプロセスが動いています。

  • Blend for Visual Studio 2012
  • Blend for Microsoft Visual Studio 2012 XAML UI Designer

image

Blend for Visual Studio 2012 は、Blend 本体のプロセスで、Blend for Microsoft Visual Studio 2012 XAML UI Designer は、XAML をデザインするところのプロセスです。デザイナの部分だけが別プロセスになっているのは、実は Visual Studio 2012 本体でも同じです。

■GPU が働いているか確認する

Process Explorer を使うと、GPU が働いているかどうかを確認できます。

image

確実に GPU 上で動いているであろうマインスイーパーを動かすと、こんな感じで GPU が動いていることがわかります。Comit 量も多いので、グラフィックボードを入れる価値があった、ってところですね。グラフィックがオンボードの場合は、どうなるのか確認していませんが…、ひとまず、GPU がMinesweeper.exe では使われていることが確認できます。ええ、所詮マインスイーパーなんですが(苦笑)。

image

Process Explorer で Blend 本体と XAML デザイナのプロセスを見ていきます。左が Blend 本体(Blend.exe)、右が XAML デザイナ(XDesProc.exe)です。Visual Studio 2012 を動かしていると、XDesProc.exe が複数起動しているので、ここでは Blend から起動されたものを選択します。

image

どちらも GPU をマインスイーパーほどではありませんが、それなりに使っています。画面キャプチャを撮るときに storyboard でアニメーションを開始/終了を繰り返すと、ちょっとだけ XAML デザイナが GPU を使うようになります。ちょっとだけ…なので、あまり GPU の恩恵にあずかっているわけではないのですが。まあ、それなりに。ちなみに、Blend のメニューなどをいじると、今度は Blend 本体の GPU が使われます。

image

Visual Studio 2012 本体と、XAML デザイナの関係も同じで、ぐりぐりと XAML デザイナで編集しているときには GPU を使っています。また、Visual Studio 2012 本体のメニューをいじっているときは、本体側の GPU が使われます。

ちなみに、アニメーションを使った Windows ストア アプリを実行した場合は、ちょっとだけ GPU が使われます。まあ、XAML を使った簡単なアニメーションなので、あまり CPU/GPU に負荷をかけていないからですね。このあたりは、負荷をかけるような storyboard を作って後で確認してみましょう。

image

image

ちなみに、GPU を全く使っていない QX エディタはこんな感じになります。エディタの場合は、GPU を使わなくてもいいので、エディタを使ってプログラミングをしているときは、全くの無駄ってことですね(苦笑)。

image

■XAML デザインにグラフィックボードが効いてくる

グラフィックがオンボードの PC の場合、XAML デザイナが妙に重くて変だなぁと思っていたのですが、これで問題が解消できそうです。ひとまず、安めの PC でもグラフィックボードを入れれば、Windows ストア アプリの XAML デザイナのところで有効活用できそうです。ただ、実際には、Visual Studio 2012 本体や Blend 本体との連携が必要になるので、そこそこの CPU 性能とメモリは必要になってくるでしょうが。

それと、XAML のアニメーションを使ったアプリの場合にも、通常の状態で GPU をきっちり使ってくれています。なので、ターゲットの PC にそれなりのグラフィックボードが入っていれば、C++/CX で DirectX を弄らなくても、C#/VB の範囲で XAML の storyboard を使えばそこそこの性能がでるのでは?という予想が立ちます。そのあたりは、別途ベンチマーク用のツールを作って確認していきましょう。

カテゴリー: パフォーマンス, 最強.NET開発PC パーマリンク

最強.NET開発PCを作るよ(その6) への1件のコメント

  1. masuda のコメント:

    補足しておくと、ZOTAC GeForce GTX 650 2GB は、HDMIx2, DVIx2 の4本出力構成なので、モニタが4枚まで使えます。手元のモニタが2枚(机の大きさの関係から)なので2つしか使っていないのですが、動画とかサーバー監視用のサブモニタ(11インチとか)を買いたいところですね。

コメントは停止中です。