clyde-ne45’s blog

clyde-ne45’s blog

PCゲームに関して

【RADEON】RX550をRX560化する

「RX550のRX560化」とは何か?これはRX550の性能を向上させる1つの方法である。ツイートは以前に行ったものの、日本語の記事としてまとまったものにしておこうと思う。
「640SP版のRX550」を対象にしていることは初めに強調しておきたい。ふつうのRX550との主な違いは後述。

f:id:clyde-ne45:20201209191622p:plain
f:id:clyde-ne45:20201209201337p:plain
上のツイートは削除してしまったので当時ツイートした画像を再度貼っておきます

RX550のVBIOS書き換え

書き換えそのものが目的ではなく、ソフトウェア的に封印されたSPをアンロックして性能向上を図るという目的のためにRX560化という手法をとる。さっそく取り掛かっていく。

ビデオメモリのメーカーを確認する

次の作業に備えてGPU-Zを使うのがよい。

f:id:clyde-ne45:20201209191622p:plain

Memory Type欄からElpida製と判明。Shaders欄も確認しておく

VBIOS書き換えの際、GPUコアはもちろん、ビデオメモリのメーカー (Samsung, Hynix, Micron, Elpidaなど) まで適合するものを使うので、先に確認する。その他の情報もなるべく一致するものを使うのが無難だが、メーカー (ASUSやSAPPHIREなど) が異なるVBIOSを使用することはあまり問題ない。

VBIOSをバックアップする (任意)

書き換えトラブルにより画面出力が不可能になってしまうリスクなどがあり、バックアップと代えのグラフィックボードや内蔵グラフィックスの用意を推奨したい。書き換え後の不具合はバックアップに書き戻せば直る。

f:id:clyde-ne45:20201209192612p:plain

黄色で囲ったボタンで現在のVBIOSを吸い出すことが可能

VBIOS書き換えに必要なものをダウンロードする

書き換えツール「ATIFlash」と「書き換えたいVBIOS」の2点が必要になるので、以下のリンクからダウンロードする。

自分の場合はVGA Bios Collectionから「Memory SupportにElpidaが記載されているもの」として「Powercolor.RX560.2048.170508.rom」をダウンロードして使用した。

ATIFlashを使う

以下の手順3.の「.\atiwinflash -f -p 0」の「0」はPCIExpressスロットの最優先スロットのことであり、対象のグラフィックボードを接続している位置によって適宜「1」や「2」に書き換える必要がある。

それに続く「Powercolor.RX560.2048.170508.rom」も、使用するVBIOSのファイル名によって適宜書き換える必要がある。

  1. ダウンロードしたATIFlashを解凍し、出てきたフォルダはC: の直下に置く。このフォルダの中に書き換えに使うVBIOSも一緒に置く
  2. C:\atiflash_xxxフォルダ内でShift + 右クリックして「PowerShellウィンドウをここで開く」をクリック
  3. .\atiwinflash -f -p 0 Powercolor.RX560.2048.170508.rom」をコピペしてエンター
  4. PCを再起動する
f:id:clyde-ne45:20201209195050p:plain
f:id:clyde-ne45:20201209200956p:plain
ファイルの配置とPowerShellの入力

成功していれば再起動後に反映される。

失敗した場合などは、バックアップしておいたVBIOSファイルを使って上の手順1~4を実行し、元の状態へと復元できる。

書き換えの成否を確認する

GPU-ZのShaders欄から確認できる。以下のツイートで手書きの丸で囲まれている部分。

自分の場合は640SP -> 896SP化ができた。メモリクロックやGPUクロックの定格値もVBIOSに定義されているため、VBIOS書き換えによって変化している。特にメモリクロックは転送帯域幅が96GB/s -> 112GB/sに向上しており、それなりに性能向上に寄与していそうではある。

ちなみに、896SP化できるとは限らず、成功しても768SP化に留まるという報告も多い。

低電圧化・オーバークロック (任意)
  • GPUクロックは最大1250MHz程度
  • GPU電圧は最大900mV程度
  • 電力制限は最高値
  • それ以外は定格設定

が個人的なおすすめ。以下に具体的な今回のオーバークロック作業を書いておく。一般的なやり方だと思うけれど、念のため。

今回使用したRX550は補助電源を持たないため、仕様上はPCIExpress端子を介しての75Wが給電上限となる。これを超えて動作していると怖いので、確認と調整をした。

PC全体の消費電力を見るワットチェッカー以外に計測器具がないので、これの値の変化をもって判断した結果、VBIOS書き換え直後はボード全体で60W程度を使用しているようだった。

