吴文俊人工智能科学技术奖
边缘智能芯片设计新进展

《芯片的AI编译优化与生态开放》

2021年05月20日   来源:中国人工智能学会     

9074


2021年4月10日-12日,吴文俊人工智能科学技术奖十周年颁奖盛典暨2020中国人工智能产业年会在北京和苏州同期圆满成功举办。深圳云天励飞技术股份有限公司研究员吴钊受邀在苏州工业园区希尔顿酒店,2020中国人工智能产业年会—边缘智能芯片设计新进展前沿论坛上发表主题报告《芯片的AI编译优化与生态开放》。


以下为演讲实录:


大家上午好,我们不仅跟硬件相关,跟软件也有关,就是现在比较流行的词软硬件协同设计,我今天跟大家分享一下我们在这方面的经验。



简单介绍一下我们公司芯片的概况,我们是在2014年成立,立足于深圳辐射全国多个城市,以人工智能算法以及芯片技术为核心,也就是算法芯片化。我们已经量产了DeepEye1000,单位性能提升20倍,单位能效提升了100倍,系统时延降低200倍,这个里面关键技术不仅仅是硬件设计,更重要也是整个AI软件站和AI编译器能够与硬件协同一起发挥性能。



今天重点分享一下在整个芯片上AI编译器的设计,人工智能场景会有非常多深度学习模型,不仅要对接框架模型还需要在多种硬件上,包括GPU包括AI芯片上高效执行好模型,在面对这种算法框架等等,包括硬件设计多种灵活快速发展。整个AI编译站和整个传统编译器站几乎是一模一样的延伸,只是我们针对不同模型,以及最后生成后端产生物是有一点区别的。



我们刚才讲到了在整个AI编译站会有一个中间层,及图层面。我们会解决一些和传统编译器中间端有一些不太一样的地方。整个AI编译器上会有一些数据布局更改与优化。传统框架模型是有自己一套数据格式,芯片为了更好执行好卷积效率会将C轴拆成8或者16,芯片加速单元喜欢小C形式就需要在图层面进行相应的优化以及修改。



相对于卷积权重对于整个芯片加速单元也是有自己喜欢的一个布局,都是需要在AI编译器图层面进行相应修改。我们也会有一些算子融合优化,我们希望能够在图层面进行融合减少内存之间的搬运。


对于芯片来说相比传统GPU或者CPU我们可能会有更大力度一些算子融合,这种情况都是需要在AI编译器软件站做支持。另外一点我们相比传统CPU或者整个GPU,整个AI芯片具有更丰富的计算单元,一旦有了这种更加丰富计算单元可能在CPU上出现计算力不够,在AI芯片上这个带宽问题会非常凸显,这个时候跨层算子调整,以及切割等技术会非常关键,这也是整个AI编译器软件站图层面需要解决的一个重点难题。


CPU和GPU会有一些AI芯片特有的优化,比如说算子替换,芯片会限制Convolution,这个情况下就会考虑进行同等一些算子替换,可以更高效利用整个AI芯片。另外一块跟工业界相关,很多时候去部署,不仅只有一个AI芯片,可能是交付一个SOC可能会有CPU甚至有GPU,这种情况下在深度学习模型当中算子可能会异常复杂,这个情况下需要表示不了情况下需要进行一个高效切割,以及切分。这样可以更高效制成模型,除了这些我们还会有一些荣誉冗余节点删除可能就跟具体芯片无关,但也是很重要的一些优化。



另外一块在整个中间段,需要在后端解决。这种情况下我们需要有一个很好简单DSL描绘好整个计算,这个DSL我们需要足够简单,大家可以很轻易的就把算子逻辑表述清楚。同时也应该足够抽象,能够把整个复杂逻辑,硬件逻辑抽离开。同时应该需要足够的完备,这样可以在整个深度学习新算子出现时候也可以描述清楚,右边以TM作为代表描述一个卷积,其实是一个很方便的能够描述好卷积的表示。



另外在整个Tensor层面更多是需要利用好芯片内存,相比于GPU,AI芯片内存结构也是不一样。同时AI芯片相比GPU和CPU会有一些更粗的指令,需要在AI芯片上能够产生利用好这些加速指令。另外一块,针对芯片优化,我们更多想自动化完成这个功能。深度学习算法非常多,如果全部靠人工把算子用汇编写其实是一个非常庞大的工作。



AI编译器还要解决其他问题,很多AP芯片没有做浮点原生支持,我们可能是定点就需要有一些量化算法,在AI编译器上保持在一个点之内,甚至更低准确度上,在芯片上进行执行。



另外一块需要考虑AI芯片生态,如何能够更好让AI芯片做到像CPU或者GPU非常的好用,我们需要考虑边层开分接口或者第三方面生态进行结合,最后我们希望通过用AI编译器指导硬件设计,这样可以知道硬件是不是需要设计出来一个原生英特尔或者英特四,通过自动混合量化指导硬件设计。



总体观点,对于整个硬件来说我们需要用AI编译器,硬件整个协同才能最大化发生最大硬件性能,以及适应整个灵活深度学习模型。

组织机构

主管单位
中华人民共和国科学技术部
国家科学技术奖励工作办公室
主办单位
中国人工智能学会

奖励资质