#1 はじめに
Google Edge TPUのUSB Acceleratorを購入しました。Virtual Box上のUbuntuで動かすのに一苦労ありましたので、ここに書き留めておきます。
#2 環境
Host OS: Windows 10
Guest OS: Ubuntu 18.04 LTS
仮想化マシン:Virtual Box ver.6.0.6
#3 手順
- Virtual Boxのインストール
- VirtualBoxにOracle VM VirtualBox Extension Packの追加
ダウンロード先:https://www.virtualbox.org/wiki/Downloads - Virtual BoxにUbuntuのインストール
参考:https://qiita.com/ykawakami/items/4bae371932110b2e25e3 - Virtual BoxのUSBフィルタを編集
4.1. 設定をクリック
4.2. サイドバーのUSBを選択し「USBコントローラーを有効化」にチェックを入れる
4.3. USB Acceleratorを挿入しているUSBポートに合わせ、USBコントローラーのバージョンを指定する
4.4. USBフィルタの追加をクリックし、Global Unichip Corp.[0100]を追加する
4.5. 4.4と同様の操作をし、Global Unichip Corp.[0100]を再度追加する
4.6. 2つのうち、1つを編集し以下のように設定する
ベンダーID:18d1
プロダクトID:9302
- Ubuntuを起動
- 以下のサイトをもとにUSB Acceleratorの動作確認をする
https://coral.withgoogle.com/docs/accelerator/get-started/
#4 結果
以下の通り、Virtual Box上でGoogle Edge TPUのUSB Acceleratorを動作させることができた。
#5 経緯
Virtual Box上のUbuntuで動作させるに当たり、2つの問題にぶつかった。
###5.1 "No Edge TPU Device detected!"エラー
これは、Virtual Box上でUSBデバイスを認識していないのが原因である。よって、USBフィルタにUSB Acceleratorを追加することで解決できた。
###5.2 "RuntimeError: Failed to allocate tensors."エラー
この原因はさっぱりわからなかったが、githubのissueを見ているとサンプルプラグラム動作後にUSB AcceleratorのベンダーID、プロダクトIDが変わっているとの記載があった。また、サンプルプログラムを実行するとUSB Acceleratorがアンマウントされてしまうという現象が発生していた。このことから、試しにUSBフィルタに変更後のUSB AcceleratorのベンダーID、プロダクトIDを追加すると動作することができた。
#6 補足事項
- 3で作成した仮想環境をMacBookAirのVirtual Boxにインポートしたが、USB Acceleratorを動作させることができた
- debianでも同様のことを実施したが、5.2のエラーが表示され動作させることができなかった