YOLOv5适配Ascend NPU开源验证任务心得
首先查看任务计划书:https://bbs.huaweicloud.com/blogs/439491,主要目的是将YOLOv5项目适配至华为的 Ascend(昇腾)和 Kunpeng(鲲鹏)处理器,确保其在这些硬件平台上的高效运行,即验证qwen2能不能在 Ascend(昇腾)、Kunpeng(鲲鹏)处理器和Euler操作系统中运行。
验证过程
明确目的后开始熟悉项目,YOLOv5 v6.0的gitee网址:https://gitee.com/ascend/modelzoo-GPL/tree/master/built-in/PyTorch/Official/cv/object_detection/Yolov5_for_PyTorch_v6.0。
安装依赖包
首先我使用Ascend CANN Toolkit版本为7.0.1.5:
我们要安装对应的pytorch和torch_npu插件,这里我们要注意到操作系统是aarch64架构,找到合适的版本进行下载安装。
以下是安装pytorch的示例命令:
wget https://download.pytorch.org/whl/torch-1.11.0-cp38-cp38-manylinux2014_aarch64.whl
pip3 install torch-1.11.0-cp38-cp38-manylinux2014_aarch64.whl
然后按照项目的要求安装对应的requirement.txt。
但按照requirement.txt安装相关文档会导致代码运行时报错,numpy版本建议安装1.23系列的版本,安装最新版本会导致兼容性问题。
1 验收材料
1.1 交付件清单
验收细则 |
评分说明 |
是否为验收必选项 |
结果(通过/不通过) |
功能开发:完成与华为三大根技术生态(鲲鹏云、昇腾云、鸿蒙)适配的功能开发 |
基于鲲鹏、昇腾和Euler系统完成验证。 |
是 |
|
代码质量:适配华为三大根技术生态的代码质量经过工具检测达标 |
推送给开源社区的代码符合开源社区关于代码风格、功能、自动化测试等要求。 |
否 |
|
提供相关文档,比如部署文档、使用文档、配置文档等 |
根据社区要求,完善相关的开发指南和部署指导 |
否 |
|
合入到开源项目主仓:代码推送上游社区 |
代码合并到当前主干分支。 |
否 |
|
Deomo设计&开发:完成功能演示Demo的开发 |
提供DEMO仓库地址。 |
是 |
|
Demo部署&验证:完成功能演示DEMO基于华为云鲲鹏环境的部署和功能验证 |
提供DEMO部署验证结果的关键截图进行举证。提供DEMO运行环境和资源的截图举证。 |
是 |
|
发布博客:发布博客介绍适配心得。 |
提供博客的地址。 |
是 |
|
制作单机版无高危开源镜像。 |
上架云商店。 |
否 |
|
单机版镜像上架时支持模板部署。 |
|
否 |
|
制作集群版无高危开源镜像 |
上架云商店。 |
否 |
|
集群版镜像上架时支持模板部署 |
|
否 |
|
2 资源清单
产品名称 |
NPU架构 |
CPU架构 |
操作系统 |
云堡垒机 |
Ascend 910B3 |
鲲鹏计算Kunpeng-920 |
Huawei Cloud EulerOS 2.0 (aarch64) |
3 测试结果
Npu推理
项目地址的推理脚本用起来容易出问题,然后我自己写了一个推理脚本,详见demo仓库:
使用如下命令进行推理
python detect_npu.py --weights yolov5.pt --source ./zidane.jpg --device npu --save-img --save-dir ./ --custom-name "detection_result"
这是要推理的图片以及推理的结果图片
- 点赞
- 收藏
- 关注作者
评论(0)