点击上方,选择星标置顶,不定期资源大放送

阅读大概需要10分钟

Follow小博主,每天更新前沿干货

“研究芯片光砸钱不行,要砸数学家、物理学家。”

任正非今年5月在接受《科技日报》专访时如是说。据任正非透露,华为已拥有700多名数学家。

现在,这些数学家的基础研究,让华为在AI和芯片等领域得到了回报。

最近,来自郑州数学工程与先进计算国家重点实验室的赵捷老师与华为MindSpore团队合作,凭借着在基础数学上的能力,解决了一个AI芯片优化的重要问题,获得了顶级学术会议MICRO 2020的最佳论文提名,MICRO是计算机体系结构领域的国际顶级会议,这也是中国团队53年第3次入围该大会的最佳论文提名。

这篇论文主要研究了如何优化在AI芯片上的程序编译,尽可能的“榨干”AI芯片的性能,不仅支持对华为自研的昇腾910芯片,也支持现在主流的NVIDIA A100/V100 GPU,今后还会支持更多硬件。

在CPU上,其方法相较PolyMage和Halide分别平均性能提升了20%和33%。在GPU上,其方法比Halide提供了17%的平均性能改进。在AI芯片华为昇腾910上,该论文提出的方法可将ResNet-50模型整个执行时间提升16%。

在论文发表分享理论创新的同时,开源社区也快速推进了这项研究的落地。基于Polyhedral模型的算子自动生成技术MindAKG现已集成到AI框架MindSpore中。

MindAKG的作用就是对深度神经网络中的算子进行优化,利用Polyhedral模型来解决AI应用在不同芯片架构中的性能自动优化难题。

Polyhedral模型则是MindAKG的数学核心。

目前所有MindAKG的源代码早已在Gitee上开源代码,可谓所见即所得的典范。论文合作者赵捷老师目前也是MindSpore社区SIG-AKG的核心成员。业界少见的坚定开源开发如此大规模复杂技术,拥有如此开源雄心的MindSpore无疑将极大的考验其他开源AI框架的“硬核程度”。

基于Polyhedral的编译技术

Polyhedral编译技术历史悠久,最早可追溯到大型机时代研究程序自动并行问题开始。两位图灵奖得主Richard Karp、Leslie Lamport先后为此提出相关理论。

Polyhedral模型需要在编译器中构建一个非常好的数学模型来计算调度。

这种数学模型底层是通过解决整数线性规划问题来得到最优解的,但整数线性规划问题的求解过程是一个NP完全问题,因此只能通过一些近似方法求解。

如果这种数学模型的调度不够好,那么可能还不如手工编写调度性能。

如何构建Polyhedral模型的整数线性规划问题,使其能够达到手工编写调度性能相当的结果,是当前研究的核心难点。

既然是NP完全问题,如何降低Polyhedral模型求解的复杂度,也是当前需要解决的问题。

Polyhedral模型涉及大量的基础数学理论,包括但不限于线性代数、空间几何、最优化理论和矩阵论,以及基础计算机理论科学的知识如图论、数理逻辑等,这些知识点本身并不复杂,但是将这些知识点统一地表示在一个模型里,导致该模型的比较复杂,难以理解,入门的“门槛”比较高。

当前国内从事Polyhedral模型研究的人员较少,但在国外,多家科技厂商对该技术的研究十分重视,Google、Facebook、NVIDIA这几家AI领军企业都在研究利用Polyhedral模型来实现算子层的循环优化。

华为MindSpore团队也集结了Polyhedral领域的顶尖专家,全力攻关新的调度算法。

华为自研AI框架MindSpore利用Polyhedral模型,实现了昇腾系列芯片的算子自动生成器MindAKG,采用了可定制化的求解算法,保证程序性能的同时,有效缓解了编译时长的问题。

MindSpore的应用创新

这篇新论文的研究重点是利用Polyhedral模型来解决算子自动生成的问题,与Halide和TVM采用的”compute+schedule”的方式不同。本文研究的算子自动化技术,无需手动编写算子调度算法。

在此基础上,这项研究有以下关键创新点:

首先,这项工作自动化地实现了一种循环分块和合并的新组合。这种组合在已有的基于Polyhedral的自动编译过程中没有被考虑到,因为现有的Polyhedral编译流程限定了这两种循环变换的组合顺序。

