AI的使用会给芯片技术带来哪些新的变化?

拓荒号:陈峰 (企业头条)

现在说AI是未来人类技术进步的一大方向,相信大家都不会反对。而AI和芯片技术的关系主要体现在两大方面:第一,AI的发展要求芯片技术不断进步;第二,AI能直接促进于芯片技术的进步。



AI成为芯片技术的主要驱动力
AI,特别是深度学习,这几年爆发性的发展,很大程度上得益于芯片技术多年的积累。如果不是芯片技术已经发展到了一定的高度,能够给大规模的机器学习提供足够的处理能力,我们肯定看不到战胜人类顶尖棋手的AlphaGo。可以说,过去10年驱动芯片技术发展的主要是通信,多媒体和智能手机应用。不夸张的说,是苹果在赶着芯片产业往前跑。而随着这些应用增长放缓,相信未来赶着我们向前跑的主要会是各种AI的需求。

当然,即使没有AI,芯片技术也会发展。这里我想和大家看几个例子,个人感觉AI的驱动效应在它们身上可能会有更明显的体现。

异构计算(Heterogeneous Computing)

未来的AI硬件平台,一定是一个异构系统。Training应用一般是CPU+GPU,这方面Nvidia的CUDA已经比较好的解决了异构计算的问题。但对于一个Inference硬件平台来说,异构的环境要复杂的多。在一个支持Inference的平台中,除了CPU,GPU,很可能还会有DSP,ASP,硬件加速器和FPGA。



这种环境如何有效的发挥各种硬件的效率,提供统一易用的软件接口,就是个很大的问题。之前的很多尝试,比如OpenCL,HSA都没能真正解决这个问题。而这个问题能不能解决,既是技术问题,也有利益上的角力。不管怎样,在AI应用的驱动下,这个问题会越来越凸显。AI的火热能不能推动这个问题的解决,很值得关注。


DSC和DSA(Domain-Specific Computing/Architecture)
在之前一个演讲中,计算机体系结构的宗师David Patterson说到,“我认为未来之星是深度学习领域的DSA处理器。深度学习的重要性我想在座的都很清楚。”。我个人算是一直对这个领域有所研究,对Patterson的看法也很赞同。不过,这个方向的提出也不是一天两天了,要实现它的愿景,需要做很多的工作(就像我之前的文章“专用处理器设计方法&工具”提到的)。总的来说,这是一整套方法学,需要设计语言,模型和工具的多方面支持。虽说我们都知道“工欲善其事,必先利其器”的道理。但在实践中很多时候我们并没有这个耐心和时间。希望,AI能给这个“看起来很美”的技术一个有力的推动吧。

历久弥新的Dataflow架构

GoogleTPU的推出,让我们重新认识了脉动阵列(脉动阵列 - 因Google TPU获得新生)。而目前很多神经网络硬件加速器的设计,也都借鉴了脉动阵列,CGRA(Coarse-Grain Reconfigurable Architecure)这些“古老”的技术。实际上,我们现在需要解决的问题(比如卷积运算的加速),并不是一个全新的问题,前人已经有了很完整的研究。虽然AI是个全新的应用,但它却给了很多老的架构和技术新的机会。这也是一个很有意思的现象。



Near-Data Processing/模拟和混合信号设计/存储器设计
把深度神经网络的Inference放到里数据源更近的地方,可以降低整个系统的复杂度,减少不必要的数据搬移,从而优化功耗和成本。其中PIM(Processing in Memory)主要是把处理直接放在存储单元的位置,这需要在电路(模拟信号)的层面重新设计存储器。而把处理放在sensor当中也是一大趋势,这里既可以是直接在sensor中用模拟或者混合信号电路做一些处理,也可以是在传统的ISP中增加智能处理的功能。具体可以看看(深度神经网络的模型·硬件联合优化,嵌入式机器学习处理器的技术挑战和机会,以及相应的参考资料)

FPGA

我从2000年开始用FPGA,一直把FPGA作为芯片验证的手段,而非直接的产品。但随着深度神经网络需求的爆发,FPGA作为inference的平台表现出很好的特性(灵活性和效率的平衡),在很多场景可以直接为应用服务。因此,可以预见,我们可以在FPGA领域看到快速的发展。首先,FPGA器件(Xilinx和Intel/Altera是主要供应商)本身的功能会越来越强大。Xilinx最新的高端FPGA已经是一个非常复杂的SOC平台了,除了传统的FPGA电路,还集成了多核CPU,硬件的视频编解码功能,DDR接口,PCIe接口等等,很适合做大规模的inference应用。另一方面,不管是Xilinx还是Intel,都在改进FPGA的软件开发环境,试图对深度学习提供更好的支持。



当然,这里我讨论的主要是芯片设计技术。而另一个重要的方面,工艺的发展,我不是很熟悉,就不在这里妄加评论了。

AI应用于芯片设计和生产
如果说AI应用会“逼着”芯片技术向前发展,它同时也会在很大程度上帮助芯片技术向前发展。

深度神经网络最强大的地方在于,通过对大量数据进行学习,可以自己对问题进行建模并提取feature或者作出判断。从某种程度上说,它已经强大到我们无法理解的程度了(或者说和我们人类获取知识的方式并不相同)。


而芯片设计和制造,都是在和大量数据以及复杂的模型打交道,利用神经网络的优势是自然而然的思路。另一方面,芯片设计和制造又是高度依赖自动化设计工具的领域,这些EDA工具中很多环节的算法也都有可能通过结合AI来获得更好的效果,或者提高生产效率。



所以说,AI应用于芯片设计和生产,是有很大的想象空间的。至于具体的脑洞,也欢迎大家和我讨论。

(科技产业责编:陈峰 )
2021年05月14日 10:39[查看原文]