Slash Games
★ Slash Gamesは、2007年6月1日より「インサイド」になりました
     
-->
トップ
読み物
カレンダー
Other languages
★ Slash Gamesは、2007年6月1日より「インサイド」になりました
【GDC07】ゲーム開発者はさらなるマルチコア化に備えよ
3月8日
AMD Senior Developer Relations EngineerのJustin Boggs氏
 サンフランシスコで開催中のGame Developers Conference 2007で、AMDのSenior Developer Relations Engineer、Justin Boggs氏は、「Massive Multi-core Processors & Gaming」と題した講演をおこない、今後あたりまえのものになってくるマルチコアCPUに備えてゲームエンジンを開発すべきだと語った。

 講演では、AMDの“Barcelona”クアッドコアシステムと、マルチコア対応ライブラリ「AMD Performance Library(APL)」、プロファイラツール「AMD CodeAnalyst Profiler」を中心に、マルチコア構成でのプログラミングのポイントや、SSE128のベクトル演算について解説がおこなわれた。SSE128については、ADDPD(AddPackedDouble)がK8世代では、2つのADD内部命令(micro-Ops)にデコードされるのと比べ、Barcelonaでは1つの128bit ADD内部命令で処理可能となり、2倍の処理性能になっているという。この128ビット化のメリットはベクトル演算のみでスカラ演算は従来と同等の性能になる。

 マルチコア構成でのキャッシュの最適化についてBoggs氏は、キャッシュが共有されているマルチコアの場合、パフォーマンスを引き出すためにはキャッシュの効率的な利用が重要で、L2キャッシュにはコードとデータが入るため、コンパイラのコード生成オプションで「コードサイズの最小化」が「速度の最大化」より評価されるべきである点、データ構造でも構造体の中の不要なパディングに注意すべきであることや、扱うデータをメガバイト単位ではなくキロバイト単位とすることなどを指摘。

 また、マルチスレッディングの最適化については、関数レベル並列スレッド化よりも、データ並列によるスレッド化を活用する方が効率的でスケーラビリティも確保できるとして、OpenMPの使用やスレッドプールの活用、ロック保持の最小化、false sharingの問題、スレッド間で共有されるデータがある場合は同じコアで実行されるようにすべき、スレッド間の同期にWindowsのクリティカルセクションを使用するとオーバーヘッドが大きい、といった注意点をあげた。

 並列プログラミングについては、ゲーム業界にとっては最近持ち上がってきた課題ではあるが、科学計算などハイパフォーマンスコンピューティングの領域では歴史も長い。講演タイトルの「Massive」は、“莫大な”といった意味の語で、現在のPCにおける4〜8コア構成が、今後5〜10年で非常に多数のコアが並列動作する時代がやってくるという指摘だ。ちなみにゲームコンソールではXbox360が3コア構成、プレイステーション3が1+8コア(実働1+7コア)構成となっているが、Boggs氏の見通しのとおりなら、次の「次世代機」が話題になる頃には今のマルチコア対応とはまったく異なる挑戦が待っているのだろう。そのための研究をPC向けゲームエンジンで進めておくことは、ツール整備の面でも人材整備の面でも重要になると思われる。



(伊藤雅俊@RBB)
関連リンク|Link
GDC
その他のゲーム情報はSlash Gamesへ
PAGE TOP
新着ニュース
記事一覧へ
Weeklyアンケート
自分のPCのOSをWindows 7に変更したいですか?
変更したい

変更したくない

わからない


現在の状況 過去の結果を見る
リリースRSSによる配信についてバナー広告問い合わせ会社概要プライバシーポリシーリンクについて
RBB TODAY RESONSE e-nenpi.com cbook24.com DOKOYO MONO ONLINE
本サイトの内容は、著作権による保護を受けています。 Copyright (c) 1998-2006 IRI Commerce and Technology, Inc. All Rights Reserved.
IRI Commerce and Technology, Inc.