Digital Foundry
最初から 8GB を目標にしていたのですか?
アンドリュー・グーセン
そうですね、タイトルと同時に実行したい種類のエクスペリエンスを検討していたときに、これはかなり早い段階で決定したと思います。そして、そこに必要なメモリの量。それは私たちにとって本当に早い決断だったでしょう。
Digital Foundryの
CPU側、興味があります。たとえば 4 つの
Piledriver
コアではなく、8 つの Jaguar コアを選択したのはなぜですか?重要なのはワットあたりのパフォーマンスですか?
ニック・ベイカー
Jaguar から Piledriver への IPC ブーストの追加に伴う追加のパワーとエリア…これはコンソール用に行う正しい決定ではありません。エリアごとのパワー/パフォーマンスのスイートスポットに到達し、それをより並列的な問題にすることができます。それがすべてなのです。タイトルとオペレーティング システムの間でコアをどのように分割するかは、その点でも同様に機能します。
Digital Foundry
それは本質的には Jaguar IP そのままですか?それともカスタマイズしたんですか?
ニック・ベイカー
Xbox One が登場するまでは 2 クラスターの Jaguar 構成は存在しなかったので、それを機能させるためにはやらなければならないことがありました。私たちは GPU と CPU の間の一貫性を高める必要があったので、それを行う必要がありました。CPU 周辺の多くのファブリックに影響を与え、Jaguar コアがどのように仮想化を実装するかを確認し、そこに微調整を加えましたが、基本的なものは何もありませんでした。 ISA や命令の追加、またはそのような命令の追加。
Digital Foundry
15 個のプロセッサーがあると話していますね。それを分解してもらえますか?
ニック・ベイカー
SoC 上には多くの並列エンジンがあり、その一部は CPU コアまたは DSP コアに似ています。 15 までの数え方: オーディオ ブロック内に 8 つ、ムーブ エンジンが 4 つ、ビデオ エンコードが 1 つ、ビデオ デコードが 1 つ、ビデオ コンポジター/リサイザーが 1 つあります。
オーディオブロックは完全にユニークでした。それは私たち社内で設計されました。これは、4 つの tensilica DSP コアといくつかのプログラム可能な処理エンジンに基づいています。これを、制御を実行する 1 つのコア、音声用の多数のベクトル コードを実行する 2 つのコア、および汎用 DSP 用の 1 つのコアに分割します。サンプル レート変換、フィルタリング、ミキシング、イコライゼーション、ダイナミック レンジ補正、さらに XMA オーディオ ブロックと組み合わせます。目標は、ゲーム オーディオで 512 の同時音声を実行し、Kinect の音声前処理を実行できるようにすることでした。
Digital Foundry
カスタム ハードウェアがマルチプラットフォーム ゲームで利用されないのではないかという懸念がありますが、ハードウェア アクセラレーション機能がミドルウェアに統合され、広く利用されるだろうと私は推測しています。
ニック・ベイカー
そうですね、アンドリューはミドルウェアの点について話すことができますが、これらの一部はシステムが Kinect 処理などを行うために予約されているだけです。弊社が提供するシステムサービスです。その処理の一部は Kinect 専用です。
アンドリュー・グーセン
したがって、システムとシステム予約のために私たちが設計したことの多くは、多くの作業をタイトルからシステムにオフロードすることです。これは実際にはタイトルに代わって多くの作業を行っていることに留意する必要があります。私たちはシステム予約で音声認識モードを採用していますが、他のプラットフォームではそれをコードとして持っており、開発者はそれをリンクして予算から支払う必要があります。 Kinect でも同様で、NUI [Natural User Interface] 機能のほとんどはゲーム用に無料で提供されており、ゲーム DVR も同様です。
Digital Foundry
おそらく、プロセッサーで最も誤解されているのは ESRAM と、ゲーム開発者にとっての ESRAM の意味です。これが含まれているということは、かなり早い段階で GDDR5 を除外し、DDR3 と組み合わせた ESRAM を支持したことを示唆しています。それは公平な仮定ですか?
ニック・ベイカー
はい、その通りだと思います。パフォーマンス、メモリ サイズ、電力の可能な限り最高の組み合わせを実現するという点で、GDDR5 は少し不快な場所に連れて行ってくれます。 ESRAM を使用すると、消費電力はほとんどかからず、非常に高い帯域幅が得られます。外部メモリの帯域幅を減らすことができます。これにより、消費電力も大幅に節約され、市販のメモリも安価になるため、より多くの費用をかけることができます。それがまさにその原動力です。おっしゃるとおり、大容量のメモリ、比較的低消費電力、広い帯域幅が必要な場合、それを解決する方法はそれほど多くありません。
「パフォーマンス、メモリ サイズ、電力の可能な限り最高の組み合わせを実現するという点で、GDDR5 は少し不快な場所に連れて行ってくれます。ESRAM を搭載すると電力コストはほとんどかからず、非常に高い帯域幅を得ることができます。」
Digital Foundry
そして、4 ギガビット GDDR5 モジュールが発売に間に合うかどうかという実際の保証はありませんでした。それがソニーが行った賭けであり、それが功を奏したようだ。つい最近まで、PS4 SDK ドキュメントでは 4GB の RAM について言及していました。
eDRAMを搭載したIntelのHaswellが、
あなたがやっていることと最も近いものだと思います。なぜ eDRAM ではなく ESRAM を選ぶのでしょうか? Xbox 360 ではこれで大きな成功を収めました。
ニック・ベイカー
問題は、単一のダイ上で eDRAM を実行できる技術を誰が持っているかということです。
Digital Foundry
つまり、Xbox 360 のときのように娘の死を選びたくなかったのですか?
ニック・ベイカー
いいえ、先ほども言ったように、単一のプロセッサが必要でした。別の期間やテクノロジーの選択肢があれば、別のテクノロジーを使用できたかもしれませんが、その期間内の製品としては ESRAM が最良の選択でした。
Digital Foundry
ESRAM を見ると、Hot Chips のプレゼンテーションで、8MB 領域のブロックが 4 つあることが初めて明らかになりました。それはどのように機能するのでしょうか?
ニック・ベイカー
まず最初に、GPU に ESRAM とメイン RAM を同時に使用できるかどうかという疑問があります。実際には、ESRAM と DDR3 は合計 8 つのメモリ コントローラを構成していると考えることができるため、メモリ コントローラは 4 つあることを指摘します。 DDR3 に接続される外部メモリ コントローラー (64 ビット) と、ESRAM に接続される 256 ビットの内部メモリ コントローラーが 4 つあります。これらはすべてクロスバーを介して接続されているため、実際には、DRAM と ESRAM に同時に直接アクセスできることになります。
デジタルファウンドリ
も同時に?なぜなら、帯域幅を追加することになり、現実のシナリオではこれを行うことはできないという多くの論争があるからです。
ニック・ベイカー
そのインターフェイス上では、ESRAM への各レーンは 256 ビットで、各方向で合計 1024 ビットになります。 1024 ビットの書き込みでは最大 109GB/s が得られ、その後、別の読み取りパスが再びピーク時に実行され、109GB/s が得られます。外部メモリに対して行うのと同じ種類の計算を行う場合、ESRAM の同等の帯域幅はどれくらいになりますか? DDR3 では、インターフェイス上のビット数に速度を掛けると、68GB が得られます。 /秒。 ESRAM では 218GB/s に相当します。ただし、メイン メモリと同様に、長期間にわたってこれを達成できることはまれであるため、通常、外部メモリ インターフェイスは 70 ~ 80% の効率で実行されます。
ESRAM についても同様の議論があります。Hot Chips で発表された 204GB/s という数値は、ESRAM 周辺のロジックの既知の制限を考慮に入れています。絶対にすべてのサイクルで書き込みを維持することはできません。書き込みでは時折バブル (デッド サイクル) が挿入されることが知られています…8 サイクルに 1 サイクルがバブルであるため、ESRAM 上で実際に達成できる生のピークとして合計 204GB/s が得られます。アプリケーションから何が達成できるかというと、ESRAM の測定値は約 140 ~ 150 GB/秒です。それが実際に実行されているコードです。それは診断やシミュレーションのケースなどではありません。これは、その帯域幅で実行されている実際のコードです。これを外部メモリに追加すると、同様の条件でおそらく 50 ~ 55 GB/s が達成され、これら 2 つを合計すると、メイン メモリと内部メモリ全体で 200 GB/s 程度になると言えます。
1 つ指摘しておきたいのは、8MB レーンが 4 つあることです。ただし、これらの各レーン内の連続した 8MB のメモリ チャンクではありません。各レーンでは、その 8MB が 8 つのモジュールに分割されます。これは、メモリ内で実際に読み取りと書き込みの帯域幅を同時に確保できるかどうかに対処する必要があります。はい、実際には ESRAM 全体を構成する個別のブロックがもっとたくさんあるので、それらのブロックと並行して通信できます。もちろん、同じ領域に何度も何度もアクセスした場合、分散することはありません。実際のテストでピークの 204GB/s ではなく 140 ~ 150GB/s が得られる理由の 1 つは、8MB メモリの 4 つのチャンクだけではないということです。それはそれよりもはるかに複雑で、それらを同時に使用するパターンによって異なります。これにより、読み取りと書き込みを同時に行うことができます。メインメモリに読み書き帯域幅を追加するだけでなく、読み書き帯域幅も追加できます。それは私たちが一掃したいと思っていた誤解の 1 つにすぎません。
アンドリュー・グーセン
読み取りのみを実行している場合は 109GB/s に制限され、書き込みのみを実行している場合は 109GB/s に制限されます。これを克服するには、読み取りと書き込みを組み合わせる必要がありますが、レンダー ターゲットやデプス バッファーなど、通常 ESRAM 内にあるものを見ようとすると、本質的に大量の読み取りが発生します。 -modified 書き込みがブレンド内で実行され、深度バッファーが更新されます。これらは ESRAM に固定するのが自然であり、同時読み取り/書き込みを利用するのが自然です。
Digital Foundry
つまり、140 ~ 150GB/s が現実的な目標であり、DDR3 帯域幅を同時に統合
できるということです
か?