これは「mstdn.maud.io Advent Calendar 2023」1日目の記事です。
【2024/11/29】不正確な内容をいくつか修正しました。
今年も末代アドベントカレンダーの季節がやってきました。去年は5日目にしたんですが、待ってる間がもどかしいので今年は1日目に戻しました。例年通りなら、ガジェットやVRChat関連、そして異常旅行のお話が読めるのではないかなと思います。
さて、今年はAMD Radeonのお話をしようと思います。VRChatをする末代の皆さんはきっとNVIDIA RTX 4090をお使いかと思いますので、Radeonなんか知らんって方がほとんどでしょう。(そんなわけないでしょ :noway: )
昨今はあらゆる企業の力関係が変化してきていて、長らく一強だったところが落ちぶれたり、2番手3番手だったところが好調になったりしているように感じられます。GPUの分野においてNVIDIAが落ちぶれたわけではありませんが、AMDも魅力的な製品を出すようになりましたし、Intelも数十年ぶりにディスクリートGPU市場へ参入するという賑やかなことになっています。
Radeonそんな悪かないよ~って話を、にわかユーザーが長々とするだけなので、間違ってるかもしれませんし深い話はございません。何卒。
結構身近なRadeon
PCゲームにおいては非常に強いNVIDIAですが、家庭用ゲーム機ではAMDが大半を占めています。
PlayStationやXboxに使われているAMDのカスタムAPUは、GPU部分が「RDNA 2」ベースなので実質Radeonですし、最近ではSteam DeckやROG AllyのようなAMD Ryzen APUを採用する携帯ゲーミングPCが次々と登場しています。Ryzenを搭載するノートPCなどを買えば内蔵グラフィックはもれなくRadeonとなりますし、手にする機会は多くなりました。
とっつきやすい製品になってきた
ところで皆さん、Radeonというとどんなイメージを抱いているでしょうか。
「安いけれどもGeForce比で消費電力がバカ高い」だとか、「Forzaでしか性能が出ない」だとか、「ドライバーが不安定」といったネガティブなイメージのが強い方もいらっしゃるかと思います。実際、自分もRadeon RX 5000シリーズ辺りまでは特に選ぶ理由が無いんだよな~って思っていました。
しかし、Radeon RX 6000シリーズからは、ワットパフォーマンスの大幅な向上やレイトレーシングへの対応などもあり、Radeonの弱点は徐々に解消されるようになりました。(まぁレイトレーシングは明らかにGeForceより遅いけど……。)
AMDはCPUも作っているので、それらで培った技術がRadeonに使われることもあります。主にハードウェア面において最先端技術を駆使した製品を作るのが得意なようです。
ドライバーも割と安定するようになった
ハードは良くてもソフトはどうなのか……?
Radeonは太古の昔より、ドライバーが不安定だと言われ続けていたようです。でもそれは昔の話であって、最近は酷くおかしな事はありません。ドライバーも基本的には最新のバージョンを入れておけばOKです。新製品固有の不具合修正や、機能追加が遅いという残念な部分があるのは確かですが、品質が悪いという程ではないと感じています。まぁ時々特定のゲームだけに不具合があったりするので、直るまで古いバージョンに留まる必要がある事もありますが。
時折、「致命的な不具合」を含むドライバーをリリースしてしまう頻度は、RadeonもGeForceも似たり寄ったりだと思います。GeForceに関しては、ここ数年「既知の不具合」を理由にGeForceドライバーのアップデートを長期的に見送るユーザーを何人も見ていますし、特に最近のGeForceドライバーは様子がおかしく、GeForceだから安定しているとは今は言い難い気がします。
Radeonでも一時期グラフィックボードを破壊する不具合があるのではないかと言われていたドライバーがありましたが、それはグラフィックボードの保管状態の悪い販売業者が原因でした。直近での致命的な不具合としては、ドライバーアップデートの際に「工場リセット」するオプションを使うとシステムが起動しなくなるものがでしたので、リセットオプション自体が封印されていたこともありました。
もし、どうしようもなくなって困ったときがあっても、AMD公式のクリーンアップツールが用意されています。
特にスマートフォンなんかはそうですが、どんどん新しくなっていく分野では、「昔良かった・悪かった」というのはアテにならなくなっており、今がどうなのかを見極める必要があると思います。RadeonやGeForceが今後どうなっていくかは分かりません。ただ、今のRadeonは様々な面において昔よりも良くなりました。
もちろん、RadeonとGeForceとでは利用者数の差が大きいので、トラブルに遭ったときに対処法が見つかりやすいかどうかという違いはあります。各種ソフトウェアも、Radeonであまり動作確認されてなかったり対応が後手になったりするなど、Radeonのが不利になる事があるかもしれません。ただ、ゲームに関してはSteam Deckのような携帯ゲーミングPCがAMD一色という状況であり、あまりおざなりにはできないようになってきていると思いたいところです。(希望的観測)
サポート状況が変わったよ
ドライバー絡みの他の話題だと、PolarisやVegaといった世代の製品のサポートを縮小したというのがつい最近のお話。Vegaなどのアーキテクチャは既に成熟しきった為に、不具合修正やセキュリティパッチ以外は積極的にサポートしないとのこと。PolarisはRX 400シリーズやRX 500シリーズに使われていたもので、モバイル向けのRyzenではVegaを載せてるものが多いのでこちらも該当しそうです。
最新のゲームなんかもPolarisやVegaの世代で動かすのは現実的ではありませんし、あまり問題はないでしょう。RDNA以降に絞った分、開発リソースに余裕ができると良いですね。(ソフトウェア周りがまだまだ弱い感じがあるので)
旧製品のサポートが縮小したRadeonに対して、GeForceはまだサポートされている製品の数が非常に多いので対応が大変だとは思います。最近のNVIDIAはゲームよりAI開発にリソースが振られるようになっていてゲーマー的には雲行きが怪しいのですが、今後も頑張ってくれることに期待しています。
PRO用ドライバーもあるよ
業務用のRadeon PROなど向けに、品質保証のあるドライバーが用意されています。GeForceドライバーの「GameReady」と「Studio」の関係と似ていますね。(同様かどうかはさておき)
通常のRadeonにも使用できますが、そちらは品質保証は無いとのこと。
ざっと調べたところ、ゲーム用途で使用しても性能差は特にないようで、通常のRadeonであっても安定性重視でこちらを利用するのもありかなと思います。(気休め程度にだけどね)
ちなみに、PRO版はインターフェースが青色になります。青もかっこいい。
大きすぎず、電源周りもそのまま
昨今のグラフィックボードは大型化していて、PCケースに入るかどうかや他のパーツとの干渉を考えなくてはならなくなってしまいました。数年前に「グラボがPlayStation 2みたいなサイズってなんなんだよ!!」って叫んだ記憶があります。
Radeonも大型化してはいますが、RX 7000シリーズのリファレンスモデルは比較的コンパクトに仕上がっており、RX 6000シリーズから殆ど変わっていません。例えばRX 7900 XTXの場合、全長は287mmで厚みも2.5スロットぐらいです。補助電源も8Pinのままになっているので、カスの12VHPWR12V-2×6を用意しなくても大丈夫です。
見直しされた新しい電源規格も今のところトラブルは無さそうで、今後は12V-2×6に切り替わっていくとは思います。ひとまず今のRadeonは、既存の環境のままでも換装しやすい設計です。
VRChat用途でのRadeon
我々末代といえばVRChat!
かつて、カスメをこねくり回していた者の多くはVの沼へと沈んでいきました。カスメを触ってなかった末代達も迂闊に沼に近付いて何人か引きずり込まれていったのを観測しています。あの頃はGTX 1050 Tiで事足りていたのにどうして……。
さて、VRChat用途で求められるのは大量のVRAMです。(メモリ帯域幅も欲しいですが)
「人が集まると8GBなんかじゃ足りない!」ということで、VRAM16GB以上の製品を求めるようになるのですが、そうなってくると気になるのはグラフィックボードの価格です。
VRAMを求めるならRadeonは安い
2023年現在、Radeonの最上位機種はRX 7900 XTXで、搭載するVRAMは24GBです。メーカーにこだわらなければ新品が最安16万円で購入できる価格で販売されています。ちょっと性能を下げてVRAM20GBなRX 7900 XTだと13万円ぐらいでしょうか。(23年12月1日現在)
Radeonは僅かに価格が上がっていますが、ここ数日はGeForceだけがやたら高騰しつつあります。AIとか大陸の方とか、昨今の御時世ェ……。
以下、価格比較となりますが業務用製品は含んでおりません。現行世代を中心に比較していますが、参考程度に型落ちも含めてあります。あ、Intel Arcについても今回は見なかったことにしますね。(あれは飛び抜けて安いけども……)
16GB以上での新品価格(23年12月1日時点)
グラフィックボード名 | 価格 |
---|---|
GeForce RTX 4060 Ti 16GB | 69,800円~ |
Radeon RX 7800 XT 16GB | 83,143円~ |
Radeon RX 6950 XT 16GB | 131,472円~ |
Radeon RX 7900 XT 20GB | 134,800円~ |
GeForce RTX 4080 16GB | 159,800円~ |
Radeon RX 7900 XTX 24GB | 159,800円~ |
GeForce RTX 3090 24GB(参考) | 193,679円~ |
GeForce RTX 3090 Ti 24GB(参考) | 304,735円~ |
GeForce RTX 4090 24GB | 299,980円~ |
GeForceで20GB以上のVRAMを求めると、RTX 3090やRTX 4090といった選択肢がありますが、価格は一気に上がります。RX 7900 XTXと同じ16万円という条件だとRTX 4080がありますが、そちらはVRAMが24GBから16GBに減ってしまいます。
RX 6950 XTとRX 7900 XTがほぼ同価格ですが、素直にRX 7900 XTを選んだらOKです。この価格帯ではあえて6000シリーズを選ぶことはないかなと。
VRAM16GBという条件ではRTX 4060 Tiが最安となりますが、約1万円高いだけのRX 7800 XTのが明らかに上の性能になります。
12GBでの新品価格(23年12月1日時点)
グラフィックボード名 | 価格 |
---|---|
GeForce RTX 3060 | 36,801円~ |
Radeon RX 6700 XT | 45,980円~ |
Radeon RX 6750 XT | 54,980円~ |
Radeon RX 7700 XT | 69,800円~ |
GeForce RTX 4070 | 84,980円~ |
GeForce RTX 4070 Ti | 115,800円~ |
GeForce RTX 3080 Ti | 119,800円~ |
若干高くなるものの、RX 6700 XTのがRTX 3060よりも性能は上です。下から数えて、どこまでなら予算が出せるか……。8万円まで行くと16GBのRX 7800 XTが買えてしまうんですよね。
ラスタライズ性能は十分
VRAM搭載量だけ見れば安いのは分かったけど、安いんだから性能は微妙じゃないの?って思うかもしれません。確かにレイトレーシングに関してはまだRadeonは弱く、DLSSなどの機能を使って高パフォーマンスを発揮できることを強くアピールしているGeForceのが快適なゲームは多いです。
ところが、VRChatはレイトレーシングもなければDLSSやFSRといったアップスケーリング・フレーム生成技術は利用できません。(仕組み上厳しいっぽい?)
そうなると純粋なラスタライズ性能が求められます。そちらに関しては、Radeonも十分に強いです。
VRChatでのパフォーマンスは概ね良好
VRChatを「VRモードで」複数のグラフィックボードと比較検証しているところはあまり多くなく、通常のベンチマークテストでの比較だと実際のパフォーマンスと食い違ってしまうことがありそうです。
自分ではグラフィックボードを複数台用意してのベンチマークはやれないので、誰かVRChatでの比較を試していないかなと探してみたところ、いらっしゃいました。他人の検証データの引用で恐縮ですが、読んでいてとても面白かったのでご紹介します。
設定や環境を揃えていないので比較するのは難しいですが、平均FPSは高く、急な変動も少なく安定しているようです。
RX 7900 XTXのライバルはRTX 4080とされていますが、組み合わせによってはVRChat上でのパフォーマンスはRTX 4090の環境を超えることもあり、VRChatのプレイだけを考えるならかなりお買い得なグラフィックボードです。
3D V-Cache搭載のRyzenでブーストが掛かっているのもありますが、VRAM16GBで比較的安価なRX 6800でも非常に快適なプレイができています。(6000シリーズを今更買うにしても安価な新品在庫はあんまりないのでオススメはしませんが、中古で良ければ相当安いです。)
VRAMを大量に使う状況ではどうなる?
VRChatデスクトップモードでの比較で、VRAMをかなり使ってる状況での検証は以下のサイトで確認できます。
上記ベンチマークを参考にした場合、片目4K相当で10GB以上VRAMを使うというハードな前提ですと、45FPS以上を出せるのはRX 6800 XTかRTX 4080以上となってしまいますね。現行世代で最安を探すと「RX 7800 XTを新品8万円ぐらいで買ってくる」感じになりそうです。尚、RTX4080を買おうとすると16万円します。なんでや……。
Virtual Desktopも動いてはいる
QuestやPICOのようなVRヘッドセットでPCVRをする際には、グラフィックボードのハードウェアエンコーダを用いて映像をストリーミングするのが基本となります。一時期、PICO 4だとVirtual DesktopとAMDのAMFエンコーダ(HEVC)の相性が悪い時期がありましたが、現在はほぼ問題なく動作しています。
Virtual Desktop 1.28.1では「HEVC 10-bit」をRadeon RX 5000シリーズ以降で利用出来るようになりました。また、1.29.0から追加された「AV1 10-bit」もRX 7000シリーズ及びQuest 3・PICO 4 Ultraで利用可能です。HEVCは10bit対応でグラデーション表示などが滑らかになるほか、H.264を用いるよりも効率が良く、過度にビットレートを上げる必要はないはずです。
- 追記1:最近のドライバではHEVC 10-bitモードはトラブルが起こるので、そちらを使いたい場合はドライバーは23.12.1推奨とのこと。
- 追記2:
AV1 10-bitモードも動作しますが、正方形解像度のPICO 4 Ultraで使用すると表示に問題が発生します。これはffmpegの機能で回避できるはずなのでVirtual Desktop側で対応がないと直らないのですが、多分直してくれない気がします。1.33.3で修正されたようです。やったね。Quest 3では問題ないはずです。 - 追記3:ドライバー24.1.1から不具合があるので、フリーズや著しいチラつきがある場合はHEVC 10-bitを使用しないように。RX6800を使っていた頃はあまり気になりませんでしたがRX7900GREではイマイチそうでした。
Virtual Desktopのストリーミング設定については、Medium設定(2016×2112 px)が画質とパフォーマンスのバランスが良く感じられました。RX 6800ぐらいの性能だとHigh(2496×2592 px)やUltra(2688×2784 px)の設定にするのは微妙そうです。Quest 2宛てということもあり、負荷の割に画質も大して変わらないですし。
大容量L3キャッシュなCPUのお陰もあって、フレームレートも急激に落ちる事はなくて快適です。72FPSは安定して出せますが、複数人に会うことを考えると90FPSは安定して出すのが難しいと思われるので、80FPSをターゲットにしておくのが丁度良さそうでした。
ちなみにALVRとRX 6800環境で適当に遊んだときの話は以下です。
ちょっと待って、X3DなRyzenも買えってこと?
そうかも……。
先程紹介したサイトでの比較を見ると、Ryzen 7 5800X3Dと組み合わせることで、安価なRX 6800でも2倍・3倍する値段のRTX 3090やRTX 4090の環境相手に十分に戦えているようです。
Ryzen 7 5800X3Dなどの一部のRyzen CPUには「3D V-cache」と呼ばれる追加の大容量キャッシュメモリが搭載されています。この大きなキャッシュメモリがあることでメモリアクセスのレイテンシが削減され、パフォーマンスの向上が期待できます。
AM4世代なら「Ryzen 7 5800X3D」一択で、AM5では「Ryzen 7000X3Dシリーズ」が複数出てます。Radeonの話からは少し脱線してしまいますが、今使ってるのがAM4環境なら5800X3Dをポチるだけで随分変わるはずです。確かに、Ryzen 5 3600から乗り換えたときは劇的に変わったのでびっくりしました。その当時はRTX 2080を使っていましたが3D V-cacheの効果は明らかでしたので、GeForceかRadeonかに拘わらず安定してプレイできることでしょう。
AM5環境の場合はよく調べてないのでなんとも言えないのですが、CCD跨ぎや発熱・消費電力そして価格を考慮すると「Ryzen 7 7800X3D」にしておくのが無難そうかなぁ?ってところでしょうか。
Ryzen 7 5800X3Dは新品価格が43,980円~、Ryzen 7 7800X3Dは51,820円~となっています。(23年12月1日現在)
Radeonにもキャッシュあるよ
Ryzenのそれとは別物ですが、Radeonにもパフォーマンス向上を目的としたキャッシュメモリがあります。
RX 6000シリーズ(RDNA 2)からの新機能として、「Infinity Cache」と呼ばれるキャッシュメモリが搭載されるようになりました。こちらもメモリアクセス時のレイテンシ削減や、メモリ帯域幅のボトルネック解消などに貢献している機能となります。RX 7000シリーズ(RDNA 3)からはInfinity Cacheも第2世代となり、RDNA 2と比べてメモリ帯域幅は最大2.7倍(5.3TB/s)にアップしているとのこと。
また、RDNA 3ではRyzenなどで培ったチップレット技術が採用されており、全てを1チップに集約せず演算器部分のGCDとメモリコントローラーとキャッシュ部分のMCDに分けて製造し、それらを接続して1つにパッケージングしています。そうすることで歩留まりの向上が図れるほか、チップ毎に最適なプロセスで造り分けることが可能となるので、製造コストの低減が可能となります。価格を抑えるための工夫は有り難い限りです。
シェーダーがおかしいとか言われてなかった?
VRChatでよく見かけるシェーダーで、表示が壊れたりクラッシュしたりすることはまずないと思われます。概ね大丈夫です。
現在はRadeonのドライバーも安定していて、初期設定のままでもトラブルは起こらなくなっています。もうテッセレーションモードを「AMDの最適化」から変更する必要はありません。
Radeonでおかしな事が起きてたという情報も2020年頃の情報ばかりで、既に古い話となっています。それ以降ですと、「以前Radeonでは確実にダメだったワールドやパーティクルで落ちなくなった」という話の方が幾つか見つかります。
lilToonの人が検証してる情報とかも参考までにどうぞ。
実際に確認してみた
そもそも、シェーダーが壊れる状況って具体的にどんなのだろう?ということで、VRChat内で探してみることにしました。環境はRadeon RX 6800(ドライバー23.11.1)です。
多種多様なシェーダーが見られる場所として、一応「Shader Fes 2019」と「Shader Fes 2021」のワールドをざっと見て回ったところ、明らかに表示が壊れてると思われるものは2019の方にありました。
本来は服のモデルが表示されてるようなのですが、部屋を横断するように伸びた真っ白の物体がチラついてる状態となっています。
隣にあるこちらも多分上手く表示ができていないと思われます。
あとは別の部屋に白い箱があったので、これも多分正常に表示できていません。
GeForceと見比べているわけではないので、他にも違う見え方をしているものがあるかもしれませんが、(見落としてなければ)素人目に見て正常ではなさそうなのはこれらだけでした。作者別で数えるなら2種類ってところかな。このぐらいであれば騒ぎ立てるほどではないと思うので、きっと当時は散々な状況だったのでしょう。
また、ここのワールドではシェーダーの初回読み込みの際にガクッとフレームレートが落ちたりしますが、VRChatやグラフィックスドライバーがクラッシュすることは一度もありませんでした。かなり安定するようになったと言っても良いでしょう。まぁ、VRChat以外ですと最近発売された大人気ゲームにおいて、AMDがスポンサーに付いてるくせにRadeonだと太陽が描画されていないとか言う間抜けな事をやらかしてる例はありますが……。(流石に修正されている)
Radeonじゃ使えないVR機器があるって聞いたけど?
VR機器では、「MeganeX」や「arpara Tethered 5K」はRadeonで利用することが出来ません。Pimaxの場合は「Pimax 8K X DMAS」が非対応で、「Pimax 8K X KDMAS」や「Pimax 5K Super」は対応しているようでした。これはDisplayPortにあるSpread Spectrum Clock(SSC)という、電磁干渉(EMI)の低減に用いられている機能が原因のようです。
SSCってなんじゃらほいって事なんですが、IntelのFPGAのユーザーガイドにあった解説を読むと、「SSCを使ったEMI対策は、シールドやフィルタリング、多層基板といった手法でEMIを低減するよりも簡単で費用対効果が高くなる」そうです。DisplayPort的に今も必要な機能かどうかはちょっと分からないのですが。
Valve IndexやHTC VIVEのような家電量販店でも買えるメジャーなHMDや、Meta QuestやPICOといったワイヤレスまたはUSB経由でストリーミングするものであれば問題なく利用できます。その為、これから出るあるいは新しく出たばかりのちょっとニッチな物を手に入れようとする際に、Radeonで使えるかどうかを注意する必要はありそうです。クラウドファンディングしている製品とかがそうですね。
でもCUDAないやん!
ないよ!諦めてね!
大事な部分を何もかもを端折って説明すると、RadeonにはCUDAのような仕組みとしてROCm(Radeon Open Compute)というプロジェクトがあります。その中には、CUDAで書いたコードをHIPに変換して動かすというものが存在します。
説明を読んだ限りでは移植性は高いのですが、ユーザーが何も手を加えずにそのままポンと動かせるような物ではありません。(一応そういったものがないこともないんですが、触れないでおきます。)
CUDAが無いと何が困るかというと……。
そんなわけで、結局のところCUDAは使えないわけなのですが、VRChat関連で何かあるとすればワールド制作で不便があるかもしれません。
そう、Bakeryが非対応です。
ワールド制作もしちゃう末代の皆さんはよくご存じの通り、Bakeryはワールド制作でとても重宝される有料のGPUライトマッパーです。パン屋さんにならないとワールド制作ができないわけではありませんが、CPUでライトベイク処理をさせると劇場版「鬼滅の刃」無限ベイク編が始まってしまいますので、GPUで処理できると嬉しいわけです。
Unity内蔵のやつでいいよって場合は問題ありませんが、Bakeryのがお手頃かつ品質が安定しています。一応、Unity 2019.3から「AMD Radeon Pro ライトマップデノイザー」が含まれるようになってライトマップの品質が向上し、大分マシになりました。また、Unity 2022.2以降はより良い物になっているようです。
……とまぁ、BakeryやUnity内蔵のライトマッパーについては周りの凄い人達の話の受け売りなんで、自分で使ったことはないんだけど!
ちなみに、BlenderはHIPに正式対応しているようです。
生成AI関連も動くよ
Radeonでは動かせないと思われている生成AI関連も、GeForce比で遅くはなりますがDirectMLやROCmを使って普通に処理できます。ROCmでのStable Diffusion等の実行は、PyTorchの都合でまだLinux上でしか利用できませんが、多少遅くとも16GB以上のVRAMで余裕を持った処理をしたいという場合にRadeonという選択肢はありだと思います。(GeForceほど爆速ではないものの、CPUよりは格段に速い)
Radeon向けに用意されている実装も、ワンクリックでインストール可能な物がありますし、導入のハードルは高くないと思います。ちょっと試してみたいかな~ぐらいの軽い用途であれば、Radeonでも動作はします。画像を1秒未満でバリバリ生成してリアルタイム処理に使うだとか、とにかくもの凄い計算をさせるとかの機械学習ガチ勢なら言うまでもなくNVIDIA一択なので、こちらに関してはオマケ程度に。
マイクノイズ抑制についても、「AMD Audio Noise Suppression」というものがあり、GeForceとの機能的な差は小さくなっていると思います。
高すぎないのは良いぞ
ゲーマー寄りのラインナップが中心でバケモノのような製品は出していないRadeonですが、それでも最上位モデルは16万円なので手放しに「安いから良いぞ」とは言えません。ただ、性能と価格のバランスはまだ取れていて、手を出しやすいようにはなっているようには思います。AMDも999ドルに抑えることを重視しているようですし、今後も買うのが難しい製品にはならないで済むのかなとは。(円安?うん……そうだね……。)
次期製品(RDNA 4)では大きく性能は上がらないとも言われており、ハイエンドモデルとはならないかもしれませんが……。
CUDAの有無が響く人が居るとは思いますが、RadeonはVRChat用途においては選択肢として十分なポテンシャルが秘められています。もしPCを組み直すことがあれば、Radeonも検討してみてはいかがでしょうか。
末代アドベントカレンダー、明日は8号さん(routehachi)です。