mnn-tutorial
本tutorial介绍 MNN 端侧推理部署的完整流程,包括环境配置&运行、核心概念讲解、代码流畅梳理。
tutorial概览
| 阶段 | 内容 | 文章数 |
|---|---|---|
| 环境配置 | 远程调试、交叉编译、设备运行 | 4 篇 |
| 核心概念 | Backend、工厂模式、核心类 | 3 篇 |
| MNN-LLM | 配置、加载、推理、QNN Plugin | 6 篇 |
1. 环境配置
搭建端侧开发调试环境的完整指南。
| 文章 | 说明 | 状态 |
|---|---|---|
| 远程ADB环境配置 | 通过端口转发链路,让内网服务器直连本地手机 | ✅ 完成 |
| 交叉编译环境配置 | Android NDK 配置、Clangd 配置、远程调试 | ✅ 完成 |
| llm_demo 交叉编译与运行 | 以 llm_demo 为例,记录从编译到设备运行的最短路径 |
✅ 完成 |
| llm_demo 在 QNN 后端的运行 | 记录 llm_demo 通过 config_qnn.json 和 QNN 产物在 Android 设备上运行 |
✅ 完成 |
2. 核心概念
深入理解 MNN 框架的设计理念与核心组件。
| 文章 | 说明 | 状态 |
|---|---|---|
| 核心类介绍 | VARP、Expr、Op 等关键类的设计 | ✅ 完成 |
| Backend 介绍 | CPU/OpenCL/Vulkan 等后端的作用和选择 | ✅ 完成 |
| 工厂模式介绍 | MNN 中工厂模式的设计与应用 | ✅ 完成 |
3. MNN-LLM
端侧大语言模型部署实践。
| 文章 | 说明 | 状态 |
|---|---|---|
| LLM 配置 | 模型配置、量化配置 | ✅ 完成 |
| LLM 加载流程 | 模型文件到推理就绪的完整过程 | ✅ 完成 |
| LLM 推理流程 | Token 处理、KV Cache 管理 | 🚧 WIP |
| Eagle 推理流程 | speculative decoding 中 Eagle 路径的 draft、验证与 KV 回写 | ✅ 完成 |
| LLM QNN 离线导出流程 | generate_llm_qnn.py、compilefornpu 和 QNN context binary 生成链路 |
✅ 完成 |
| LLM QNN Plugin 推理流程 | Plugin(type="QNN") 从 shape 匹配到 graphExecute() 的运行时路径 |
✅ 完成 |
相关链接
- MNN 官方仓库:alibaba/MNN
- MNN 文档:mnn-docs
- 问题反馈:GitHub Issues