The Road to Next Gen Ludens

PlayStation, PSVR, ゲームなど興味のあるモノコト。

開発者インタビュー 全文日本語訳「PlayStation5は強力なのか、どんな秘密があるのか?」 Crytek レンダリングエンジニア Ali Salehi氏

f:id:keepitreal:20200407182021p:plain

「PlayStation5は強力なのか、どんな秘密があるのか?」 開発者インタビュー 全文日本語訳

アリ・サレヒ (Ali Salehi, Crytek レンダリングエンジニア 本社:ドイツ・フランクフルト)

取材: Vigiato(ペルシャ語ゲームメディアサイト)

2020年4月6日

はじめに

数週間前、PlayStation5とXbox Series Xのハードウェア仕様がソニーMicrosoftから正式に発表されたが、Digital Foundryは我々の求めるものを技術的に詳細に検討する機会を得た。

これらのコンソール向けのゲームはまだ多くはないし、全体的な性能やユーザー体験についてもよくわからないが、両社はエンジニアやプログラマーしか理解できないような、技術的で複雑な議論で常に競い合っている。今回、最も深い技術情報を提供せざるを得ないのだ。

情報を追いかけて仕様書を読み取り、さらなる情報を探していたとき、我々は強力なゲームエンジンを持ち世界で最も技術に精通した企業の1つである、Crytek(クライテック)社のエンジニアやプログラマーに話を聞いたほうがよいと考えた。

そこで私はCrytekのレンダリングエンジニアであるアリ・サレヒ (Ali Salehi, 編者注:『Hunt: Showdown』等の開発者)に電話をかけ、専門家として、PS5に対するXbox Teraflops(編者注:フロップスは浮動小数点演算の単位、テラは1兆)の優位性とコンソールのパワーについての我々の質問に答えてもらい、どちらがより強力なのかコメントを求めたのである。

理論上の予想や数字とは裏腹な、シンプルでわかりやすい説明で説得力のある回答だ。

この記事では、Mohsen VafnejadとShayan ZiaeiがAli Salehiと交わした、PlayStation5とXbox Series Xのハードウェア仕様に関するやり取りをお届けする。

f:id:keepitreal:20200408175453p:plain

インタビュー

[質問とライターのコメントは太字、回答は細字表記]
Vijayato:一口に言って、ゲーム会社のレンダリングエンジニアの仕事とは何ですか?

Ali Salehi:各ゲームの技術的なヴィジュアル分野が仕事です。つまり、新しいコンソールのサポート、実装したアルゴリズムの最適化、実装アルゴリズムトラブルシューティング、新しいテクノロジーレイトレーシング等の機能の実装などを行っています。

Tflops(テラフロップス)とはどんな意味ですか?Tflopsが高いほど、コンソールはより強力だということですか?

Tflopsは、あるプロセッサが可能な限り最適かつ最も理想的な状態の場合に、そのくらい効率的であることを示しています。テラフロップスの数値は、理想的かつ理論的な条件下での数字です。

ただし実際には、グラフィックスカードとコンソールは複雑な構成要素で、その能力を最大限に発揮することは滅多にないのです。フィードの各部分を他の部分に提供したり、ある部分を別の部分に出力するには、いくつかの要素が協調し、連携する必要があります。これらの各要素がうまく機能しないと、他の部分の効率が悪くなります。

その良い例がPlayStation3というゲーム機です。PlayStation3はSPUの搭載により、Xbox360よりも理論上はるかに強力なパワーを持っていました。しかし実際には、その複雑なアーキテクチャボトルネックとなったメモリなどの問題のために、最大効率に達することはなかったのです。

f:id:keepitreal:20200408175536p:plain

画像
PlayStation3の悲劇
PlayStation 3Xbox 360と比較して、マルチプラットフォームのゲームを動かすことに苦労した。例えば『Red Dead Redemption』や『GTA IV』はMicrosoftのゲーム機で720pで動作したが、PlayStation3の出力は低かったため最終的に解像度を720pにアップスケールした。しかしソニーの自社スタジオはコンソールに精通しており、特別なソフトウェア標準化技術を開発出来たことで『The Last of Us(ラスト・オブ・アス)』や『Uncharted(アンチャーテッド)2』『Uncharted3』などのより精巧なゲームを提供することができた】

だからこそ、数字だけで判断してしまうのはよくないですね。しかし、Xbox Series Xのすべてのパーツが最適に動作し、GPUが(実際には不可能ですが)ピーク性能で動作すれば、12Tflopsを達成できます。

