見出し画像

無理やりeGPU環境を構築した話(OCuLink環境構築)

はじめに

どうもぱるちゃんです。
前回の記事にて宅内リモートデスクトップ環境を構築しましたが、その中で(私のケースの)最適解はeGPUかも、と書きました。
今回は「あれ…?もしかしたら無理やり構築できるのでは…?」と思い立ち、とても無理やりeGPU環境を構築したので、忘備録を兼ねて記事に起こすことにしました。

※2024/01/06追記
RTX3060でもベンチマークとってみました。
3000番台以上をこのケースで使用する場合、43エラーなるものに対応する必要があります(それについても追記しました)。

注意(マネするなよって話)

・本記事はpcの改造を推奨するものではありません。寧ろ非推奨まであります。危ないので。
・真似する人は居ないと思いますが、真似する場合は自己責任で(当方一切責任負いません)。
・仮にやるならよくよく調べてからやったほうがいいと思います。
・またこれは「グラボついてないノートpc一台しかもってないけど、お金かけずにゲーミング化したい」みたいな人は確実にやめたほうがいいです。この手の改造してる人は大体最悪壊れてもいいpcでやるとか、pc複数台持ってる人です(私もそう)。
・そもそもeGPUというものが現状でいい選択肢かは相当微妙だと思います。大体のケースでは素直にゲーミングPC買ったほうが幸せかと。
それでもeGPUに興味あり!な人は素直にThunderbolt端子のついたノートpcを買いましょう。
・今回私は好奇心だけでやってますので実用性は…?


動機・考えたこと(長いです)

前回の記事の宅内リモートデスクトップ環境構築で作業環境だいぶ快適になりました。
ただ好奇心的な面でeGPUに興味津々、魔改造的なのでどうにかできたりしないかなぁと考えていました。
するとあるではないですか。それらしい動画をいくつか貼ります。

要はノート基板にある何らかの端子を無理やり変換してGPUにつなげれば使える(こともある)というアイディアです。
ただ見ていただければわかるのですが、これらは容易に取り外しできるものでなく、ノートpcを実質的にデスクトップとして扱うようなアイディアです。
要はThunderboltでのeGPUとは異なり必要なときだけさして使う!みたいなアイディアではないです(つまり私のやりたいこととちょっと違います)。
そこで私は考えました。
「USBみたいな感じにノートPCの横にメス端子を生やして、ケーブルで接続するような仕組みにすれば着脱可能なのでは?!」と。

調べたところ、着脱できるeGPUの仕組みとしては
・Thunderbolt(この手のものではメジャーな手段)
・Oculink(ほとんど見かけない)
の二つがあるとのこと。
また、ノートPCに無理やりGPUを接続するケースでは
・wifi用の端子
・M.2端子
を経由する2パターンがありそうということもわかりました。
よって、
wifi端子orM.2端子→Thunderbolt端子orOculink端子に変換→ケーブル→GPU
という構想を立てました。
更に調査を進めたところ、wifi端子orM.2端子→Thunderbolt端子というものは商品として存在していない(詳しくないのですが、これは帯域とか商標の問題とかでしょう)ことが判明、ということでメス端子はOculink端子でほぼ確定。
そして外でもノートPCを使う関係上、wifiが拾えないのは辛いのでwifi端子を犠牲にするのはNG。
よって、M.2端子→Oculink端子→ケーブル→GPUで決めました。

購入したもの

さて、上述の通りM.2端子→Oculink端子への変換するものですが、Amazonでいくつかあります。猛者はアリエクで探してもいいでしょう。

例えばこんなやつですね。
この辺りは導入したいPCの構造次第で選択することになると思います。
私のノートPCのM.2端子の切り欠きの向きを考えると上記製品らはOculink端子が基板の下側にきてしまうので刺せなさそう、ということで↓の商品を購入。

これなら向き的には下になるけど位置的にいけるのでは???
Thinkbook16(LenovoのノートPC)専用って書いてありますが、まあいけるやろの精神で購入。

続いてGPUを外付けするための仕組み。買ったものはこちら。

GPUをつけてOculinkするための基板とつなぐためのOculinkケーブルです。
電源は玄人志向の400W電源を適当に購入。

GPUは帰省時に秋葉原に寄って、中古のQuadro M2000を入手しました。

Quadro M2000実物。DP4基でHDMIには非対応。

ただの動作チェック用なので、この型番である必要は殆どないのですが、
・いつも使っている3060をいきなり投入して壊れたら嫌
・補助電源が不要
・古すぎず("Bakery"なるものに縛られています)
・店舗で動作保証されている
・4000円くらいだった
という理由で選択。
これで準備は整いました。

外付けGPU環境の構築

さて、いよいよ実際の構築です。
まずはノートPC側、M.2端子にOculink変換基板を挿入します。

わかっていたことですが、ほかのパーツとちょっと干渉

