摘要:在华为全联接大会2022期间,华为正式官宣昇腾AI异构计算架构CANN 6.0版本将在年底正式发布。

本文分享自华为云社区《昇腾AI异构计算架构CANN 6.0全新开放升级,全面释放AI生产力》,作者: 昇腾CANN 。

在华为全联接大会2022期间,华为正式官宣昇腾AI异构计算架构CANN 6.0版本将在年底正式发布。

高度完善的生态满足度,满足全方位业务诉求

从2018年初露锋芒到2022年即将发布的CANN 6.0最新版本,CANN在使能AI开发效率和性能方面持续保持业界领先。作为昇腾生态的锚点,CANN 6.0版本基于发布全新升级的开发体系2.0,在性能、开放性及易用性上持续提升,在开源算法支持、自定义算子开发、动态shape场景支持等方面全方位满足AI开发者的诉求,不断提升生态满足度。

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

为满足开发者多层次AI业务诉求,CANN提供统一的面向应用的编程语言AscendCL(Ascend Computing Language)屏蔽底层处理器差异,支持AI应用开发、模型开发和算子开发,版本向上兼容,让开发者零感知版本升级,畅享AI开发的便捷性。

同时,随着人工智能应用深入更多场景,图片大小、语音长短等动态数据输入的需求不断增加,CANN 6.0版本对动态shape的支持度不断提升,在新版本中,我们将会有400+算子支持动态shape,支持80%的主流算子,极大提高了AI场景生态满足度以匹配客户更多的AI业务场景。

打造极简易用算子开发体验,高效使能AI开发者

经过数年的积累和优化,CANN高性能算子库为支撑神经网络训练和推理加速而不断添砖加瓦,CANN 6.0版本已经发展到1400+高性能算子,可覆盖主流AI框架的算子加速需求。

算子库不仅支持高性能单算子执行加速,还支持入图技术,在图上通过算子融合减少计算节点和内存拷贝,进一步提升整网执行性能,以Bert网络为例,通过算子深度融合技术可将网络性能提高50%。CANN 6.0新发布的Transformer高性能加速库,针对网络典型结构精简80% kernel数,核心kernel性能提升50%-150%,可匹配昇腾全系列处理器支持NLP/CV类全场景Transformer网络,并且兼具简易的继承开发及上层框架使用等诸多优点。

CANN 6.0版本除了继续保持在典型模型上的性能优势外,还将重点在易用性方面进行提升。伴随算子自定义开发需求的增多,为了更加开放、高效的支持用户自开发,随新版本发布的开发体系2.0,在算子开发方面推出原生支持C/C++的算子开发语言,降低算子开发门槛,同时提供昇腾硬件亲和的数据结构,在保持性能的基础上提升用户自定义算子开发效率,使得算子开发效率得到倍级提升。

CANN 6.0版本将会提供包括11大类在内的70个DSL算子编程接口、新增11类算子调度策略,从而使能更多算子采用简单的DSL方式开发,算子库中DSL算子覆盖度可达80%。在开发易用性方面,开发者仅需完成计算过程表达,无需关心后续的Schedule创建、优化及编译等问题,因为这些操作将通过Auto Schedule自动调度接口快速完成。CANN同时支持算子Debug调试、一键生成工程代码、自动编译部署到算子库、简化算子交付件等功能,基于全流程解决开发者痛点,最大程度降低算子开发门槛。

持续提升模型开发效率,实现模型下载即用

CANN支持模型的自动化迁移、调测及智能调优,从真正意义上实现模型下载即用。CANN 6.0版本下,主流框架TensorFlow和PyTorch的模型迁移成功率可达80%以上,兼容主流三方库Horovod/Keras/DeepSpeed等。在此基础上还能方便地将那些随算法演进而开发的自定义kernal或function保留到框架侧执行,提升算法适配灵活度。

在模型调优方面,开发者不仅能借助一系列昇腾亲和API提升性能,还能通过智能化调优工具代替复杂的手工优化操作,CANN 6.0版本的平均调优效率将较上一代提升一倍以上。

全系列AI开发辅助工具,扫除AI开发重重障碍

作为一个全面使能AI开发的软件平台,CANN不但持续在AI模型适配、应用开发和算子开发方面给开发者带来便捷,更是从模型优化、系统分析、模型部署等多维度帮助开发者扫除重重障碍。

模型压缩工具AMCT,能有效降低模型数据量和计算量,节约模型内存和带宽占用,提升计算性能;智能计算调优工具AOE,其傻瓜式的自动寻优能力使得算法工程师从繁重的手工调优工作中解脱出来,并能够将调优进度和调优结果通过可视化方式直观展示;Profiling工具则能自动采集整网性能数据,通过统计视图识别最耗时算子,在CANN 6.0版本中,可自动生成性能优化建议,引导用户快速解决问题;精度比对工具,支持整网或指定层数据dump,CANN 6.0版本中进一步精简dump数据量,更有效的辅助开发者快速定位异常算子。

智能大潮,奔涌向前,CANN持续深入践行初心和使命,以大道至简的态度筑梦AI开发者!随着CANN 6.0版本的全新开放升级,必定带动更多伙伴及开发者基于昇腾AI和CANN的关键技术探索人工智能领域更多可能,点燃智慧创新热情,点亮智能美好生活,共同筑梦远方,共享行业数字未来!

点击关注,第一时间了解华为云新鲜技术~