これらすべてに加えて、ソフトウェア部分もあります。たとえば、VulkanとDirectX12の登場です。ハードウェアは変わっていませんが、ソフトウェアのアーキテクチャが変更されたことでハードウェアをより有効に使えるようになりました。

コンソールも同じことが言えます。ソニーはPlayStation5を独自のOSで動かしていますが、MicrosoftXbox Series XにカスタマイズしたWindowsを載せています。両者はまったく違います。

ソニーはPlayStation5専用のソフトウェアを開発したので、コンソール用に持っているのはDirectX PCとほぼ同じものであるMicrosoftより、はるかに多くの機能を開発者に提供できることは間違いないでしょう。

両方のコンソールでの作業した経験について、またどう評価したか教えてください

私自身の仕事については今は何も言えませんが、公式に発言した人たちを引用しましょう。

開発者は、PlayStation5はこれまでコーディングした中で最も簡単なゲーム機だと言っています。コンソールの最高性能を使えるのです。

ソフトウェアについては、PlayStation5でのコーディングは極めてシンプルで、開発者に選択肢をたくさん与えてくれる多くの機能を持っています。全体的に見て、PlayStation5の方が優れたゲーム機です。

私の理解が正しければ、TflopsはGPUパワーよりも最終的な決め手になるのでしょうか?それとも、これらの浮動小数点は何を意味するのでしょうか?これら全てを理解していないユーザーには、どんな風に説明しますか?

これらの情報を全部公開したのは悪いPRのやり方だったと思います。この技術情報は一般的なユーザーにはどうでもよく、GPU性能を最終的に判断するものでもありません。

f:id:keepitreal:20200408175603p:plain

画像

【E3 2016でMicrosoftは初めてProject Scorpio(後のXbox One X)について語ったが、それはコンソール間でTflopsベースの処理能力について議論が起きた年でもあった。ミッドレンジコンソールのハードウェアが改良される中、Xboxブランドマネージャーであるフィル・スペンサー氏は、ミッドレンジコンソールのパワーを初期型コンソールと比較するためのベンチマークを探しており、これがTflopsという単語を使う時代の始まりとなった。これまでゲーム機の性能を測る真の基準はゲームのパフォーマンスであったが、Tflopsという言葉が使われ始めた当初から、専門家たちはそれが単語と数字を使ったゲームにすぎず、Tflopsの数量を基準とするべきでないことを繰り返し警告してきた】

たとえばグラフィックスカードには20の異なるセクションがあり、そのうち1つが処理を実行するコンピュートユニット(CU)です。残りのコンポーネントがベストな使い方をされ他にも制限がなければ、メモリのボトルネックにはならず、プロセッサが必要な情報を持っていれば12Tflopsを達成できます。

ですから全ての制限パラメータを除去する理想的な環境では可能ですが、あり得ません(全てのボトルネックを取り去ることはできず、12Tflposは理論上でしかないという意味です)。

その良い例がXbox Series Xハードウェアです。Microsoftは2つの異なるRAMプールを用意しました。これはXbox Oneの時と同じ間違いです。

一方のRAMプールは高い帯域幅で、もう一方のRAMプールは低い帯域幅です。その結果、コンソールのコーディングに問題が生じることがあります。

より高速なRAMプールに配置しなければならないものがあまりにも多くてまた面倒になりますし、4k出力にはさらに多くの帯域幅が必要でイライラすることになります。したがって、XSXのGPUボトルネックにする要因がいくつか存在すると言えます。

CUの話をしましたね。PlayStation5は36CU、Xbox Series Xは52CUを開発者が使えます。違いは何でしょうか?

大きな違いは、PlayStation5の動作周波数がずっと高く、より高い周波数で動作していることです。そのため、CU数の違いにも関わらず、2つのコンソールのパフォーマンスはほぼ同じです。

IGN記者が書いた興味深い比喩として、Xbox Series XのGPUは8気筒エンジン、PlayStation5はターボチャージャー付き6気筒エンジンのようなものだ、というものがありました。

PlayStation5のクロック速度を上げることは、メモリ管理やラスタライズ、またCUの数ではなく周波数に関係するGPUの他の要素など、多くのメリットがあるように思えます。

そのため一部の状況では、PlayStation5のGPUはSeries Xよりも高速に動作します。これが、PS5 GPUがより頻繁に、発表されたピーク時の10.28Tflopsで動作するようになる理由です。

しかしSeries Xでは他の要素が遅いため、おそらくほとんどの場合、12Tflopsには到達せず、極めて理想的な条件下でのみ12Tflopsに達するでしょう。

この違いですが、開発者がSeries Xハードウェアに慣れてくる次世代の終わり頃には縮まっているのではありませんか?