このとき電力制限により動作クロックは1000MHz前後で、電力制限を緩和すると動作クロックが定格の1180MHzに達した。しかし消費電力が75Wを超えているようだったため、GPUコアの低電圧化を行った。
低電圧化では、自分の場合は、電力制限が働いていたときの「消費電力60W前後」に収まることを目指した。60W以内で動作できる上限となったGPUコア電圧は900mV程度だった。
性能を最大化したいので、900mVで動作するGPUクロックの上限を調べた。自分の個体では1250MHz程度だった。
最終的には1250MHz・900mVに少し余裕を持たせる意図で1230MHz・890mVとしてみた。最後は感覚で。

f:id:clyde-ne45:20201209204349p:plain
f:id:clyde-ne45:20201209204357p:plain
Radeon Setting上での調整前・調整後

性能向上幅について

自分が行った作業はここまでで完了している。ここでは一般的なRX550とどの程度の性能差があるのか、あるいは何も変わっていないのか、簡単に確かめておきたい。

ベンチマークスコア

3DMarkからFire StrikeとTime Spy、定番としてFFXIVベンチマーク「漆黒のヴィランズ」の3つで計測した。

できるだけ純粋なGPU性能の指標として、3DMarkのGraphics Scoreに注目するのがよいかと思う。FFXIVベンチマークは他のパーツの影響が比較的大きくなる。

f:id:clyde-ne45:20201209204829p:plain
f:id:clyde-ne45:20201209204837p:plain
f:id:clyde-ne45:20201209204918p:plain
Graphics Score: 6767 (Fire Strike), 1900 (Time Spy)

一般的なRX550のスコアとしてこちらのレビューを参考にした。

androgamer.net

レビューによると一般的なRX550のスコアは

  • Fire Strike Graphics Score: 4136
  • Time Spy Graphics Score: 1175
  • FFXIV bench Score: 3809

3つのベンチマークスコアだけで見れば、1.38倍から1.63倍程度の性能差といえそう。GPUの理論性能値のみを比較すると1.211TFLOPS -> 2.204TFLOPSなので1.82倍だけれど、これはあくまで理論値。

ちなみにFFXIVベンチはバージョンが1世代ズレている。算出されるスコアはほぼ変わらないのでそのまま比較に使用した。

Fluid Motionパフォーマンス

追加予定

補足知識など (任意)

作業と性能確認までがここまでで完了している。ここからは、関係はあるけれど必須ではない知識を書いていきたい。余裕があれば読んでおくといいかもしれない。

RX550のバリエーションについて

大きく分けて2種類のRX550が存在している。

AMD Radeon RX 550 Specs | TechPowerUp GPU Database

AMD Radeon RX 550 640SP Specs | TechPowerUp GPU Database

注目するのはストリームプロセッサー (SP) 数の差で、512SP版と640SP版がある。これらはどちらもRX550であり、区別されず流通している。
512SP版は当初AMDが発表した通りのスペックを備えるGPUで、大手レビューサイトなどではこちらが使用されている。

640SP版はしばらく後になって登場したRX550で、Polaris 21 (Baffin) コアを採用しており、512SP版のPolaris 12 (Lexa) コアと異なっている。

見分け方はメモリクロックの違い

SP数や採用GPUのコードネームで見分けられればいいが、全てのRX550製品ページがこれを記載しているわけではない。そこで、ほとんどの場合記載されている情報での見分け方としてビデオメモリクロックで判別する方法がある。

512SP版のビデオメモリは1750MHz動作 (実効7000MHz) 、640SP版のビデオメモリは1500MHz動作 (実効6000MHz)という仕様なので、このメモリクロックをもって判別できる。

ただし最終的な調整はメーカー次第なので、オーバークロックモデル等これに当てはまらない製品が存在するかもしれない。

640SP版に使用されるPolaris 21 (Baffin) コアについて

BaffinコアはもともとPolaris 11として開発され、最大1024SPの規模のGPUとされている。後継のPolaris 21では動作クロックを向上させたものの、小改良に留まることからか、Baffinの名は引き継がれている。

Baffinコアの採用例を見てみると、RX460やRX560があり、これらのSP数は1024または896となっている。

640SP版のRX550はこれらと同一のGPUを備えていながら、何らかの理由で1024個のSPが640個まで制限されている。

SP数が制限されているのはなぜか

GPUが本来備えるスペックで動作していない場合は

  • 製造上の問題で動作不良コアが出ている
  • VBIOSなどによってソフトウェア的に封印されている

といったパターンが考えられる。

ここで、後者については適当なVBIOSに書き換えることで封印部分が動作可能になる事例があり、今回で言えばRX460やRX560のVBIOSがそれにあたる。RadeonのVBIOS書き換えが一部で盛んな理由がここにある。

今回の作業もこれに期待してのものになる。

おわりに

170mm程度のコンパクトなカード長で補助電源が不要という個性は、グラフィックボードのマッシブ化が激しい今ではいっそう際立って見える。最新のパワフルなグラフィックボードをメインで使う場合でも、PCトラブル時などにRX550の取り回しの良さが輝くシーンがありそう。
補助電源の不要なグラフィックボードに性能を求める勢力が根強いのも理解できたかもしれない。