x99マザーでもIntel Arcが使いたい
注意
このブログの内容は割と危ないことをしています。
最悪、マザーボードがガチのスクラップになる可能性があります。
参考にした動画でも言っていましたが、ブログに書いてある内容を実行した結果、マザーボードがスクラップになったとしても私は責任は取れません。
あくまで私のHow toを書いているだけです。
まえがき
この前の新歓ブログを書いて少しブログを書くモチベが出てきました。どうもウグイスです。
さてこの前の新歓ブログではデュアルXeonマシンを作った報告をしたわけなんですが、ここからはそれを使って遊んでいこうかと思っています。
今回のブログではx99マザーでもIntelArcを使えるようにしたいというテーマでブログを書いていきます。
前回の新歓ブログを見た人は内容が重複しますが、問題説明から入っていきます。
問題説明
IntelArcとは
問題説明に入る前に、IntelArcについて軽く説明します。
IntelArcとはIntelが久しぶりに出したコンシューマ向けのグラボです。
私が購入したのは、A770 Limited Editionというもので、Intelの純正のやつ。
性能としてはRTX3060以上RTX3060ti以下といった性能らしい。
個人的にデュアルXeonマシンにIntelArcが乗っているというロマンが捨てきれずに購入しました。
A770 Limited EditionはVRAMが多いことが特徴です。
5万ちょっとでVRAM16GBもあるのは魅力的です。GPGPUとして、AI処理を行う場合とかは、VRAMは多いに越したことはないので。
ちなみに今出ているArcは第1世代のArc Alchemistなのですが、来年あたりに次世代のArc Battlemageが投入されるらしいです。
性能はRTX4070tiくらいになるらしいです。VRAMの量や値段と要相談ですが、ちょっと楽しみです。
問題点
Intel ArcはBIOSの設定からResizable BARを有効にする必要があるが、x99マザーのBIOSには設定項目がない
この1点に尽きます。細かく説明していきます。
Resizable BARとは
Resizable BARとはPCIE関連の機能であり、対応しているマザーボードではBIOSから有効化することで使うことが可能です。
この機能がない場合、CPUがGPUに計算を投げる際、一度のメモリ転送で256MBという上限があります。
機能を有効化することで、その上限は撤廃されます。よくCPUからすべてのVRAMが見えている状態なんて表現されます。
Resizable BARが無効だと何が問題なのか
IntelArcはResizable BARが無効の場合、性能が下がります。結構制限がきつくなります。
まず性能低下ですが、これは私が実際に試したわけではないのですが、なんか20%くらい下がるみたいです。
最大の問題は制限がきつくなる方です。
具体的に言うとVRAMがほとんど使えなくなります。これはUbuntuを使用している場合に発生します。lspciで見ても256Mとかしか見えず、ドライバを当ててVRAMを使うような処理を投げるとメモリ確保エラーで実行できません。
GPGPUとして使う場合、これは致命的です。メモリがほぼないんじゃ並列演算も何もあったもんじゃありません。
x99マザーには設定項目がない
これはそのままです。x99マザーはResizable BARの設定項目がありません。
前回のブログに書きましたが、中華製マザーなのでBIOSアップデートができるのかもわかりません。
基本的にはResizable BARはPCIE Gen3という規格に含まれています。
ただ、BIOSに設定項目を用意していないだけで、理論上は実行できるといった感じ?ですかね
自分の環境
マザーボードはJginyue X99-8D4/2.5G
CPUはxeon e5 2696v3です。
細かく知りたければ、前回の新歓ブログを参照してください
解決
参考にした動画
ネットで調べた結果、x99マザーでResizable BARを有効化する方法が存在していました。
まず以下のYoutubeの動画が割とドンピシャです。
🇬🇧 Resizable BAR on LGA 2011-3 X99 – how to enable and get extra performance
今回のブログは、この動画に沿った内容となります。多少の補足や、実際やってみての感想とかは追加しますが。
必要なもののダウンロード
この方法は、Windowsでしか実行できません。このマシンはWin11は入れられないためWin10で作業を行います。ただし有効化した後は、Ubuntu等のLinuxOSでも使えます。
まずは以下の3つのリンクから必要なものをダウンロードします。
https://github.com/xCuri0/ReBarUEFI/releases
ここからはReBarDxe.ffsとReBarState.exeをダウンロードします。
https://github.com/LongSoft/UEFITool/releases/tag/0.28.0
ここからはUEFITool_0.28.0_win32.zipをダウンロード(もし新しいバージョンがあればそっちでもいいかも)。unzipもしといてください。
https://github.com/miyconst/Mi899/releases
ここから最新バージョンのMi899-x.x.x.zipをダウンロード(x.x.xはバージョン)。同じくunzipをしておく。
現在のBIOSの読み込み
unzipした中にあるMi899.exeを起動します。(このツールではBIOSの読み書きは行いません)
起動すると以下のような画面が表示されます。
Explore -> motherboardsで以下の画面に移動
自分の買ったマザーボードの会社名で検索。(多分、別のでもできる気はするけど、念のため同じ会社のでやりました)
適当にその中から選びます。
そしたら、以下の画面になるのでDump current BIOSをクリック
すると以下のようにエクスプローラが開くので、中にあるdump.batを管理者権限で実行。
以下のような.romファイルが生成ます。これを使うので場所を覚えといてください。
フラッシュ用のファイルの生成
以下の画像のようにUEFIToolsを起動して、.romファイルを読み込みます
適当に開いて、一番下のDXE driverを右クリックInsert afterでダウンロードしていたReBarDxe.ffsを追加します。(画像は追加後です)
そして適当な場所に保存してください。(使うのでわかりやすい場所に置くことを推奨)
BIOSフラッシュ
Mi899.exeの同じマザボの画面から、select BIOS fileをクリックして、保存したファイルを読み込みます。
そして右下の、Flush selected BIOSをクリックすることで、下図のようなエクスプローラーが起動します。
その中の、flush.batを管理者権限で実行します。
再起動をして、BIOSに入ってください。
BIOSの設定
まず、Above 4G Decodingを有効にしてください。(多分、Advanced->PCISettingsとかにあるはず)
その後、CSMconfigからStorage,Video,Other PCI devicesをそれぞれUEFIに設定します。
そして変更を保存して、BIOSから抜けて、Windowsを起動。
Windowsで機能を有効にする
この段階では、有効になっていません。
ReBarState.exeを管理者権限で実行。その後、入力待ち状態になったら32と入力してください。
そしたら再起動します。
無事有効化できたか?
うまくいけば有効になっているはずです。
Resizable BarはIntelArcならドライバのコントロールパネル的な奴から確認できます。(このGUI Intelっぽいかっこよさを感じる)
ここまで行けば、Windowsである必要はなく、Ubuntuやその他のOSでも利用できるはずです。
私はUbuntuでいろいろ実行しています。(Stable Diffusionとかone APIとか)
そこは追々ブログにしていく予定です。
こばなし
Windowsだと以下の画像のようにcpu2個を認識してくれません。proじゃないとダメみたいですね。
ちなみにubuntuはちゃんと認識してくれます。これが36C72Tの様子です。ちょっと見てるだけでテンションが上がります。
次回予告
Intel ArcでもAIイラストを作りたい
これで行こうかと思ってます。実際にWebUIを動かすところまでは成功しています。正常にイラストが生成されないことが一定の割合で発生するので、それの原因調査を行いたいなと思っているところです。
あくまでこのブログの精神的次回という話なので、間に別のブログが挟まる可能性はあるんですがね。(というかネタはあってどっちから書くかという段階)
あとがき
どうだったでしょうか、自分で見返してみると、ただHow toを書いてあるだけの面白みもないブログになったような気がします。
この記事が、壊れるリスクを負ってまでx99マザーでResizable Barを有効にしたい、そういう人の助けになれば幸いです。
果たして日本に何人いるんでしょうね?
ちなみに、対応しているマザーボードのPCにArcを挿す方が幸せになれると思います。
コメント入力