# m1000_mtnn
**Repository Path**: MooreThreads-AI-SOC/m1000_mtnn
## Basic Information
- **Project Name**: m1000_mtnn
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT-0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-09-26
- **Last Updated**: 2025-10-05
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# MTNN (M1000 NPU Infer Engine)
## Overview
MTNN软件栈可以帮助用户在M1000平台上,快速的部署AI模型到NPU. MTNN的整体workflow如下图所示:

如果要使用NPU来进行推理,用户需要先使用MTC工具将来自外部准备好的onnx模型文件转换为mtnn模型文件(这个是离线进行的),然后再调用MTNNRT提供的C-API或Python-API在M1000平台上实现对模型的推理来完成部署.
- NPU MTC:是NPU的编译器工具,负责在离线状态下将onnx模型转换为npu可以支持的mtnn格式的模型文件,转换的过程可以进行量化方式的选择,该工具目前只支持运行在M1000平台的Linux Arm64环境上.
- NPU MTNNRT:是NPU的runtime库,提供了C API接口来帮助用户实现对mtnn模型的载入和推理加速的应用,另外Python API的执行也依赖于该模块.
- NPU Unify Driver:是NPU的驱动层,包含了UMD和KMD,负责调度NPU硬件,为runtime库提供支撑.
## Release
**最新版本:v1.4.0**
此处获取最新版本[npu_sdk_v1.4.0.tar.gz](https://moorethreads-ai-soc.tos-cn-beijing.volces.com/npu_sdk_release/npu_sdk_v1.4.0.tar.gz),其包含主要内容如下:
- ReleaseNote
- MTNN User Guide文档
- MTC的DEB包
- MTNNRT的DEB包
- MTNN UMD的DEB包
- MTNN KMD的DEB包
- Python API的wheel包
**历史版本:**
此处查看并获取其他[历史版本](./docs/history.md)
## 快速开始
请参考[快速开始文档](./docs/QuickStart.md),进行 MT NPU 模型转换和模型部署。
如需了解MTNN的更多使用,请参考[mtnn_guide文档](./docs/mtnn_guide_v1.4.0.md)。
## 关于Sample
#### 准备环境
> ⚠️ base on m1000 arm64 env
```bash
# clone仓库
git clone https://gitee.com/MooreThreads-AI-SOC/m1000_mtnn.git
# 安装依赖
make install_deps
```
#### 如何编译 c/c++ sample
```bash
make
# Then you can find the build results under folder "build/sdk/".
# And, you can use 'make help' to get more makefile options info
```
#### 如何运行 c/c++ sample
如何调用c-api来实现推理, 可以参考"sample/mtnn_test"路径下的sample代码实现.
运行sample自带的mobilenetv2模型的推理:
```bash
cd sample/mtnn_test/
./run_mobilenetv2.sh
cd -
```
运行sample自带的resnet50模型的推理:
```bash
cd sample/mtnn_test/
./run_resnet50.sh
cd -
```
#### 如何运行 python sample
运行sample自带的mobilenetv2模型的推理:
```bash
cd sample/mtnn_test/
./run_mobilenetv2.sh --use_py
cd -
```
运行sample自带的resnet50模型的推理:
```bash
cd sample/mtnn_test/
./run_resnet50.sh --use_py
cd -
```
## 关于如何打包
#### 如何打包 mtnnrt deb
```bash
make deb
# Then you can find deb file under folder "release/4unify/debs/".
```
#### 如何打包 python api wheel
```bash
make whl
# Then you can find wheel file under folder "release/4unify/py/".
```
## Supported Models
目前在NPU上验证过的网络模型,都已经整理到[m1000_npu_model_zoo](https://gitee.com/MooreThreads-AI-SOC/m1000_npu_model_zoo)仓库中.
可以从中获取需要的模型,了解如何转换为mtnn模型,如何运行,帮助快速实现模型部署.
## 常见问题