2023-04-16
膨大なセンサーを何でもクラウドに集約すると通信コストとサーバーでの計算コストがかかってしまいます。そこで、活躍するエッジコンピューター。端末側である程度の処理を行うことでそのコストをぐっと下げます。任天堂のゲーム機、500GFLOPSのSWITCH級の計算能力を持つ、472GFLOPSのJetson Nanoを使ってCUDAを使った開発をお試し!(GFLOPS=10億計算/秒、4720億回/秒、IchigoJam Rの4720倍)


NVIDIA Jetson Nano。32GBのmicroSDカード、HDMIケーブルのモニター、USBキーボード、USBマウス、5Vで4A以上センタープラスの5.1mmACアダプターが必要です。(microUSBからの給電だとフルパワー出ずに落ちます。付属のジャンパーでJ48をショートするとACアダプターモードになります。)


ナノといいつつ基準がきっと大きいので、ラズパイくらいの大きさです。大きなヒートシンクが特徴です。動かしていると温かくなります。


OSイメージを書き出します。6GBほどのZIPファイルをダウンロードして展開する必要があるので、ストレージの空きが20GBほど必要です。


Ubuntuが起動しました!ブラウザで見る一日一創。


ターミナルでサンプルをコピーして、各ディレクトリでmakeして動かします。

cp -a /usr/local/cuda-10.2/samples/ ~/.


CUDAの拡張子は .cu、中身はほぼC言語です。Jetson Nanoが搭載する128コのGPUが並列して動くことをイメージしてプログラムを読んでみましょう。ブラウザ上で動くGLSLもほぼC言語。コンピューターをがっつり根本から動かすにはC言語の知識は必須です。


サンプルを改造してぐりぐり動かして遊んでいる図。一旦動けば、あとは適当に改造してみて、どんどん理解を深めるだけ!


煙のシミュレーションは標準設定だと30fps程度。消費電力を5Vに抑制するモードを使うと半分程度になります。

CPUは、ラズパイと同様ArmのAシリーズ、Quad-core ARM Cortex-A57 MPCore processor。IchigoJamでもおなじみ、GPIO、I2C、UARTも付いているので、賢いロボット制作にも使えます。
(参考、Jetson Nano | NVIDIA Developer

Linuxベースなので、DenoをいれてAPIを動かすこともできます。公式対応はまだのようですが、「LukeChannings/deno-arm64」を使ってインストールし、PATHを通せば普通に使えました!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS