2007/8/17 金曜日

Blender/SSE2,3とaffinityと64bit

カテゴリー: 3D, Blender, PC, 雑記 — ゆーき @ 19:18:38 / 447

Blender 2.44 for Windows - SSE2/3, Win32, Multi-Core/HT
(Unofficial な Optimized Build)を入れてみた。

パッチュンプリンさんのレンダリングで試してみたら、概ね3割近い性能向上が。かなり単純なモデルかつ、かなり単純なオブジェクトアニメーションなので、複雑なシーンなどで、どれほどになるかはわからないけど、大体2-3割は見込めそう。さすがにCPUが支配的なだけあって、最適化がかなり効いてきます。レンダリング時間はクロックにほぼ1:1のリニアでしょうから、CPUクロック周波数を2-3割アップ相当なわけで、CPUを強化しようとすれば金額的に結構なもんですから、これは大きいですな。

ついでに、レンダリングの画面分割数(レンダリング時に、x/y方向に何分割してレンダリングするか)と、レンダースレッド数(1~8)をいじってみましたが、Q6600でパッチュンプリンさんをレンダリングする場合に於いては、4×4を8スレッドでレンダリングするのが一番速いみたい。分割数を多くしたほうが、スレッドへの割り振りがタイトになるかと思ったんだけど、そうでもないみたい。割り振り>割り当て領域を新規にレンダリングってあたりで結構オーバーヘッドが大きいのかな。

CPUメーターをみてると、スレッド数をいくつにしても、結構振幅があってブン回し切る感じではないので、スレッド数をコア数より多くしたほうがうまく回るみたい。たしかE6600(2コア)のときは、2スレッドにした時点でCPUをほぼ全部使い切ったので、あまり多コアだと効率が良くないのかも。

まあ、これくらい(トータルロードで70-100をいったりきたり)くらいのほうが、GUI のCPU時間まで持ってかれて~、なんてことがないので使いやすいといえば使いやすいんだけど、寝てる間にレンダリングとかしたいときは、使い切ってほしいかも。

そういえば、Windows ってタスクマネージャで CPU affinity が設定できるみたいだけど、スレッド単位じゃなくてプロセス単位なのね。API 的にはどーなのかな。まあ、いまのところ細かく CPU に貼り付けたいとかいう欲求は特に無いのだけど。

あと、Blender って、Linux 版は 64bit バイナリが配布されているのだけど、Windows 版は無いのね。いかにも 64bit 対応してそうなのに、何故かな~と思ったら、LP64 モデル前提で組んでいるからみたい。コードみたら、long とかのプリミティブ型が typedef されずに生で使われていてムハー。Windows x64 って LLP64 だったんすね。知らなかったわ。

Tags: , ,

WEB拍手

コメントはまだありません »

コメントはまだありません。

このコメント欄の RSS フィード トラックバック URL

コメントをどうぞ