はじめに
BootCamp + eGPUでAzure Kinect Body Trackingを実行する環境を構築しました。
構築から実行までの方法について紹介します。
※ Appleによると、BootCampでのeGPU利用は公式では認めておらずサポートされていません。(2020/4/5現在)
構築される方は自己責任でお願いします。
背景
- Azure Kinect Body Trackingを”まともに”利用するには、CUDAが実行可能なNVIDIA製のGPUが必要
- 自分はMacしか持っておらず、現時点でiGPUはAMDかIntelの内臓チップしか選べない
- Body TrackingはCPUだけでも動きますが、私の環境ではFPSが出ず使い物にならない
ということで、eGPUを使って解決する!
環境
- MacBook Pro
- 10.13.16(High Sierra)
- BootCamp
- Windows 10 Pro バージョン1909
- eGPU
- AZURE Kinect DK
- 外部ディスプレイ
- HDMI
eGPU(NVIDIA) + BootCampの環境を構築する
環境構築
準備
Macに外部機器が接続されている場合、全て外しておいてください。
何かしら接続されていると、この後の工程でクラッシュする場合があります。
eGPUを接続して、NVIDIAのドライバをインストール
- eGPUを接続せずに、Windowsを起動します
- Windows起動後、サインインしてデスクトップを表示します
- eGPUをMacに接続します。(MacとeGPUとの接続は、Thunderbolt3ケーブルを使用します)
- ドライバーインストールのダイアログが表示されるので、指示に従いドライバをインストールします
- ドライバインストール後、デバイスマネージャを開き、インストールしたばかりの「NVIDIA Geforce GTX1050 Ti」を無効にします(警告バッチがついている場合がありますが、気にしない...)
- Windows 10をシャットダウンします。
正しく認識されるか確認する
- eGPUと外部ディスプレイ、eGPUとMacを接続する
- Macの電源を入れて、Windows10を起動する
- デバイスマネージャを開き、「NVIDIA Geforce GTX1050 Ti」を有効にすると、外部ディスプレイにデスクトップが表示されます
無事、表示されました。
Windowsをシャットダウンする場合
eGPUは使用するときは有効に、使用しないときは無効にすると、安全な気がします。
なので、自分はデバイスマネージャの「NVIDIA Geforce GTX1050 Ti」を無効にしてから、Windowsをシャットダウンするようにしています。
Azure Kinect DKを接続して、Body Trackingの実行確認
Body Tracking SDKをインストール
- MSのサイトよりSDKをダウンロードします。
- SDKをインストールします。
Azure Kinect Body Tracking Viewerを実行
- Azure Kinect DKをeGPU側のUSBポートに接続
- Azure Kinect Body Tracking Viewerを実行します
(CUDAの実行環境が正しく構成されていない場合は、Viewerは起動しません)
$ <SDK Installation Path>\tools\k4abt_simple_3d_viewer.exe
気づいた点・注意点など
- 参考にしたサイトではiGPUを無効にする必要があるとなってましたが、自分の環境では必要ありませんでした
- 外部機器がUSB経由でMacに接続された状態でセットアップすると、クラッシュや強制再起動などが多発しました
- 関係があるかわかりませんが、、、MacBookのThunderboltポートの場所によってはうまくいかないこともあるようです (自分は左側のポートを使っています)