X-Box360のチューニング
/.jのカルドセプト騒動で読んで「なるほどなー」と思ったこと。
- 「カルドセプトサーガ」にダイス目が偶数と奇数を繰り返すバグ(http://slashdot.jp/comments.pl?sid=343019&cid=1070510)
Xbox360のCPU PX(ハードウェアスレッドが6スレッド)は、3コアで1MBの(現代的なCPUからすると少なすぎる)キャッシュや、レジスタセットが128本もあるVMX-128など、コンテキストスイッチを多用するとかなり不利になってしまうという特徴があるので、スレッドを割と固定的に使うというスタイルで作らざるを得ない
あー、いわれてみればそうだなぁ。今まで「モダンなOSを使って疎結合なマルチスレッド使いまくり」というイメージでX-Box360を見ていたので。
……しかし、コンシューマゲームなんか専用機向けなんだから未来のことは考えても仕方ないのですが、そう遠くない将来に出るであろうPowerPCを16コアぐらい積んだマシンならば今以上のフレームレートが(もっとも、X-Box360はGPUがボトルネックのような気はしますが)……とか考えていたのですが、当たり前といえば当たり前ですけどパフォーマンスを優先するとスケーラビリティはなくなりますやね。
そういえば、RISC CPUのリファレンス(の一つ)であるSPARCのアーキティクチャを初めて見たとき、レジスタが128個もついていて感激した記憶があります(ただし、同時に見えるのは32個らしい)。当時はMC68000のアセンブラをメインのコーディング環境にしていたので、最適化し放題に見えたのです。
そのときにも一緒に見ていた人に「コンテキストスイッチに時間がかかって仕方ないよ」と突っ込まれましたっけ。