同时,这种组合在已有的基于手工编写调度的编译工作中也很难实现,因为在复杂场景下,底层计算和数据之间的映射关系很难用手工编写的方式指定,所以基于手工编写调度的方式很难深入和系统地构建这种组合。

其次,该研究工作在提升程序性能的同时,又有效地缓解了现有Polyhedral编译技术的时间复杂度问题。

通常性能的提升和时间复杂度的降低是矛盾的,但这项研究由于避开了使用前面提到的整数线性规划问题来求解调度的过程,从而能在降低编译时间复杂度的同时,保证了程序性能的显著提升。

最后,这项研究工作具有很好的可扩展性,可支持多种异构硬件架构的代码自动生成,包括Intel的CPU以及NVDIA的GPU。特别地,这项工作已经在华为自研AI框架MindSpore的算子自动生成器MindAKG中落地,可支持昇腾系列AI芯片上的算子自动生成。

通过对包括神经网络、图像处理、稀疏矩阵计算、线性代数等应用领域在内的11项基准测试实验,该研究证明其方法能在先进的CPU、GPU及AI芯片架构上获得有效的性能改进。

在AI芯片华为昇腾910上,该论文提出的方法可将ResNet-50模型整个执行时间提升16%。

代码已开源

华为MindAKG相关代码已经在Gitee开源,用户既能从MindSpore侧构建,也能独立编译运行。

MindAKG当前已支持华为自研昇腾AI芯片、GPU V100/A100等硬件上的高性能算子自动生成。

MindAKG主要流程可以分为四个部分:

  • 规范化:为了解决polyhedral表达能力的局限性(只能处理静态的线性程序),需要首先对计算公式IR进行规范化。规范化模块中的优化主要包括自动运算符inline、循环拆分和公共子表达式优化等。

  • 自动调度:自动调度模块基于polyhedral技术,主要包括自动向量化、自动切分、依赖分析和数据搬移等。

  • 指令发射:指令发射模块的优化主要包括循环规范化、标签自动生成和指令发射等。

  • 后端优化:后端优化模块的优化主要包括双缓冲区、存储重写和同步指令插入等。

MindSpore期待开发者加入

今年国产AI框架如雨后春笋一般涌现,华为MindSpore也是其中一员。华为也是少有的具有自研AI框架、AI推理芯片、AI训练芯片的国内厂商。

MindSpore中所应用的Polyhedral技术获得MICRO最佳论文的提名,也说明了华为在AI基础技术上获得了国际认可。让我们看到了任正非口中的数学家在华为AI中起到的最大作用。

华为MindSpore不是国内最早开源的AI框架,却靠着在基础技术上的投入快速得到学界和开发者的认可。

但不可忽视的是,生态才是AI框架最重要的生命力,作为一个正在快速成长的AI社区,MindSpore需要AI开发者积极加入,一起引领AI创新,共同成长。

