端の知識の備忘録

技術メモになりきれない、なにものか達の供養先

Bootcampでegpu(RX5700XT + Devilbox)を動かす ~Windowsのバージョンが肝要~

背景

前回DevilBoxを購入して、マイニング用RX470をRX580にしたキワモノGPUを乗っけた上で、有志の作成した謎ドライバを使ってBootcampで動かしたという奇怪なビルド結果を紹介した。

eGPU BOX(PowerColor Devil Box) + 例のグラボ(RX 580(RX 470)) をBootcampで使うために非公式ドライバ試してみた - 端の知識の備忘録

その後きっと問題なく動くだろうと調子に乗ってバッファローダイレクトで/27,800で売っていた玄人志向のRX 5700XTを購入してみたのだが、まあ相当ハマった。全然動かん。

eGPUをBootcampで使う界隈では有名な症状らしい「コード12」に遭遇してしまい、有志の作成した謎ドライバを持ってしてもそれの修正に凄まじく手間取った。結局正解はWindows 2004へのバージョンアップであった

結果的にはなんとか動くとこまで行ったのだが、もうeGPUはトラブルまみれであんま使いたくないなあという気持ち。しかも全然性能でないし。

なお、前回と同様有志作成の謎ドライバを使用するので、試すときは自己責任でお願いします。最悪初期化できるようなどうでもいい環境でやりましょう。

まとめ

  • RX 5700XTはMacでもCatalina以上のOSが必要でした。

    • 今までMojaveで粘ってきたが、仕方なくついでにBig Surに上げたところなんの問題もなくRX5700XTが認識された。
  • しかしBootcampの方は一筋縄では行かず、RX580が認識している状態の環境からRX5700XTに載せ替えただけなのにコード12が発生してしまうようになった

  • ドライバの再インストールやらレジストリ書き換えやらいろいろ試したが全然だめでした。

  • Windows10のバージョンを1909から2004にあげたら冗談のようにコード12が消失!

    • egpu.ioでも色んな人が四苦八苦しているのがわかるが、大事な要素は「有志のドライバ」、「Windowsのバージョン」が大半という印象。残りはGPU BOXの種類とかも報告している人あり。ハマってしまうと修羅の道である。
  • RX 580からRX 5700XTへの変更はBootcampでは全然性能の向上が見られない

    • 価格は3倍以上だったが性能は1.1倍にしかならず(FF14ベンチ)。本当なら倍くらいなはずなのでほとんど性能が引き出せていないことになる。無念。

トラブルシュートの詳細と、ついでにとったベンチも下に紹介してます!

起こった問題

前回の記事で書いたとおり、有志の作成した非公式ドライバにより、BootcampでRX 580+PowercolorのDevilboxで動かすことに成功した。

これに味をしめ、バッファローダイレクトでなんだか安かったRX 5700XT(RD-RX5700XT-E8GB/DF)を購入した。

f:id:hashicco:20201203211607j:plainf:id:hashicco:20201203211600j:plain

箱はなんだかボロボロだったがヒートシンク周りはきれいな商品でした。玄人志向RadeonはPowerColorなんですねそういえば。今は普通にPowerColorも代理店経由で売られている気もするけどそれとはどう差別化されてんだろう?

意気揚々とDevilBoxに組み込み、Macと接続。しかし、なぜか認識せず。公式サイトを見てみたところVegaのGPUmacOS Catalina 10.15.1 以降の対応とのことでしたので、MojaveからBig Surに一段とばしで上げてみたところきちんと認識しました。やはり外付けGPU(というかThundebolt3の問題?)との相性はMacのほうがいいみたいです。

support.apple.com

f:id:hashicco:20201203212245j:plain

で、さっきまでRX580を認識していたBootcamp Windowsを起動してみたところ、デバイスマネージャに三角マークが……

どうやら一発OKとは行かないようである。

f:id:hashicco:20201203211910p:plainf:id:hashicco:20201203211914p:plain

エラーを見てみると悪名高い「コード12」というエラーらしい。

この状態ではRX5700XTは全く使えない。ここから3~4時間格闘する羽目となった。

トラブルシュート!

やったことをとりあえず並べてみる。

やはりここからは非公式な操作なので、試す場合は自己責任。

ソースはだいたいegpu.ioというフォーラムであるが、解決策が魔術やらブードゥーやら言われている事が多いことからわかるよう、BootcampでeGPUを使うのは中々運ゲーみたいなところがある。うまくいく人もたくさんいるが、それが自分の環境に当てはまるかどうかは試してみるしかない。

  • ドライバの再インストール

セーフモードで起動しDDUでドライバ削除、bootcampdrivers.comの非公式ドライバを再度インストールしてみたものの相変わらずコード12が発生。

工場出荷時とかに変えたりしつつ計2~3回やり直してみたものの、いたずらに再起動の回数が増えるだけでなんの解決にもならず。

いわゆるHackFlagsの書き換えというやつらしい。egpu.ioで紹介されていたもの。

ここのURLにレジストリの書き換えができるファイルが配布されているが、そんなに大変な操作ではないので手動でやってもよし。

HackFlags 0x600 Registry Edit – AMD Radeon eGPU Boot Camp Error 12 Solution | BootCamp eGPU Setup

一応コード12の修正方法ということで、Microsoft公式にも載っています。

PCI Express 拡張シャーシの接続に失敗する - Windows Client | Microsoft Docs

  • pci.sysの書き換え

これはうまく行かず。紹介されているフォーラムは↓あたり。

Windows 2004 Bootcamp on Mac Mini + RX5700XT – Page 2 | BootCamp eGPU Setup

というのも権限書き換えて別のバージョンのWindowsから引っ張ってきたpci.sysに書き換えて見たものの、起動しようとすると自動修復が走ってしまいもとに戻ってしまう。

頑張ればなんとかなりそうな気もしたが、これを試していたのが普通の平日の2時でもう体力が持たんので諦めた。

で、結局Windowsのバージョンアップで解決

egpu.ioを眺めていると、結構Windows10のバージョンに左右されるという意見が多いよう。ということで思い切ってWindowsのバージョンを1909から2004まで上げてみた

すると!なんとあっさり認識するようになったのであった。ドライバの再インストールも必要なく、さっきまで黄色でエラーが出ている状態からWindows上げただけで普通に認識。

Radeonのドライバからもきっちり認識。

f:id:hashicco:20201203215115p:plain

ベンチマーク

- IntelHD 640 RX 555 RX 580(RX 470) RX 5700XT
OpenCL 4631 13065 38503 54002
Metal 4396 13140 42805 62018

一世代違うだけあってある程度性能は向上。RX580より1.5倍増しくらい

- IntelHD 640 RX 555 RX 580(RX 470) RX 5700XT
FF14 - 7805 12908 14403

うーんあんまり上がんない……。1.1倍くらい。

なんかおかしい気もするけど、もう治す元気がないー。

WindowsのアップデートでeGPUに最適化していってくれることを望みます。