次世代Nintendo Switchはプログラムを工夫することでPS5の性能を超えてしまう?

皆さん、次世代Nintendo Switchの性能について調べていったら、とてつもないことが判明しました。プログラム上の工夫がかなり要りますが、下手をすればGPU単体では理論上PS5の性能を超えます。

※ここからは非常に専門的な話になります。C言語やC++、Rustなどといったプログラムをかじっている人じゃないと理解できないと思います。ご了承ください。

1.初めに。PS5を超えるために鍵となる新技術、FP16とは?


まず、PS5を超えるために鍵となる新技術、FP16についてご説明します。
簡潔に言えばFP16とは16ビットの浮動点小数型です。

プログラマーの方なら馴染みのあるC言語に置き換えて説明しましょう。
C言語では基本的に変数の型というものがあり、8ビット(1バイト)で文字列を表すchar型、16ビット(2バイト)で整数を表すshort型、32ビット(4バイト)で整数を表すint型、などがあります。
そして、ゲームプログラミングの世界では小数がついた数を表す際に32ビット(4バイト)のfloat型が使われます。
64ビット(8バイト)のdouble型は非常に正確な値を扱えますが、ゲームに使う分には性能が過剰であまり使われません。

ここまではC言語やC++、Rustを扱う上で基本中の基本なのでプログラマーなら理解できるでしょう。

そして、FP16とはその名前が示す通り、32ビットではなく16ビットで小数を表す変数の型です。通常のfloat型と比べて半分のデータ容量で表せる分、当然正確性が減ります。

理解できる方なら「あー、なるほど。そういうことね」と分かると思います。
ここから更に説明すると「もしやゲームの世界では32ビットの浮動点小数型ですら性能が過剰であり、16ビットの浮動点小数型で十分なのでは?」という論調が上がってきているのです。詳しくはこの4gamerの記事を見ると分かりやすいです。

この記事では「32ビットの浮動点小数型(ここからはFP32と略します)をほぼ全てFP16に置き換えたが、PS5において、ほぼ全く効果がなかった。一方iPhone12では最大15~23%の向上が見られた」とあります。

つまり、ハードウェアの出来次第でFP16による効率化と性能向上は全く効果が違うわけです。次世代Nintendo SwtichではこのFP16を徹底的にサポートして低コストでありながら性能向上を図る可能性があります。

さて、次世代Nintendo SwtichがこのFP16を極限まで使いこなせる作りになっていたらどうなるか?

2.FP16をフル活用できるとPS5の性能を超えられる可能性がある

前に記事にした通り、次世代Nintendo Switchは次世代型Tegraと言えるOrinを使うだろうと予測記事を建てました。

また、Tegraを始め、nVidia製のGPUでは人工知能の開発及び研究のためにFP16を「半精度」と訳し、基本的にフルサポートしているようです。

さて、このOrinの前の世代に当たるXavierにはある特性があります。
FP16で動かすと通常より性能(TFLOPS)が倍加すると。そして何故かOrinではFP16での性能(TFLOPS)が載っていない(公表されていない)

とすれば、OrinはXavier以上にFP16をフルサポートし、FP16での性能が2倍以上に上がる可能性があります。

もし仮にXavierと同じくFP16の時に性能が倍加した場合、Orinは通常のFP32すら最大で5.32 TFLOPSですから、理論上ですが単純計算で10.64TFLOPS。僅かですがPS5のGPUの性能である10.3 TFLOPSを超えます。

(まあ、こんな机上の空論めいたようにはうまく行かないでしょうが、1.5倍でもかなりの脅威です。)

追記:OrinのFP16に置ける最大のTFLOPSが分かりました。やはり予測通り10.6TFLOPSとPS5をわずかながら超えていました。

3.問題は技術的難易度が跳ね上がることとマルチプラットフォームが非常に難しくなることか

さて、ここまで書いてきたようにまさにFP16は夢のような技術に見えますが、良い事づくめではありません。

何しろ、FP16はプログラマの視点で言いたいことは単純ながら、非常に難しい技術です。
そもそも世の中のGPUとゲームの技術は基本的にFP32で動くことを想定しているのですから、これをFP16に書き換えることは想像を絶する大変な作業になります。
(今ならChatGPTなどの人工知能の効果で多少楽できるかもしれませんが)

さらに上の記事でも正確性がないためにグラフィックがおかしいことになることがあると書いてありましたから、デバッグ作業もさらに地獄になります。

特にUnityやUEに代表されるゲームエンジンではFP32が前提のために、次世代Nintendo SwitchとPS5のマルチで更に圧倒的差がつくでしょう。
「なんで任天堂のソフトはこれだけ綺麗で高速に動くのに、インディーゲームやサードパーティのソフトは絵作りがおかしくて動きが遅いんだ?」が頻発すると思われます。

とりあえず、任天堂自社独自のAPIやドライバはFP16に上手い事対応できると思われます。というのも今のスイッチのAPIはnVidiaと任天堂が協働し、長い年月をかけて独自に作られたものです。これを踏まえると特に問題がないと思います。

この記事が気に入ったらサポートをしてみませんか?