IBM开发全新的深度学习芯片,旨在极大提高利用率
2018年07月03日 由 浅浅 发表
165574
0
深度学习领域仍在不断变化,但有些事情已经开始着手解决。特别是专家们认识到,如果芯片使用低精度数学近似得出答案,神经网络可以用很少的能量完成大量的计算。这在移动和其他功率受限的设备中尤其有用。但是一些任务,特别是训练神经网络做任务,仍然需要精确。IBM最近在IEEE VLSI Symposia上展示了其最新的解决方案,仍然是原型,一种同样做得很好的芯片。
训练神经网络和使网络执行其功能(推理)的需求之间的脱节对于那些设计加速AI功能的芯片的人来说是一个巨大的挑战。IBM的新型AI加速器芯片能够满足公司所谓的伸缩精确度。也就是说,它可以在32位,16位或甚至1位或2位进行训练和推理。
“你可以为训练做的最先进的精度是16位,你可以做的最先进的推理是2位,” Kailash Gopalakrishnan解释说,他是IBM约克镇高地研究中心技术人员的杰出成员,他领导了这项工作,“这个芯片可能涵盖了今天已知的最佳训练和最好的推理。”
芯片完成所有这些工作的能力源于两项旨在实现相同结果的创新,即保持所有处理器组件的数据和工作。
“在深度学习方面,传统芯片架构面临的挑战之一是利用率通常非常低,”Gopalakrishnan说。也就是说,即使芯片可能具有非常高的峰值性能,通常只有20%到30%的资源可以用来解决问题。IBM始终将所有任务的目标定为90%。
利用率低通常是由于芯片周围数据流的瓶颈。为了突破这些信息障碍,Gopalakrishnan的团队想出了一个“定制”的数据流系统。数据流系统是一种网络方案,可加速数据从一个处理引擎到下一个处理引擎的移动。它根据是处理学习还是推理以及不同的精度来定制。
第二个创新是使用一种特殊设计的,称为“高速暂存记忆区(scratch pad)”的芯片内存,而不是在CPU或GPU上发现的传统缓存内存。缓存是为了遵守某些规则而构建的,这些规则对一般计算有意义,但会导致深度学习的延迟。例如,在某些情况下一个缓存将一大块数据的计算机主存(驱逐),但是如果这些数据作为神经网络的一部分需要年代推论或学习过程中,该系统将不得不等到它可以从主存储器中检索。
高速暂存记忆区不遵循相同的规则。相反,它是为了保持数据流经芯片的处理引擎而构建的,确保数据在恰当的时间处于正确的位置。为了获得90%的利用率,IBM必须设计具有巨大读/写带宽(每秒192千兆字节)的高速暂存记忆区。
由此产生的芯片可以执行当今所有三种主要的深度学习AI:卷积神经网络(CNN),多层感知器(MLP)和长短期记忆(LSTM)。Gopalakrishnan解释说,这些技术共同主导了语言,视觉和自然语言处理。在训练精度为16位典型的情况下,IBM的新芯片每秒钟通过1.5万亿次浮点运算,以2位精度最佳推理,每秒12万亿次。
Gopalakrishnan指出,由于芯片是采用先进的硅CMOS工艺(GlobalFoundries的14纳米工艺)制造的,因此每秒所有这些操作都包含在一个相当小的区域内。对于推理CNN,该芯片每平方毫米平均可执行1.33万亿次操作。这个数字很重要,因为在很多应用中,成本受到尺寸的限制。
新的架构也证明了IBM研究人员几年来一直在探索的东西:如果神经网络以更高的精度训练,那么真正低精度的推理就无法正常工作。“当你低于8位时,训练和推理开始直接相互影响,”Gopalakrishnan说。一个训练为16位但部署为1位系统的神经网络将导致重大错误。因此,最好的结果是以与最终执行方式类似精度来训练网络。
没有任何关于这项技术何时可能以Watson或其他形式商业化的消息,但Gopalakrishnan的老板Mukesh Khare,IBM的半导体研究副总裁,表示希望它能够发展和改进。“这只是冰山一角,我们正在进行更多创新。”