デバイス・ボード

NVIDIA Jetson

GPU搭載のエッジAIボード。映像のリアルタイム推論向き。

概要

NVIDIA Jetsonは、NVIDIAが開発するエッジAI推論向けの組み込みコンピュータプラットフォームです。NVIDIA製GPUとARM CPUを1つのSoMまたはSoCに統合し、消費電力を抑えながらクラウドGPUサーバーに匹敵する深層学習推論性能をエッジで実現します。

自動運転・ロボット・スマート工場・医療画像診断・スマートシティなど、リアルタイムの画像認識・物体検出・セグメンテーション・自然言語処理が必要な用途向けに設計されています。CUDAとcuDNNのエコシステムをエッジで利用でき、クラウドで学習したモデルをほぼそのままデプロイできる点が最大の強みです。

製品ラインナップはエントリー向けのJetson Nano(5〜10W)から高性能のJetson AGX Orin(15〜60W)まで幅広く、用途と予算に合わせて選択できます。

歴史・背景

NVIDIAはもともとPC向けGPUメーカーとして知られていましたが、2014年に初の組み込み向け製品Jetson TK1を発売。Tegra K1 SoC(192コアKeplerGPU + Cortex-A15 ×4)を搭載した開発ボードとして、ロボット・ドローンの研究用途で注目を集めました。

2016年にJetson TX1(Maxwell GPU 256コア + Cortex-A57 ×4)、2017年にJetson TX2(Pascal GPU 256コア + Denver2 + Cortex-A57)が登場し、SLAM・物体認識・自律走行の研究開発に広く採用されました。

2019年のJetson Nano(Maxwell GPU 128コア・5〜10W・99ドル)は低価格化で教育・プロトタイプ市場を開拓。同年に発売したJetson AGX XavierはAmper系GPUと独自DLA(Deep Learning Accelerator)を内蔵し、32TOPS(INT8)という当時最高のエッジAI性能を実現しました。

2022〜2023年にはJetson AGX Orinシリーズ(Ampere GPU 2048コア + 12コアArmV8.2 CPU + 2×DLA、最大275TOPS)が登場。また量産向けSoMとしてのJetson Orin NX / Nanoも展開し、産業機器への組み込みを支援しています。

技術仕様

製品ラインナップ比較(2024年時点)

製品GPUCPUメモリAI性能TDP
Jetson NanoMaxwell 128コアCortex-A57 ×44GB LPDDR4472 GFLOPS5〜10W
Jetson Orin Nano 4GBAmpere 512コアCortex-A78AE ×64GB LPDDR520 TOPS5〜10W
Jetson Orin Nano 8GBAmpere 1024コアCortex-A78AE ×68GB LPDDR540 TOPS7〜15W
Jetson Orin NX 8GBAmpere 1024コアCortex-A78AE ×88GB LPDDR570 TOPS10〜25W
Jetson Orin NX 16GBAmpere 1024コアCortex-A78AE ×816GB LPDDR5100 TOPS10〜25W
Jetson AGX Orin 32GBAmpere 2048コアCortex-A78AE ×1232GB LPDDR5200 TOPS15〜60W
Jetson AGX Orin 64GBAmpere 2048コアCortex-A78AE ×1264GB LPDDR5275 TOPS15〜60W

TOPS(Tera Operations Per Second)はINT8精度の推論性能を示す指標です。

JetPack SDK

JetPackはJetson向けのソフトウェアパッケージで以下を含みます:

JetPack 6.x(Jetson Orin向け)
├── Linux BSP(Ubuntu 22.04 LTS ベース)
├── CUDA 12.x(GPUプログラミングフレームワーク)
├── cuDNN 9.x(ディープラーニング演算ライブラリ)
├── TensorRT 10.x(推論最適化エンジン)
├── OpenCV(画像処理ライブラリ)
├── VPI(Vision Programming Interface)
├── Multimedia API(カメラ・エンコード・デコード)
├── DLA(Deep Learning Accelerator)ドライバー
└── Nsight Systems(プロファイラ)

動作原理

JetsonはNVIDIA CUDAエコシステムをフル活用します:

# TensorRTを使った画像推論例(Python)
import tensorrt as trt
import pycuda.driver as cuda
import pycuda.autoinit
import numpy as np
from PIL import Image

# TensorRTエンジンのロード
with open("model.engine", "rb") as f:
    engine = trt.Runtime(trt.Logger()).deserialize_cuda_engine(f.read())

context = engine.create_execution_context()

# 入力画像の前処理
img = Image.open("input.jpg").resize((640, 640))
img_np = np.array(img, dtype=np.float32) / 255.0
img_np = np.transpose(img_np, (2, 0, 1))[np.newaxis]  # NCHW形式

