post top image

《中国计算机学会通讯》刊发比特大陆文章:《AI驱动的又一个星球级计算》

导读:《中国计算机学会通讯》是中国计算机学会的旗舰刊物,面向计算领域的专业人士,宏观论述计算机领域各学科方向研究进展和发展方向。日前,《中国计算机学会通讯》刊登了比特大陆 CEO 詹克团的文章,文中阐明了人工智能为芯片设计业带来的机遇与挑战,讨论了深度学习芯片未来发展的方向。同时,介绍了比特大陆首款面向AI应用的张量处理器——SOPHON BM1680,这也是继谷歌TPU之后,全球又一款用于张量计算加速的专用芯片(ASIC)。

关键词:人工智能 张量处理器 深度学习芯片


深度学习是又一个星球级计算

比特大陆是2013年成立的一家致力于虚拟货币芯片研发的公司。我们采用全定制方法设计高速低功耗的芯片,在性能上可以实现数量级的提升。目前,比特币全球网络的算力已经达到了每秒10 Exa次DHash运算,如果我们简单地把一次DHash运算等效为一次浮点运算(FLOP),那么,比特币全网算力接近300台天河二号超级计算机的算力。比特币网络的算力分散在全球众多矿机中,算力巨大、分布广泛,可以说比特币网络是一个分布式的“星球级”的计算。

在虚拟货币矿机上小有成绩之后,2015年,我们发现深度学习计算芯片是一个新的机会。我们认为,在新算法和巨大市场需求的驱动下,深度学习将成为下一个星球级的计算。

首先,我们讨论互联网短视频这个市场容量较小的领域。今天,全球有34亿互联网用户,假设每人每天产生20分钟的视频,从每秒的视频中取出两帧来做分析,保守估计,每帧需要0.1TFLOPS做计算,那么这个领域所需要的算力就是10 Exa FLOPS,大致相当于比特币全网算力。

再来看语音应用。假设每人每天产生30分钟的语音,处理每秒的语音需要1TFLOPS的算力,分析这些语音的算力约为70 Exa FLOPS,这已经是比特币全网算力近一个数量级的提升。

在上述两个估算中,我们都采用了较保守的假设,并未考虑语音和视频在时间和空间上的不均匀性。在很多情况下,大量的人会在同一时间集中在同一个计算集群上面生成语音和视频数据,而且要求该集群要能够实时地处理这些数据,因此实际需要的计算量会更大。

视频监控的应用需求的规模更大。2017年全球的摄像头数量达到了140亿只,未来5年将维持两倍多的年复合增长率。我们仅取其中的监控摄像头(图1红色部分)来做分析。监控摄像头在2017年约为4亿只,假设每一路摄像头需要用0.5TFLOPS的算力,2017年需要210Exa FLOPS的算力来处理全球的监控摄像头,相当于比特币全网算力的20倍。“看得懂”是监控的硬需求,摄像头需要24小时不间断地工作,所以假设所有摄像头的数据全部需要实时地进行智能分析,这是合理的。

5b1f32ec26923.png

图1 全球视频监控摄像头数量和人口数量发展趋势

上述三个例子所需要的算力总和大概是300 ExaFLOPS。深度学习还有大量的其它应用场景,例如智能驾驶。根据市场咨询公司IHS的数据,到2035年将有1000万辆自动驾驶汽车上路,假设每秒钟每辆车产生大约100 MByte数据,每辆车每秒钟需要超过100T FLOPS的计算能力,这就需要超过1000 Exa FLOPS。如此高的算力,必须在汽车有限的空间和电力供给下满足计算需求,同时不能增加太多成本,这对芯片的性能和功耗带来巨大挑战。

人工智能给芯片设计业带来的机遇和挑战

全球PC芯片的产量是2.5亿只,假设是双核CPU,每个核心每周期完成4次浮点操作,主频2.5GHz,3年使用寿命,那PC芯片的总算力是15 Exa FLOPS。手机每年的产量是15亿只,假设是双核CPU,每周期4次浮点操作,主频1.5GHz,2年使用寿命,手机芯片的总算力约为36 Exa FLOPS(见图2)。因此,在2017年,上述三大应用对深度学习算力的需求,比目前PC和手机芯片所能提供的算力高了近一个数量级。这是巨大的计算需求,如果没有性能卓越的深度学习专用芯片,以目前全球集成电路制造业的产能,将无法制造出足够的芯片来满足目前应用的需求。

