前段时间和朋友交流,我说将来AI会是芯片技术进步的主要推进力。他问详细表现在什么方面呢?我说“办法,架构,完成和工具都会有吧”。后来不断在思索这个问题,似乎如今能够更全面的答复一下。当然,讨论这种大话题我也很忐忑,各位就当做是和我的一次闲谈吧。
AI,特别是深度学习,这几年迸发性的开展,很大水平上得益于芯片技术多年的积聚。假如不是芯片技术曾经开展到了一定的高度,可以给大范围的机器学习提供足够的处置才能,我们肯定看不到打败人类顶尖棋手的AlphaGo。能够说,过去10年驱动芯片技术开展的主要是通讯,多媒体和智能手机应用。不夸大的说,是苹果在赶着芯片产业往前跑。而随着这些应用增长放缓,置信将来赶着我们向前跑的主要会是各种AI的需求。
将来的AI硬件平台,一定是一个异构系统。Training应用普通是CPU+GPU,这方面Nvidia的CUDA曾经比拟好的处理了异构计算的问题。但关于一个Inference硬件平台来说,异构的环境要复杂的多。在一个支持Inference的平台中,除了CPU,GPU,很可能还会有DSP,ASP,硬件加速器和FPGA。这种环境如何有效的发挥各种硬件的效率,提供统一易用的软件接口,就是个很大的问题。
之前的很多尝试,比方OpenCL,HSA都没能真正处理这个问题。而这个问题能不能处理,既是技术问题,也有利益上的角力。不论怎样,在AI应用的驱动下,这个问题会越来越凸显。AI的炽热能不能推进这个问题的处理,很值得关注。
在之前一个演讲中,计算机体系构造的宗师David Patterson说到,“我以为将来之星是深度学习范畴的DSA处置器。深度学习的重要性我想在座的都很分明。”。我个人算是不断对这个范畴有所研讨,对Patterson的见地也很赞同。
不过,这个方向的提出也不是一天两天了,要完成它的愿景,需求做很多的工作(就像我之前的文章“专用途理器设计办法&工具”提到的)。总的来说,这是一整套办法学,需求设计言语,模型和工具的多方面支持。虽说我们都晓得“工欲善其事,必先利其器”的道理。但在理论中很多时分我们并没有这个耐烦和时间。希望,AI能给这个“看起来很美”的技术一个有力的推进吧。
GoogleTPU的推出,让我们重新认识了脉动阵列(脉动阵列 - 因Google TPU取得重生)。而目前很多神经网络硬件加速器的设计,也都自创了脉动阵列,CGRA(Coarse-Grain Reconfigurable Architecure)这些“古老”的技术。实践上,我们如今需求处理的问题(比方卷积运算的加速),并不是一个全新的问题,前人曾经有了很完好的研讨。固然AI是个全新的应用,但它却给了很多老的架构和技术新的时机。这也是一个很有意义的现象。
深度神经网络最强大的中央在于,经过对大量数据停止学习,能够本人对问题停止建模并提取feature或者作出判别。从某种水平上说,它曾经强大到我们无法了解的水平了(或者说和我们人类获取学问的方式并不相同)。而芯片设计和制造,都是在和大量数据以及复杂的模型打交道,应用神经网络的优势是自但是然的思绪。另一方面,芯片设计和制造又是高度依赖自动化设计工具的范畴,这些EDA工具中很多环节的算法也都有可能经过分离AI来取得更好的效果,或者进步消费效率。