いいえ。PlayStation APIは一般的に言って、開発者により多くの自由を与えていますし、各世代の終わりにはソニーのゲーム機の方が、より精巧なゲームを作っているのが通例です。

例えば、第7世代の初期には、両方のゲーム機用のマルチプラットフォームのゲームでさえ、PlayStation3ではパフォーマンスが悪かったのです。

(※編者注:ここで言う世代とは、据置型ゲーム機を発売年代や機能等で世代別に分類する考え方。第7世代はXbox 360PlayStation3Wiiなど)

しかしその世代の終盤、『アンチャーテッド3』と『ラスト・オブ・アス』がコンソールで発売されました。次世代も同じでしょう。

しかし一般的に言って、XSXはより多くのピクセルを捻りだすのには、そう苦労しないはずです(彼はピクセル「のみ」を強調した)。

f:id:keepitreal:20200408175644p:plain

ソニーはCUの数が少ないほど、よりタスクを統合できると言っています。ソニーの主張はどういう意味ですか?

全てのCUを同時に使うとリソースを食うものです。CUは、コードを実行する際にGPUに割り当てられたリソースが必要だからです。

もしGPUが、コード実行のために行う全リソースの全CUへの分配に失敗したら、GPUは使用中であるCUの数を強制的に落とさざるを得ません。

GPUは、常に全てのCUに十分なリソースを持っているわけではないので、例えば52ではなく20を使うわけです。

このことを把握した上で、ソニーは割り当てコストを削減するために、大型GPUではなく高速GPUを用いました。

さらに顕著な例はCPUですね。AMDはずっと前からハイコア(編者注:コア数の多いこと)CPUを提供してきました。一方Intelは、コアの使用量を減らし、高速なものを採用してきました。コア数は少ないけれども高速なIntel CPUは、ゲームでより優れたパフォーマンスを発揮します。

16コアや32コアCPUの方が明らかにTflopsの数字は多くなりますが、より速いコアを持つCPUの方が、間違いなく良い仕事をしてくれるでしょう。

ゲーマーやプログラマーが全てのコアを常時使用することは難しいので、コア数は少なくても高速であることが望まれているのです。

Xシリーズに搭載されているハイパースレッディング機能は、次世代末期のMicrosoftの切り札になるのでしょうか?

技術的に言えば、Pentium4以降のデスクトップコンピュータにはハイパースレッディングが採用されていて、それぞれの物理コアは2つの仮想コアと見なされるCPUであり、ほとんどの場合パフォーマンスに貢献しています。

このSeries Xの機能によって、開発者はこれら仮想コアを使うか、またはCPUクロックを上げて仮想コアをオフにするかを自分で決められるのでしょうか?まさにその通りです。

はじめからローカルで決めることは大して重要ではないので、ハイパースレッディングは最初からではなく、世代の後半で使用される可能性が高いと思います。

f:id:keepitreal:20200408175720p:plain

詳しく説明してもらえますか?

つまり、分析するには非常に正確なコード実行が必要だということです。今はまだ、誰もが知っていることではないからです。

今は、コンソールハードウェアを認識する上ではるかに重要な懸念事項があって、次世代の最初はまず少ないコア数で、しかし高いクロックで作業してから、開発者はSMT(編者注:Simultaneous Multithreading Technology 同時マルチスレッディング/ハイパースレッディングと同義)を使うようになるでしょう。

3328シェーダーがXbox Series X コンピューティングユニットで利用可能です。シェーダとは何ですか?その機能は、そして3328シェーダは何を意味するのでしょうか?

開発者がコードを実行したいときにはWavefront(編者注:AMD GPUの命令供給のスレッドグループ)と呼ばれるユニットを通じて行います。CUの数にWavefrontの数を掛けるとシェーダの数がわかります。

しかしそれは実際には重要ではなく、CUについて私が言ったこと全てが、ここでも当てはまります。

繰り返しになりますが、これらシェーダには全てを使うことができない制限があり、一度にたくさんのシェーダを使用するのは必ずしも良いことではありません。

マーク・サーニー氏が言うように、考慮すべき重要な問題がもう1つあります。

CUやTflopsでさえ、全てのアーキテクチャ間で同じ(基準)であるとは限りません。つまりTflopsをデバイス間で比較して、どちらが実際に数値的に優れているかは判断できないのです。

ですから、この数字を信用して「よし、終わり」とはいきません。

Android端末とAppleiPhoneの比較は最近ではコンソールにも類推されるようになってきていて、インターネット上の議論では、AndroidユーザーはiPhoneよりRAMの数字は高いがパフォーマンスは低いことが示唆されています。この二つとコンソールは正しい比較でしょうか?