12月14日至25日,MindSpore社区将在目前已展开过MSG活动的12个城市,开展别开生面的“MindCon极客周”活动,在已渐寒冷的冬日,开发者每天聚集在一个城市,修复社区bug,分享学习心得,还可以参加昇腾模型王者挑战赛的青铜赛段。这次活动还首次通过点亮城市的积分评比(新增star积10分、完成bugfix积100、完成青铜赛段任务积200分方式,12个城市PK产生明年6月第二届MindCon极客周的主办城市。想要了解像AKG这样黑科技的开发者,快来报名吧!

论文地址:
https://www.microarch.org/micro53/papers/738300a427.pdf

开源地址:
https://gitee.com/mindspore/akg


53年来国内唯三,MindSpore加速昇腾芯片论文获国际顶会MICRO最佳论文提名相关推荐

  1. 华为代码规范_53年国内唯三,华为MindSpore论文获顶会最佳论文提名

    晓查 发自 凹非寺 量子位 报道 | 公众号 QbitAI "研究芯片光砸钱不行,要砸数学家.物理学家." 任正非今年5月在接受<科技日报>专访时如是说.据任正非透露, ...

  2. 阿里云飞天论文获国际架构顶会 ATC 2021最佳论文:全球仅三篇

    简介:近日,计算机系统结构国际顶级学术会议 USENIX ATC在线上举行.ATC 始办于1992年,是由USENIX组织的计算机系统领域的顶级会议,至今已成功举办31届,计算机系统领域中Oak语言( ...

  3. 三篇论文入选国际顶会SIGMOD,厉害了腾讯云数据库

    好消息!6月13日,腾讯云数据库三篇论文再次入选数据库行业顶会SIGMOD,被SIGMOD 2022 Research Full Paper(研究类长文)收录. 本次被收录的研究成果中,新型数据结构设 ...

  4. 国内唯一ACL最佳论文得主冯洋:冲击最佳论文需要知道的事情

    整理:Mr Bear 转载自:AI科技评论 在10月30日CCL2020的学生研讨会中,来自中科院计算所的冯洋研究员进行了<冲击最佳论文需要知道的事情>的报告. 在本次演讲中,冯洋老师分别 ...

  5. GPT-3等三篇论文获NeurIPS2020最佳论文奖 | AI日报

    为 AI 内行人定制资讯, 帮你一篇尽览 AI 行业要闻. GPT-3等三篇论文获NeurIPS2020最佳论文奖 今日NeurIPS 2020 公布了最佳论文奖和时间检验奖.OpenAI 等提出的语 ...

  6. 对国内云计算三个现象的思考

    摘要:云计算的浪潮已席卷多年,国内的云计算与美国的相比有何差距?众所周知,在整个云计算技术栈上,我们几乎都能找到相应的开源软件.但我们是否能利用开源技术缩小与国外的差距?还是被开源技术掩盖了我们的种种 ...

  7. wordpress国内网速慢加速及防DDOS攻击快速CF切换教程

    wordpress国内网速慢加速及防DDOS攻击快速CF切换教程标题 一.现网站的情况分析 二.网站搬迁 1.操作系统选择 2.命令行 第一步:安装nginx 第二步:开启防火墙 第三步:安装mysq ...

  8. 国内42所一流大学综合排名出炉!清北之后谁是国内第三?

    编辑:Sophia 计算机视觉联盟  报道 公众号 CVLianMeng 转载于 :学科竞赛 国内目前共有42所世界一流建设高校,其中36所A类,6所B类,整理这42所双一流高校在U.S.News.Q ...

  9. 【2018/10/11完成】 ubuntu切换国内镜像源,加速apt-get下载速度

    ubuntu切换国内镜像源,加速apt-get下载速度 https://blog.csdn.net/TotoroCyx/article/details/79517202 学习这篇文章,但是他有很多的b ...

最新文章

  1. 详解原生AJAX请求demo(兼容IE5/6)
  2. php正则匹配utf-8编码的中文汉字
  3. Java 循环队列原理与用法详解
  4. 配置oracle驱动_Myeclipse中添加Oracle
  5. C# Linq to SQL — Group by
  6. Android中使用广播机制退出多个Activity
  7. Nginx 内置变量,细化规则,真实IP获取及限制连接请求
  8. 显著性目标检测matlab代码_显著性目标检测代码全汇总!(包含2D、3D、4D以及Video)...
  9. 从0开始编写dapper核心功能、压榨性能、自己动手丰衣足食
  10. (王道408考研操作系统)第四章文件管理-第二节1:磁盘的结构
  11. Python入门--os.walk
  12. 最近一周MOSS的link
  13. 三 数据结构 --数和二叉树
  14. java多线程的常见例子
  15. 添加内核驱动模块(1)(mydriver.c+ Konfig+Makefile )
  16. RNA二级结构系列(1):基础知识篇
  17. linux中mbr最大多少分区,Linux学习—MBR和GPT
  18. python中矩阵怎么表示_python中的列矩阵表示
  19. 未明学院:学员来稿 | 2019年中国电影分析报告
  20. 一个“点赞”功能的实现代码

热门文章

  1. $.ajax 的async参数在crossdomain跨站下的问题
  2. 谈谈WEB开发中的苦大难字符集问题
  3. 06-Windows Server 2012 新特性 ---- Hyper-V实时迁移
  4. Step by Step WebMatrix网站开发之二:使用WebMatrix(1)
  5. 2005年个人防病毒软件评测报告
  6. 用Python解“龟兔赛跑”题
  7. 用python编程代码画图形_python编程:如何使用python代码绘制出哪些常见的机器学习图像?...
  8. add-apt-repository命令详解_Dcr_Hs的博客-CSDN博客_add-apt-repository
  9. 浅谈话题模型:LSA、PLSA、LDA
  10. 重学《动手学深度学习》转