念のためセロハンテープで絶縁と固定を行っています。多分不要ですが。
このままでは蓋が閉まらないので、動作確認ができたら加工して閉じることとします。
続いてGPU側です。基板にGPU、電源、Oculinkケーブルを挿します。

こんな感じ。Oculinkケーブルを挿すのがちょっと難しい。

こちらもバラックのまま使用するわけにはいかないので、動作確認後になんらかケースを用意したいと思います…。
(なお一般的なeGPUボックスは高いです)
あとはノートPCとGPUをOculinkケーブルで接続して起動すればOKです。
なお、PC起動後にGPUを接続しても認識しません。

不格好ですがこういう感じです。

一応基板側にスイッチついているのですが、オフにしておいてもPCの起動とともに起動します。いったい何の意味が…。
ここでPCの構成が変わったことでBitlockerの回復キーを求められる。

無効にしていた気がするのだが…。

入力後、立ち上げるとGPUの型番は認識されていないものの、何かが接続されていることを認識している様子。
NvidiaのHPよりドライバをインストール、これで認識しました。

ついでにCPU内蔵グラフィックを無効化しときましょう。
こっちでもちゃんと認識して動いてます。

内蔵グラフィックを無効化して、外付けGPUに外部モニターを接続しないと性能発揮できないようなので以降はそのようにして使用します。

ベンチマークしてみる

特に困難なく動いてしまったのでとりあえずベンチマーク的なことをやってみました。

FF15ベンチマーク

まずはFF15ベンチマーク。
私はFF15やりませんが、PC改造してFF15ベンチマークを回すという構図そのものに憧れていたためやってみました。それだけです。
条件は軽量画質・ウインドウで固定、CPU内蔵グラフィックオンリーと外付けGPU有のときの比較です。

CPU内蔵グラフィック。無理そう。
GPU付き。ちょっとスコア上がりました。
2024/01/06追記 3060でのスコア。大幅上昇。

軽量であってもスコアの上昇が微々たるもので、いずれにせよなんとも…といったところでしょうか。
しかし3060を装着するとかなりスコア上がりました。適切なGPUを搭載すれば有用そうです。

VRChat

今度は私がよくやるゲームでベンチマークしてみたいと思います。
しかしながらVRChatは重くなる要素が色々あるので一意的なベンチマークは難しいです。
とりあえずVRChatの弊ワールド、FerroceneでのFPSを確認してみました。
一般的に水シェーダーは少し負荷がある印象ですので、海側を向いたときのFPSを比較してみます(GPU以外の条件は同一、デスクトップモード)。

CPU内蔵グラフィック。FPSは35くらい。
GPU付き。FPSは60くらい。
2024/01/06追記 3060ver.スクショのタイミングで何故かFPSがガクっと落ちますが、基本はFPS144張り付き。

こちらもGPUを接続したことによってFPSが向上しました。
しかしながらテスト用のGPUの性能が低く、ないよりはマシレベルでしょうか。
3060でのテストでは大幅にFPSが向上して最大値(144)張り付きです。
VRChatはVRAMが重要とよく聞きますので、この辺りが効いているものと思われます。
なお3060を装着した状態ではVRモードも普通に遊べました。
ただGPUに対してCPUがボトルネック感ありますので人の多いところなどは厳しいかもしれません。

3060とQuest2をノートPCに繋いだ図。もはや何をしたいのかが自分でもわからなく…。不安定作業はNGです。
数値として出せるものはないですが、ノート+3060+VRの私。

Blenderレンダリング

私はゲームだけでなくBlenderでレンダリングもよくやります。
というわけでBlenderでレンダリングをしてみます。
しかしこのままだとレンダリングに使用できません。
使えるようにするにはNvidia CUDA Toolkitをインストールする必要があります。

(これに引っかかって10分くらい無駄にしました)
Toolkit導入後、プリファレンス→システム→レンダーデバイスで選択できるようになっているはずです。

一覧に外付けGPU確認。
レンダリング後の画像。サンプリング数低いのでやや粗いが問題なく動作。

比較データを用意できませんでしたが、当然CPU内蔵グラフィックでのレンダリングよりは圧倒的に速いですね。

Unity-Bakery

さて最後にもう一つ重要なGPUの使い道であるところのBakeryです。
知らない方のために軽く説明すると、Unityでいい感じにレンダリング(ライトベイク)するための有料アセットです。

但し使用するためには
GeForce 650かそれ以上、Quadroは要確認(恐らくkシリーズ以降であれば問題なさそう)
のGPUが必要とされています(Radeonは非対応です)。
今回購入したテスト用GPUはギリ使用できるようなのでテストしてみました。
Blenderの項同様、Toolkitが必要です。未インストールだと無視されてしまいます。
Toolkitインストール後はいつも通りセットアップするだけです。

Bakeryによるライトベイク画像。見た目はともかく動作OK。

動作特に問題ないようです。

ケースへ収納

