デジタルファウンドリ:完全なXbox One Architectsインタビュー

ここに行きます - ハードウェアの作成に役立つチームの2人の不可欠なメンバーとのXbox Oneアーキテクチャに関するDigital Foundryのディスカッションの完全なトランスクリプト。私たちはここで約1時間分の非常に密なハイテクトークを見ていますが、その多くはこれまで見たことがありません。

しかし、最初に、少しの背景。この機会はどのようにして生まれましたか?でGamescom8月に、Microsoftが技術的な観点からハードウェアについてどのように語ったかについての姿勢を調整しようとしていることが明らかになりました。ほぼ確実にこれは、SonyがPlayStation 4のために提供している同等のメトリックと比較してあまり励みに見えない全体的な仕様シートのために発生しました。そのデザインを考えています。

しかし、今後のコンソール戦争に加えて、Xbox Oneが非常に異なる哲学を念頭に置いて設計されており、同時アプリや複数の仮想マシンなどの野心的な技術力の要素を備えていることは明らかです。 GPU計算にも非常に異なるアプローチがあります - バランスの引数全体は言うまでもありません。経験から出て、これが建築家が情熱を持っていて、非常に多くを伝えたいと思っていたという話であることは明らかでした。

とはいえ、Microsoftには、コンソールアーキテクチャの構成に関する詳細なデータとプレゼンテーションに関する歴史があります。ホットチップ25今年のスタンフォード大学での大学では、デザインチームがシリコンについて、ソニーが喜んで共有しているものを超えて詳細に話し合うことをいとわないことを示しました。あなたのために話している。

「マイクロソフトにとって、これは、コアゲーマーがそれほど簡単に結びついていないデザイン哲学を説明する機会でした。」

それで、あなたの多くが間違いなく尋ねている質問は、私たちは自由に流れる技術的な議論やPRエクササイズを見ているのでしょうか?さて、自分自身を子供にしないでください - 出版に到達するすべてのインタビューは、インタビュー対象者のための何らかの広報関係であり、それは私たちがマイクロソフト、ソニー、または他の人と話しているかどうかにかかわらず等しく適用されます。おそらく私たちのための長引く失望私たちのマークセルニーインタビュー彼が他の場所でまだカバーしていなかったことを彼が私たちにあまりさせなかったことがすぐに明らかになったという事実でした。また、印象的な仕様、バランスのとれたラインナップ、驚異的な適切に管理されたPR戦略により、ソニーは非常に有利な位置に残っており、少なくとも今のところは証明するものは何もありません。

マイクロソフトにとって、物事は明らかに非常に異なっています。それは、コアゲーマーがそれほど簡単に接続していないというデザイン哲学を説明するケースですが、同時にゲームコンソールの技術的能力はGPUまたはGPUまたはメモリのセットアップ - 皮肉なことに、開発環境の品質と組み合わせて、これらはXbox 360が現在世代のコンソールバトルの初期を支配することを可能にしたまさにその強みです。

その後、議論について - おそらくデジタルファウンドリの最も広大なハードウェアインタビューで、必要な電話会議の紹介でキックオフします...

アンドリュー・グーセン

私の名前はアンドリュー・グーセンです - 私はマイクロソフトの技術フェローです。私はXbox Oneの建築家の一人でした。私は主にソフトウェア側に関与していますが、ニックと彼のチームと一緒にシリコンを完成させるために多くのことをしました。優れたバランスの取れたコンソールを設計するには、ソフトウェアとハ​​ードウェアのすべての側面を本当に検討する必要があります。それは本当に2つを組み合わせて、パフォーマンスの面で良いバランスをとることです。実際、私たちはあなたとデザインについて話す機会を持っていることを非常に嬉しく思います。そこには多くの誤報があり、それを手に入れない人がたくさんいます。私たちは実際に私たちのデザインを非常に誇りに思っています。バランスが非常に優れており、非常に優れたパフォーマンスがあると思います。生のALU以外のものを処理できる製品があります。また、レイテンシ、安定したフレームレートなど、システムなどによってタイトルが中断されないなど、他のデザインの側面と要件もかなりあります。これは、システム設計で普及しているテーマとして非常に見ることができます。

ニック・ベイカー

私はニック・ベイカーで、ハードウェアアーキテクチャチームを管理しています。 Xboxのほとんどすべてのインスタンスに取り組んできました。私のチームは、利用可能なすべてのテクノロジーを見ることに本当に責任があります。グラフィックがどこに向かっているのかを常に見ています。それを理解するという観点から、AndrewとDirectXチームと多くの仕事をしています。私たちはハードウェア業界の他の多くの企業と良好な関係を築いており、実際に組織はハードウェアを策定するために私たちに目指しています。次のコンソールがどのように見えるかを見始めると、私たちは常にロードマップの上にあり、それがどこにあり、ゲーム開発者やソフトウェアテクノロジーと組み合わせることができ、それをすべて一緒にするのがどのように適切かを理解しています。私はチームを管理します。ホットチップスで発表したジョンセルを見たことがあるかもしれません。彼は私の組織の一人です。さらに戻って、2005年にXbox 360のアーキテクチャについてジェフアンドリュースとホットチップスで発表しました。私たちはしばらくの間、アンドリューと同様にこれを行ってきました。アンドリューはそれをかなりうまく言った:私たちは本当に高性能で電力効率の高いボックスを構築したかった。私たちは本当に現代のリビングルームに関連したかったのです。 AVについて話すと、私たちはあなたのエンターテイメントの中心であるメディアハードウェアにするためにAVに出入りする唯一の人です。

「私たちは本当に高性能で電力効率の良い箱を作りたかったのです。私たちはそれを現代のリビングルームに関連させたかったのです。」

Xbox Oneは、Xbox 360を設計した同じチームから来ています。ここでは、古典的な発売形式で示されています。設計チームは、単一の強力なプロセッサがPCデザインの流行であったときに、GPUへのマルチコアアプローチと最先端の(当時の)グラフィックチップを一致させることを選択しました。

デジタルファウンドリーXbox 360後のXbox 360からのあなたの持ち帰りは何でしたか、そして、それはあなたがXbox Oneアーキテクチャで達成したいことをどのように形成しましたか?

ニック・ベイカー

