背景
- 機械学習のアーキの選定で色々比較したくなったが、用語がたくさんありすぎて混乱してきた
- 昔はモデルはPyTorchで作り、GPU推論はCUDAとTensorRT、CPU推論はONNXでOKだった
- しかし、LLM関連やEdge側での実行、CUDA以外にもOpenCL、Vulkanなど色々あるので複雑化している
- 例えば、Gemma4 e2bをJetsonでGPUモードで動かす時に、何のbackendで動かせばいいかを調べる必要がある
- そこで、AIに用語を改めてまとめて整理してもらったので、そのノートを残す
全体像
| |
- この図でのコツは、モデルとランタイムと低レベルAPIを絶対に混ぜないこと。
- たとえば Qwen はモデル、MNN はランタイム、
.mnnはそのランタイム向けモデル形式、Vulkan はさらに下のGPU API。 (GitHub)
レイヤー別の全体表
| レイヤー | 何が入るか | 役割 | 代表例 | 根拠 |
|---|---|---|---|---|
| 0. ハードウェア | SoC(System on Chip), CPU, GPU, RAM | 実際に演算する物理マシン | Jetson Orin Nano, GeForce RTX, NVIDIA RTX PRO、Tegra K1 Soc | Jetson は edge/embedded、RTX / RTX PRO は desktop / laptop / workstation 側の NVIDIA GPU 群。 |
| 1. OS / 配布SDK | OS, BSP, ドライバ同梱SDK | ハードを使える状態にする | JetPack, Jetson Linux, Windows, Linux | Jetson 系と RTX PC / workstation 系で土台が異なる。 |
| 2. ベンダー計算SDK / 推論SDK / graphics API | GPU を叩く低レベル基盤や推論SDK | GPU/アクセラレータ計算や推論最適化 | CUDA, TensorRT, TensorRT-RTX, Vulkan, OpenCL, OpenGL, WebGPU, WebGL | TensorRT-RTX は RTX GPU 向けの compact inference library。 |
| 3. モデル形式 / IR / バンドル | モデルの保存・交換・配布形式 | ランタイムに渡す「中身」 | .onnx, .mnn, .gguf, .tflite, .task, .litertlm, .safetensors | ONNX は open format、.task は MediaPipe 向け self-contained package、.litertlm は LiteRT-LM 向け形式。 (ONNX Runtime) |
| 4. 汎用推論ランタイム | モデルを実行する本体 | 推論実行、スケジューリング、メモリ管理 | ONNX Runtime, MNN, ncnn, LiteRT | ORT は cross-platform accelerator、MNN は lightweight inference engine、LiteRT は on-device framework、ncnn は Vulkan 利用の軽量推論系。 (ONNX Runtime) |
| 5. LLM専用ランタイム | LLM特有の処理を担当 | KV cache, sampler, stateful inference | llama.cpp, LiteRT-LM, TensorRT-LLM, TensorRT Edge-LLM, MNN-LLM | TensorRT Edge-LLM は embedded 向け C++ LLM/VLM runtime。 |
| 6. バックエンド / Execution Provider | 下のハードaccelerator先への接続 | どのGPU/NPU/CPUで実行するか選ぶ | CUDA EP, TensorRT EP, Vulkan backend, OpenCL backend, WebGPU backend | ORT は EP でaccelerator先を差し替え、LiteRT の Linux GPU backend は WebGPU(Vulkan) 。 (ONNX Runtime) |
| 7. アプリ / API / 配布SDK | ユーザーが触る入口 | 実アプリとして使う | MediaPipe Tasks, LLM Inference API, CLI, Python binding | MediaPipe Tasks は solution API、LLM Inference API は on-device LLM 用、Gemma docs では LiteRT-LM CLI も案内されている。 (Google AI for Developers) |
用語整理
| 用語 | レイヤー | 分類 | ひとことで | 典型的に何の上で動くか / 何を使うか | Jetson Orin Nano文脈 |
|---|---|---|---|---|---|
| Jetson Orin Nano | 0 | ハードウェア | NVIDIA の edge/embedded 向け SoC ボード | JetPack / Jetson Linux の上 | 物理マシン本体。 (NVIDIA Developer) |
| JetPack | 1 | 配布SDK | Jetson 向け OS + AI stack まとめ | Jetson Linux, CUDA, TensorRT, cuDNN などを同梱 | Jetson 開発の土台。 (NVIDIA Developer) |
| CUDA | 2 | 低レベル計算基盤 | NVIDIA GPU 計算の本流 | NVIDIA GPU / CUDA driver | Jetson で NVIDIA 流に速くする土台。 (NVIDIA Docs) |
| cuDNN | 2〜3 | DNNライブラリ | NVIDIA の DL primitives | CUDA の上 | JetPack に同梱。多くのフレームワークが内部利用。 (NVIDIA Developer) |
| TensorRT | 2〜3 | 推論SDK | NVIDIA GPU 向け推論最適化/実行SDK | CUDA の上 | Jetson/NVIDIA 本流の推論高速化。 (NVIDIA Docs) |
| TensorRT-LLM | 5 | LLM専用ランタイム | TensorRT 系の LLM 特化版 | NVIDIA GPU, TensorRT | Qwen3 例もある。Jetson/NVIDIA LLM 本流の一つ。 (NVIDIA GitHub) |
| OpenCL | 2 | 標準 compute API | ベンダー横断の GPU/CPU 計算API | 各ベンダーの OpenCL 実装 | NVIDIA 専用ではない。 (The Khronos Group) |
| PoCL | 2 | OpenCL実装 | OpenCL の実装の1つ | Clang/LLVM を利用、CPU/一部GPU targets | OpenCL “規格” ではなく “実装”。 (PoCL) |
| Vulkan | 2 | 低レベル graphics+compute API | low-level GPU API | GPU driver の上 | Jetson は Vulkan をサポート。 (Vulkan) |
| OpenGL / OpenGL ES | 2 | graphics API | 主に描画 API | GPU driver の上 | Jetson がサポート。推論ランタイム内部の補助経路に出ることもある。 (The Khronos Group) |
| WebGL | 2 | Web graphics API | ブラウザ向け 3D API | HTML Canvas 上、OpenGL ES ベース | native Jetson 推論の中心ではない。 (The Khronos Group) |
| WebGPU | 2 | Web/汎用GPU API | Web 向けの新しい GPU API | Vulkan / Metal / D3D12 等にマップされる | LiteRT Linux GPU backend の表記に登場。 (W3C) |
| ONNX | 3 | モデル形式 / IR | open model format | ONNX Runtime, TensorRT などへ渡す | 形式であってランタイムではない。 (ONNX Runtime) |
.onnx | 3 | ファイル形式 | ONNX の実ファイル | ORT, TensorRT, MNN converter など | 中立的な受け渡し形式。 (ONNX Runtime) |
TFLite / .tflite | 3 | モデル形式 | LiteRT 系のモデル形式 | LiteRT / MediaPipe | .task や .litertlm の元になることがある。 (Google AI for Developers) |
.task | 3 | タスクバンドル | モデル + tokenizer + metadata の bundle | MediaPipe Tasks / LLM Inference API | 単体モデルではなく配布バンドル。 (Google AI for Developers) |
.litertlm | 3 | LLMバンドル/形式 | LiteRT-LM runtime 向け形式 | LiteRT-LM | Gemma の LiteRT-LM 配布で登場。 (Google AI for Developers) |
.mnn | 3 | モデル形式 | MNN 用のモデル形式 | MNN / MNN-LLM | ONNX などから変換される。 (GitHub) |
GGUF / .gguf | 3 | モデル形式 | llama.cpp 系で一般的な配布形式 | llama.cpp, LM Studio など | Qwen/Gemma の GGUF 配布も多い。Qwen3 README は GGUF 利用例を案内。 (GitHub) |
| safetensors | 3 | モデル重み形式 | Hugging Face 系で一般的 | PyTorch/Transformers などから変換元に | Gemma → .task 変換元として公式に案内。 (Google AI for Developers) |
| ONNX Runtime | 4 | 汎用推論ランタイム | ONNX を実行する engine | CPU / CUDA EP / TensorRT EP / ほか | 中立的で移植性が高い。 (ONNX Runtime) |
| MNN | 4 | 汎用推論ランタイム | Alibaba の軽量推論 engine | CPU / Vulkan など | Qwen を含む on-device 系で使われる。 (GitHub) |
| ncnn | 4 | 汎用推論ランタイム | Tencent の軽量推論 engine | CPU / Vulkan | Jetson でも Vulkan 前提で使いうる。 (GitHub) |
| LiteRT | 4 | on-device推論基盤 | Google の on-device ML/GenAI framework | CPU/GPU/NPU | .tflite と .litertlm を扱う基盤。 (Google AI for Developers) |
| llama.cpp | 5 | LLMランタイム | C/C++ のローカル LLM engine | CPU, CUDA, Vulkan など | Qwen/Gemma をローカルで動かす代表格。 (GitHub) |
| LiteRT-LM | 5 | LLMランタイム | LiteRT 上の LLM 専用 framework | LiteRT / CPU/GPU/NPU backends | .litertlm を動かす本体。 (Google AI for Developers) |
| MNN-LLM | 5 | LLMランタイム | MNN 上の LLM engine | MNN | export と inference を提供。 (GitHub) |
| CUDA EP | 6 | Execution Provider | ORT から CUDA を使う差し込み口 | ONNX Runtime + CUDA | ORT で NVIDIA GPU を使う道。 (ONNX Runtime) |
| TensorRT EP | 6 | Execution Provider | ORT から TensorRT を使う差し込み口 | ONNX Runtime + TensorRT | ORT で NVIDIA 向け高速化する道。 (ONNX Runtime) |
| Vulkan backend | 6 | runtime backend | Vulkan を使う実行経路 | ncnn, llama.cpp など | Jetson で使える可能性が高い backend。 (GitHub) |
| OpenCL backend | 6 | runtime backend | OpenCL を使う実行経路 | 一部 runtimes / LiteRT Android | Jetson で主役とは限らない。 (The Khronos Group) |
| WebGPU backend | 6 | runtime backend | WebGPU を使う実行経路 | LiteRT Linux GPU backend | LiteRT Linux は WebGPU (Vulkan) と明記。 (Google AI for Developers) |
| MediaPipe Tasks | 7 | API/SDK | 使いやすい solution API | .task を読み込む | .task バンドルの受け皿。 (Google AI for Developers) |
| LLM Inference API | 7 | API/SDK | MediaPipe の on-device LLM API | .task bundle など | Android guide では LiteRT-LM への移行推奨も記載。 (Google AI for Developers) |
| Qwen | 3の中身 / モデルそのもの | モデル系列 | Alibaba Cloud の LLM family | Transformers, llama.cpp, MNN, TensorRT-LLM 等で実行可能 | MNNそのものではない。 (GitHub) |
| Gemma | 3の中身 / モデルそのもの | モデル系列 | Google 系のオープンモデル family | LiteRT-LM, llama.cpp, LM Studio など | .task / .litertlm 系とも接続。 (Google AI for Developers) |
| GeForce RTX / NVIDIA RTX PRO | 0 | ハードウェア / GPU製品ライン | NVIDIA の desktop / laptop / workstation 向け GPU 群 | Windows / Linux + NVIDIA driver の上 | Jetson とは別の PC / workstation 側の比較対象。 |
| TensorRT-RTX | 2〜4 | 推論SDK / inference library | RTX GPU 向けの軽量 TensorRT 系推論ライブラリ | NVIDIA RTX GPU / Windows / Linux | RTX PC 向け。Edge / Embedded 向けではない。 |
| TensorRT Edge-LLM | 5 | LLM / VLM専用ランタイム | embedded 向けの軽量 C++ inference runtime | Jetson / DRIVE + TensorRT + CUDA | Jetson/DRIVE 系の edge runtime。現時点では JetPack 7.1 / Jetson Thor での公式案内が強い。 |
よくある混同
| よくある混同 | 正しい整理 |
|---|---|
| Qwen は MNN か? | No。Qwen はモデル、MNN はランタイム。Qwen3 公式 README では llama.cpp / MNN / TensorRT-LLM など複数の実行先が案内されている。 (GitHub) |
.task はモデル形式か? | 半分 yes 、より正確には MediaPipe 向け task bundle 。モデル本体に tokenizer と metadata を同梱した self-contained package 。 (Google AI for Developers) |
.litertlm は LiteRT-LM 専用か? | 実務上は LiteRT-LM runtime 向けの LLM bundle/format と考えてよい。Gemma docs でも LiteRT-LM CLI で .litertlm を使うと案内されている。 (Google AI for Developers) |
| ONNX はランタイムか? | No。ONNX は形式、ONNX Runtime は実行エンジン。 (ONNX Runtime) |
| PoCL は OpenCL か? | No。OpenCL は規格、PoCL はその実装の1つ。 (The Khronos Group) |
| WebGL と WebGPU は同じか? | No。WebGL は OpenGL ES ベースの web graphics API、WebGPU は より新しい web 向け GPU API で、graphics だけでなく compute も重視している。 (The Khronos Group) |
| Vulkan と CUDA は同じか? | No。どちらも GPU を使えるが、CUDA は NVIDIA 専用の計算基盤、Vulkan は 標準の graphics+compute API 。 (NVIDIA Docs) |
| LiteRT-LM は TensorRT-LLM の別名か? | No。LiteRT-LM は Google AI Edge 側、TensorRT-LLM は NVIDIA 側 の別スタック。 (Google AI for Developers) |
| TensorRT-RTX は TensorRT-LLM の RTX版か? | No。TensorRT-RTX は RTX向けの一般推論ライブラリ。公式 docs でも native LLM は out of the box ではなく、TensorRT-LLM との統合も現時点では unavailable とされている。 |
| TensorRT Edge-LLM は TensorRT-LLM の別名か? | No。TensorRT-LLM は desktop / data center を含む NVIDIA GPU 向けの LLM 最適化ライブラリ、TensorRT Edge-LLM は Jetson / DRIVE 向けの embedded C++ runtime。 |
具体的な選定手順
- NVIDIA 本流
- PyTorch / ONNX / 一部 LLM
- TensorRT / TensorRT-LLM / ONNX Runtime + CUDA or TensorRT EP
- CUDA / TensorRT
- Jetson Orin Nano
- これは JetPack に CUDA・TensorRT が入っているので、Jetson では最も自然な本流。 (NVIDIA Developer)
- ローカル LLM 汎用路線
- GGUF モデル
- llama.cpp
- CUDA backend / Vulkan backend / CPU
- Jetson Orin Nano
- llama.cpp は複数 backend を同時ビルドでき、CUDA と Vulkan を併用可能。 (GitHub)
- Google AI Edge 路線
.litertlmまたは.task- LiteRT-LM / MediaPipe LLM Inference API
- LiteRT
- Linux GPU backend = WebGPU (Vulkan)
- Jetson Orin Nano
- Gemma の LiteRT-LM 系を Jetson で動かすなら、この理解がいちばん自然。 (Google AI for Developers)
- 軽量 edge 推論路線(mnn)
.mnn- MNN / MNN-LLM
- Vulkan など
- Jetson Orin Nano
- 軽量 edge 推論路線(ncnn)
- ncnn モデル
- ncnn
- Vulkan
- Jetson Orin Nano
- MNN も ncnn も edge/embedded 色が強い。 (GitHub)
- RTX PC / workstation 路線
- ONNX モデル / CNN / Diffusion / Speech
- TensorRT-RTX
- GeForce RTX / NVIDIA RTX PRO
- Windows / Linux
- これは Jetson ではなく、RTX PC / workstation 向けの NVIDIA 路線
- TensorRT-RTX は RTX GPU 向けの compact inference library で、build once / deploy anywhere に寄せた設計
