人工智能技术成熟还有多远
扫描二维码
随时随地手机看文章
2019年人工智能逐步从弱人工智能迈入下一阶段,而这一切都离不开强大的芯片。现有深度神经网络需要用更短的时间、更低功耗完成计算,这就给深度学习计算芯片提出了更高的要求。
总体来看,深度神经网络对计算芯片的需求主要有以下两个方面:
一是计算芯片和存储间海量数据通信需求,这里有两个层面,一个是缓存(Cache)和片上存储(Memory)的要大,另一个是计算单元和存储之间的数据交互带宽要大。
二是专用计算能力的提升,解决对卷积、残差网络、全连接等计算类型的大量计算需求,在提升运算速度的同时实现降低功耗。总的来说,AI 计算芯片的发展过程可以总结为一直在围绕如何有效解决存储与计算单元的提升这两个问题而展开,成本问题则作为一个舵手控制着终的航向。
典型 AI 计算芯片的使用现状
在深度学习训练环节,除了使用 CPU 或 GPU 进行运算外,现场可编程门阵列( Field-Programmable Gate Array,FPGA)以及专用集成电路(Application Specific Integrated Circuit,ASIC)也发挥了重大作用;而用于终端推断的计算芯片主要以 ASIC 为主。
CPU 在深度学习训练场景下表现不佳。初的深度学习场景是使用CPU为架构搭建的,如初GoogleBrain就是基于CPU组成的。但由于 CPU 其本身是通用计算器,大量芯片核心面积要服务于通用场景的元器件,导致可用于浮点计算的计算单元偏少,无法满足深度学习特别是训练环节的大量浮点运算需求,且并行计算效率太低,很快被具有数量众多的计算单元、具备强大并行计算能力的 GPU 代替。
GPU 成为目前深度学习训练的首要选择。GPU 的关键性能是并行计算,适合深度学习计算的主要原因一是高带宽的缓存有效提升大量数据通信的效率。GPU 的缓存结构为共享缓存,相比于 CPU,GPU线程(Thread)之间的数据通讯不需要访问全局内存,而在共享内存中就可以直接访问。二是多计算核心提升并行计算能力。GPU 具有数以千计的计算核心,可实现 10-100 倍于 CPU 的应用吞吐量。同时,基于由 NVIDIA 推出的通用并行计算架构 CUDA,使 GPU 能够解决复杂的计算问题。其包含的 CUDA 指令集架构(ISA)以及 GPU 内部的并行计算引擎可针对当前深度学习计算进行加速,但是由于深度学习算法还未完全稳定,若深度学习算法发生大的变化,则 GPU 存在无法灵活适配问题。
FPGA在深度学习加速方面具有可重构、可定制的特点。因FPGA没有预先定义的指令集概念,也没有确定的数据位宽,所以可以实现应用场景的高度定制。但 FPGA 的灵活性(通用性)也意味着效率的损失。由于 FPGA 应用往往都需要支持很大的数据吞吐量,这对于内存带宽和 I/O 互连带宽要求很高。同时由于逻辑利用率低,引发无效功耗大。FPGA 市场化的主要阻碍是成本高昂,价格在几十到几万美元一片不等,且应用者必须具备电路设计知识和经验。由于 FPGA 省去了流片过程,在深度学习发展初期成为计算芯片主要解决方案之一,在 GPU 和 ASIC 中取得了权衡,很好的兼顾了处理速度和控制能力。
ASIC(专用集成电路,ApplicaTIon Specific Integrated Circuit)是不可配置的高度定制专用计算芯片。ASIC 不同于 GPU 和 FPGA 的灵活性,定制化的 ASIC 一旦制造完成将不能更改,所以初期成本高、开发周期长,使得进入门槛高。但 ASIC 作为专用计算芯片性能高于FPGA,相同工艺的ASIC计算芯片比FPGA计算芯片快5-10倍,同时规模效应会使得 ASIC 的成本降低。但高昂的研发成本和研发周期是未来广泛应用的阻碍。
ASIC 主要生产企业包括如 Google 的TPU 系列计算芯片,以及国内的寒武纪、地平线等公司。 TPU 的核心为脉动阵列机,其设计思想是将多个运算逻辑单元(ALU)串联在一起,复用从一个寄存器中读取的结果,从而有效平衡了运算和 I/O 的需求。但其只适合做信号处理的卷积、信号和图像处理(signal and image processing),矩阵算术(matrix arithmeTIc)和一些非数值型应用(non-numeric applicaTIon)。 另一类 ASIC 代表企业为国内寒武纪,其 DianNao 系列核心思想为结合神经网络模型的数据局部性特点以及计算特性,进行存储体系以及专用硬件设计,从而获取更好的性能加速比以及计算功耗比。