2012-11-18

新しいPC 新しいPC - Nao_uの日記 を含むブックマーク はてなブックマーク - 新しいPC - Nao_uの日記 新しいPC - Nao_uの日記 のブックマークコメント

最近は家でプログラムを書くときくらいは最適化など気にせずに組みたいと思うので、今回のPCは奮発して最近出たばかりの6コア12スレッド動く新しいCPUとGTX680のSLIを選んでみた。とりあえずはなるべく手間をかけずに動かしたいものが動いてくれればそのほうがありがたいので。

新PCでどのくらい早くなったかと期待して自前のDirectX11のテストプログラムやUnityで作ったベンチマーク的な高負荷なシーンを動かしてみたら、不思議なことに高速化どころかむしろ遅くなってた。確認しみるとどうもシングルコアのCPUネックだと前のノートPCのほうが早いっぽい

DX11テスト環境は手抜きで高速化なしでキューブマップ6面+シャドウ+通常レンダリングで8回同じモデルを描いて完全にCPUネックになってた。Unityは4になっても剛体やパーティクルであってもマルチコアには対応してないようで、1コアが100%で振り切って他のコアが完全に遊んでる

試しに3DMarkを動かしてみたら本来の性能通りにコア数の増加にあわせて約1.5倍くらいの数値が出てたので、自前DX11環境やUnityはマルチコアのCPUリソースを完全に持て余してる状態になってた

クロックは上がってるはずなのでなぜシングルコアで遅くなってるのかはまだちゃんと調べてないけど、せっかく新しいPCを買ったのに前に使ってたノートPCのほうが早いなんてことになるとは思ってもみなかった

プロシージャルテクスチャでGPUネックになってるものや、OpenMPを使ってマルチコアで動いてるものを動かしてみたら一応は高速化されてたのでまったく無駄ではないにせよ、一番試したかったDX11環境とUnityの速度が落ちてるのはとても残念な感じ。

もともと手を抜くために新PCを買ったはずなのに、ちゃんと最適化して手を入れないと性能を引き出せないような状態になってるとは完全に想定外。これまではPCを更新したら普通に速度向上が見込めてたので、ほんとフリーランチは終わったんだなぁと実感させられた。

Unity4でDirectX11をいろいろ試してみようかと思って新しいPCを買ったんだけど、大量のオブジェクトを出すとGPUネックになる前にCPUが振り切って前のPCより遅くなってる状態がとても残念な感じなので、せっかくだからこの機会にUDKでも触ってみようか、とか思い始めてる

@pigeon6 簡単に試した範囲では、大量に剛体を出してプロファイラでPhysicsがほとんどを占めている状態のときに、特定の2スレッドがほぼ100%で他のコアがかなり空いてる状態でした。Shurikenで10万粒くらい当たり判定を持って飛ばした時も似た感じでした

@pigeon6 いま試していて気づいたのですが、エディタ上で動かしてる時には追加の負荷がかかってるために特定のコアが振り切っていただけかもしれないです。PC向けにビルドしたアプリでFPSを表示して動かしてみると、想定に近い速度差が出ているようでした