XNAチューニング勉強会に行ってきた

360のGPUCLRの特性、アーキテクチャの特徴、最適化手法などいろいろ分かって面白かった。勉強会を手配してくださったNyaRuRuさん(id:NyaRuRu:20071124:p1)と発表いただいた方々に感謝。

隠れたメモリアロケーションの発見方法やJITのインライン化条件、コマンドバッファ、MSAA、ピクセルシェーダの理想的なサイズ、CLR上の演算命令の実装など、最適化に役立つさまざまな情報を得ることができたが、結局はGC除去やインライン化などの小手先の最適化手法などでごにょごにょするより、アルゴリズムの改善やゲームデザインの検討などの一段上での最適化をすべしっていう結論なんだよね。まあでもまず自分のアプリケーションのボトルネックがどこかを把握する必要がある。リモートパフォーマンスモニタだけではそこまでの細かい情報を得るのは難しいので、その辺の計測をする実装を自作せんといかん。

あとマルチスレッド化は効果と手間を考えるとあまりお勧めできない、最終手段であるとまで言われてしまったが、それでも懲りずにやるつもり。3つのPowerPCを回すような実装にしないと、わざわざ360上で動かす面白みがないからね。