NVIDIAが2019/03/19にGPUカンファレンスで発表し、6月以降99ドルで提供予定のシングルボードコンピュータ。
小さいながらも128コアのGPUを搭載し、ディープラーニングモデルの実行が可能。
GPUモジュールを、ラズパイのようにUSB、HDMI、GPIOなどの豊富なインタフェースを持つ基盤に取り付け、4GBのメモリを搭載、Ubuntuが動作するようになっているのが、開発者キット
日本国内では、2019/05よりツクモパソコン本店Ⅱ、スイッチサイエンス(マクニカ)で開発者キットの取り扱いを開始。13,000円程度で入手できる。
前述のように、国内ではツクモパソコン本店Ⅱ や スイッチサイエンスでJetson Nanoを取り寄せ購入できます。
本体購入と同時に、下記のパーツを購入することを強くお勧めします。(特に金属ケースはMust Buyです!)
本体:13,000円、ケース:3,800円、microSD:4,000円、ACアダプタ:1,600円、ファン:約4,200円、合計:26,600円
Geekworm NVIDIA Jetson Nano用金属ケース、電源およびリセットコントロールスイッチ付きのメタルシェル、Jetson Nano Boardに適用
SUCCUL ACアダプター 5V 4A 大手メーカーOEM社製品 センタープラス スイッチング式 最大出力20W 出力プラグ外径5.5mm(内径2.1mm)PSE取得品
microSDXC 128GB SanDisk サンディスク Extreme UHS-1 U3 V30 4K Ultra HD A2対応 SDアダプター付 [並行輸入品]
電源スイッチ、リセットスイッチ、ファンの接続とジャンパー設定などをここを参考に組み立てます。
組み立てのポイントは下記の通り。
miscoSDカードにJetson Nanoのインストールイメージを準備します。
Write Image to the microSD Card
接続前
J40にジャンパーピン
J48にジャンパーピン
ファンを4Pinコネクタで接続
GPIOへの接続
組み立て
microSDの装着
豊富な端子類
microSDカードを挿入し、USBポートにキーボード、マウス、HDMIポートにディスプレイ、ACアダプタを接続し、背面の電源ボタンを押すと、Blueのライトが灯り、bootが開始されます。
ウィザードに従って、リージョン、時刻やキーボードの選択をします。キーボードが何か分からなければ、とりあえずJapanese 109キーボードでOKです。
テキスト入力設定の"使用する入力ソース"で日本語(Mozc)(IBus)を追加し、最優先(リストの最上段)に設定する。
参考:Jetson Nano買ったのでdarknetでNightmareとYOLOを動かすまで
sudo nvpmodel -m 0
sudo jetson_clocks
git clone https://github.com/JetsonHacksNano/installSwapfile
cd installSwapfile
./installSwapfile.sh
git clone https://github.com/AlexeyAB/darknet darknet
cd darknet
Pre-Trained Modelを~/darknetにダウンロードしておきます。
恐らく、Jetson Nanoでカメラと共に使うならTinyモデルの方です。ダメ元でやってみる用にYOLOv3、YOLOv3-SPPも念のため落としておきましょう。
GPU,CUDNN,OPENCV,LIBSOを1に変更
Tegra X1 (Jetson NanoのGPU)を探してコメントを取り有効化
ARCH= -gencode arch=compute_30,code=sm_30 \
-gencode arch=compute_35,code=sm_35 \
-gencode arch=compute_50,code=[sm_50,compute_50] \
-gencode arch=compute_52,code=[sm_52,compute_52] \
# -gencode arch=compute_61,code=[sm_61,compute_61]
# For Jetson TX1, Tegra X1, DRIVE CX, DRIVE PX - uncomment:
ARCH= -gencode arch=compute_53,code=[sm_53,compute_53]
makeを実行します。
ダラーっと長い長いスクロールが始まりますが、気長に待ちます。途中、warningとかがいっぱい出来るかもしれません。
色々と端折りますが、最終的に./darknetとコマンドを打って、
usage: darknet
みたいな素っ気ない応答が帰ってくれば、(恐らく)ちゃんとmakeが出来ています。
YOLOv3モデルを使って、サンプルの静止画を認識させてみます(モデルの読み込みがズッシリと重いです。気長に待ちましょう)。
下記のコマンドを打ちます
./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights
USBポートにカメラを接続します。
下記のコマンドを打ちます
./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights -c 0
USBカメラによるリアルタイム物体検出
USBカメラによるリアルタイム物体検出
USBカメラで物体検出をし続けて6時間。Nano本体が熱くなってきました。
内部の温度を測るなんてこともできるんですね〜。
$ cat /sys/devices/virtual/thermal/thermal_zone*/temp
1000で割ると温度になるみたいなので、大体55-60℃位です。まだ壊れる温度ではないようです。
温度がわかったところで、今度はファンの回転数を制御してみます。(温度によって自動的に制御してくれたらいいのに)
255が最大値のようなのでここは控えめに60%=153にしてみます。
sudo sh -c 'echo 153 > /sys/devices/pwm-fan/target_pwm'ファンの回転をフルにして、数分放置したら・・・
$ cat /sys/devices/virtual/thermal/thermal_zone*/temp2℃位下がったようです。
面白いので、事務所のサーキュレータに当ててみました。
$ cat /sys/devices/virtual/thermal/thermal_zone*/tempさらに1℃位下がりました。
それじゃあ・・ということで、実行していたYOLOを止めます。
$ cat /sys/devices/virtual/thermal/thermal_zone*/tempもう、みるみる温度が下がって、最終的には15℃位の温度差になりました。やはりGPUがヒーターだったんだなぁと実感した次第です。
▼この記事を書いたひと
R&Dセンター 松井 良行
R&Dセンター 室長。コンピュータと共に35年。そしてこれからも!
●富士見事務所 TEL : 052-228-8733 FAX : 052-323-3337
〒460-0014 愛知県名古屋市中区富士見町13−22 ファミール富士見711 地図
交通部 R&Dセンター