Mantle (API)

Mantleは、3Dゲームを対象としたローレベルレンダリングAPIである。アドバンスト・マイクロ・デバイセズ（AMD）が、EA Digital Illusions CE（DICE）と共同で2013年より開発を開始した。Direct3DおよびOpenGLを代替するものとして設計され、主としてパーソナルコンピュータ向けであるが、PlayStation 4とXbox Oneに搭載されているGPU (APU) もサポートする。 AMDによると、DirectX 12 (Direct3D 12) もしくはクロノス・グループによるMantle派生のVulkan APIによってMantle 1.0の置換が可能であることから、Mantle自体は2015年3月以降、別の領域にフォーカスをシフトするとされている。2015年3月までの2年間は、デバイスドライバーによるサポートが行われていたものの、Mantle API仕様自体は一般公開されていなかった。 Mantleが開発された背景には、従来からPC向けのリアルタイム3次元コンピュータグラフィックスAPIとして利用されてきたDirect3DおよびOpenGLは、コンソール（ゲーム専用機）環境とは違って抽象化・共通化・標準化が重視されるためにAPIコールのオーバーヘッドが大きく、またレンダリングにマルチコアCPUを最大限活用することができないといった問題を抱えていたことが挙げられる。これらの問題は特にAAAタイトルのゲームソフトウェアのように厳しい最適化が要求されるケースで大きな悪影響をもたらす。 Mantleにおけるドローコールの改良により、CPUがボトルネックとなっているケースが緩和される。Mantleの設計目標は、ゲームおよびアプリケーションがCPUとGPUを効果的に利用すること、APIによるコマンドの評価・検証 (Validation) のオーバーヘッドを減らし、マルチコアCPUでのスケーラビリティを向上させることでCPUのボトルネックを取り除くこと、より高速な描画ルーチンを提供すること、そしてDirect3DやOpenGLが有するハードウェア抽象化の一部を取り除くことで、より詳細なグラフィックスパイプラインの制御を可能にすることである。 なお、Mantleはハードウェア制御のいくつかをAPIからアプリケーション側に移すことで、アプリケーション開発者による詳細かつ直接的なハードウェア制御を可能にする反面、Direct3D/OpenGLのように高度に抽象化されたAPIを利用する場合と比較して開発工数が増加する可能性が存在することから、ゲームアプリケーション開発者用というよりはむしろゲームエンジン(ライブラリ)開発者用との指摘もなされている。 Mantleの登場後、ローレベルを指向した新世代のグラフィックスAPIとして、AppleのMetal、マイクロソフトのDirectX 12、そしてKhronosのVulkanが次々に発表された。DirectX 12に関してはMantleに触発されて開発が始まったことが示唆されており、またVulkanに関してもやはりMantleを要素技術として取り込んだことが発表されており、Mantleは新世代のローレベルAPIの先駆者となる役割を果たした。 基本的な実装の背景として、MantleはCPUが制約要因となっているようなシナリオにおいてパフォーマンスを改善するために設計された。 APIコマンドの評価 (Validation) および処理におけるオーバーヘッド軽減 コマンドバッファの明示的な制御 マルチコアCPUの稼働率向上によるパフォーマンスの上昇 実行時のシェーダーコンパイルオーバーヘッドの低減 AMDの主張では、他のPC用APIと比較して9倍ものユニークドローコール 8コアまでのCPUによる、マルチスレッド並列レンダリングのサポート Mantleはまた、高解像度かつ「最高レベルの詳細」設定が使われるような状況を改善するために設計された。とはいえ、これらの設定はGPUの計算資源に負荷をかけるため、API層での改善は難しい。MantleはGPUバウンドなシナリオにおけるパフォーマンスを改善するために下記のような組み込み機能を提供するが、改善率はゲームエンジンがMantleの機能および最適化をどの程度利用しているかに大きく依存する。 コマンドバッファへの送信の削減 リソースの圧縮、展開、同期の制御 非同期DMAキューによる、グラフィックスエンジンから独立したデータの送信 非同期演算キューによる、演算とグラフィックスのオーバーラップ処理 バッファ、画像への柔軟なアクセスを可能とするデータフォーマットの最適化 MSAA/EQAA最適化のための先進的なアンチエイリアス機能 マルチGPUのネイティブサポート Direct3D 11よりも高い効率を発揮した。 バトルフィールド4では、性能の向上が見られた。デモである「Star Swarm」では、AMD A10-7700KとAMD Radeon R9 290Xを使用した場合に、1080pで319%向上した結果が残されている。 Microsoft Windows用のドライバー「AMD Catalyst」でのみサポートされる。対象となるハードウェアは、GCN（Graphics Core Next）アーキテクチャを採用したAPUおよびグラフィックスカードに限定される。下記に一例を示す。 グラフィックスカード Radeon HD 7000シリーズの一部 Radeon HD 8000シリーズの一部 Radeon R7 200シリーズの一部 Radeon R9 200シリーズの一部 Radeon R7 300シリーズ Radeon R9 300シリーズ APU Steamrollerベースの"Kaveri" Jaguarベースの"Kabini"および"Temash" Pumaベースの"Beema"および"Mullins" Vulkan – Mantleを要素技術として取り込んだ、クロノス・グループによるローレベルグラフィックスAPI バトルフィールド4 Mantle Programming Guide and API Reference ^ a b c Altavilla, Dave (2013年9月30日). “AMD and DICE To Co-Develop Console Style API For Radeon Graphics”. フォーブス. 2014年7月14日閲覧。 ^ Agam Shah (2014年6月18日). “AMD wants to improve gaming in Linux and Steam boxes with its Mantle tools”. 2016年2月21日閲覧。 ^ Michael Larabel (2014年5月31日). “Linux support isn't ruled out completely”. Phoronix. 2016年2月21日閲覧。 ^ a b c “Mantle WhitePaper” (pdf). AMD. 2016年2月21日閲覧。 ^ Parrish, Kevin (2013年9月25日). “AMD's Mantle API Gives Devs Direct Hardware Control”. Tom's Hardware. 2013年10月1日閲覧。 ^ 佐々山薫郁 (2015年3月4日). “［GDC 2015］Khronos，新世代グラフィックスAPI「Vulkan」でAMDの「Mantle」を採用”. 4Gamer. 2016年2月21日閲覧。 ^ samantha davis (2015年5月12日). “One of Mantle's Futures: Vulkan | AMD Blogs”. 2016年2月21日閲覧。 ^ ［GDC 2015］AMD独自API「Mantle“1.0”」が事実上の終了。AMDはDirectX 12と次世代OpenGLの利用を呼びかけ - 4Gamer.net ^ “AMD Mantle API Programming Guide Available”. 2015年3月22日閲覧。 ^ AMDがグラフィックスAPI「Mantle」を発表。次世代機を制したAMDによる「ゲーム開発者囲い込み＆NVIDIA排除システム」の正体に迫る - 4Gamer.net ^ AMD’s Revolutionary Mantle ^ “AMDの革命児：Mantle”. AMD. 2016年2月21日閲覧。 ^ a b “"Mantle"のパフォーマンスを確認する - 対応ゲームでどれほどの性能向上がみられるのか? 1：あらためて"Mantle"についてのおさらい” (2014年2月12日). 2016年2月21日閲覧。 ^ samantha davis (2014年2月1日). “Some Mantle benchmarks by AMD”. AMD. 2016年2月21日閲覧。 ^ a b 西川善司 (2013年11月18日). “Frostbite 3エンジンの凄腕開発者が語る「Mantle」の可能性。Windows以外でもサポートできる？”. 4Gamer. 2016年2月21日閲覧。 ^ 【後藤弘茂のWeekly海外ニュース】GPUの進化に対応したMicrosoftの次世代API「DirectX 12」の背景 - PC Watch ^ ［GDC 2015］Khronos，新世代グラフィックスAPI「Vulkan」でAMDの「Mantle」を採用 - 4Gamer.net ^ 【後藤弘茂のWeekly海外ニュース】Khronosの次期グラフィックスAPI「Vulkan」 - PC Watch ^ a b c d samantha davis (2014年5月28日). “Mantle 101”. AMD. 2016年2月21日閲覧。 ^ samantha davis (2014年2月1日). “AMD Gaming”. 2016年2月21日閲覧。 ^ 後藤弘茂 (2013年9月27日). “AMDの次世代GPU「Radeon R9」と新グラフィックスAPI「Mantle」”. PC Watch. 2016年2月21日閲覧。 ^ Smith, Ryan (2013年9月26日). “Understanding AMD’s Mantle: A Low-Level Graphics API For GCN”. AnandTech. 2013年10月1日時点のオリジナルよりアーカイブ。2013年10月1日閲覧。 ^ Dan Baker (2014年5月21日). “The Next Generation of Graphics APIs”. Oxide Games. 2016年2月21日閲覧。 ^ “The Race to the Metal”. Josh Barczak (2014年5月23日). 2016年2月21日閲覧。 ^ samantha davis (2014年5月28日). “The performance of Mantle”. AMD. 2016年2月21日閲覧。 ^ Hassan Mujtaba. “AMD Mantle API Performance Analysis With Radeon R7 260X, R9 270X, R9 280X”. 2016年2月21日閲覧。 ^ Łukasz Marek、Radosław Stanisławski (2014年2月1日). “AMD Mantle w Battlefield 4”. 2016年2月21日閲覧。 ^ Jeremy Peel. “AMD claim performance boosts of up to 45% using Mantle over DirectX”. PCGamesN. 2016年2月21日閲覧。 ^ Mantle版Battlefield 4を試す。APU＋GPU構成時に衝撃的な性能向上を確認 - 4Gamer.net ^ “AMD Mantle Powered Flagship Nitrous Engine "Star Swarm Benchmark" Released on Steam”. 2016年2月21日閲覧。 ^ “Page 2 - AMD’s Mantle benchmarked: The biggest innovation in gaming since DirectX 9”. ExtremeTech (2014年2月3日). 2016年2月21日閲覧。 ^ “AMD releases Mantle, shares performance numbers” (2014年1月30日). 2016年2月21日閲覧。 ^ “AMD: Vulkan absorbed ‘best and brightest’ parts of Mantle”. KitGuru. 2016年2月21日閲覧。