AI芯片的需求,特征和发展,这是一个很大的话题,但也是很值得反复思考的话题。深度学习算法的突破性发展,给当前的硬件设计带来了很不一样的设计思路,也带来了更多的创新和机遇。这里谈谈个人对AI芯片设计的粗浅理解,抛砖引玉,希望大家多多发表看法。
作者:MikesICroom
原文:https://zhuanlan.zhihu.com/p/78174890
在传统机器学习的时代,算法的调优很大程度上依赖人的优化,需要人类的知识和经验来设计匹配的算法,调整参数,构建系统。这样产生的结构通常非常复杂,而通过人工分析优化的过程也是痛苦而漫长的。深度学习的思路截然不同,通过简单清晰的基础模型搭建出多层相互关联的深度系统,使用机器进行算法调优,通过海量数据不断的进行训练和推理,反复迭代,取得一个局部最优解。这样将人从繁复的算法调优中解放出来,更多的关注模型的构建,而将调优的工作交给计算机,极大的发挥了后者在算力上的优势。这样的设计被称为Software 2.0 。从AlexNet在图像识别领域开创性的突破开始,Software 2.0逐步在各个领域超越传统算法,形成不可阻挡的全面替代趋势。
使用机器进行迭代的基础就是数据。对精度的要求催生了不断加深的模型系统,因而计算机需要成倍的数据进行学习和迭代来获取更多特征参数。上图可以看到,这个数据量增长的趋势是很恐怖的。由于互联网的快速发展,获取数据已经不是什么难事,如何在摩尔定律失效的时代通过其他手段,更高效的处理数据才是更重要的,这个高效,不是10%,20%的提升,甚至不是几倍的提升,而需要成百上千倍的提升。这个要求甚至远远超过了摩尔定律时代所能带来的进步,需要架构上的颠覆性的创新。正像David Patterson所说的:“现在是体系架构的下一个黄金时代”。
深度学习的架构会呈现出什么样的特点?有几点可能是很重要的。第一,专用性。这里的专用是对比CPU这样的通用性而言。它需要针对深度学习的算法特点,设计出一套专用的结构,符合其内存模型,运算性质,交互特征,才能发挥出最大的性能。第二,灵活性。深度学习的模型虽然有一定的规律,但是整体的算法上还是很多样的,不会也不可能形成诸如H.264,MP3这样的标准。因此,架构一定需要很好的灵活性,可以适配多种多样的算法模型;第三,更紧密的软硬件结合设计。深度学习的架构会比以往的领域更深刻的呈现出软件和硬件紧密结合的趋势,软件定义硬件的行为,硬件反馈软件的调度。深度学习领域,有可能不会像PC和移动领域那样,出现INTEL和ARM这样的寡头,而是通过软硬件不同方式的协同,出现百花齐放的局面。这也是这个时代的芯片工作者们的机遇。
除此之外,由于深度学习对数据算力的需求远远超过传统算法,对架构设计也提出了新的挑战。为了突破冯诺依曼架构下内存访问的瓶颈,提出了存算一体化的方法,尽可能紧密的将运算单元和存储器结合在一起,避免数据交换的损失。为了匹配深度学习图结构的运行方式,提出了粗粒度可重构的概念,根据图结构的连接关系对硬件单元进行重构配置,实现类似于专用硬件的性能。又根据某些特殊的AI算法如脉冲神经网络(SNN)2值激活的特征,设计了全异步数据交互的电路,以极低的功耗模拟人脑神经元的连接和激活方式。如何根据具体算法的特征设计更针对性的硬件架构,是深度学习进行Domain Specific Architecture(DSA)设计的关键。
深度学习的专用性导致了针对其架构设计上的不同。深度学习模型的输出不是精确的结果,而是非精确的分类或者描述。这个和精确计算的通用CPU或GPU截然不同。前者对误差的容忍度要高的多,因此如何选择合适的运算精度和方式,是深度学习加速器百倍提升的关键。同理,它的内存模型也可以很简单,甚至不需要处理繁复的一致性,连贯性,数据冲突等,只要结果在正确范围内就可以。很多传统架构中为保证正确而设计的结构都可以舍弃,用来换取更多的运算能力和执行效率。因此,深度学习加速器是一个非精确的架构,需要打开思路,抛弃原来的条条框框,探索更多的可能性。
在不同的应用场景下,很多硬件结构都能找到其适合的应用场景。传统的CPU具有非常高的灵活性和可编程性,并且有大量的软件系统支持,在一些传统机器学习领域仍然是不可替代的。GPU通过高并行的计算能力和成熟的并行软件开发系统(CUDA),使设计人员可以快速方便的进行算法开发和迭代,占据训练领域的主要算力。FPGA由于其硬件二次开发的能力,可以提供系统部署之后的硬件升级,在一些算法变化频繁并且功耗敏感的应用领域有优势。TPU类的深度学习加速器针对某一个特定算法(如CNN和RNN)的特点进行加速,可以提供该算法下更高的性能和更优的功耗,即Domain Specific Architecture(DSA)设计。随着人工智能算法的不断演进,会有更多的专用体系架构被一一提出,软件和硬件之间相互影响和制约,也相互促进和发展。人工智能被称作信息革命后的第五次产业革命,会从根本上改变整个社会的协作体系,改变每个行业的既有规则。而AI芯片正是这次革命的基础。这次中国的差距并不大,能否突破既有的限制,使中国成为人工智能领域的领导者,就是我们这一代IC人的光荣而艰巨的使命了。
参考ppt来自斯坦福大学2018年推出的一门针对深度学习加速器的课程:Hardware Accelerators for Machine Learning,系统性的介绍推理和训练的AI硬件架构及设计方法。课程共20节,包括深度学习的算法分析,典型硬件结构设计,以及工业界人士的客座访谈等,可以说是研究和产业结合紧密的教学方式。相关课程的课件、视频以及相关资料可以关注我的公众号MikesICroom。我会在之后的几个月里不定期更新对课程的学习和分析,欢迎大家多多批评指正,共同学习提高。
[1]文中图片来自Stanford CS217 Lecture 1. Hardware Accelerators for Machine Learning (CS 217)
推荐阅读
更多AI处理器架构设计的技术干货,欢迎关注公众号MikesICroom,
同时欢迎关注AI处理器架构设计专栏。