ハードウェア上に置かれるソフトウェアスタックが全てを決めます。

パフォーマンスの更新が指数関数的に増加すれば、パフォーマンスも指数関数的に増加します。

MicrosoftWindowsを使わないといけないので、ソニーは常により良いソフトウェアを提供してきました。その通りです。

MicrosoftXbox Series Xの周波数はどのような状況でも一定であると主張していますが、ソニーはそのようなアプローチをとっておらず、状況に応じて変えられるよう一定のエネルギーをコンソールに供給します。この二つはどう違うのでしょうか?開発者にとってはどちらがよいのでしょうか?

ソニーがやったのは、処理負荷に応じてある時間帯にGPUの周波数を高くするか、CPUの周波数を高くするかを判断することですから、はるかに論理的です。

たとえば、ロード画面ではCPUだけが必要で、GPUは使われません。あるいは、キャラクターの顔をクローズアップするシーンではGPUが関わり、CPUの役割は非常に小さくなります。

一方で、Series Xは冷却性能が優れており、周波数を一定に保つことが保証されていて、スロットリング(編者注:熱暴走から守るための周波数低減)がないのは良いことですが、ソニーが与えている自由度は、本当に大きいです。

f:id:keepitreal:20200408175746p:plain

こういった行動の自由は、開発者にとって事態を難しくしませんか?

そうでもありません。すでに(ゲーム)エンジンでやっていますから。

例えば、一部のゲームで使われている動的解像度スケーリング(Dynamic Resolution Scaling)技術では、さまざまな要素を測定してGPUがどれだけ圧迫されているか、フレームに固定される解像度をどれだけ低く維持するべきかを測定しています。ですからこれらを繋げるのはとても簡単です。

ソニーが言っているジオメトリエンジンとは、またジオメトリエンジンの用途とは何でしょうか?

最初の1、2年はあまり使えないと思います。おそらくこのゲーム機でリリースされるゲームの第二波ではもっとインパクトがあるでしょうが、最初はあまり使い道がないと思います。

Series Xチップセットは7nm(ナノメートル)で、数値が小さいほど良いチップセットであることがわかっています。nmとトランジスターを研究していますか?

nmを下げるということは、トランジスタの数を増やしてその熱を多数の小さなスペースで制御するということです。生産技術の方が大事であって、nmの数字はそれほど大切ではありません。重要なのはトランジスタの数です。

PlayStation5のSSD速度は、ピークモードで8~9GB/sに達します。このスピードに達した今、ゲームのロード時間と精緻さ以外に、何が起きるのでしょうか?

まず、ゲームからロード画面を排除します。

Microsoftはまた、複数のゲームを同時に動かして5~6秒未満で各ゲーム間を移動できる、新しいゲームを中断しまた再開する機能も披露しています。これはPlayStationの場合、1秒もかかりません。

もう1つ期待できるのはゲームメニューの変更です。ロード(読み込み)がない場合はもちろん「ロード(待機)」はなく、ゲームをバックグラウンドでロードするためにビデオを見ている必要はなくなります。

f:id:keepitreal:20200408175827p:plain

さてそうなると、PCゲームはどうなるでしょう?SSDはPCユーザーにとって、数ある選択肢のうちのひとつですが

コンソールは常に、何がスタンダードかを決定してきました。ゲーム開発者もまた、ゲーム機をベースにゲームを開発しますが、もしPCを持っているがSSDを搭載していない人がいたら、長時間のロードに立ち向かうか、SSDの購入を考えなければいけませんね。

プログラマーおよび開発者として、作業とコーディングに最適なコンソールはどれだと思いますか? PlayStation5か、Xbox Series Xでしょうか?

間違いなくPlayStation5です。

プログラマーとしては、PlayStation5の方がずっといいと思いますし、PS5よりXBXを選ぶプログラマーはいないと思います。

Xboxでは何年も前のゲーム機にDirectXWindowsを積む必要がありますが、ソニーは新しいゲーム機を作るたびに、ソフトウェアとAPIを好きなように再構築しています。それは彼らの利益であり、私たちの利益でもあります。

なぜなら、何事にも方途はたった一つであり、それこそが最善の道だからです。

 

〈元記事〉 ※削除済

CrytekのレンダリングエンジニアであるAli Salehi氏へのインタビュー Vigiato(ペルシャ語サイト)

https://vigiato.net/p/85342  (削除済)

https://i.imgur.com/OFU9fub.jpg (5MBほどの画像です)