当前位置:静雅生活网 > 数码百科 >

ONNX 牵手华为昇腾!开发者可在昇腾上跑原生模型:已支持 ONNX 算子 16 个,全量支持 ResNet 和 VGG

导读:开发者们看过来,ONNX 牵手华为昇腾,现在可以直接在昇腾上跑原生 ONNX 模型啦!  △最新 ONNX Runtime 的生态全景图  ONNX Runtime 北向支

  开发者们看过来,ONNX 牵手华为昇腾,现在可以直接在昇腾上跑原生 ONNX 模型啦!

ONNX 牵手华为昇腾!开发者可在昇腾上跑原生模型:已支持 ONNX 算子 16 个,全量支持 ResNet 和 VGG 模型

  最新 ONNX Runtime 的生态全景图

  ONNX Runtime 北向支持多种开发语言,包括 Python,C,C++,C#,Java,js 等;南向支持多种运行后端(Execution Provider,包括但不局限于 CPU、CUDA、CoreML),使用 ONNX Runtime,用户可以基于多种语言快速无缝在多种后端上直接运行 ONNX 模型,且不再需要额外的开发适配工作。

  昇腾 CANN 简介

  ONNX Runtime项目支持华为昇腾硬件平台的关键,是连接 AI 框架和昇腾硬件的桥梁—异构计算架构 CANN。

  CANN是专门面向 AI 场景的异构计算架构,同时作为昇腾 AI 基础软硬件平台的核心组成部分之一,搭起了从上层深度学习框架到底层 AI 硬件的桥梁,全面支持昇思 MindSpore、飞桨(PaddlePaddle)、PyTorch、TensorFlow、Caffe、计图(Jittor)等主流 AI 框架,提供 900 多种优选模型,能够覆盖众多典型场景应用,兼容多种底层硬件设备,提供强大异构计算能力。

ONNX 牵手华为昇腾!开发者可在昇腾上跑原生模型:已支持 ONNX 算子 16 个,全量支持 ResNet 和 VGG 模型

  昇腾 CANN 与 ONNX 的长期合作

  华为公司自 2018 年与微软亚洲研究院共同发起了首届 ONNX China Workshop 以来,积极参与 ONNX 社区建设,是历年 ONNX Workshop 中国地区会议的积极倡导者和组织者,在社区也曾发起 Edge WG、提出 Model Zoo CI 建议、参加 Steering Committee 选举等等。

  昇腾 CANN 作为华为参与 ONNX 社区建设中重要的一环,也一直积极参与 ONNX 社区的模型适配工作。目前已支持140+个 onnx 模型推理,年底发布的 CANN6.0 版本将支持 200+ 个模型;支持 opset 8~13,主力支持 opset 11,算子支持率 85+%,CANN6.0 支持到 90+%。

ONNX 牵手华为昇腾!开发者可在昇腾上跑原生模型:已支持 ONNX 算子 16 个,全量支持 ResNet 和 VGG 模型

  让昇腾使能 ONNX 社区版本开发

  昇腾 CANN 团队希望能够将长期以来的主动适配工作,逐渐转化为社区原生开发的一部分,能够更高效的服务用户,让用户第一时间就拥有昇腾 AI 软硬件平台支持的 ONNX 版本。而实现社区原生的一大关键就在于社区流水线中实现对昇腾的支持,而 ONNX Runtime 的支持则是重中之重。

ONNX 牵手华为昇腾!开发者可在昇腾上跑原生模型:已支持 ONNX 算子 16 个,全量支持 ResNet 和 VGG 模型

  使用最新的 ONNX Runtime,用户可以直接把原生 ONNX 模型跑在昇腾上。过程简单,易于使用。这也是在基于昇腾 CANN atc 工具的模型编译执行之外的又一条路径。

ONNX 牵手华为昇腾!开发者可在昇腾上跑原生模型:已支持 ONNX 算子 16 个,全量支持 ResNet 和 VGG 模型

  ONNX Runtime 支持后端

ONNX 牵手华为昇腾!开发者可在昇腾上跑原生模型:已支持 ONNX 算子 16 个,全量支持 ResNet 和 VGG 模型

  CANN Execution Provider 架构

  昇腾作为国产芯片在海外开源社区的推入,其过程存在一定挑战。起初社区对于昇腾芯片以及 CANN 了解不足,昇腾开源团队通过与社区积极沟通、主动参与 ONNX meetup、详细讲解昇腾芯片的特点等方式,让社区详细了解了昇腾芯片以及 CANN 的能力,增强了对昇腾持续投入的信心,从而顺利合入代码。

ONNX 牵手华为昇腾!开发者可在昇腾上跑原生模型:已支持 ONNX 算子 16 个,全量支持 ResNet 和 VGG 模型

  ONNX Runtime CANN 后端已支持算子列表

  目前,ONNX Runtime CANN 后端初步已支持 ONNX 算子 16 个,全量支持 ResNet 和 VGG 模型。用户可以在支持昇腾的环境中使用 ONNXRuntime 主干分支代码,配合 ONNX model zoo [ 3 ] 中的 ResNet 和 VGG 模型进行体验。如果用户想尝试其他的模型和算子,可以参考文档 [ 4 ] 自行编写代码,或者等待新版本发布,届时 CANN 后端会支持更多算子和模型。

  未来,CANN 将在多个方面进行完善,包括:更多算子和模型的支持;算子融合、模型性能优化;支持算子自定义等。随着技术不断发展,大数据和机器学习的关系也越来越密切,在未来,也会进一步探索大数据 +AI 融合的场景,例如 Spark+ONNX+Ascend 这样的大数据 AI 全栈流程,探索生产可用、易用的大数据 AI 解决方案。

  ONNX Runtime CANN 后端作为新功能难免有不足之处,欢迎大家在开源社区一起交流和完善。

  相关链接:

   [ 1 ] https://github.com/ microsoft/onnxruntime/pull/12416

   [ 2 ] https://lfaidata.foundation

   [ 3 ] https://github.com/onnx/models

   [ 4 ] https://github.com/learningbackup/ai/blob/main/ascend/CANN%20Development%20Guideline.md

版权声明:本文部分来自互联网,由小编精心所写,本文地址:http://www.zhubian88.cn/smbk/71470.html,如需转载,请注明出处!

联系我们

在线咨询:点击这里给我发消息

微信号:weixin888

工作日:9:30-18:30,节假日休息