一通りよくGPUを使うものに関しては確認を行い、(GPUの性能はともかく)動作問題なさそう、ということがわかりました。
しかしこのままバラックで使うわけにはいきません。
当然ホコリなども怖いのですが、私は作業しながら飲酒をするため、お酒をこぼしてショート、が一番怖いのです。
というわけで収納していきます。ちなみにこれは正直失敗です。

さてこれにあたって購入したものは以下。
あれ段々コストが嵩んできたような…。

〇ケース
もちろんこの場合において専用ケースなんてものは存在しません。
ですのでなるべく小型、ということでmini-itxケースでGPUを取り付けられるものをチョイスしてみました。
サイズ的に干渉するよなぁ…とか思いながらポチりましたが予想的中、後々苦労することになりました。

〇電源
また電源を買うのか?という話ですが、↑のケースはATX電源に対応しておらず、SFX電源が必要です。というわけで購入。
ちょっと痛い出費でした。ATX電源対応のもう少しゆとりのあるケースを購入したら万事解決だったように思います。
あとGPUにしか電源ケーブルを挿しこまないので、モジュラータイプの電源が望ましいと思います。高いですが。

〇ライザーケーブル
これも本来であれば不要なパーツです。ケースと基板の位置関係上、ライザーケーブル(延長ケーブルみたいなものです)が必要になりました。
後程書きますが、角度90度のものでなく180度のものが必要でした。

これらを使って組み上げていくとこうなります。

GPU側。下の端子にライザーケーブル挿しています。
電源側。電源ケーブル類が固く、収納に苦労。
電源側蓋を閉じた後。スリット付きのアクリル板が付いていたので装着、隙間からoculinkケーブルを出してみる。
GPU側。こちらはすっきり。
ノートPCに繋いだ図。見かけはアレですがスッキリまとまりました。

見た目はともかく、スッキリ収納できており、使用にも問題がないのでよしとしました。
しかしライザーケーブルを介している関係上、ロスが生じているのかベンチマークのスコアが減少していたりと、パフォーマンス上の問題が起きています。
また、ライザーケーブルの位置関係で別の問題が生じており、シングルレーンのGPUしか装着できない状態です。
今回人柱になっているQuadro M2000はシングルレーンなので問題ないですが、3060などは取り付け不可になりました。
これは後程発覚したことですが、購入したライザーケーブルが90度タイプのもので、このケースには180度タイプのものを購入する必要があったようです。

このまま使用するか難しいところです。
Unity/Blender用途には十分なのでこのまま使ってみて考えたいと思います。

PC蓋の加工

PC蓋も開けっ放しで使用するのは望ましくないので、差込口を作り閉じる必要があります。
正直工作するにしてもリスクが高すぎるのでどうかと思いますが、私のPC蓋は度重なる持ち運びの結果割れているので躊躇なく加工していきます。
ちなみに予備の蓋の見積もり取得済、1年以内にPC買い替え予定なのでやっています。きれいな状態ならそのまま使いましょう、本当に。

とはいえ加工は簡単で、ニッパー的なもので切っていくだけです。
私はギターの弦を切る用のニッパーで加工しました。
ちゃんとした工具のある人はそれを使いましょう。
コネクタの形に合わせて、加工しました。
いつかキャップも作ろうと思います。

ガタガタですがまぁ使用に問題はないでしょう。

また、写真を撮り忘れたのですが、Oculinkケーブルにはツメが付いており、そのまま引っ張っても抜けないようになっています。
取り外す際に押す部分がPC側を向いており、このままでは抜くのが困難です。
よってこちらもツメ部分をニッパーで切除、簡単に抜き差しできるようになりました。
これにて容易に取り外しできるeGPUが完成しました。
でも私は次にノートPCを買うときThunderbolt4コネクタのついたものを買ってeGPU環境を構築すると思います。

(追記)43エラーへの対処

どうやら3000番台以上のGPU(Radeonは不明)を本ケースで使用するとエラーが出て、認識はできても使用ができないという状態になります。
対処方法ですが、
①正しいドライバをあてる
②エラーに対するパッチをあてる
⇒有志の方が作ってくれたものがあります。これを実行すれば正しく認識できます。
(eGPUのフォーラムがあるんですね)

https://egpu.io/forums/expresscard-mpcie-m-2-adapters/script-nvidia-error43-fixer/


おわりに

今回は無理やりeGPU環境を構築しました。
意外と動いてしまってびっくりしていますが、テスト用のボードの性能の問題では革命!レベルにはなりませんでした。
3060のような、一般的に現在でも使用されるGPUを装着すれば飛躍的に性能は向上、状況によるでしょうがVRでも遊べます。
私のケースは性能以外の面でおすすめできないとしても、Thunderbolt4搭載PCとeGPUBoxを買える財力のある方は一つの選択肢になり得るかも、と思えました。
ではまた。

この記事が気に入ったらサポートをしてみませんか?