本文共 1124 字,大约阅读时间需要 3 分钟。
尽管使用现有商用技术构建的 GPU 集群已经可以训练大规模神经元网络,但其所需要的平台仍然需要很高的成本和能耗。随着深度学习的应用日益广泛,业界迫切需要比现有通用平台更加低成本和低功耗的深度学习硬件平台。
现有的商业通用处理器和 GPU 都不是为深度学习专门设计的,其中有很多部件对深度学习来说是浪费的,能否设计专用的机器学习处理器,使其性能和功耗特征能够大大优于通用处理器?
令人欣喜的是,中国科学家在这个方向的研究工作走在了世界前列。中国科学院计算所的陈天石等研制了名为“电脑”的专用机器学习处理器[11]。“电脑”主要包括输入神经元的缓冲区(NBin)、输出神经元的缓冲区(NBout)、突触权重的缓冲区(SB)、计算单元(NFU,Neural Function Unit)以及控制单元 CP 等部分。如图 3 所示。
由于晶体管数的限制,在一个芯片内集成数万个神经元会造成很高的成本和功耗,芯片的复杂度也会大大增加,因此如何能够在仅包含少量硬件神经元的处理器上完成大规模神经元网络的功能是一个非常关键的问题。“电脑”的主要创新之处在于综合使用片内存储和片内硬件神经元,通过循环缓冲区等方式与算法结合,很好地挖掘了输入和输出神经元的局部性,从而达到了在支持少量神经元网络的芯片上高效支持大规模神经元网络的目标。
“电脑”的其他重要优化包括:①采用 16 位精度进行计算,从而比通用处理器中的 32 位单精度浮点运算降低了对资源的需求,提高了性能,同时仍然能够满足大部分神经网络应用的精度需求;② sigmoid 函数的线性近似等。
模拟结果显示,“电脑”芯片可以比通用 CPU处理器的深度学习速度快 100 多倍,而消耗的能量只有通用处理器的 1/20。
“电脑”尽管挖掘深度学习算法中的访存局部性,大大减少了不必要的片外访存,但是访存开销仍然是制约“电脑”芯片进一步提升性能的关键因素。为了解决这一问题,陈云霁等提出了“大电脑”处理器,利用 eDRAM 技术将内存封装在学习芯片里面,从而大大缓解“电脑”所遇到的访存瓶颈问题[12] ;多片“大电脑”芯片互联,可以达到同期 GPU 性能的 400 倍以上,能耗仅为 GPU 的1/150。
陈天石、陈云霁等还提出了“普电脑”处理器,根据“电脑”“大电脑”的思想,为深度学习之外的机器学习算法 ( 如 KNN、KMeans 等 ) 提供了硬件支持,有兴趣的读者可以阅读相关论文[13] 。
工业界对深度学习专用芯片也给予了特别的关注,高通公司计划在其骁龙 820 手机芯片中包含深度学习处理模块,使得手机可以不需要云端支持就能完成一些复杂的照片和视频处理任务。
转载地址:http://dxcfl.baihongyu.com/