目次
背景
- 機械学習のアーキの選定で色々比較したくなったが、用語がたくさんありすぎて混乱してきた
- 昔はモデルはPyTorchで作り、GPU推論はCUDAとTensorRT、CPU推論はONNXでOKだった
- しかし、LLM関連やEdge側での実行、CUDA以外にもOpenCL、Vulkanなど色々あるので複雑化している
- 例えば、Gemma4 e2bをJetsonでGPUモードで動かす時に、何のbackendで動かせばいいかを調べる必要がある
- そこで、AIに用語を改めてまとめて整理してもらったので、そのノートを残す
全体像
| |
たとえば Qwen はモデル、MNN はランタイム、.mnn はそのランタイム向けモデル形式、Vulkan はさらに下のGPU API。 ([GitHub][2])
レイヤー別の全体表
| レイヤー | 何が入るか | 役割 | 代表例 | 根拠 |
|---|---|---|---|---|
| 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 | 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]) |
| 4. 汎用推論ランタイム | モデルを実行する本体 | 推論実行、スケジューリング、メモリ管理 | ONNX Runtime, MNN, ncnn, LiteRT | ORT は cross-platform accelerator、MNN は lightweight inference engine、LiteRT は on-device framework、ncnn は Vulkan 利用の軽量推論系。 ([ONNX Runtime][4]) |
| 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][6]) |
| 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][7]) |
用語整理
| 用語 | レイヤー | 分類 | ひとことで | 典型的に何の上で動くか / 何を使うか | Jetson Orin Nano文脈 |
|---|---|---|---|---|---|
| Jetson Orin Nano | 0 | ハードウェア | NVIDIA の edge/embedded 向け SoC ボード | JetPack / Jetson Linux の上 | 物理マシン本体。 ([NVIDIA Developer][1]) |
| JetPack | 1 | 配布SDK | Jetson 向け OS + AI stack まとめ | Jetson Linux, CUDA, TensorRT, cuDNN などを同梱 | Jetson 開発の土台。 ([NVIDIA Developer][1]) |
| CUDA | 2 | 低レベル計算基盤 | NVIDIA GPU 計算の本流 | NVIDIA GPU / CUDA driver | Jetson で NVIDIA 流に速くする土台。 ([NVIDIA Docs][3]) |
| cuDNN | 2〜3 | DNNライブラリ | NVIDIA の DL primitives | CUDA の上 | JetPack に同梱。多くのフレームワークが内部利用。 ([NVIDIA Developer][1]) |
| TensorRT | 2〜3 | 推論SDK | NVIDIA GPU 向け推論最適化/実行SDK | CUDA の上 | Jetson/NVIDIA 本流の推論高速化。 ([NVIDIA Docs][8]) |
| TensorRT-LLM | 5 | LLM専用ランタイム | TensorRT 系の LLM 特化版 | NVIDIA GPU, TensorRT | Qwen3 例もある。Jetson/NVIDIA LLM 本流の一つ。 ([NVIDIA GitHub][9]) |
| OpenCL | 2 | 標準 compute API | ベンダー横断の GPU/CPU 計算API | 各ベンダーの OpenCL 実装 | NVIDIA 専用ではない。 ([The Khronos Group][10]) |
| PoCL | 2 | OpenCL実装 | OpenCL の実装の1つ | Clang/LLVM を利用、CPU/一部GPU targets | OpenCL “規格” ではなく “実装”。 ([PoCL][11]) |
| Vulkan | 2 | 低レベル graphics+compute API | low-level GPU API | GPU driver の上 | Jetson は Vulkan をサポート。 ([Vulkan][12]) |
| OpenGL / OpenGL ES | 2 | graphics API | 主に描画 API | GPU driver の上 | Jetson がサポート。推論ランタイム内部の補助経路に出ることもある。 ([The Khronos Group][13]) |
| WebGL | 2 | Web graphics API | ブラウザ向け 3D API | HTML Canvas 上、OpenGL ES ベース | native Jetson 推論の中心ではない。 ([The Khronos Group][14]) |
| WebGPU | 2 | Web/汎用GPU API | Web 向けの新しい GPU API | Vulkan / Metal / D3D12 等にマップされる | LiteRT Linux GPU backend の表記に登場。 ([W3C][15]) |
| ONNX | 3 | モデル形式 / IR | open model format | ONNX Runtime, TensorRT などへ渡す | 形式であってランタイムではない。 ([ONNX Runtime][4]) |
.onnx | 3 | ファイル形式 | ONNX の実ファイル | ORT, TensorRT, MNN converter など | 中立的な受け渡し形式。 ([ONNX Runtime][4]) |
TFLite / .tflite | 3 | モデル形式 | LiteRT 系のモデル形式 | LiteRT / MediaPipe | .task や .litertlm の元になることがある。 ([Google AI for Developers][16]) |
.task | 3 | タスクバンドル | モデル + tokenizer + metadata の bundle | MediaPipe Tasks / LLM Inference API | 単体モデルではなく配布バンドル。 ([Google AI for Developers][17]) |
.litertlm | 3 | LLMバンドル/形式 | LiteRT-LM runtime 向け形式 | LiteRT-LM | Gemma の LiteRT-LM 配布で登場。 ([Google AI for Developers][18]) |
.mnn | 3 | モデル形式 | MNN 用のモデル形式 | MNN / MNN-LLM | ONNX などから変換される。 ([GitHub][19]) |
GGUF / .gguf | 3 | モデル形式 | llama.cpp 系で一般的な配布形式 | llama.cpp, LM Studio など | Qwen/Gemma の GGUF 配布も多い。Qwen3 README は GGUF 利用例を案内。 ([GitHub][2]) |
| safetensors | 3 | モデル重み形式 | Hugging Face 系で一般的 | PyTorch/Transformers などから変換元に | Gemma → .task 変換元として公式に案内。 ([Google AI for Developers][17]) |
| ONNX Runtime | 4 | 汎用推論ランタイム | ONNX を実行する engine | CPU / CUDA EP / TensorRT EP / ほか | 中立的で移植性が高い。 ([ONNX Runtime][4]) |
| MNN | 4 | 汎用推論ランタイム | Alibaba の軽量推論 engine | CPU / Vulkan など | Qwen を含む on-device 系で使われる。 ([GitHub][20]) |
| ncnn | 4 | 汎用推論ランタイム | Tencent の軽量推論 engine | CPU / Vulkan | Jetson でも Vulkan 前提で使いうる。 ([GitHub][21]) |
| LiteRT | 4 | on-device推論基盤 | Google の on-device ML/GenAI framework | CPU/GPU/NPU | .tflite と .litertlm を扱う基盤。 ([Google AI for Developers][22]) |
| llama.cpp | 5 | LLMランタイム | C/C++ のローカル LLM engine | CPU, CUDA, Vulkan など | Qwen/Gemma をローカルで動かす代表格。 ([GitHub][23]) |
| LiteRT-LM | 5 | LLMランタイム | LiteRT 上の LLM 専用 framework | LiteRT / CPU/GPU/NPU backends | .litertlm を動かす本体。 ([Google AI for Developers][5]) |
| MNN-LLM | 5 | LLMランタイム | MNN 上の LLM engine | MNN | export と inference を提供。 ([GitHub][24]) |
| CUDA EP | 6 | Execution Provider | ORT から CUDA を使う差し込み口 | ONNX Runtime + CUDA | ORT で NVIDIA GPU を使う道。 ([ONNX Runtime][25]) |
| TensorRT EP | 6 | Execution Provider | ORT から TensorRT を使う差し込み口 | ONNX Runtime + TensorRT | ORT で NVIDIA 向け高速化する道。 ([ONNX Runtime][26]) |
| Vulkan backend | 6 | runtime backend | Vulkan を使う実行経路 | ncnn, llama.cpp など | Jetson で使える可能性が高い backend。 ([GitHub][21]) |
| OpenCL backend | 6 | runtime backend | OpenCL を使う実行経路 | 一部 runtimes / LiteRT Android | Jetson で主役とは限らない。 ([The Khronos Group][10]) |
| WebGPU backend | 6 | runtime backend | WebGPU を使う実行経路 | LiteRT Linux GPU backend | LiteRT Linux は WebGPU (Vulkan) と明記。 ([Google AI for Developers][27]) |
| MediaPipe Tasks | 7 | API/SDK | 使いやすい solution API | .task を読み込む | .task バンドルの受け皿。 ([Google AI for Developers][7]) |
| LLM Inference API | 7 | API/SDK | MediaPipe の on-device LLM API | .task bundle など | Android guide では LiteRT-LM への移行推奨も記載。 ([Google AI for Developers][16]) |
| Qwen | 3の中身 / モデルそのもの | モデル系列 | Alibaba Cloud の LLM family | Transformers, llama.cpp, MNN, TensorRT-LLM 等で実行可能 | MNNそのものではない。 ([GitHub][2]) |
| Gemma | 3の中身 / モデルそのもの | モデル系列 | Google 系のオープンモデル family | LiteRT-LM, llama.cpp, LM Studio など | .task / .litertlm 系とも接続。 ([Google AI for Developers][28]) |
| 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][2]) |
.task はモデル形式か? | 半分 yes 、より正確には MediaPipe 向け task bundle 。モデル本体に tokenizer と metadata を同梱した self-contained package 。 ([Google AI for Developers][17]) |
.litertlm は LiteRT-LM 専用か? | 実務上は LiteRT-LM runtime 向けの LLM bundle/format と考えてよい。Gemma docs でも LiteRT-LM CLI で .litertlm を使うと案内されている。 ([Google AI for Developers][18]) |
| ONNX はランタイムか? | No。ONNX は形式、ONNX Runtime は実行エンジン。 ([ONNX Runtime][4]) |
| PoCL は OpenCL か? | No。OpenCL は規格、PoCL はその実装の1つ。 ([The Khronos Group][10]) |
| WebGL と WebGPU は同じか? | No。WebGL は OpenGL ES ベースの web graphics API、WebGPU は より新しい web 向け GPU API で、graphics だけでなく compute も重視している。 ([The Khronos Group][14]) |
| Vulkan と CUDA は同じか? | No。どちらも GPU を使えるが、CUDA は NVIDIA 専用の計算基盤、Vulkan は 標準の graphics+compute API 。 ([NVIDIA Docs][3]) |
| LiteRT-LM は TensorRT-LLM の別名か? | No。LiteRT-LM は Google AI Edge 側、TensorRT-LLM は NVIDIA 側 の別スタック。 ([Google AI for Developers][5]) |
| 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。 |
| GGML と GGUF は同じか? | No。GGML は tensor library / 実行基盤寄りのプロジェクト、GGUF はモデルを保存するファイル形式。GGUF は GGML および GGML ベース executor 向けの推論用モデル形式で、旧 GGML / GGMF / GGJT 形式の後継。 ([GitHub][30]) |
| GGUF は量子化方式か? | No。GGUF は形式。中に Q4_K_M などの量子化済み重みを入れられるが、GGUF 自体は「量子化アルゴリズム」ではない。llama.cpp ではモデルを GGUF 形式で保存・変換して使う。 ([GitHub][31]) |
| GPTQ は GGUF の別名か? | No。GPTQ は post-training quantization 手法。主に Transformer / GPT 系モデルの重みを 2/3/4bit などへ圧縮するための量子化アルゴリズムで、GGUF のようなファイル形式や GGML のようなランタイムではない。 ([GitHub][32]) |
具体的な選定手順
- NVIDIA 本流
- PyTorch / ONNX / 一部 LLM
- TensorRT / TensorRT-LLM / ONNX Runtime + CUDA or TensorRT EP
- CUDA / TensorRT
- Jetson Orin Nano
- これは JetPack に CUDA・TensorRT が入っているので、Jetson では最も自然な本流。 ([NVIDIA Developer][1])
- ローカル LLM 汎用路線
- GGUF モデル
- llama.cpp
- CUDA backend / Vulkan backend / CPU
- Jetson Orin Nano
- llama.cpp は複数 backend を同時ビルドでき、CUDA と Vulkan を併用可能。 ([GitHub][29])
- 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][18])
- 軽量 edge 推論路線(mnn)
.mnn- MNN / MNN-LLM
- Vulkan など
- Jetson Orin Nano
- 軽量 edge 推論路線(ncnn)
- ncnn モデル
- ncnn
- Vulkan
- Jetson Orin Nano
- MNN も ncnn も edge/embedded 色が強い。 ([GitHub][20])
- 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 に寄せた設計
[1]: https://developer.nvidia.com/embedded/jetpack-sdk-62"JetPack SDK" [2]: https://github.com/QwenLM/qwen3 “Qwen3 is the large language model series …” [3]: https://docs.nvidia.com/cuda/cuda-programming-guide/ “CUDA Programming Guide” [4]: https://onnxruntime.ai/docs/ “ONNX Runtime | onnxruntime” [5]: https://ai.google.dev/edge/litert-lm/overview “LiteRT-LM Overview | Google AI Edge” [6]: https://onnxruntime.ai/docs/execution-providers/ “ONNX Runtime Execution Providers” [7]: https://ai.google.dev/edge/mediapipe/solutions/tasks “MediaPipe Tasks | Google AI Edge” [8]: https://docs.nvidia.com/deeplearning/tensorrt/latest/index.html “NVIDIA TensorRT Documentation” [9]: https://nvidia.github.io/TensorRT-LLM/overview.html “Overview — TensorRT LLM” [10]: https://www.khronos.org/opencl/ “OpenCL - The Open Standard for Parallel Programming of …” [11]: https://portablecl.org/ “Portable Computing Language: PoCL” [12]: https://www.vulkan.org/ “Home | Vulkan | Cross platform 3D Graphics” [13]: https://www.khronos.org/opengl/ “OpenGL - The Industry’s Foundation for High Performance …” [14]: https://www.khronos.org/webgl/ “WebGL - Low-Level 3D Graphics API Based on OpenGL ES” [15]: https://www.w3.org/TR/webgpu/ “WebGPU” [16]: https://ai.google.dev/edge/mediapipe/solutions/genai/llm_inference “LLM Inference guide | Google AI Edge” [17]: https://ai.google.dev/gemma/docs/conversions/hf-to-mediapipe-task “Convert Hugging Face Safetensors to MediaPipe Task | Gemma” [18]: https://ai.google.dev/edge/litert/next/litert_lm_npu “Run LLMs using LiteRT-LM | Google AI Edge” [19]: https://github.com/alibaba/MNN/blob/master/tools/converter/README.md “MNN/tools/converter/README.md at master - GitHub” [20]: https://github.com/alibaba/mnn “MNN: A blazing-fast, lightweight inference engine battle- …” [21]: https://github.com/Tencent/ncnn/wiki/how-to-build “how to build · Tencent/ncnn Wiki” [22]: https://ai.google.dev/edge/litert “LiteRT: High-Performance On-Device Machine Learning …” [23]: https://github.com/ggml-org/llama.cpp “ggml-org/llama.cpp: LLM inference in C/C++ - GitHub” [24]: https://github.com/alibaba/MNN/blob/master/transformers/README.md “MNN/transformers/README.md at master · alibaba/MNN - GitHub” [25]: https://onnxruntime.ai/docs/execution-providers/CUDA-ExecutionProvider.html “CUDA Execution Provider - onnxruntime” [26]: https://onnxruntime.ai/docs/execution-providers/TensorRT-ExecutionProvider.html “NVIDIA - TensorRT | onnxruntime” [27]: https://ai.google.dev/edge/litert/next/gpu “GPU acceleration with LiteRT | Google AI Edge” [28]: https://ai.google.dev/gemma/docs/run “Run Gemma content generation and inferences” [29]: https://github.com/ggml-org/llama.cpp/blob/master/docs/build.md “llama.cpp/docs/build.md at master · ggml-org/llama.cpp · GitHub” [30]: https://github.com/ggml-org/ggml “GitHub - ggml-org/ggml: Tensor library for machine learning · GitHub” [31]: https://github.com/ggml-org/llama.cpp “GitHub - ggml-org/llama.cpp: LLM inference in C/C++ · GitHub” [32]: https://github.com/ist-daslab/gptq “GitHub - IST-DASLab/gptq: Code for the ICLR 2023 paper "GPTQ: Accurate Post-training Quantization of Generative Pretrained Transformers". · GitHub”