5b1f33dbe1d3a.png

图2 全球星球级计算的计算量比较

假设PC和手机的工作时间占30%,服务器工作时间占80%,比特币矿机的工作时间100%,那么,这三大类芯片的全球总功耗都在1000-3000兆瓦之间(见图3)。如果按照每TFLOPS计算的功耗10瓦计算,300 Exa FLOPS深度学习计算的功耗大约是3000兆瓦,和全球PC消耗的总功耗相当,是服务器总功耗的两倍,这将对云服务的基础设施提出巨大的挑战。因此,为了能够持续推广深度学习的应用,我们需要更加省电的深度学习芯片。

5b1f34995febe.png

图3 全球星球级计算的功耗比较


在过去的30年中,超级计算的性能基本上每十年翻1000倍。随着摩尔定律的减缓甚至终结,未来十年我们是否还能实现1000倍的性能提升?这个问题值得计算领域的朋友思考。超级计算最大的挑战依然是功耗,包括芯片本身以及大规模集群的功耗。另外一个很大的挑战就是内存墙(Memory wall)。为此,研究者开发了很多内存计算的技术,但可能也解决不了所有的问题。此外,并行软件编程的很多技术目前尚不成熟,值得学术界和产业界协作,进行更多探索。设计计算机体系结构的时候,通用和高效始终是一对矛盾,无法两全。虽然深度学习的计算量和数据量都非常庞大,但是计算功能并不复杂,数据也相对规则,受限于摩尔定律的减缓,我们认为深度学习应该走专用芯片的路径。

Systolic 阵列成为云端深度学习芯片的主流架构

深度学习的计算本质上是多维矩阵,即张量(Tensor)的计算。目前有很多公司在设计面向深度学习张量计算的芯片。传统的指令级别并行的CPU是非常通用的一种体系结构,但是做张量计算的效率非常低。GPU采用线程级别并行,通过线程切换来平衡计算资源和内存带宽之间的矛盾,从而实现通用的大规模并行计算。虽然用GPU做张量计算的效率远高于CPU,但是其效率依然不理想。因此,对于专用张量计算需要采用与CPU和GPU不同的体系结构。

5b1f34cf41aba.png

图4 深度学习芯片采用systolic架构实现矩阵的乘法


深度学习计算具有非常典型的流水线特征,单个云端深度学习张量计算芯片功耗高达上百瓦,因此在一个芯片内可以集成多个计算单元来进行大规模的卷积等计算。基于这些特点,云端深度学习张量芯片非常适合用Systolic架构来实现(见图4)。在云端深度学习计算芯片中,超大规模的Systolic阵列具有得天独厚的优势,我们可以用硬件来自动实现多维的数据搬运和计算任务的分配,以获得非常高的性能。此外,Systolic架构实现非常简单,很容易在电路层面进行更深入的定制,非常适合用专用集成电路(Application Specific Integrated Circuits,ASIC)做定制设计。

谷歌的TPU就是基于Systolic的架构,它的计算效率就比英伟达(Nvidia)的GPU高出了一个数量级。英伟达最新的Volta架构,也加入了专门的Tensor Core来提升张量计算的效率,其本质也是Systolic阵列。云端深度学习的加速芯片的体系结构都在向Systolic阵列靠拢,本质上是各种改善型的Systolic阵列。

SOPHON BM1680:比特大陆第一代深度学习计算芯片

SOPHON是比特大陆深度学习产品的英文品牌,中文名为“算丰”。SOPHON是科幻小说《三体》的英译本中的智子,这是由英文译者创造出来的英文单词名称,“SOPH-”表示智慧,“-on”表示粒子。

BM1680是比特大陆第一代深度学习计算芯片,基于自主设计的增强Systolic结构,采用28纳米工艺,是Google TPU之后首款深度学习云端专用芯片。BM1680自2015年底开始设计,2017年4月投片,目前已经实现量产。基于BM1680我们还开发了深度学习加速卡,可运行GoogleNet、ResNet、AlexNet等经典网络模型。同时,我们还开发了完整的服务器SS1,已经实现了人脸检测和识别等。

未来的深度学习芯片还有待更多的技术突破,其市场前景也将更加广阔。通过持续创新、快速迭代,期待把深度学习计算加速产品和系统做到极致,服务好需要用到深度学习加速服务的人工智能行业应用。