ここで少し話すことができるいくつかの側面を選ぶのは難しいです。重要なポイントの1つだと思います...前回はいくつかのギャンブルを取りましたが、そのうちの1つは、少数の高IPC [クロックあたりの指示]パワーダングリーCPUを使用するのではなく、マルチプロセッサアプローチを使用することでした。コア。パワー/パフォーマンスエリアに対してより最適化されたコアとより並行するというアプローチを取りました。それはかなりうまくいきました...オフロードオーディオのように私たちが実現したことがいくつかあります。それに取り組む必要がありました。したがって、オーディオブロックへの投資です。最初から単一のチップを持ち、すべてを可能な限りメモリに近づけたいと考えていました。 CPUとGPUの両方 - すべての低レイテンシと高い帯域幅を与える - それが重要なマントラでした。

私たちが対処しなければならなかったいくつかの明らかなこと - メモリの新しい構成、私たちは実際にCPUからGPUへのポインターを渡すことができなかったので、GPGPUに向かってシェーダーを計算することを本当に取り組みたいと本当に望んでいました。圧縮、私たちはそのために多くの投資をしたので、そこでの多くの圧縮を扱うMoveエンジンのいくつかは...それがどのように機能するかという点でGPU機能に多くの焦点を当てています。そして、実際に、タイトルの互換性に影響を与えることなく、システムサービスが時間とともに成長することをどのように許可しますか。ジェネレーションの最初のタイトル - システム側の機能を大切にしながら、これがこれまでに構築された最後のコンソールで機能することをどのように保証しますか。

デジタルファウンドリー単一のボックス、単一のプロセッサで複数のシステムを実行しています。それはシリコンの設計における最も重要な課題の1つでしたか?

ニック・ベイカー

やることがたくさんありました。システム全体が仮想化できるようにし、すべてがページテーブルがあることを確認する必要があり、IOにはすべてが関連付けられていました。仮想化された割り込み....これは、チップに統合されたIPがシステム内でうまく機能していることを確認する場合です。アンドリュー?

アンドリュー・グーセン

それに飛び込みます。ニックが言ったように、ハードウェアの周りで行わなければならないエンジニアリングがたくさんあるが、ソフトウェアも仮想化の重要な側面である。ソフトウェア側には、ハードウェアに戻る多くの要件がありました。あなたの質問に答えるために、リチャードは最初から仮想化の概念が私たちのデザインの非常に多くのことを駆り立てました。私たちは最初から、タイトルと同時に実行できるこの豊かな環境のこの概念を持ちたいと思っていたことを知っていました。 Xbox 360で学んだことに基づいて私たちにとって非常に重要でした。タイトルを邪魔するこのシステムを構築して構築します - ゲーム - 可能な限り、ゲーム側でのエクスペリエンスを可能にするためにまた、仮想マシンの境界の両側で革新することもできます。

タイトルで実行されている部分と非常に優れた互換性を保持しながら、物事のシステム側のオペレーティングシステムを更新するなどのことを行うことができます。ゲーム。逆に、タイトル側でも大いに革新することができます。 SDKからSDKリリースまでのアーキテクチャにより、CPUとGPUの両方のオペレーティングシステムメモリマネージャーを完全に書き直すことができます。これは、仮想化なしではできることではありません。それは多くの重要な領域を駆り立てました...ニックはページのテーブルについて話しました。私たちが行った新しいことのいくつか - GPUには、仮想化のためのページテーブルの2つのレイヤーがあります。これは、実際には仮想化されているGPUの最初の大規模な消費者アプリケーションだと思います。私たちは、仮想化がその孤立、そのパフォーマンスを持っていることを望んでいました。しかし、タイトルのパフォーマンスに影響を与えることはできませんでした。

割り込み以外のグラフィックスのオーバーヘッドコストがないように仮想化を構築しました。私たちは、割り込みを避けるためにできる限りのことをやろうと考えています...フレームごとに2つしか行いません。これを達成するには、ハードウェアとソフトウェアに大幅な変更を加える必要がありました。ハードウェアオーバーレイがあり、タイトルに2つのレイヤーを提供し、システムに1つのレイヤーを提供し、タイトルは完全に非同期にレンダリングし、システムサイドで何が起こっているのかを完全に非同期に提示できます。

システムサイドはすべてWindowsデスクトップマネージャーと統合されていますが、グリッチがあってもタイトルが更新される可能性があります - Windowsシステム側のスケジューラーが遅くなるように...仮想化の側面について非常に多くの作業を行い、それを駆動しましたまた、複数のシステムを実行すると、他のシステムの多くが駆動されることもわかります。私たちは8GBになりたいと思っており、それが私たちのメモリシステムの周りにも多くのデザインを促進しました。

「SDKからSDKリリースまでのアーキテクチャにより、CPUとGPUの両方のオペレーティングシステムメモリマネージャーを完全に書き直すことができます。これは、仮想化なしにできることではありません。」

パフォーマンスに影響を与えないゲームと同時にアプリを実行する機能には、かなりの量のエンジニアリングが必要でしたが、最終結果は非常にうまく機能します。システムを作成または壊すのは、アプリ自体の品質になります。パーティーのセットアップやビデオ編集のような機能は確かに機能します。

デジタルファウンドリーあなたは常に最初から8GBをターゲットにしていましたか?

アンドリュー・グーセン

ええ、私たちがタイトルと同時に走りたいと思っていたような経験を見ていたときに、それはかなり早い決定だったと思います。そして、そこにどれだけのメモリが必要なのか。それは私たちにとって本当に早い決定だったでしょう。

デジタルファウンドリーCPUサイド、私は興味があります。たとえば、4つではなく、8つのジャガーコアを選んだのはなぜですかパイルドライバーコア?ワットあたりのパフォーマンスについてはすべてですか?

ニック・ベイカー

追加の電力とエリアは、その追加のIPCブーストをジャガーからパイルドライバーに移行することに関連しています...それはコンソールを作るための正しい決定ではありません。エリアごとのパワー/パフォーマンスのスイートスポットをヒットし、より並行して問題にすることができます。それがすべてです。その点で、タイトルとオペレーティングシステムの間でコアをどのように分割していますか。

デジタルファウンドリーそれは本質的にジャガーのIPですか?それともカスタマイズしましたか?

ニック・ベイカー

