又一重要进展发布!OpenMMLab算法仓支持昇腾AI训练加速
摘要:上海人工智能实验室的浦视开源算法体系(OpenMMLab)团队基于昇腾AI发布了MMDeploy 0.10.0版本,该版本已支持OpenMMLab算法仓库在昇腾异构计算架构CANN上的推理部署。
本文分享自华为云社区《又一重要进展发布!OpenMMLab算法仓支持昇腾AI训练加速》,作者:昇腾CANN 。
近日,上海人工智能实验室的浦视开源算法体系(OpenMMLab)团队基于昇腾AI发布了MMDeploy 0.10.0版本,该版本已支持OpenMMLab算法仓库在昇腾异构计算架构CANN上的推理部署。而在最新发布的MMCV 1.7.0和MMEngine 0.3.0版本中,OpenMMLab基于昇腾AI软硬件底座完成了基础库(MMEngine、MMCV)及算法库(图像分类MMClassification、目标检测MMDetection)的适配,补齐了基于昇腾AI的训练加速能力。至此,OpenMMLab算法仓[1]已完整打通基于昇腾AI的训练与推理流程,基于昇腾异构计算架构CANN的开发体系与加速技术栈,开发者不仅可以基于OpenMMLab算法仓库快速构建AI模型与应用,还能充分发挥昇腾AI处理器的澎湃算力,加速训练及推理业务的执行。

CANN是专门面向AI场景的异构计算架构,同时作为昇腾AI基础软硬件平台的核心组成部分之一,搭起了从上层深度学习框架到底层AI硬件的桥梁,全面支持昇思MindSpore、飞桨(PaddlePaddle)、PyTorch、TensorFlow、Caffe、计图(Jittor)等主流AI框架,提供900多种优选模型,能够覆盖众多典型场景应用,兼容多种底层硬件设备,提供强大的异构计算能力。
OpenMMLab 诞生于 2018 年,是深度学习时代计算机视觉领域最全面、最具影响力的开源算法体系。旨在为学术和产业界提供一个可跨方向、结构精良、跨站性强、易复现的统一算法工具库。目前,OpenMMLab 已经累计开源了超过 30 个算法库,涵盖分类、检测、分割、视频理解等众多研究领域,拥有超过 300 种算法、2,400 多个预训练模型。在 GitHub 上获得超过 73,000 个标星,同时吸引了超过 1,500 名社区开发者参与项目贡献,用户遍及超过 110 个国家和地区,覆盖全国全球顶尖高校、研究机构和企业。
昇腾AI和OpenMMLab开展深度合作,共同签署了CCLA(Corporate Contributor License Agreement)协议,致力于长期全面支持OpenMMLab旗下基础仓和模型仓,共同促进更多业务场景的技术创新和生态共赢。

