来源:人人都是极客CSDN博客
作者:Peter盼
网上对AI芯片的剖析实在太少,这里对一些论文和大佬的研究做一个总结,希望对读者有所帮助。
AI 芯片的诞生
其实戈登·摩尔在五十三年前已经说了“集成电路会带来家用电脑或者至少是和中央电脑所连接的终端设备、自动驾驶、个人便携通讯设备等”。没错,智能手机后下一个推动集成电路发展的新的应用场景是自动驾驶和物联网。
除了新的应用场景外,新的技术革命也必须为半导体发展提供动力,新的技术革命是什么呢,没错,就是人工智能。人工智能的出现可以说让所有行业眼前一亮,刚刚提到的无人驾驶,物联网等等背后也都是因为 AI 的出现才带来这样巨大的,有前景的应用。也就是说 AI 技术的变革才是集成电路新应用场景落地的本质所在。
下面我们从以上三点阐述下目前比较主流的深度学习在芯片层面实现加速的方法。
AI 芯片的加速原理
乘加运算硬件加速,脉冲阵列
下面说下脉冲阵列的基本原理:
首先,图中上半部分是传统的计算系统的模型。一个处理单元(PE)从存储器(memory)读取数据,进行处理,然后再写回到存储器。这个系统的最大问题是:数据存取的速度往往大大低于数据处理的速度。因此,整个系统的处理能力(MOPS,每秒完成的操作)很大程度受限于访存的能力。这个问题也是多年来计算机体系结构研究的重要课题之一,可以说是推动处理器和存储器设计的一大动力。而脉动架构用了一个很简单的方法:让数据尽量在处理单元中多流动一会儿。
优化 Memory 读取
还可以从体系架构上对整个的Memory读取来做进一步的优化。这里摘取的是寒武纪展示的一些科研成果。其实比较主流的方式就是尽量做Data Reuse,减少片上Memory和片外Memory的信息读取次数,增加片上memory,因为片上数据读取会更快一点,这种方式也能够尽量降低Memory读取所消耗的时间,从而达到运算的加速。
剪枝 Pruning
所以这也是为什么,在语音的加速上很容易用到剪枝的一些方案,但是在机器视觉等需要大量卷积层的应用中剪枝效果并不理想。
权重系数压缩
一个很简单直观的技术解决方式,就是堆叠更多更快速更高效的存储,HBM孕育而生,也即在运算芯片的周围堆叠出大量的3D Memory,通过通孔来连接,不需要与片外的接口进行交互,从而大大降低存储墙的限制。
更有甚者提出说,存储一定要和计算分离吗,存储和运算是不是可以融合在一起,PIM(Processing in Memory)的概念应运而生。
新接口
上面讲了一些比较经典的加速方法。下面分享几个已经存在的AI加速芯片的例子,相信这样会更加直观。
AI 芯片实例
TPU
这是Google的TPU。从上边的芯片框图可以看到,有一个64K的乘加MAC阵列对乘加运算进行加速。从论文中可以看到里面已经用到了脉动阵列的架构方法来对运算进行加速,另外也有我们前面提到的大量的片上Memory 这样的路径。上面蓝色框图中大家可以看到有一个24MiB的片上Memory,而且有两个高速DDR3接口能够与片外的DDR做交互。
TPUv2
图展示的第二代TPU。从图中可以很直观的看到,它用到了我们前面所说到的HBM Memory。从其论文披露的信息也可以看到,二代TPU在第一代的基础上增加了我们前面说到的剪枝,权重压缩等方面做了很多尝试,也是一个非常经典的云端AI加速芯片的例子。
接下来跟大家分享几个终端做Inference的例子。
Rokid
HiSilicon Hi3559A
领取专属 10元无门槛券
私享最新 技术干货