★ Slash Gamesは、2007年6月1日より「インサイド」になりました
-->
トップ
読み物
カレンダー
Other languages
★ Slash Gamesは、2007年6月1日より「インサイド」になりました
[CEDEC2005] マルチコア化するゲーム実行環境をどう活かすか― インテルAdam Lake氏
9月5日
インテルのAdam Lake氏は、ゲーム開発者カンファレンスCEDEC 2005でマルチコアCPUについて講演を行い、状態をフレームごとに変化させていく一般的なゲームエンジンの構造ではフレーム内の並列化にとどまらざるを得ず、並列化による既存エンジンの高速化は難しいと指摘。実際のいくつかのタイトルにおけるマルチスレッドによる高速化を例に挙げながら、マルチコア環境を想定したゲームエンジンのデザインが必要だと語った。
マルチスレッド化の手法としてLake氏は、「fork/joinの分解」「パイプラインタスクによる分解」「WorkCrewのタスクによる分解」の3タイプを紹介。fork/joinの分解は、ループ処理を1回ごとに別のスレッドで実行させるようなタイプで、同じ関数を別のデータで何回も呼び出すような場合に有効。
また、パイプラインタスク分解は、あるフレームのレンダリング中に次のフレームのロジック演算を実行するような、処理のパイプラインを単位にマルチスレッド化するようなタイプ。「事前のプランニングが必要だが同期のオーバーヘッドは小さい」という。
最後のWorkCrewのタスク分解は、ゲームエンジン内の処理をいくつかのタスクに分解する。このときタスク間の同期や順序性が必然でないようにタスクを分解することで、タスクをスレッドに割り当てて並列実行し、マルチコア環境でのパフォーマンス改善を大きくすることが可能になるというもの。既存のエンジンの中で実装するのは難しいため、一から作るときにのみ適用できる手法だと述べた。
Lake氏の挙げた例のうち、Lead-Pursuitの「Falcon 4.0:Allied Force」が拡張性と高い処理量を実現するため、オブジェクト指向のタスクレベルでの並列化アプローチを採用、このWorkCrewパラダイムで設計されているという。また、Lionheadの「The Movies」は、WorkCrewとfork-joinを組み合わせることで、ユーザ操作へのスムーズな反応とリアルなシャドウ生成を可能にしたという。
ただ、マルチスレッディングには、エンジン設計の時点で考慮が必要で、すべてに効く万能薬的な解決策はないと述べ、マルチスレッドのゲームエンジン開発の難しさも示唆した。
Lionhead、「The Movies」でのマルチスレッド対応
(RBB TODAY)
関連リンク
|
Link
CEDEC
その他のゲーム情報はSlash Gamesへ
リリース
|
RSSによる配信について
|
バナー広告
|
問い合わせ
|
会社概要
|
プライバシーポリシー
|
リンクについて
本サイトの内容は、著作権による保護を受けています。 Copyright (c) 1998-2006 IRI Commerce and Technology, Inc. All Rights Reserved.