昇腾与OpenMMLab适配整体框架
上图展示了昇腾AI适配OpenMMLab的整体方案,其中 ,CANN软件栈实现了算法库在昇腾AI处理器上的加速运行;框架和基础库的适配,完成了与CANN的对接,其中torch_npu插件支撑了PyTorch[4]框架的运行,基础库中的runner、ops和dist等组件分别实现了基础运行类、自定义算子和通信协议对昇腾AI处理器的支持。CANN、框架和基础库的有机结合,支撑了基础库(MMCV)和算法库(MMClassification、MMDetection等)在昇腾AI处理器的加速运行。
通过OpenMMLab与昇腾CANN的对接,目前已完成了MMCV算子仓16+算子的适配,MMClassification与MMDetection模型套件仓共20+模型在昇腾硬件上的运行。
MMClassification适配模型参考:
https://mmclassification.readthedocs.io/en/latest/device/npu.html
MMDetection适配模型参考:
https://mmdetection.readthedocs.io/en/latest/device/npu.html
未来,随着昇腾AI和OpenMMLab合作的不断深入,双方将会从丰富算法库和更高性能的训练加速层面持续优化,促进昇腾AI和OpenMMLab的共同发展和繁荣。同时,也欢迎大家在昇腾社区和OpenMMlab的开源社区一起交流、探索和改进,共同推进计算产业发展和生态构建!
相关链接:
[1] https://github.com/open-mmlab
[2] https://github.com/open-mmlab/mmcv/pull/2262
[3] https://github.com/open-mmlab/mmengine/pull/572
[4] https://gitee.com/ascend/pytorch
[5] https://www.hiascend.com
又一重要进展发布!OpenMMLab算法仓支持昇腾AI训练加速的更多相关文章
- 【教程】5分钟在PAI算法市场发布自定义算法
概述 在人工智能领域存在这样的现象,很多用户有人工智能的需求,但是没有相关的技术能力.另外有一些人工智能专家空有一身武艺,但是找不到需求方.这意味着在需求和技术之间需要一种连接作为纽带. 今天PAI正 ...
- MWeb 1.3.7 发布!增加发布到 Wordpress 等支持 MetaWeblog API 的服务,如:Wordpress 博客、新浪博客、cnblogs、oschina。
MWeb 1.3.7 版的新功能 增加发布到 Wordpress 等支持 Metaweblog API 的服务,目前经测试过的有: Wordpress 博客.新浪博客.cnblogs.oschina. ...
- EM算法(2):GMM训练算法
目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(2):GMM训练算法 1. 简介 GMM模型全称为Ga ...
- 【Java/Android性能优5】 Android ImageCache图片缓存,使用简单,支持预取,支持多种缓存算法,支持不同网络类型,扩展性强
本文转自:http://www.trinea.cn/android/android-imagecache/ 主要介绍一个支持图片自动预取.支持多种缓存算法.支持二级缓存.支持数据保存和恢复的图片缓存的 ...
- Nacos 1.1.4 发布,业界率先支持 Istio MCP 协议
Nacos是阿里巴巴开源的服务发现与配置管理项目,本次发布的1.1.4版本,主要带来的是与Istio的对接功能,使用的是Istio最新的MCP协议.本文将介绍包括这个功能在内的新版本发布的功能. 升级 ...
- 谷歌发布Flutter Alpha:支持Windows
老孟导读:Windows来了,Mac.Linux.Web还远吗? 本文翻译自https://medium.com/flutter/announcing-flutter-windows-alpha-33 ...
- Angular2正式版发布,Wijmo抢先支持
Angular2正式版发布 9月15日,Angular 2 的最终版正式发布了.作为 Angular 1 的全平台继任者 -- Angular 2 的最终版,意味着什么? 意味着稳定性已经得到了大范围 ...
- Android ImageCache图片缓存,使用简单,支持预取,支持多种缓存算法,支持不同网络类型,扩展性强
本文主要介绍一个支持图片自动预取.支持多种缓存算法的图片缓存的使用及功能.图片较大需要SD卡保存情况推荐使用ImageSDCardCache. 与Android LruCache相比主要特性:(1). ...
- omi-cli新版发布-升级webpack2和支持sass生成组件局部CSS
写在前面 omi-cli是Omi的命令行工具.在v0.1.X以及之前版本中,生成出来的项目脚手架 是基于webpack1的.由于: webpack1不支持tree-shaking,webpack2 支 ...
- GooglePlay发布应用后,支持的 Android 设备 0 台设备
这个问题主要是权限问题: android.hardware.camera2.full #把这个权限去掉,注里能功里就不会有这一项了android.hardware.camera2.full 然后重新打 ...
随机推荐
- 都卷Java,你看看你得学多少技术栈才能工作!
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言:授业解惑 我知道,你不知道的还有很多! 你了解计算机要从哪里开始学习吗?你清楚为了能 ...
- 三、Python语法介绍
三.Python语言介绍 3.1.了解Python语言 Python 是1989 年荷兰人 Guido van Rossum (简称 Guido)在圣诞节期间为了打发时间,发明的一门面向对象的解释性编 ...
- Pictionary 方法记录
[COCI2017-2018#5] Pictionary 题面翻译 题目描述 在宇宙一个不为人知的地方,有一个星球,上面有一个国家,只有数学家居住. 在这个国家有\(n\)个数学家,有趣的是,每个数学 ...
- 优雅的写好Vue项目代码 — 路由拆分、Vuex模块拆分、element按需加载
目录 路由的拆分 VUEX模块拆分 Element UI库按需加载的优雅写法 路由的拆分 项目较大路由较多时,路由拆分是一个不错的代码优化方案,按不同业务分为多个模块,结构清晰便于统一管理. requ ...
- Java安全之反序列化(1)
序列化与反序列化 概述 Java序列化是指把Java对象转换为字节序列的过程:这串字符可能被储存/发送到任何需要的位置,在适当的时候,再将它转回原本的 Java 对象,而Java反序列化是指把字节序列 ...
- SQLSever数据库基本操作
一.SQLSever数据库基本操作 1.创建数据库 use master if exists(select * from sysdatabases where name='SMDB') drop da ...
- 如何重启kafka
修改配置文件 ps -ef |grep kafka kill (kafka进程号) 启动kafka [root@lecode-dev-001 bin]# ./kafka-server-start.sh ...
- 基于python的数学建模---差分方程
一.递推关系--酵母菌生长模型 代码: import matplotlib.pyplot as plt time = [i for i in range(0,19)] number = [9.6,18 ...
- 广州2022CCPC补题
I Infection 知识点: 树上背包 第一次写树上背包的题目,没想到就是在区域赛中 神奇的是树上背包的复杂度,看起来是\(O(n^3)\),但是实际计算只有\(O(n^2)\) 学会树上背包后可 ...
- python选课系统项目详解
选课系统项目详解 选课系统简介及分析 选课系统架构设计分析 选课系统目录设计 管理员视图 注册 登录 创建学校 创建课程 创建讲师 学生视图 注册 登录 选择学校 选择课程 查看分数 教师视图 登录 ...