Macbook Pro 13にAkitio NodeでGTX 970を繋げて3Dゲームを遊びたい開発したい!(セットアップ編)

最近Unity(3D,2Dゲームを開発するソフトウェア)に興味を持ち、自分のMacbook Proを使って勉強しているのですが、スペック不足なのかスムーズに開発ができず悩んでおりました。

僕の環境

Mac
  • High Sierra 10.13.4
  • MacBook Pro (13-inch, 2017, Two Thunderbolt 3 ports)
  • 2.5 GHz Intel Core i7
  • 16 GB 2133 MHz LPDDR3
  • Intel Iris Plus Graphics 640 1536MB
外付けディスプレイ
  • EIZO EV2736W 2560x1440 (置いてあるだけ)
  • LG 27UK650-W 3840 x 2160 (HDMIで接続)

f:id:takumus:20180418161130p:plain いつもは4Kの方をMacbook Proに接続して使ってます。EIZOは昔使っていたのですが、macの端子が足りなくて使えていません
グラボ無しのMacbook Proを、4Kディスプレイに接続して3Dヌルヌル動かすのは無理がありますよね。そんな僕を救ってくれる何かが

ありました!

www.akitio.jp これはThunderbolt 3という規格を使い、主にノートパソコン等にグラフィックボードを増設できるマシンです。
外付けGPU、外部のGPUという意味からEGPU(External GPU)と呼ばれています。AKiTiO Node以外にも様々な製品が出ておりますがAmazonにこれしか無かったので買うことにしました。

意外と高い

AKiTiO Node意外と高いです。更にグラフィックボードも必要になるのでこちらも買わなければなりません。それらを合わせて、

  • AKiTiO Node : 44,000円
  • MSI Gaming GTX 970 : 20,000円(友人から中古で購入)

合計 : 64,000円

結構高いです。普通に悪くないデスクトップパソコンは組めそうですが、僕は外でも家でも同じパソコンを使いたいのです。また、Mac OSが好きなため、新たにパソコンを組むという選択肢はありませんでした。

AKiTiO Nodeを使うための環境

AKiTiO NodeをはじめとするEGPUを使うには、Thunderbolt 3による高速な転送が求められます。自分のMacがThunderbolt 3に対応しているかを確認しましょう↓ support.apple.com ※Thunderbolt 2を3に変換するアダプタを使って、Thunderbolt 3に対応していないMacでも使用できるそうです。(AKiTiO Nodeでは未確認)

AKiTiO Nodeの外観

でか過ぎです! f:id:takumus:20180418172626p:plain

MSI GTX 970を挿入してみた

2スロット消費する大型のグラフィックボードも入ります。 f:id:takumus:20180418172724p:plain

背面

f:id:takumus:20180418172918p:plain

ケーブルを差すとこんな感じ

f:id:takumus:20180418173630p:plain

セットアップ(僕はこれで成功しましたが、自己責任でお願いします)

1. まずはBOOTCAMPのWindows 10にてAKiTiO Nodeのファームウェアアップデートとグラフィックボードの動作確認

※グラフィックボードは抜いておきます。
1-1. BOOTCAMPでWindows 10を起動。

1-2. Thunderbolt 3のドライバをインストール。

downloadcenter.intel.com NUC専用となっていますが、これで良いみたいです。

1-3. Windowsの電源を切る。

1-4. AKiTiO Nodeを接続しAKiTiO Nodeの電源を入れ、Windowsを起動。

1-5. デバイスマネージャでThunderboltが認識されているか確認。

1-6. ファームウェアをインストール www.akitio.com

1-7. ついでにグラフィックボードのドライバもインストール。

1-8. Windowsの電源を切る。

1-9. AKiTiO Nodeにグラフィックボードを挿入。

