AIやるならRaspberry PiよりもJetson nano!!
Jetson nanoは、Raspberry Piなどと同様にmicroUSBにLinux系OSをインストールして起動し、様々な周辺機器などと接続もできる開発用ボードです。パソコンのようにOS上でアプリケーションを動かすことができ、自分で書いたコードを実行させてプログラミングの学習をしたり、人工知能(AI)の研究に利用したりと様々な用途に利用できます。Raspberry PiはCPUでプログラムを実行させていますが、Jetson nanoはCPUだけでなく、NVIDIA社のGPU(Graphics Processing Unit)を搭載して人工知能(AI)で利用される繰り返しの処理などを高速化している開発キットです。
NVIDIA社と言えばGPUを搭載したグラフィックボードを開発している会社として有名です。事務処理などの仕事としてパソコンを使っている人にはあまりなじみがありませんが、モニタなどに画面を表示させるのがグラフィックボードの役割です。
パソコンで3DのCADを表示させるときや、高解像度のゲームをプレイするときなど、高度なグラフィックを表示させるためには普通に量販店や事務機器屋さんで販売しているコンピュータでは表示できない場合もあります。
このような場合には高性能なグラフィックボードを搭載して画面を表示させます。
3D映像などの表示には高速演算が必要とされます。
コンピュータの処理では浮動小数点の演算が良く行われますが、コンピュータの画面に高度なグラフィックを表示させるためにはこの浮動小数点演算がものすごい量で行われます。CPUで処理しても良いのですが、高度なものになるとそれでは間に合わなくなってくるため、この計算に特化したプロセッサが必要だと考え、NVIDIA社が1999年にGPU(グラフィック、プロセッシング、ユニット Graphic Processing Unit)として登場させたのがスタートです。
なぜ最近GPUが注目されているのか?
CPUと言えばInterl社のものが有名です。その処理速度も年々スピードアップしてきて、現在では複数のCPUを1つのユニットにして更に高速化などが行われています
GPUは主に3Dグラフィックの描画のための計算を行っていたのですが、この処理の中で行われている浮動小数点の計算が人工知能を開発していく際にも非常に重要であるため近年GPUが注目されています。
スーパーコンピューターなどにもこのGPUは搭載され浮動小数点の計算をCPUよりも高速にこなしています。
Jetson nanoは低価格でかつ高速な開発ボードであるため、Raspberry PiなどでAIに触れた後、AIの学習を本格的にスタートする際には最適な開発ボードであるといえます。もちろん最初からJetsonを利用するのも良いでしょう。
Jetson nanoの基本スペック
Jetson Nanoの基本スペックは以下の通りです。
ボードサイズは80mm × 100mm
- CPU : 64ビット クワッドコアARM Cortex-A57 1.43GHz
- GPU : NVIDIA Maxwell 128コア 921MHz/472Gflops
- RAM : 4GB 64bit LPDDR4 1600MHz
- USB : USB3.0 ×4 microUSB2.0
- カメラ:MIPI CSI
- モニタ出力:下段:HDMI 上段:Display Portコネクタ
- ネットワーク:GIGA bit Ethernet
- Wireless : M.2 Key-E
- ストレージ:micro SDカード(UHS-1以上を推奨)
- 電源:5V ( microUSB またはACアダプタ4A以上推奨)
Jetson nanoをセットアップして起動する!
Jetson nanoはLinux系のOS「Ubuntu」をSDカードにインストールして起動します。Jetson nano本体を購入すると本体のみしか同梱されていないため、開発をスタートさせるためには以下のものが必要です。
<初回起動する時に必要なもの>
- Jetson nano本体
- HDMI接続可能なモニタ
- HDMIケーブル
- USBキーボード
- USBマウス
- 有線LANケーブル
- micro SDカード16GB UHS-1以上
- microUSB 又はACアダプタ(5V – 4A)以上出るもの。
- uxcell ジャンパーキャップ
(ピンをショートさせるもの)
特に注意したいのは電源まわりです。Jetson nanoでもmicroUSBからの給電がデフォルトになっています。5Vの電源を利用しますが、4A 流せる電源が必要です。またACアダプタに切り替える際にはジャンパーピンによりショートさせるカ所があります。
※FabshopスタッフがRaspberry Pi で利用していた5V-3Aのものを使ってみましたが、起動するものの数分後に落ちてしまいました。
早速セットアップ、SDカードにOSイメージを書き込み。
Jetson nanoはSDカードにLinux系OS「ubuntu」をインストールして起動します。SDカードは16GB以上が推奨です。ダウンロードして展開するOSイメージは12GBにもなりますので、今後いろいろな用途に使うことを考えると64GBくらいにはしておきたいものです。
STEP1 OSイメージ取得
NVIDIA公式サイトからOSイメージをダウンロードして取得します。以下のNVIDIA DEVELOPER公式サイトから最新版のOSイメージをダウンロードします。以下のダウンロードセンターからJetson Nano Developer Kit SD Card image の最新版をダウンロードします。
▼Jetoson Download Center
https://developer.nvidia.com/embedded/downloads
STEP2, SDフォーマット
SDカードを初期化(フォーマット)します。SDカードフォーマッターをダウンロードしてインストール後、クイックフォーマットでフォーマットします。ボリュームラベルは特になしで大丈夫です。
以下サイトからSDカードフォーマッターをダウンロードできます。このソフトはWin/Mac両対応で利用できます。
▼SDカードフォーマッター
https://www.sdcard.org/jp/downloads/formatter/
STEP3, OSイメージ書き込み
SDカードにOSイメージファイルを書き込むにはEtcherというソフトが人気です。以下のサイトからダウンロードして使います。Etcherをインストールしたら起動して先ほどダウンロードしたOSイメージを選択して最後に「Flash!」ボタンを押すだけで書き込みが始まります。
▼Etcher
https://www.balena.io/etcher/
SDカードを挿して、いよいよ起動!
先述したように、電源だけ気を付けておきましょう。最初デフォルト電源がmicroSDになっています。もしACアダプタを使いたい場合はその後ろにあるPINをショートしておきます。シャットダウン時の挙動は今回はそのままで起動します。(シャットダウン時の挙動はUbuntuをシャットダウンした際に電源もそもまま落とすなど細かい設定が可能です。)
動画で見た通り、Ubuntuの画面でGUIで操作できるところなどはRaspberry Piなどと同様に操作できます。起動後はUbuntuのシステムをアップデートしておくためにもUpdateとUpgradeをしておきましょう。
$ sudo apt-get update
$ sudo apt-get upgrade
Jetsonの大きな特徴はNVIDIAのGPUによる強力な浮動小数点の計算にあります。機械学習やディープラーニングなど人工知能による処理では画像認識など浮動小数点の計算をかなり必要とします。
NVIDIAのCUDAアーキテクチャ
NVIDIAのGPUは元々グラフィックボードとしての利用で有名でした。3Dグラフィックの処理能力が高度なものになり、この処理能力をグラフィック以外の計算にも生かせるように開発されたソフトウェアとそれによりコントロールできるGPUのアーキテクチャをCUDA(Compute Unified Device Architecture)と言いいます。
以上、今回は初期セットアップについてを学びました。Jetson NanoはGPU搭載で他のマイコンボードと比べてグラフィック性能が高く、AI分野でも高く評価されているため、利用範囲がとても広いコンピュータです。Jetson Nanoで新しい世界に挑戦してみましょう!