先前我们用多篇文章介绍了来自英国初创公司Graphcore的AI芯片IPU,在技术方面有哪些特点,以及这些特点对于机器智能(AI、机器学习)有何价值。包括上个月,Graphcore发布的第二代IPU产品(及扩展能力),都在构造CPU、GPU之外的“第三类芯片”产品——即专用于AI计算的芯片上,迈出了不小的步子。
近期Graphcore联合创始人兼首席执行官Nigel Toon,以及Graphcore高级副总裁兼中国区总经理卢涛在中关村论坛上,就IPU产品的市场规划做了进一步的解读,尤其是在中国市场的发展和布局方面。我们期望通过这篇文章,来谈谈IPU的落地——这也是过去我们比较少提到的部分。
Graphcore联合创始人兼首席执行官Nigel Toon
从存储系统来谈“第三类芯片”
先前针对IPU产品的介绍其实已经比较多了,建议有兴趣的朋友移步阅读更早的IPU相关文章[1][2]。本文的IPU介绍部分,我们尝试主要从存储的角度,来谈谈其特性。
“第三类芯片”这个概念的出现,在理念上是对IPU的最形象解读。而“第三类”,是指CPU、GPU这两类芯片之外的,第三类芯片。ARM联合创始人Hermann Hauser先前曾这样评价过Graphcore:“在计算机历史上只发生过三次革命,第一次是70年代的CPU,第二次是90年代的GPU,而Graphcore就是第三次革命”。这次,我们从存储的角度来谈谈,为什么需要“第三类芯片”。
2012年AI还不像现在这么火热,AlexNet率先选择GPU来加速图像识别过程,赢得了当年ImageNet视觉识别挑战赛的冠军。这让更多人意识到,AI计算需要的是高度并行计算、大容量更靠近执行单元的存储系统,这些CPU或通用处理器不具备的能力——显然GPU具备了这方面的先天优势。
不过随着AI算力需求的持续提升,GPU作为一种原本为图形计算准备的处理器,也开始在效率方面显得捉襟见肘。举个比较典型的例子,GPU无法直接执行用于深度神经网络的小型卷积,需要采用一种lowering转换操作,将卷积转为矩阵乘法(GEMM)。
这种lowering操作本身能够一定程度缓解GPU执行低效的问题,但相应增加了activation(激活)或者weight(权重)存储压力;而且还有额外的输入数据、临时值和程序指令要保持和存储。加上GPU本身的SIMD执行宽度、数据精度等特性,当在高性能GPU之上进行ResNet-50训练、32组32位精度(1024bit宽)时,就需要超过7.5 GB的DRAM。
降低数据精度的价值在此并不大:针对weight和activation采用半精度值,采用32组(mini-batch),其实也就是浪费了一半SIMD矢量宽度。为了达成足够的数据并行能力,mini-batch size也需要加倍(这本身也会造成效率下降)。在GPU之上,用更低精度的weight与activation,其实效率也仍有折损,且对存储容量要求一样很高。尤其近些年,模型尺寸正在大幅增长,“从2016年1月到现在,模型参数规模基本上每三个月提高一倍。”卢涛表示。
当然,大容量DRAM在这个时代或许成本也不算太高。抛开针对模型本身的优化研究不谈,在存储容量要求这么高的情况下,就不可能将数据存储在GPU片内,因为片内存储资源的成本太高。外部DRAM本身在带宽和时延方面相当捉襟见肘,还需要各种加载weight、存储与获取activation的操作,对于模型训练的时间自然会产生很大的影响,而且会带来功耗方面的极大开销。
这实际上是“第三类芯片”诞生的一部分原因——包括IPU在内的AI芯片,即天然为AI计算做准备。这类芯片除了不需要前面提及的GPU转换操作,而且机器学习技术中的神经网络和知识模型,都以计算图的形式呈现出天然的高度并行性,本质上也就减少了本地存储资源的需求。
而且业界在AI计算的存储资源使用方面,也积累了大量的研究,比如软件compiler方面的技术推进,包括对存储资源的复用,比如通过分析网络中操作的数据依赖性,分配相同的存储资源给操作等。还有像是在编译时就对整个神经网络进行分析,构建固定的存储分配方式。以及,用计算资源来减少存储资源消耗的方案——典型方案是对那些算起来很容易的值进行丢弃操作,在必要时重新计算。
虽然我们不清楚Graphcore的IPU具体采用了哪些方案,但IPU作为专门的AI处理器,在存储和计算方面达成了一种比较出色的平衡。二代IPU(Mk2)延续了一代的架构,采用7nm工艺,核心数目达到了1472个(8832个可并行执行的线程)——而且为每个核心配备了片内SRAM,所以片内总共堆砌了900 MB的SRAM,每个IPU的Memory带宽为47.5 TB/s。
另外,在存储扩展上,针对IPU-M2000中的4个IPU提供至多450GB DRAM内存支持。Graphcore将其称作“Streaming Memory(流存储)”。这里的4个IPU,主要是因为在构成系统时,Graphcore提供IPU-M2000设备(算力约1 PetaFLOPs),内部就包含了4颗IPU芯片。这在系统上是比较传统的,兼顾了带宽和容量的多层级存储结构方案——Graphcore称其为IPU Exchange Memory技术。
而Exchange Memory是Graphcore面向开发者的软件Poplar SDK的一项特性,用于管理片内存储与流存储的协作——这就属于Graphcore在存储优化技术上的发挥空间了。它是一种在片内存储与流存储之间进行带宽与容量平衡的方案。对开发者而言,低层级的Poplar Graph编程框架中可以进行显式的存储管理;像TensorFlow这样的机器学习框架,也能利用模型的分阶段执行,实现任意时间点,仅模型所需的部分参数,才存放在本地SRAM存储器中等操作——而且Graphcore还在强化其自动化能力。
因此Graphcore宣传中提到,IPU目前的存储系统相比GPU带宽高100倍、容量大10倍。100倍说的显然是片内SRAM的带宽,而容量大10倍则是说流存储。其对比对象是英伟达现在面向AI计算的GPU HBM2存储方案。这一点大约就是IPU最大的杀手锏,毕竟存储和通信在这个时代的重要性,大过了计算本身。
IPU-M2000
此外,在IPU的算力扩展能力上,IPU-M2000设备集成了扩展网络,可以从一个小系统扩展到大规模的机架部署。Graphcore采用一种名为IPU-Fabric的技术来连接IPU,乃至盒子和机架。“2.8 Tbps超低时延结构”,最终可以扩展到64000个IPU,“通过直连或者通过以太网的交换机等技术进行互联。”
这样的大规模IPU集群通过IPU over Fabric接入到x86集群中;同时在IPU集群内部,一个IPU-Pod64机架内部通过IPU-Link连接——每个IPU-Pod64支持16个IPU-M2000;机架间连接网络则采用IPU Gateway Link——至多1024个IPU-Pod64,即512个机架(64000个IPU)。这样一来,16bit FP算力达到了16 ExaFLOPs。
“2020年Intelligent Health峰会上,微软的机器学习科学家分享了一个在EfficientNet之上进一步优化和发展的模型。该模型被用于处理COVID-19的X光影像。微软科学家发现在这样的应用中,GPU每秒只能处理166个图像。IPU能够将模型提升10倍以上,30分钟内完成英伟达传统芯片5小时的训练工作量。”卢涛说。
IPU应用到了哪些领域?
以上主要是从存储系统的角度,谈了谈IPU诞生及在AI计算领域替代GPU的必要性,也是我们认为IPU最具特色的部分。不过IPU值得仔细推敲的技术特色还有很多,包括Poplar SDK作为实现IPU高效计算不可或缺的软件组成部分,鉴于篇幅的关系本文不再多谈。这些仍建议参见我们先前撰写的有关IPU的文章。
而在第一代IPU、第二代IPU相继问世后,其落地和实际应用才是更多人关心的话题。我们也观察到IPU这些年,尤其是最近Graphcore与一些合作伙伴之间的合作愈发频繁,不仅是表现出IPU未来可期,更多体现了AI计算本身的愈发繁荣。这里我们尝试举几个比较典型的例子。
(1) IPU与微软Azure云
去年Graphcore宣布与微软达成合作,IPU正式步入微软Azure云之上。从Graphcore当时发布的新闻稿来看,其实在此之前微软就已经与Graphcore有了超过两年的合作。合作主要在加强高级机器视觉以及自然语言处理(NLP)模型方面。
NLP应该是本次合作的一个重点,这块市场按照Tractica的预计,2025年的AI硬件市场规模可以达到150亿美元。
这次合作中,微软和Graphcore针对BERT语言模型进行了性能和精度上的提升,用的是第一代IPU——包含8个C2 PCIe卡的IPU服务器系统,对BERT Base进行了56个小时的训练。在BERT推断方面,Graphcore提到客户获得了3倍的吞吐量,时延有超过20%的提升——参照上图,对比对象是英伟达V100。
卢涛在接受我们的采访时特别提到:“自然语言处理相关的应用场景发展非常迅速、潜力大,对训练的算力要求也很高,因此对Graphcore IPU来说是非常重要的应用场景。”上次在发布Mk2期间,卢涛就曾说过:“因为NLP方面,模型规模超级大、数据规模超级大,这就导致现在NLP都用比较大规模的算力集群来处理问题。”
(2) IPU与百度Deep Voice 3
除了Graphcore与百度PaddlePaddle的合作,百度TTS(text-to-speech)模型的训练也在IPU上表现亮眼。TTS也就是将文字转成语音(或相反)。早期的TTS主要专注在基本语言单位的最优联结问题上。后来类似Hidden Markov Models(隐马尔科夫模型)以及递归神经网络出现,输出低维的语音特征,再输出给信号处理算法(语音编码器)。
有了深度学习,通过训练模型就能更简单地生成和输出自然的语音。业界比较知名的是DeepMind的Wavenet模型,能够以不同的声音,生成自然语音;谷歌的Tacotron、微软的FastSpeech以及百度的Deep Voice;后来又相继规避了Wavenet模型本身的一些问题,实现低时延、高吞吐的推理应用。
右图是Deep Voice 3模型的解码器网络生成的mel标度频谱
百度在2017年发布Deep Voice模型。前两个版本针对不同阶段是独立的模型,比如字音转换、分段、音频持续时间、频率预测、最终波形合成等不同阶段。Deep Voice 3则完成了一个比较大的进步,整个TSS管线,是单个紧凑模型;采用卷积块的注意力模块,解码输入的文字序列,输出语音序列表达(mel标度频谱,mel-scale spectrograms)。
Deep Voice 3模型主要有三个组件:编码器、解码器和转换器网络。编码器网络的输入,是字符序列和声音来源身份信息,输出值再传递给解码器网络;解码器将获得的字符表达,解码为mel标度频谱。在训练的过程中,解码器接收实际的mel标度频谱,以及声音来源身份数据,学习重新构建mel标度频谱。在最终的推理过程里,解码器网络就能针对特定的说话人,以及给定的字符编码,来构建频谱。转换器网络再据此,来完成线性频谱。然后再把这个频谱交给传统的信号处理算法,就能合成最终的语音了。
在百度与Graphcore合作的过程里,Deep Voice 3模型就用PopART(Poplar Advanced Run Time),在IPU之上进行训练。从上图的对比数据可以看到,采用VCTK Corpus(一个多声音来源的数据集)做训练,总共44小时的录音,无论是第一代IPU,还是第二代IPU,其QPS(每秒查询数)相比都有至少6倍的领先。
(3) 其他应用与合作
近期Graphcore在其网站发布了一个新应用:布里斯托大学的研究人员用IPU加速粒子物理学中的计算任务。粒子物理学研究原本采用传统的HPC方式,但AI解决方案开始更多参与到其中。通过神经网络进行粒子鉴别,用IPU针对GAN(生成式对抗网络)来加速训练和推理过程,据说比GPU有着5.4倍的性能领先(Mk1 vs 英伟达P100)。
这一点代表的实质上是AI在更多领域的持续延伸。HPC原本是GPU的另一个重要高地,可见在AI这一类芯片具备一定的可编程性之后,在更多领域可能对GPU构成的威胁。
其他应用领域再比如,IPU与欧洲搜索引擎Qwant的合作,主要是用IPU运行ResNeXt图像识别模型——这其实算是IPU这种处理器的传统强项了。这个合作中也是借助微软Azure进行的。ResNeXt为了实现比较高的效率提升,将卷积模块切分成更小的可拆分的模块,这一点也是IPU自身的优势。
除此之外,IPU有一些早期的客户,包括金融领域的(利用AI来优化策略与资产类别的投资流程)、机器人领域(空间人工智能)等。这些相比GPU的性能与效率优势,其实并不令人意外,毕竟在专注度上,两者就是不同的。而这些案例更能代表的,实际上是AI计算在这个时代的逐步兴起。
Graphcore在中国的发展
从Graphcore公开的信息来看,Graphcore共发货IPU处理器超过一万颗,服务全球100多家不同的机构,虽然目前仍处在发展期。
而在中国的业务开展方面,Graphcore似乎也相当积极。不只是前文提到的Graphcore与百度的合作,前不久我们也在报道中提到,IPU开发者云已部署到金山云上。卢涛当时就提到:“这是个面向商业用户进行评测,以及高校研究机构,甚至个人开发者可提供免费试用的资源。”
这次的中关村论坛,似乎是Graphcore着力探讨在中国发展的一次演讲。Nigel Toon说:“Graphcore技术已经开始为一些非常成功的中国公司提供支持,并将推动中国那些发展最快、最具创新性的AI初创企业。”只不过有关合作的细节,要再过一阵才会公开。
Graphcore高级副总裁兼中国区总经理卢涛
从卢涛的发言看来,似乎在国内的合作与推荐算法有关:“很多互联网公司使用推荐算法模型,电商、搜索引擎、点评类网站背后都有推荐算法来支撑。目前Graphcore跟国内的一些机构在这一领域进行了很多探索性工作,也取得了非常好的进展,可能在未来一、两个月就可以跟大家分享成果。”
“我们正尽可能快地扩大中国团队。”卢涛说,“Graphcore中国团队有近30人,国内有三个办公室:北京、上海和深圳。”“Graphcore在中国也构建起自己的工程技术团队,一部分同事负责模型、算法和开发工作,一部分同事负责与研究机构、商业用户的创新者联合进行开发和探索。”
Nigel Toon则强调说:“中国可以成为机器智能开发和应用的领导者。这也是为什么Graphcore在中国找到了热情,并如此深度参与。中国比大多数国家都更了解如何从创新转向应用,了解在概念阶段投入正确的技术和资源的重要性,以及如何从概念阶段转移到动态生产阶段。”
卢涛谈到:“中国市场目前在Graphcore的整体市场中占比还较低。但中国的AI市场从体量上讲是全球最重要的市场之一,而从落地速度上讲是全球最快的市场之一,Graphcore目前正在紧锣密鼓地跟国内的合作伙伴进行落地化的工作,所以我们对明年有非常高的预期。”
责编:Luffy Liu