ROCMを利用するとパフォーマンスが下がります。

AMD RADEONのグラフィックボードで、Stable Diffusionを動作させるということは
ROCm(Radeon Open Compute)をインストールし、Windows上で仮想環境を利用してLinuxを作動させ、その上でROCm(Radeon Open Compute)動作させる仕組みになります。
この手法では、CUDAに比べて仮想化やエミュレーションによる余分な処理が発生するため、結果としてパフォーマンスが低下する傾向があります。

AMD (ROCm) は 60~90%の性能 を発揮することが多い

同じ処理能力のGPUを比較した場合、NVIDIA (CUDA) は AMD (ROCm) よりも多くの場面で優位性があります。
特に機械学習タスクでは、※CUDAエコシステムの成熟度が大きな差を生むことが一般的です。

CUDAエコシステムとは、NVIDIAが提供するGPU用ツール、ライブラリ、フレームワーク最適化、サポート体制の総称で、高性能かつ互換性に優れています。


理由

NVIDIAのCUDAは以下の点で優れています:

項目CUDA (NVIDIA)ROCm (AMD)
設定の簡単さ簡単手間がかかる(仮想環境が必要)
パフォーマンス高いやや低い(仮想化の影響)
ソフトウェア互換性非常に高い限定的
サポート体制充実発展途上
  • 設定の簡単さ:CUDAは直感的で手間が少ないのに対し、ROCmは仮想環境の構築などが必要な場合があります。
  • パフォーマンス:CUDAはフレームワークの最適化やハードウェアリソースの効率的な活用により、一般的に10~40%の優位性を発揮します。
  • ソフトウェア互換性:CUDAはPyTorchやTensorFlowなど多くのフレームワークに広く対応しており、ROCmの互換性は限定的です。
  • サポート体制:NVIDIAは成熟したサポートエコシステムを持ち、問題解決が迅速です。

具体例

パフォーマンス差の目安

タスクCUDA (NVIDIA)ROCm (AMD)差異
機械学習タスク高度に最適化(推論・トレーニングが高速)最適化が不十分(仮想化でさらに低下)10~40%の差
一般的な数値演算ハードウェアを効率よく活用し高い性能を発揮理論性能に近いが最適化で劣る最大20~30%の差
仮想環境(例: WSL2)の影響オーバーヘッドが少ない5~15%程度のパフォーマンス低下が発生追加の影響がある場合あり
  1. Stable Diffusion推論タスク
項目NVIDIA (例: RTX 3060, CUDA使用)AMD (例: Radeon RX 6600 XT, ROCm使用)差異
推論速度1ステップあたり約0.5~1.0秒1ステップあたり約0.7~1.5秒約20~40%の差
GPU使用率高く効率的劣る場合あり-
  1. PyTorchでのトレーニング速度
モデルトレーニング速度NVIDIA (CUDA)AMD (ROCm)差異
速度約100サンプル/秒約75~90サンプル/秒約10~25%の差
  1. 仮想環境の影響
    仮想環境(例: ※WSL2)では、ROCmに5~15%程度のオーバーヘッドが加わることがあります。これにより、さらにパフォーマンス差が広がる場合があります。
    WSL2とは、Windows上でLinux環境を動作させる機能で、Linuxカーネルを用いてネイティブなLinuxアプリケーションの利用を可能にします。

Point(まとめ)

実際のパフォーマンス差はタスクや環境によって異なりますが、仮想環境やソフトウェア最適化の観点から、NVIDIA (CUDA) が AMD (ROCm) に対して10~40%程度有利な場合が多いです。特に機械学習タスクでは、CUDAエコシステムの成熟度がNVIDIAの優位性を後押ししています。

CUDAが有利な理由(補足)

CUDAが有利なのは、AIの多くがCUDAを前提に開発されているためです。これには、NVIDIAの圧倒的なマーケティング戦略が大きく影響しています。

一方で、AMD RADEONとROCmには、オープンソースの強みやコストパフォーマンスの面で独自のメリットがあります。
特に、ROCmはオープンな環境での開発を推進しており、今後のアップデートやコミュニティの成長次第で、パフォーマンスや使い勝手がさらに向上する可能性を秘めています。

とはいっても追い越すことはないですよね・・・。

AIの世界では、CUDA一強に見える現在の状況も、AMDのようなオープンソースの勢力が台頭することで、技術の選択肢が広がり、競争が激化する未来が期待されます。あなたは、この流れにどう向き合いますか?

私は、VRAMの搭載量次第で再びNVIDIAに戻ることも検討しています。
以前、RTX 3080(10GB)を使用していた際に、VRAM不足を感じる場面が多々ありました。

