先日、Wccftechでは、Marvel Avenger'sとNecromunda: また、AMDのFSR技術がオープンソースであり、誰でもコードを見ることができ、基本的にコードを変更してどのような効果があるかを見ることができることも紹介しました。
また、AMDのFSR技術はオープンソースであり、誰でもコードを見ることができ、基本的にはコードを変更して技術の可能性を確認することができると述べた。
AMD FidelityFX Super Resolution
...高品質なエッジの生成に特に重点を置いた最先端のアルゴリズム群を使用しており、ネイティブ解像度で直接レンダリングする場合に比べて大幅なパフォーマンスの向上を実現しています。
FSRは、ハードウェアレイトレーシングなど、コストのかかるレンダリング処理の「実用的なパフォーマンス」を実現します。
ハードウェアのテスト、フレームタイムの取得、分析、センサー情報の記録などを行っているTwitterユーザーのCapFrameXが、Radeon RX 6800 XTで行った半精度演算と単精度演算(FP16とFP32)のテストのスクリーンショットを公開しました。
半精度計算と単精度計算の使用は、FP16が加速され、CPUが利用可能な情報を処理できない場合、FP32にフォールバックすることを示しています。
これは、古いGPUがゲームなどで情報を処理しようとしたときに、GPUにストレスを与える場合に有効です。
しかし、残念なことに、FSRではネイティブのFP16実装が7%の速度優位性を持っているため、FP32へのフォールバックが遅くなっているようです。
CapFrameXは、Nav21 GPUを採用した最新の強力なRadeon RX 6800 XT GPUを使用する際に、AMD FSRのコーディングを変更しました。
Radeon RX 6800 XTは半精度の計算が可能ですが、AMD FSRのコーディングを変更してカードを強制的に単精度で動作させた場合、どのような出力になるかを確認しました。
そのためにCapFrameXは、「FSR Ultra Qualityで4Kで動作する『SciFiHelment』サンプルを使用した」とVideoCardzは報告している。
※ 画像をクリックすると別Window・タブで拡大します。
テストの結果、FP16の計算にFSR 1.0を利用した場合、7%の増加が見られました。
これは、半精度と単精度のアクセラレーションを切り替えたときの、ごくわずかな増加です。
これは、AMD RX 400やRX 500シリーズ(Polarisベース)のような古いGPUがネイティブFP16をサポートしていないためです。
GTX 900シリーズのような古いNVIDIA GPUも同様にサポートしていませんし、Intelの統合型GPUもサポートしていません。
つまり、これらの古いGPUモデルでFSRを使用した場合、新世代のグラフィックカードと比較して、1桁台のわずかなパフォーマンスの低下が予想されるということになります。
※ 画像をクリックすると別Window・タブで拡大します。
AMD FidelityFX Super Resolutionのソースコードは、GPU Openに掲載されています。
解説:
FP16演算をサポートしていない古いGPU(RX500/400、GTX900)でFSRを使用すると数%性能が落ちることが確認されたようです。
記事中にあるFP32 FallbackとはFP16の演算をFP32で行うことです。
FSRの恩恵はもっと大きいので、だから何なのだと言われればそれまでなのですが、ソースが公開されているため、いろいろなテストがユーザーによって行われているということです。
悪いことではなく、良いことでしょう。
特に比較的新し目のGPUを使っている方にとってはあまり関係のない話です。
古いGPUでも使わないよりは使った方が圧倒的に性能が上がりますので、「古いGPUだから仕方ない現象」と言う風に解釈したほうが前向きです。
このように様々なユーザーの手によってFSRはその特性が解析されていって、様々なところで使われていくことになると思います。
技術としてはDLSSのほうが上だったとしても、ソースがオープンにされているというのはそう言うことです。
AMDのGPU Radeonシリーズ
Radeon 7000シリーズ
Radeon RX 6000シリーズ
※ SAPPHIREはAMD Radeon専業のメーカーであり、Radeonのリファレンス的なメーカーです。