Xbox Oneの前には2クラスターのジャガー構成はなかったので、その機能を作るためにやらなければならないことがありました。 GPUとCPUの間のより高い一貫性を望んでいたので、それを行う必要があり、CPUの周りの多くのファブリックに触れ、Jaguar Coreがどのように仮想化を実装したかを見て、そこで微調整を行うことができましたが、基本的なものはありません。 ISAまたはそのような指示または追加の指示を追加します。

デジタルファウンドリー15個のプロセッサがあることについて話します。あなたはそれを分解できますか?

ニック・ベイカー

SOCには、多くの並列エンジンがあります - それらのいくつかは、CPUコアまたはDSPコアに似ています。 15までのカウント方法:[オーディオブロック内に8つ、4つの移動エンジン、1つのビデオエンコード、1つのビデオデコード、1つのビデオCompositor/Resizerが8つあります。

オーディオブロックは完全にユニークでした。それは社内で設計されました。これは、4つのTensilica DSPコアといくつかのプログラム可能な処理エンジンに基づいています。 1つのコアランニングコントロール、2つのコアが音声用に多くのベクトルコードを実行し、1つは一般的なDSP用に分割します。サンプルレートの変換、フィルタリング、ミキシング、イコライゼーション、ダイナミックレンジの補償とXMAオーディオブロックも結合します。目標は、ゲームオーディオのために512の同時声を実行し、Kinectのスピーチ前処理を行うことができることでした。

デジタルファウンドリーマルチプラットフォームゲームではカスタムハードウェアを使用しない可能性があるという懸念がありますが、ハードウェアでアクセル化された機能がミドルウェアに統合され、幅広い利用が見られると想定しています。

ニック・ベイカー

ええ、アンドリューはミドルウェアのポイントについて話すことができますが、これらのいくつかは、システムがKinect処理のようなことを行うためだけに予約されています。これらは私たちが提供するシステムサービスです。その処理の一部はKinect専用です。

アンドリュー・グーセン

したがって、システムとシステムの予約のために設計したものの多くは、タイトルからシステムに多くの作業をオフロードすることです。これは、実際にタイトルを代表している多くの仕事をしていることに留意する必要があります。システムの予約で音声認識モードを採用していますが、他のプラットフォームは、開発者が予算からリンクして支払わなければならないコードとしてそれを持っています。 KinectとNUI [Natural User Interface]機能のほとんどと同じことが、ゲームに無料で提供されます - ゲームDVRもあります。

デジタルファウンドリーおそらく、プロセッサの最も誤解されている領域は、ESRAMであり、ゲーム開発者にとってそれが何を意味するのでしょうか。その包含のようなものは、DDR3と組み合わせてESRAMを支持してかなり早い段階でGDDR5を除外したことを示唆しています。それは公正な仮定ですか?

ニック・ベイカー

ええ、そうだと思います。パフォーマンス、メモリサイズ、パワーの最高の組み合わせを取得するという点では、GDDR5は少し不快な場所になります。 ESRAMにはパワーがほとんどなく、非常に高い帯域幅を与える機会があります。外部メモリ上の帯域幅を減らすことができます。これにより、多くの消費電力も節約でき、コモディティメモリも安くなるため、より多くの余裕があります。それは本当にその背後にある原動力です。あなたは正しいです、あなたが高いメモリ容量、比較的低い電力、そして多くの帯域幅を望むならば、それを解決する方法はそれほど多くありません。

「パフォーマンス、メモリサイズ、パワーの最高の組み合わせを取得するという点では、GDDR5はあなたを少し不快な場所に連れて行きます。ESRAMを持つことは非常に少ないパワーに費用がかかり、非常に高い帯域幅を与える機会があります。」

デジタルファウンドリーそして、発売に間に合うように、4ギガビットGDDR5モジュールの可用性の実際の保証は実際にはありませんでした。それはソニーが作ったギャンブルであり、それは報われたようです。ごく最近まで、PS4 SDKドキュメントは4GBのRAMを参照しています。 Intelのと思いますエドラムとハスウェルあなたがしていることに最も近いものです。エドラムではなくエスラムに行くのはなぜですか? Xbox 360でこれで大成功を収めました。

ニック・ベイカー

それは、単一のダイでEdramを行うためのテクノロジーを誰が利用できるかという問題です。

デジタルファウンドリーそれで、あなたはXbox360でやったように、娘の死に行きたくありませんでしたか?

ニック・ベイカー

いいえ、私が言ったように、単一のプロセッサが欲しかったです。別の時間枠やテクノロジーのオプションがあった場合、私たちはそこに別のテクノロジーを持っていたかもしれませんが、時間枠の製品にとっては、エスラムが最良の選択でした。

デジタルファウンドリーESRAMを見ると、ホットチップのプレゼンテーションは、8MBのエリアの4つのブロックがあることを初めて明らかにしました。それはどのように機能しますか?

ニック・ベイカー

まず第一に、GPUにESRAMとMain RAMを同時に使用できるかどうかについての質問があり、ESRAMとDDR3を8つの総メモリコントローラーを構成することを考えることができるので、4つあります。外部メモリコントローラー(64ビット)は、DDR3に移動し、ESRAMに移動する256ビットの4つの内部メモリコントローラーがあります。これらはすべてクロスバーを介して接続されているため、実際には、ドラムとエスラムに直接行くことができることは事実です。

デジタルファウンドリー同時に?なぜなら、あなたがあなたの帯域幅を一緒に追加し、実際のシナリオでこれを行うことができないという多くの論争があったからです。

ニック・ベイカー

そのインターフェースで、各レーン - エスラムへの256ビットは合計1024ビットを構成しており、それは各方向にあります。書き込み用の1024ビットは、109GB/sの最大値を提供し、その後、ピーク時に再び実行される個別の読み取りパスが109GB/sになります。 ESRAMの同等の帯域幅は何ですか?外部メモリに対して行うのと同じ種類の会計を行っている場合... DDR3を使用する/s。 ESRAMに相当するのは218GB/sです。ただし、メインメモリと同様に、長期間にわたってそれを達成できることはまれであるため、通常は70〜80%の効率で実行される外部メモリインターフェイスがあります。

ESRAMと同じ議論も同様に、ホットチップで提示された204GB/sの数字は、ESRAMの周りのロジックの既知の制限を考慮に入れています。すべてのサイクルのために書くことを維持することはできません。執筆は、時々バブル[デッドサイクル]を挿入することが知られています... 8サイクルに1つはバブルであるため、Esramで実際に達成できる生のピークとして、合計204GB/sを取得する方法です。そして、あなたがアプリケーションから何を達成できるかを言うなら、私たちはEsramについて約140-150GB/sを測定しました。それは実際のコードを実行しています。それは診断やシミュレーションの場合などではありません。これは、その帯域幅で実行されている実際のコードです。それを外部メモリに追加して、おそらく同様の条件で50〜55GB/sを達成し、メインメモリ全体および内部で200GB/sの順に2つ一緒に追加すると言うことができます。

私が指摘すべきことの1つは、4つの8MBレーンがあるということです。しかし、それぞれのレーン内の8MBのメモリの隣接する塊ではありません。各レーン、その8MBは8つのモジュールに分割されます。これは、メモリ内の帯域幅を同時に読み取り、書き込むことができるかどうかに対応する必要があります。はい、実際にはEsram全体を構成する個別のブロックがたくさんあるので、同じ領域を何度も繰り返した場合は、並行して並行して話すことができます。あなたの帯域幅、そしてそのため、実際のテストでピーク204GB/sではなく140-150GB/sを取得する理由の1つは、それが8MBメモリの4つのチャンクではないことです。それはそれよりもはるかに複雑であり、パターンを同時に使用する方法に応じています。それが、あなたが同時に読んで書くことを可能にするものです。読み取りと書き込みの帯域幅を追加し、メインメモリに読み取りおよび書き込み帯域幅を追加することができます。それは私たちが片付けたかった誤解の1つにすぎません。

アンドリュー・グーセン

読み物だけをしている場合、109GB/sでキャップされている場合、109GB/sでキャップされた書き込みだけをしている場合。それを乗り越えるには、読み取りと書き込みを組み合わせる必要がありますが、レンダリングターゲットや深さバッファーなど、通常ESRAMにあるものを見ると、本質的に読み取りがたくさんあります。 -MODIFIED WRITEは、ブレンドと深度バッファの更新で進行しています。それらは、エスラムに固執する自然なものであり、同時の読み取り/書き込みを活用するための自然なものです。

デジタルファウンドリーしたがって、140-150GB/sは現実的なターゲットであり、あなたですできるDDR3帯域幅を同時に統合しますか?

「Xbox Oneには、システム処理のためにGPUの時間スライス予約が10%保守的です。これは、KinectのGPGPU処理と、SNAPモードなどの同時システムコンテンツのレンダリングの両方に使用されます。」

Kinectデバッグツールは、カメラが世界をどのように見るかについて興味深い見方を提供します。マイクロソフトとゲーム開発者が直面する課題は、技術をゲームに効果的に統合することです。とはいえ、Kinectが新しいダッシュをどのように動かすかについて私たちが見たことは、本当に印象的なものです。

デジタルファウンドリーリークされたホワイトペーパーでは、ピーク帯域幅ははるかに小さく、突然[内部Xbox One Developmentブログに基づいて]ストーリーを実行しました。それは期待されていましたか?あなたは保守的でしたか?それとも、最終的なプロセッサで実践的な時間を取得し、それを理解しました - すごい - それはこれを行うことができますか?

ニック・ベイカー

私たちが始めたとき、私たちは仕様を書きました。実際に実装の詳細に入る前に、シリコンを使用する前に開発者に計画を立てる必要がありました。 /s。それは109GB/sになりました[GPU速度の増加とともに]。最終的に、これを実装することになったら、論理はあなたがはるかに高く進むことができることが判明しました。

アンドリュー・グーセン

ソフトウェアの観点から飛び込みたかっただけです。この論争は、特にEsramをXbox 360からのEdramの進化と見なしている場合、私にとってはかなり驚くべきことです。Xbox 360には、システムメモリから出てくる帯域幅と同時にエドラム帯域幅を得ることができるかどうかについての質問はありません。実際、システム設計に必要でした。エドラムにあるレンダリングターゲット、色、深さ、ステンシルバッファーを使用することと同時に、システムメモリからすべてのテクスチャをすべて引き上げる必要がありました。

もちろん、Xbox Oneを使用すると、ESRAMがXbox 360でEdramと同じ自然な拡張機能を持っているデザインを使用して、両方が同時に進むことです。 Xbox 360の素晴らしい進化であり、EDRAMで持っていた多くの制限をクリーンアップできるからです。 Xbox 360は開発するのが最も簡単なコンソールプラットフォームでした。開発者がEDRAMに適応するのはそれほど難しくありませんでしたが、「まあ、レンダリングターゲット全体がターゲット全体が確実にいいと思います。エドラムに住む必要はありませんでした。したがって、ESRAMからDDR3にオーバーフローする能力があるXbox Oneでそれを修正したので、ESRAMはページテーブルに完全に統合され、ESRAMを混ぜて一致させることができますそして、あなたが行くようにDDRメモリ。

GPUのテクスチャをメモリから外し、Xbox 360で「Resolve Pass」と呼ばれるものを必要としたい場合があります。必要に応じて、Esramからテクスチャーをすることができます。私の観点からは、Xbox 360でのデザインよりも、それは非常に進化と改善(大きな改善)です。このすべてに、率直に言って驚いています。

デジタルファウンドリー明らかに、あなたはわずか32MBのEsramに制限されています。潜在的に、4つの1080pレンダリングターゲット、ピクセルあたり32ビット、深さ32ビット - すぐに48MBです。ターゲットを効果的に分離できるように、一部の人がDDR3に住んでいて、重要な高帯域幅のものがesramに存在するようにすることができると言っていますか?

アンドリュー・グーセン

ああ、絶対に。そして、あなたはそれを作ることができます。たとえば、オーバードロウが非常に少ないレンダリングターゲットの一部...たとえば、レースゲームをしていて、あなたの空のオーバードローがほとんどない場合、リソースのサブセットをDDRに貼り付けることができますESRAMの利用を改善するため。 GPUでは、6E4 [コンポーネントごとに6ビットマンティッサと4ビットエクスポーネント]や7E3 HDRフロート形式[6E4形式]などの圧縮レンダリングターゲット形式を追加しました。コンポーネントごとの16ビットフロート64ppレンダリングターゲット、32ビットを使用して同等のことを行うことができます。そのため、そのESRAMの効率と利用率を本当に最大化することに重点を置いています。

デジタルファウンドリーそして、CPUの読み取りアクセスがESRAMにアクセスできますよね?これはXbox 360 Edramで使用できませんでした。

ニック・ベイカー

私たちはそうしますが、それは非常に遅いです。

デジタルファウンドリーEsramでの低遅延メモリアクセスについてオンラインで議論がありました。グラフィックテクノロジーについての私の理解は、あなたが遅延を控え、あなたが広くなること、あなたは多くの計算ユニットが利用可能であろうと並行していることです。ここでの低遅延はGPUのパフォーマンスに重大な影響を与えますか?

ニック・ベイカー

あなたが正しい。 GPUはレイテンシに敏感ではありません。遅延については実際には声明を出していません。

デジタルファウンドリーAPIとしてのDirectXは、現在非常に成熟しています。開発者はそれについて多くの経験を持っています。これがXbox Oneの利点だと思いますか? APIがどれほど成熟しているかを念頭に置いて、その周りのシリコンを最適化できますか?

アンドリュー・グーセン

大部分は、多くのDX11設計を継承しました。 AMDを使用したとき、それはベースラインの要件でした。プロジェクトを始めたとき、AMDはすでに非常に素晴らしいDX11デザインを持っていました。上のAPI、ええ、私たちは大きな利点があると思います。私たちは実装の観点から多くのオーバーヘッドを削除するために多くの作業を行ってきました。コンソールのために、D3D APIを呼び出すときにコマンドバッファーに直接書き込み、GPUを更新することができます。他の関数呼び出しを行わずに、そのAPI関数ですぐに登録します。ソフトウェアのレイヤーとレイヤーはありません。私たちはその点で多くの仕事をしました。

また、この機会を利用して、GPUのコマンドプロセッサを高くカスタマイズしました。再びCPUのパフォーマンスに集中しています...コマンドプロセッサブロックのインターフェイスは、グラフィックのCPUオーバーヘッドを非常に効率的にするための非常に重要なコンポーネントです。 AMDアーキテクチャはかなりよく知っています - Xbox 360にAMDグラフィックスがあり、そこに使用した多くの機能がありました。事前にコンパイルされたコマンドバッファーなどの機能があり、開発者がオブジェクトレベルで多くの状態を事前に建設し、「これを実行する」と言うことができます。 Xbox 360に実装し、よりクリーンなAPIをより効率的にしている方法について多くのアイデアを持っていたので、Xbox Oneとカスタマイズされたコマンドプロセッサでその機会を利用しました。 D3Dモデルに非常にうまく適合するD3D。これは、PCのメインライン3Dにも統合したいものです。コマンド。

「コンピューティングユニットの数の観点から最大のことは、非常に焦点を当てやすいものです。それは、CUSの数を数え、ギガフロップをカウントし、それに基づいて勝者を宣言しましょう。」

SonyもMicrosoftもそれを認めませんが、彼らのベースグラフィックスアーキテクチャは、Radeon HD 7870およびHD 7790に見られるように、それぞれAMDのPitcairn(左)とBonaire(右)のデザインと非常に密接に集計しています。Xboxデザイナーはまだ確信していませんより小さなグラフィックスコアが同等の結果を生み出すことができる多くのゲーマーは、追加の固定関数のシリコンを備えたより速いCPUの利点はほとんど無視されています。

デジタルファウンドリーGPUの仕様を見ると、MicrosoftがAMD Bonaireデザインを選択し、SonyがPitcairnを選択したように見えます。 GPUについて少し話しましょう - 南諸島、海島、火山島の島々に基づいているAMDファミリーは何ですか?

アンドリュー・グーセン

私たちの友人と同じように、私たちはシーアイランドの家族に基づいています。エリアのさまざまな部分でかなりの変更を加えました。コンピューティングユニットの数の観点から最大のことは、非常に焦点を合わせやすいものです。 CUSの数をカウントし、ギガフロップをカウントアップし、それに基づいて勝者を宣言しましょう。私の考えは、グラフィックカードを購入するとき、あなたは仕様を使って行くのですか、それとも実際にいくつかのベンチマークを実行しますか?まず、ゲームはありません。ゲームが見えません。ゲームを見ると、「パフォーマンスの違いは何ですか?」と言っています。ゲームはベンチマークです。 Xbox Oneで、多くのバランスを確認する機会がありました。バランスは、ゲームコンソールで優れたパフォーマンスを作成するための本当に重要です。あなたのボトルネックの1つがあなたを遅くするメインのボトルネックであることを望んでいません。

バランスは、実際の効果的なパフォーマンスの鍵です。 Xbox OneでNickと彼のチームと、システムのデザインの人々がシステムを構築し、システムの残高を確認し、それに応じて調整する機会がありました。数年前にすべての分析を行ったとき、そしてシミュレーションとゲームが利用の観点からどこにあるのかを推測したとき、私たちは良い仕事をしましたか?当時、適切なバランスの決定を下しましたか?したがって、GPUクロックを上げることは、バランスに入って微調整した結果です。 Xbox One Devキットはすべて、実際にはシリコンに14のCUを持っています。これらのCUのうち2つは、製造業の冗長性のために予約されています。しかし、私たちは実験を行うことができます - 実際に14 CUにいた場合、12に対してどのようなパフォーマンスの利点が得られますか?そして、GPUクロックを上げた場合、どのようなパフォーマンスの利点が得られますか?そして、私たちは実際にローンチのタイトルで見ました - 私たちは多くの深さで多くのタイトルを見ました - 14 CUに行くことは、私たちが行った6.6%のクロックアップグレードほど効果的ではないことがわかりました。 14 CUSに行くと誰もがインターネットから、17%近くのパフォーマンスを与えてくれるはずですが、実際に測定されたゲームの観点からは、実際に数えられるものは、時計を上げるのがより良いエンジニアリングの決定であったことです。パイプラインにあるさまざまなボトルネックがあり、必要なパフォーマンスを取得しないようにします[デザインのバランスが崩れている場合]。

ニック・ベイカー

周波数を増やすと、GPU全体に影響を与えますが、Cus BeefはシェーダーとALUを追加します。

アンドリュー・グーセン

右。クロックを修正することにより、ALUのパフォーマンスを向上させるだけでなく、頂点レートも上げ、ピクセルレートを上げ、皮肉なことにEsram帯域幅を増やします。しかし、パイプラインを流れるドローコールのようなボトルネックを取り巻くエリア、GPRプールからGPRを読むことのパフォーマンスなどのパフォーマンスも向上させます。パイプラインには、AluとFetchのパフォーマンスだけに加えて、ボトルネックになることができる数十億のエリアがあります。

Vgleaksに行くと、彼らは私たちの競争からいくつかの内部ドキュメントを持っていました。ソニーは実際に私たちに同意していました。彼らは、彼らのシステムが14 CUのバランスをとっていると言いました。彼らはその用語を使用しました:バランス。バランスは、実際の効率的な設計の点で非常に重要です。追加の4つのCUは、追加のGPGPU作業に非常に有益です。私たちは実際にそれについて非常に異なるタックを取りました。私たちがした実験は、CUSにもヘッドルームがあることを示しました。バランスの面では、必要以上にCUに関してより多くのインデックスを作成したため、CUオーバーヘッドがあります。私たちのタイトルは、CUの利用に関して時間の経過とともに成長する余地がありますが、彼らとそれらに戻って、彼らは追加のCUがGPGPUワークロードにとって非常に有益であると賭けています。一方、GPGPUワークロードの帯域幅を持つことが非常に重要であると私たちは言ったので、これが私たちのシステムにある非常に高いコヒーレントな読み取り帯域幅に大きな賭けをした理由の1つです。

私は実際に、これらのワークロードのために私たちよりも多くのCUを持っている競争からどのように競争をするのか、より良いパフォーマンスのコヒーレントメモリを持っていることを知りません。 Xbox 360 kinectであるGPGPUに関してはかなりの経験があると思います。GPUですべての模範的な処理を行っているため、GPGPUはXbox Oneのデザインの重要な部分です。それに基づいて、将来何をしたいかを知る。模範のようなもの...皮肉なことに模範的にはあまりaluを必要としません。これは、メモリフェッチ[GPUの遅延の隠れ]という点であなたが持っているレイテンシについてはるかに重要なので、これは私たちにとって一種の自然な進化です。特定のGPGPUワークロードにとってより重要なメモリシステムです。

デジタルファウンドリーGPUクロック速度の6.6%の利点に関しては、2つの冗長コンピューティングユニットが提供する追加の計算電力の17%を超えて、そのシナリオでROPに縛られていた可能性はありますか? 16のROPSは、競争の32との別の差別化のもう1つのポイントです。

アンドリュー・グーセン

はい、フレームの一部がROPに縛られていた可能性があります。ただし、より詳細な分析では、ROPにバインドされ、帯域幅にバインドされていない典型的なゲームコンテンツフレームの一部が一般的に非常に小さいことがわかりました。 6.6%のクロック速度ブーストが追加のCUに勝った主な理由は、頂点、三角レート、抽選発行率など、パイプラインのすべての内部部分を持ち上げたためです。

「バランスの取れた」システムの目標は、定義上、いずれの領域で一貫してボトルネックされないことです。一般に、バランスの取れたシステムを使用すると、特定のフレームのコースで単一のボトルネックがめったにないはずです - フレームの一部は塗りつぶされたレートに縛られ、他の部分はバウンドし、他のものはメモリバインドされる可能性があります。他の人は波の占有に縛られ、他の人は引き分けに縛られ、他の人は状態の変化に縛られることもあります。さらに問題を複雑にするために、GPUボトルネックは1回のドローコールのコース内で変化する可能性があります。

充填率とメモリ帯域幅の関係は、バランスが必要な場所の良い例です。メモリシステムがその充填率で実行するために必要な帯域幅を維持できない場合、高い充填率は役に立ちません。たとえば、レンダリングターゲットが32BPP [ピクセルあたりビット]で、ブレンドが無効になり、深さ/ステンシル表面がZを有効にして32BPPである典型的なゲームシナリオを考えてみましょう。描画されたピクセルごとに必要な帯域幅の12バイトの帯域幅に相当します(8バイトの書き込み、4バイトの読み取り)。 13.65GPIXELS/sのピーク充填率では、ESRAM帯域幅をほとんど飽和させる必要がある164GB/sの実際の帯域幅を追加します。この場合、たとえROPの数が2倍になったとしても、帯域幅でボトルネックされるため、効果的な充填率は変更されませんでした。言い換えれば、ターゲットシナリオの帯域幅にROPをバランスさせました。頂点とテクスチャデータにも帯域幅が必要であることに注意してください。これは、通常、DDR3から来ています。

3Dゲームシナリオの代わりに2D UIシナリオ用に設計されていた場合、この設計バランスを変更した可能性があります。 2D UIには通常、Zバッファーがないため、ピーク充填率を達成するための帯域幅の要件はしばしば少ないです。

「ゲーム開発者は、最高品質のビジュアルを可能にするように自然にインセンティブされているため、各ピクセルの品質とゲームのピクセル数との間で最も適切なトレードオフを選択します。」

デジタルファウンドリーRyseが「900p」で実行されている最近の開示によりキラー本能720pで、その起動タ​​イトルはシステムのバランスをとるためにプロファイルされましたが、これらのタイルが完全に1080pで実行されるのを防ぐ制限要因は何ですか?

アンドリュー・グーセン

タイトル開発者に、ゲームコンテンツに最も適している方法で、どの方法でもピクセルあたりの品質を解決策にトレードオフさせることを選択しました。解像度が低いということは、一般に、ピクセルあたりの品質が増える可能性があることを意味します。 720pや '900p'などの高品質のスケーラーとアンチアリアー剤およびレンダリング解像度を使用すると、ピクセルの数よりも各ピクセルに移動するGPU処理が多い場合、一部のゲームが良くなります。他のものは、ピクセルあたりのGPU処理が少なく、1080pで良く見えます。 Xbox 360よりも高品質のスカラーを備えたXbox Oneを構築し、この分野の開発者により多くの自由を提供するために、追加のディスプレイプレーンを追加しました。この選択の問題は、Xbox 360から学んだ教訓でした。発売時に、すべてのタイトルが少なくとも2倍のアンチエイリアシングで720p以上でなければならないという技術的な認証要件の委任がありました。最終的には、開発者が解決を自分で決定させることを許可することをお勧めします。ゲーム開発者は、最高品質のビジュアルを可能にするように自然にインセンティブされているため、各ピクセルの品質とゲームのピクセル数との間で最も適切なトレードオフを選択します。

比較ゲームの解決策を見る際に留意すべきことの1つは、現在Xbox Oneがシステム処理のためにGPUの10%の時間式予約を保守的に持っていることです。これは、Kinect用のGPGPU処理と、SNAPモードなどの同時システムコンテンツのレンダリングの両方に使用されます。現在の予約は、タイトルとシステム間の強い分離を提供し、ゲーム開発を簡素化します(強い分離とは、システムのワークロードが変動することを意味しますが、ゲームレンダリングのパフォーマンスを妨害しないことを意味します)。将来的には、完全なシステム機能を維持しながら、このGPU予約時間にアクセスするために開発者にさらに多くのオプションを開くことを計画しています。

これを容易にするために、非同期計算キューに加えて、Xbox Oneハードウェアは2つの同時レンダリングパイプをサポートします。 2つのレンダリングパイプにより、ハードウェアはタイトルコンテンツを優先度の高いレンダリングでき、システムコンテンツを低い優先度で同時にレンダリングできます。 GPUハードウェアスケジューラは、スループットを最大化し、高優先度処理で「穴」を自動的に埋めるように設計されています。これにより、システムレンダリングが塗りつぶし用のROPSを使用できるようになります。たとえば、タイトルは同時にコンピューテユニットで同期コンピューティング操作を行っています。

デジタルファウンドリーでは、GPGPUへの一般的なアプローチは何ですか?ソニーは、ALUをより多く活用するために、より広いコンピューティングパイプラインについて大したことをしました。 Xbox OneのGPGPUの哲学は何ですか?

アンドリュー・グーセン

私たちの哲学は、ALUは今後本当に重要であるということですが、私が言ったように、私たちは物事に別のタックを取りました。繰り返しになりますが、Xbox Oneでは、すべてのGPGPUワークロードの非同期計算でGPUで動作しています。高速コヒーレントメモリに関しては、効率的なGPGPUのすべての要件があります。オペレーティングシステムがあります。システム設計。ゲームのタイトル側のメモリマネージャーは完全に書き直されています。私たちは、CPUとGPUの仮想アドレス指定があなたがその側にいるときに実際に同じであることを保証するためにそれを行いました。 CPUとGPUの両方で仮想アドレスを同じに保つことで、GPUとCPUがポインターを共有することができます。たとえば、共有された仮想アドレス空間とコヒーレントメモリと需要ページングを排除することは、GPUがリンクリストなどのCPUデータ構造を直接通過できることを意味します。

システム側では、完全な汎用Windowsメモリマネージャーで実行されていますが、ゲーム側では、バックコンパートやこれらの厄介な問題について心配する必要はありません。メモリマネージャーを書き直すのは非常に簡単です。そのため、2つの間に同じ仮想アドレスを得ているコヒーレントなメモリがあり、そこで実行できるCPUとGPUの間を調整する同期メカニズムがあります。つまり、DirectComputeを発明しました。そして、Xbox OneがGPUハードウェアとGPGPUワークロードを実際に利用するために大きな投資を行っているAMPのようなものもあります。

私が指摘するもう1つのことは、インターネット上でも、人々がAlusとCPUの数を追加し、GPUにそれを追加して、「ああ、MicrosoftのCPUブーストはあまり作らないということです。違い。"しかし、GPGPUで効率的に実行されないワークロードはまだかなりあります。 GPUで効率的に実行するには、データ並列ワークロードが必要です。最近のGPUは、DATA以外の並列ワークロードを実行できますが、大量のパフォーマンスを捨てています。そして、私たちにとっては、バランスに戻り、サーマルとシリコンのデザインにあるマージンのオーバーヘッドでパフォーマンスを微調整することができ、それは私たちが戻って物事を見ることができるようになりました。私たちはローンチのタイトルを見て、それを見ました - 私たちはローンチタイトルに関してCPUとGPUのバランスをとっていませんでした - 2、3年前に設計したとき、おそらくそれを下手にしました。そのため、データを並列に実行できないワークロードにとって大きな利点であるため、戻ってCPUでそのクロックを引き上げることは非常に有益でした。

「フレームレートドロップの最大のソースは、実際にはGPUではなくCPUから来ています...非常に小さなブーストのように見えるものを提供することで、実際には、安定したフレームを確実に取得することを確認することは非常に重要な勝利です。コンソールの料金。」

MicrosoftのCPUおよび固定関数シリコンが、会社がそうであると言っているフレームレートブーストを提供しない場合でも、ダウンスケーリングは機能の完全なポートを確保できます。さまざまなサブHD解像度で実行されているCrysis 3は、ネイティブ1080pのプレゼンテーションと比較して30%のコンピューティングペナルティで実行されます。多くのシェーダーコードは線形形式ではスケーリングされていないため、実際には30%のダウンスケーリングがより高いフレームレートを生成するようです。YouTubeをご覧ください

デジタルファウンドリーGPU計算の比較は、Xbox Oneの高いコヒーレント読み取り帯域幅とRAW ALUのPS4に関するものであるようです。しかし、PS4に追加された追加のACEがその問題に対処することを目指していませんか?

アンドリュー・グーセン

ACESによって提供される非同期計算キューの数は、GPUの帯域幅または効果的なフロップの数、またはその他のパフォーマンスメトリックの量に影響しません。むしろ、GPUのハードウェアスケジューラがいつでも動作できるという同時ハードウェア「コンテキスト」の数を指示します。これらはCPUソフトウェアスレッドに類似していると考えることができます。これらは、GPUハードウェアを共有する実行の論理的なスレッドです。それらの多くが必ずしもシステムの実際のスループットを改善するわけではありません - 確かに、CPUで実行されているプログラムのように、あまりにも多くの同時スレッドがスラッシングにより集計を効果的なパフォーマンスを悪化させる可能性があります。私たちは、2つのエースによって提供される16のキューで十分であると考えています。

システムの設計に関して私たちにとってもう1つの非常に重要なことは、ゲームがスムーズなフレームレートを確保することでした。興味深いことに、フレームレートドロップの最大のソースは、実際にはGPUではなくCPUから来ています。 CPUにマージンを追加する...実際には、主にコアスレッドの観点からCPUバウンドであったためにフレームを失っていたタイトルがありました。ブーストがほとんどないように見えるものを提供する際に、実際には、コンソールで安定したフレームレートを獲得することを確認することは非常に重要な勝利です。そして、それは私たちの重要なデザインの目標でした - そして、私たちは多くのCPUオフロードを続けています。

形状、より効率的なコマンドプロセッサ(標準設計と比較して)があります。クロックブーストがあります。実際、フレームレートのヘッドルームを確保することです。より一貫したフレームレートを確保するために、ハードウェアオーバーレイでもGPU側で物事を行いました。タイトルに3Dコンテンツになることができる2つの独立したレイヤーがあります。1つはHUDになることができます。 Xbox 360よりも高品質のスケーラーがあります。これにより、実際にフレームごとのパラメーターを変更できることです。 CPUのグリッチについて説明しました。フレームのグリッチを引き起こします... GPUワークロードは、フレームの一貫性のあるフレームになる傾向があります。 CPUに乗るような大きなスパイクはない傾向があるので、それに適応することができます。

タイトルで見ているのは、フレームレートの不具合を避けるために動的解像度のスケーリングの概念を採用することです。彼らが彼らが彼らのフレームの予算を潜在的に進むことができるマージンでヒットし始めているエリアに着くようになると、彼らは解像度を動的にスケーリングし始めることができ、彼らは真の解像度と3Dの観点から彼らのHUDを維持することができますコンテンツは圧迫されています。繰り返しになりますが、ゲーマーとしての私の側面から、私はそれらのフレームレートのグリッチを持っているよりも、一貫したフレームレートとピクセルの数を圧迫することを望んでいます。

デジタルファウンドリーしばしば、あなたはCPUバウンドです。それは、なぜ非常に多くのデータ移動エンジン機能がCPUをオフロードすることであるように見えるのかを説明しています。

アンドリュー・グーセン

ええ、繰り返しますが、私たちはバランスが取れていないと思います。ゲームの後半でそのバランスを変える絶好の機会があったと思います。 DMA移動エンジンは、GPUも大幅に役立ちます。そこにいくつかのシナリオについては、Esramの深さバッファーにレンダリングしたと想像してください。そして今、あなたは別の深度バッファに切り替えています。後でテクスチャーをすることができ、そのテクスチャーからたくさんの読み取りをしていないように、今ではテクスチャになっているものを引っ張りたいと思うかもしれません。移動エンジンを使用して、GPUと協調してこれらのことを非同期に移動できるように、GPUは移動に時間を費やしていません。 DMAエンジンがそれを行っています。これで、GPUは続行し、単にビットを移動するのではなく、すぐに次のレンダリングターゲットで作業できます。

ニック・ベイカー

パワー/効率の観点からも、固定関数ユニットでは固定機能がよりパワーフレンドリーです。そこにもデータ圧縮を配置するため、LZ圧縮/減圧と、Kinectに役立つモーションJPEGデコードがあります。そのため、メモリのブロックから別のブロックに移動するよりも、データ移動エンジン以上のものがあります。

デジタルファウンドリー新しい情報であったホットチッププレゼンテーションから出てきたもう1つのことは、私が言及していなかったEMMC NANDでした。タイトルは利用できないと言われています。それで、それは何をしますか?

アンドリュー・グーセン

もちろん。システムの応答を改善するためにキャッシュシステムサイドとして使用し、その下で実行されているタイトルのシステムパフォーマンスを妨害しないようにします。ですから、スリープモードから出てこないとき、コールドブーツをしている場合、ブーツの時間を速くすることです。そこにオペレーティングシステムをキャッシュします。また、実際にタイトルを実行しているときにシステムデータをキャッシュし、スナップアプリケーションが同時に実行されている場合もあります。タイトルと同時にハードディスクを打つことができないようにしています。すべてのゲームデータはHDDにあります。私たちはその頭を動かして、システムが入ってくることを心配したり、不適切な時期に頭を踏みつけたりしたかったのです。

デジタルファウンドリーCPUに到着した方法とGPUの増加について話していただけますか?

ニック・ベイカー

ヘッドルームがあることはわかっていました。テストする本物のタイトルができるまで、私たちはそれで何をしたいのか知りませんでした。 GPUをいくら増やしますか? CPUをいくら増やしますか?

アンドリュー・グーセン

ヘッドルームがありました。コンソールの起動に輝くことは輝かしいことです。通常、あなたはダウンクロックしなければならないことについて話している。私たちは一生に一度の機会に行って、パフォーマンスを改善したい場所を選んでいたので、ヘッドルームから抜け出すことができる情報に基づいた意思決定パフォーマンスの改善を推進する方法として使用するローンチタイトルを持つことは素晴らしいことでした。

デジタルファウンドリーたとえば、ゲームプレイ中に、Xbox Oneが壁からどれだけのパワーを獲得するかを教えてください。

Microsoft PR

それは私たちが現時点で開示している人物ではありません。

ニック・ベイカー

しかし、他のフォーラムでも複数の電力レベルを実装していると述べています。シナリオに応じて、フルパワーから2.5%まで縮小しています。

デジタルファウンドリーええ、私はそれについて聞いたことがあります、私は最終的な数字に興味があります。壁を手に入れたら、壁の最終コンソールを測定する必要があると思います!ただの質問です。それは本当に個人的な質問です。あなたは長年Xboxハードウェアに取り組んでおり、Xbox Oneに長年取り組んでいます。先週、生産がキックオフするのを見ました。あなたの仕事の集大成を見るのはどうですか?

ニック・ベイカー

ええ、何かを手に入れることは常に素晴らしい気持ちです[しかし]私のチームは並行して複数のプログラムに取り組んでいます - 私たちは常にアーキテクチャチームで働いています。

アンドリュー・グーセン

私にとって最大の報酬は、ゲームに行って、彼らが見栄えが良く、そうだと思うことです。これが私たちがすべての努力をした理由です。グラフィックスの男として、画面上でそれらのピクセルを見るのはとてもやりがいがあります。