その経験から、現在はVRAMが20GB搭載されているRX 7900 XTを選びました。
しかしStable Diffusionは、20GBのVRAMでも512ピクセル×512ピクセルでも20GBを超えていきます。
生成は出来ます。
2048×2048は出来ませんでした。

512MBのテンソルを割り当てられなかった。使用可能なGPUメモリが不足しています

1024×1024でも同様です。(再起動してからなら生成できたかも?)

同様に、512MBのテンソルを割り当てられなかった。使用可能なGPUメモリが不足しています。と書いてあるようです。

512×512ピクセルでもエラーが発生しました。
一度Kiritaを再起動させます。
どの位の大きさまで生成できるかは、今度検証します
1024×1024の生成は出来ました。

Stable DiffusionのモードはCinematic Photo(XL)にて検証しています。

Stable Diffusionの話はここまでにして、
次は動画編集時のVRAMについてです

Davinci Resolveでは編集時は12GB位が多く、書き出しの時は18GB前後まで使用します。
Youtube用の8分位の動画。(30~60fps 1920×1280)

Stable Diffusion(特にKirita)は使い方がよく分からないため、使用できなくても問題ありません。
負荷を減らせる設定もあるとのことですが、Kiritaでその設定が可能かは不明です。

とはいえ、私にとってStable Diffusionは必須ではないため、今後はVRAMが16GB以上のモデルを基準に選んでいこうと考えています。
話をRocmのパフォーマンスに戻します。

まとめ

実際のパフォーマンス差はタスクや環境によって異なりますが、
仮想環境やソフトウェア最適化の観点から、NVIDIA (CUDA) が AMD (ROCm) に対して10~40%程度有利な場合が多いようです

これは、AMDがNVIDIAより劣ると言うことでは無く、Windowsの仮想空間でLinux(ROCm)を動作させる為に、
60~90%の性能しか発揮することが出来ない環境にあると言うことです。
特に機械学習タスクでは、CUDAエコシステムの成熟度の高さがNVIDIAの優位性を後押ししています。

少なくとも数年はこの傾向が続くと考えています。

AMD Radeonシリーズ比較表

モデル名
RADEONシリーズ
アーキテクチャメモリ容量性能性能目安(ゲームFPS, 1080p)消費電力 (TDP)価格目安
RX 7900 XTXRDNA 324GB GDDR6ハイエンド150~200 FPS355W15~20万
TSUKUMO
Amazon
RX 7900 XTRDNA 320GB GDDR6ハイエンド140~180 FPS315W11~19万
TSUKUMO
Amazon
RX 7800 XTRDNA 316GB GDDR6ミドルレンジ120~160 FPS263W7.5万~10万TSUKUMO
Amazon
メルカリ
RX 7700 XTRDNA 312GB GDDR6ミドルレンジ110~140 FPS245W6.5万~8万円
TSUKUMO
Amazon
メルカリ
RX 7600RDNA 38GB GDDR6エントリーモデル60~90 FPS165W3.7万~5万円TSUKUMO
Amazon
メルカリ
RX 6700 XT
旧モデル
RDNA 212GB GDDR6ミドルレンジ80~110 FPS230W6万~11万TSUKUMO
Amazon
メルカリ
RX 6600
旧モデル
RDNA 28GB GDDR6エントリーモデル60~80 FPS132W3万~5万円
TSUKUMO
Amazon
メルカリ

NVIDIA GeForceシリーズ比較表

モデル名アーキテクチャメモリ容量用途性能目安(ゲームFPS, 1080p)消費電力 (TDP)価格帯 (USD)
RTX 4090Ada Lovelace24GB GDDR6Xハイエンド200~250 FPS450W40万~50万TSUKUMO
RTX 4080Ada Lovelace16GB GDDR6Xハイエンド160~200 FPS320W17万~25万TSUKUMO
RTX 4070
Ti SUPER
Ada Lovelace16GB GDDR6Xハイエンド150~190 FPS285W14万~16万TSUKUMO
Amazon
メルカリ
RTX 4070
Ti
Ada Lovelace12GB GDDR6Xミドルレンジ140~180 FPS285W13万~16万
TSUKUMO
Amazon
メルカリ
RTX 4070Ada Lovelace12GB GDDR6Xミドルレンジ120~160 FPS200W8.5万~11万TSUKUMO
Amazon
メルカリ
RTX 4060Ada Lovelace8GB GDDR6エントリーレベル70~100 FPS115W4.5万~5.5万TSUKUMO
Amazon
メルカリ
RTX 3080
旧モデル
Ampere10GB/12GB GDDR6Xハイエンドゲーミング150~200 FPS320W9万~15万
Amazon
メルカリ
RTX 3060
旧モデル
Ampere12GB GDDR6エントリーレベル60~90 FPS170W4万~6万
TUKUMO
Amazon
メルカリ

テキストのコピーはできません。