# GPU上での推論
d_input = cuda.mem_alloc(img_np.nbytes)
d_output = cuda.mem_alloc(output_size)

cuda.memcpy_htod(d_input, img_np)
context.execute_v2(bindings=[int(d_input), int(d_output)])

output = np.empty(output_shape, dtype=np.float32)
cuda.memcpy_dtoh(output, d_output)
# DeepStreamパイプラインを使ったリアルタイム物体検出
# GStreamerとNVIDIA DeepStreamを組み合わせてRTSPカメラを処理
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst, GObject

Gst.init(None)

pipeline_str = (
    "rtspsrc location=rtsp://camera_ip/stream ! "
    "rtph264depay ! h264parse ! "
    "nvv4l2decoder ! nvvideoconvert ! "  # NVIDIAハードウェアデコーダー
    "video/x-raw(memory:NVMM),format=NV12 ! "
    "nvinfer config-file-path=yolo.txt ! "  # YOLOv8 TensorRT推論
    "nvvideoconvert ! nvdsosd ! "            # バウンディングボックス描画
    "nvegltransform ! nveglglessink"          # 表示
)
pipeline = Gst.parse_launch(pipeline_str)
pipeline.set_state(Gst.State.PLAYING)

CSIカメラとの連携

Jetsonは最大6系統のCSI-2カメラに対応します:

# GStreamerでCSIカメラからキャプチャ(Jetson用)
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! \
  'video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1' ! \
  nvvideoconvert ! jpegenc ! filesink location=capture.jpg

用途・ユースケース

NVIDIA Jetsonが選ばれる主な用途:

  • 自律走行ロボット: ROS2 + Jetson AGX OrinでLiDAR・カメラのリアルタイム処理。AMRや自律搬送ロボット
  • スマートファクトリー: ラインカメラによる外観検査(欠陥検出)・姿勢推定・OCR
  • 医療画像診断: MRI・内視鏡画像の病変部位検出・セグメンテーション
  • スマートシティ・交通: 交差点カメラによる車両・歩行者カウント・異常検知
  • 農業ドローン: 圃場の作物状態の画像解析・病害虫検出
  • チェックアウトフリー店舗: Amazon Goに類似したレジなし購買システム
  • 物体検出: YOLO系モデルでのリアルタイム検出(60FPS以上)

実装・開発のポイント

モデル最適化(TensorRT)

クラウドで学習したモデルをJetsonで動かす際はTensorRTで最適化します:

# PyTorchモデルをONNXに変換
python3 export_onnx.py --weights yolov8n.pt --img 640

# ONNXをTensorRTエンジンに変換(FP16、INT8)
trtexec --onnx=yolov8n.onnx \
        --saveEngine=yolov8n_fp16.engine \
        --fp16 \
        --workspace=2048

量子化(INT8)でさらに高速化できますが、精度検証が必要です:

FP32: 精度最高、速度最低
FP16: 精度ほぼ同等、速度2〜3倍向上
INT8: 精度若干低下、速度4〜5倍向上(キャリブレーションデータが必要)

電源・冷却設計

製品TDPモード消費電力冷却
Jetson Orin NanoMAX PERF15Wヒートシンク必須
Jetson Orin NXMAX PERF25Wヒートシンク + ファン推奨
Jetson AGX Orin60W60Wアクティブ冷却必須
# 電力モードの設定(nvpmodel)
sudo nvpmodel -m 0   # MAXN(最大性能)
sudo nvpmodel -m 1   # 15W
sudo jetson_clocks   # クロックを固定(最大性能)

# 現在の電力消費確認
sudo jtop            # Jetson用システムモニター

キャリアボード設計

JetsonはSoMとして販売されており、独自のキャリアボードに実装して量産製品に使えます。NVIDIA公式の回路設計リファレンスが公開されており、キャリアボードメーカー(Seeed Studio・Auvidea・Leopard Imaging等)からも多数の互換キャリアボードが販売されています。

他技術との比較

Jetson vs Raspberry Pi

項目Jetson Orin NanoRaspberry Pi 5
GPUAmpere 1024コアVideoCore VII
AI推論性能40 TOPS〜1TOPS程度
消費電力7〜15W5〜15W
価格149〜199ドル60〜80ドル
用途エッジAI特化汎用

Jetson vs Google Coral / Hailo

Google Coral(Edge TPU)やHailo-8はJetsonより低消費電力(1〜8W)で高いTOPS/W効率を持ちますが、NVIDIAのCUDAエコシステムとの互換性がありません。既存のCUDA/PyTorchモデルをそのまま動かせるという点でJetsonは優位性を持ちます。

関連用語

参考リンク