CANN 6.0来了,硬核技术抢先看的更多相关文章

  1. 2.69分钟完成BERT训练!新发CANN 5.0加持

    摘要:快,着实有点快. 现在,经典模型BERT只需2.69分钟.ResNet只需16秒. 啪的一下,就能完成训练! 本文分享自华为云社区<这就是华为速度:2.69分钟完成BERT训练!新发CAN ...

  2. 我们建了一个 Golang 硬核技术交流群(内含视频福利)

    目录 目录 Golang 是什么? 我们为什么选择 Golang? Golang 是云时代的宠儿! 我们搞了一场 Golang 入门直播 Golang 是什么? Golang 是谷歌 2009 年发布 ...

  3. Android P新功能特性抢先看

    2018年3月8日,Google推出了Android P Preview版本,并提供官方镜像下载. 为了让广大开发者能够及时了解Android P的新功能特性,提前为您的app进行良好适配,WeTes ...

  4. 【转】OpenStack奥斯汀峰会Keynotes国内抢先看

    http://www.openstack.cn/?p=5341 OpenStack奥斯汀峰会Keynotes国内抢先看入口:http://www.tudou.com/home/_903780397/i ...

  5. Qt Creator 4.3.0,Quick Designer里面也看以同时看到和编辑qml code了(Qt5.9的配套IDE)

    作者:Summer Fang链接:https://www.zhihu.com/question/60486611/answer/177584284来源:知乎著作权归作者所有.商业转载请联系作者获得授权 ...

  6. Win10《芒果TV》送7天免费会员,邀您抢先看萌心自制《妈妈是超人3》

    <妈妈是超人>第三季萌心归来,霍思燕,贾静雯,黄圣依,邓莎联合释放"妈妈的声音",嗯哼,咘咘,波妞,安迪,大麟子五位萌娃共同出镜,萌化屏幕.Win10<芒果TV& ...

  7. Django 2.0 新特性 抢先看!

    一.Python兼容性 Django 2.0支持Python3.4.3.5和3.6.Django官方强烈推荐每个系列的最新版本. 最重要的是Django 2.0不再支持Python2! Django ...

  8. C# 8.0 抢先看-- Async Stream

    异步流? Async Stream 简单说来是一种非同步的迭代器模式,说更白一点就是可以await 的foreach.在过去的C# 中如果要回传一个可迭代的IEnumerable<T> , ...

  9. 小米死磕硬核技术,将扩招5000名工程师,多个领域会使用到C++

    小米MIDC大会2020在北京小米科技园召开,小米集团创始人.集团董事长兼CEO雷军宣布:"重视人才队伍的建设.人才是创新之源,提升技术实力的第一步,就是聚拢最顶尖的人才.小米2021年将在 ...

  10. GitHub 热点速览 Vol.34:亚马逊、微软开源项目带你学硬核技术

    作者:HelloGitHub-小鱼干 摘要:站在巨人的肩膀上才能看得更远,本周上榜的 computervision-recipes 便是典型代表,这个由微软开源的计算机视觉最佳实践项目,多次上 Git ...

随机推荐

  1. ida反汇编失败

    options->general->打开堆栈指针(stack pointer) 可见反汇编失败提示的地址(本程序为00101481,原本此处不为000)处堆栈指针不为0,因此需要修改 al ...

  2. Redis中的缓存雪崩、缓存击穿、缓存穿透问题

    1. 什么是缓存雪崩 当我们提到缓存系统中的问题,缓存雪崩是一个经常被讨论的话题.缓存雪崩是指在某一时刻发生大量的缓存失效,导致瞬间大量的请求直接打到了数据库,可能会导致数据库瞬间压力过大甚至宕机.尤 ...

  3. JDK 动态代理原理

    代理模式 客户端不直接访问目标对象,需要通过第三者来实现间接访问对象 代理对象在客户端和目标对象之间起中介作用,能够屏蔽目标对象不想让客户端知道的内容,或增加额外的服务 动态代理 JDK 动态代理:基 ...

  4. Web SSH 的原理与在 ASP.NET Core SignalR 中的实现

    前言 有个项目,需要在前端有个管理终端可以 SSH 到主控机的终端,如果不考虑用户使用 vim 等需要在控制台内现实界面的软件的话,其实使用 Process 类型去启动相应程序就够了.而这次的需求则需 ...

  5. linux 使用crontab 创建定时任务

    转载请注明出处: 在服务器中需要创建一个定时任务,每天执行去清理很早之前备份的文件,所以想到在linux上创建一个shell脚本,通过linux的 crontab 命令定时去执行该shell脚本,从而 ...

  6. C#操作Microsoft.Office.Interop.Word类库完整例子

    使用Microsoft.Office.Interop.Word类库操作wor文档 一.准备工作 首先在工厂中,引用[Microsoft.Office.Interop.Word],本地安装了world, ...

  7. Codeforces Round #702 (Div. 3) 题解

    写在前边 链接:Codeforces Round #702 (Div. 3) 比较简单,但是总是感觉脑子有点转不过弯来. A. Dense Array 链接:A题链接 题目大意: 在数组中插入若干个数 ...

  8. 记录一次 postgresql 优化案例( 嵌套循环改HASH JOIN )

    今天同事给我一条5秒的SQL看看能不能优化. 表数据量: select count(1) from AAAA union all select count(1) from XXXXX; count - ...

  9. 在ASP.NET Core 中使用 .NET Aspire 消息传递组件

    前言 云原生应用程序通常需要可扩展的消息传递解决方案,以提供消息队列.主题和订阅等功能..NET Aspire 组件简化了连接到各种消息传递提供程序(例如 Azure 服务总线)的过程.在本教程中,小 ...

  10. ThreadPoolExecutor线程池内部处理浅析

    我们知道如果程序中并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束时,会因为频繁创建线程而大大降低系统的效率,因此出现了线程池的使用方式,它可以提前创建好线程来执行任务.本文主要通过j ...