1-10. Macbook ProにAKiTiO Nodeを接続(必ずAKiTiO Nodeの電源は切る

1-11. Windowsで起動。
ここが一番ミソです。海外フォーラムで現在も様々な議論がされていますが、色々読んだ結果、環境によるということがわかりました。
私の環境ではWindowsで起動しWindowsのロゴが出て0.5秒後くらいにAKiTiO Nodeの電源を入れると上手くいきます。

電源を入れるタイミングが、↓

バッチリの場合

→いつもより起動に時間(2,3分ほど)がかかります。起動後グラフィックボードを認識します。
ディスプレイが接続されていた場合、ディスプレイにも画面が出力されます。

遅すぎた場合

→Windowsが通常に起動しグラフィックボードが認識されません。

早すぎた場合

→Macbook ProのディスプレイにWindowsロゴ出て、少しすると高速に点滅し画面が乱れます。
音が出ることから、起動はしているようなので、パスワードログインを一旦オフにして、シャットダウンのショートカットを覚えておくと良いでしょう。

1-11. BOOTCAMPで、グラフィックボードの正常動作を確認。
ベンチマークなどしてみてください。

2. 本命のMac OS High Sierra 10.13.4で動くように

ここからはカーネルをいじったり、SIPを無効化したり、失敗すると面倒な事になりうる領域に入ります。そのためバックアップをしておきましょう。

2-1. MacとAKiTiO Nodeの電源を切る。

2-2. Cmd + Rを押しながらリカバリモードで起動。

2-3. 上のメニューバーよりターミナルを起動しcsrutil disableを実行。
これによりSIPを無効化します。SIPを無効化しないとNVIDIAのGPUをMacに認識させるためのドライバやツールが動きません。

2-4. Macで起動。

2-5. ターミナルを起動し、下記のシェルを実行。

sudo su
curl -s "https://raw.githubusercontent.com/learex/macOS-eGPU/macOS10134/experimental/nvidia10134Install.sh" | bash

このシェルは、中身を見たところ、

  • NvidiaのQuadro向けドライバをダウンロード&インストール。
  • MacOSにNVIDIAグラフィックボードを認識させるためのpkgを適用。
  • AppleGraphicsのkextを書き換え?(復元用に元のkextのバックアップは取っているっぽです)

下手なことは言えないですが、すごいことをやっています。
uninstallerもあるようなので、一応引用元の掲示板を見てください。
↓引用元 egpu.io

すべての処理が終わると自動で再起動します。

2-6. Macの電源を切る。

2-7. AKiTiO Nodeの電源を入れる。

2-8. Macの電源を入れる。

2-9. グラフィックボードを認識するか確認。
Windowsと違ってタイミングなどは必要ありません。
グラフィックボードにディスプレイが接続されていた場合はすでにもう映るはずです。
f:id:takumus:20180418185715p:plain
認識すると、Macbook ProなのにGraphicsがGTX 970のような面白い状況になります。

お疲れ様でした

セットアップはひとまずこれで終わりです。 僕はと言いますと、ケーブル一本で、WQHDと4KとMac本体のトリプルディスプレイが実現しました! f:id:takumus:20180418191825p:plain f:id:takumus:20180418192654p:plain

常用する上での注意

Thunderboltは基本的に電源を切った状態での抜き差しをすること。

MacやWindowsで、OSが立ち上がった後にケーブルを抜くとMacbook Proの電源が落ちます。
Macはカーネルパニック、Windowsは再起動します。

OSのアップデートに注意

まずフォーラムで動作確認をしてからアップデートしましょう。
最近では、10.13.3から10.13.4にアップデートしたときにたくさんのEGPUユーザーがトラブルに巻き込まれたそうです。

そもそもAppleが公式で使えると言っていないから、

何が起きるかわかりません。覚悟は必要です。

終わりに

日本でMacとEGPUの記事をかかれている方は少なく、特に今回のようなMac OS High Sierra 10.13.4 + AKiTiO Node + NVIDIAについては見つけられませんでした。
この記事は海外のフォーラムから手探りで集めた情報だということをご理解いただけたらと思います。
もしもやってみたいという方がいらっしゃいましたら、この記事を参考にしていただくのも良いのですが、海外のフォーラムがとてもスピーディーなのでそちらを優先して読んでいただければと思います。 egpu.io