基于华为昇腾NPU采用MindIE推理LLM并兼容OpenAI API服务化

0x1 起始

最近学校购置了一批采用昇腾910B2作为NPU的鲲鹏服务器,由于目前没有很好的微调想法或者工作,于是打算先把这些机器拿来跑推理任务,这样还可以省一批消费API的经费。基于这个目的我于是开始了探索,发现网上并没有关于此的完整记录,故撰写本文

由于本校直接采用的是基于天翼云的息壤一体化智算服务平台,一些例如CANN和NPU-Driver之类的底层物理机环境无需我考虑。于是我直接从怎么获取MindIE镜像开始

我的机器应该是对应Atlas 800I A2这个型号,采用的是昇腾910B2的NPU,这点我们可以输入

npu-smi info

可以获取到如下的信息,我此次申请的是8卡的机器

+------------------------------------------------------------------------------------------------+
| npu-smi 23.0.3                   Version: 23.0.3                                               |
+---------------------------+---------------+----------------------------------------------------+
| NPU   Name                | Health        | Power(W)    Temp(C)           Hugepages-Usage(page)|
| Chip                      | Bus-Id        | AICore(%)   Memory-Usage(MB)  HBM-Usage(MB)        |
+===========================+===============+====================================================+
| 0     910B2               | OK            | 97.0        53                0    / 0             |
| 0                         | 0000:C1:00.0  | 0           0    / 0          53701/ 65536         |
+===========================+===============+====================================================+
| 1     910B2               | OK            | 101.8       57                0    / 0             |
| 0                         | 0000:01:00.0  | 0           0    / 0          53698/ 65536         |
+===========================+===============+====================================================+
| 2     910B2               | OK            | 99.5        54                0    / 0             |
| 0                         | 0000:C2:00.0  | 0           0    / 0          53699/ 65536         |
+===========================+===============+====================================================+
| 3     910B2               | OK            | 102.7       57                0    
### 华为 NPU 部署 YOLOv8 模型推理方法 华为昇腾NPU(神经网络处理单元)在边缘计算和AI推理场景中具有较高的性能和能效比。YOLOv8 是一种高效的实时目标检测模型,适合部署在NPU上进行推理。 #### 1. **模型转换** - 将训练好的 YOLOv8 模型(如 `.pt` 文件)使用 ATC 工具转换为适用于昇腾NPU的 `.om` 格式。 - 示例命令: ```bash atc --model=yolov8n.onnx --framework=5 --output=yolov8n --soc_version=Ascend310 ``` - 确保 ONNX 模型输入格式与推理框架兼容且满足昇腾编译器的要求 [^1]。 #### 2. **模型部署** - 将生成的 `.om` 模型文件拷贝至指定目录,例如 `/home/ascend-yolov8-sample-master/model/`。 - 进入 `ascend-yolov8-sample-master/src` 目录编译推理代码。 - 示例命令: ```bash cd /home/ascend-yolov8-sample-master/src make ``` #### 3. **环境配置** - 确保系统已安装华为 Ascend CANN(Compute Architecture for Neural Networks)驱动和工具链。 - 使用 `npu-smi` 命令检查NPU设备状态: ```bash npu-smi info ``` 输出将包含设备健康状态、功耗、温度等信息 [^2]。 #### 4. **推理优化** - **批处理优化**:调整推理时的 batch size,以提高吞吐量减少延迟。 - **精度优化**:尝试使用混合精度或量化技术,进一步提升推理速度。 - **内存管理**:合理分配内存资源,避免频繁的数据搬运和内存碎片问题。 - **异步执行**:利用昇腾NPU的异步执行能力,实现数据预处理、推理和后处理的行化 [^1]。 #### 5. **性能调优** - 利用 Huawei 的 Profiling 工具对推理过程进行性能分析,识别瓶颈优化关键路径。 - 对于视频流推理,建议结合 FFmpeg 和 OpenCV 手动编译,确保 `WITH_FFMPEG=ON`,以便支持高效的视频解码和图像处理 [^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值