智东西(公众号:zhidxcom)文 | 家祥
本文根据IBM中国芯片设计部门高级经理尹文,在「智东西公开课」的超级公开课IBM专场《POWER 9-认知时代的驱动力》 上的系统讲解整理而来。
本次讲解中,尹文老师从内核微架构、总线互连、异构计算等方面对POWER 9处理器进行了系统讲解,并表示人工智能的发展,使得如何让整个硬件平台满足不断迭代和不断演化的算法成为一个挑战。大家也更加关注硬件和算法以及平台应用之间的耦合,以使人工智能应用具备更大的挖掘潜力。目前IT创新更多来自于加速器、I/O设备以及整个垂直软件栈和硬件之间的耦合,这些创新不仅仅能为深度神经网络提供加速的可能性,还可以满足上层的算法和应用进行不断迭代、不断延伸以及不断进化的需求。
尹文:大家晚上好,我是来自于IBM的尹文,感谢智东西提供交流的平台,能有机会跟大家一起交流。
今天分享的主题是《POWER 9-认知时代的驱动力》,我会重点跟大家介绍下POWER 9芯片的架构、技术特点以及一些技术策略,同时也会介绍如何基于POWER 9搭建人工智能应用的服务器和它的应用范围以及生态。
2008年,IBM首次提出了智慧地球这一概念,把计算又引入到了一个新的维度,就是计算本身可以感知世界本质的变化。另外,通过互联互通的技术让各个计算节点能够更多的互联互通,在这一基础上,计算机上面的负载以及所有的事务流程和运行方式也有了更加深入智能化的机会,因此企业在获得数据的同时,也更加需要一些智能的洞察。
如何来定义一个认知系统呢?我们认为,认知系统至少需要具备以下四个特点才能完成认知技术的定义。这四个特点可以缩写为URLI,也就是Understanding、Reasoning、Learning、Interaction。
首先在理解(Understanding)中,认知系统要像人类一样能够理解非结构化的信息。所谓非结构化,与它相对的是结构化数据,结构化数据是比较易于搜索,并且比较容易被大家所操作。比如进行一些排序或者查找等;而非结构化数据,往往是不容易搜索到的一些数据,包括我们所熟知的互联网上的音频、视频和社交媒体发布的种种多样的格式信息;
第二,认知系统必须要具备推理(Reasoning)能力,需要通过对数据进行吸收和消化形成一个基本的概念,能够产生假设推断、提取想法、作出决定等这些类人类的逻辑能力;
第三,需要有学习(Learning)能力,通过在数据的提取互动和成果当中不断地学习,去增加一些新的知识;
最后是互动(Interaction),需要认知系统有看、听、说等类似于人类五官的特点。
从这张图我们可以看到,数据的价值是在不断提升的。在AI领域,大数据、计算能力和算法都是必不可少的,而数据在其中起了非常重要的推动作用。之所以人工智能发展的速度这么快,也是由于大数据的兴起,而掌握流量入口的那些互联网公司在人工智能领域都有很大的话语权。
同时对数据本身来说也有很明显的变化。回到2010年,大家会发现非结构化数据并没有呈现出爆发性增长的趋势,但在2015年,绝大多数的数据都是来自于非结构化数据,比如各类文本图片、多媒体数据,也包括物联网所采集到的各种模拟参数等数据。
预测到2020年,整个数据量会达到几十个ZB的数量级。不管是零售业、高性能计算还是企业级的应用,如医疗、油气等这些行业,增长趋势基本上都是相同的。同时在2020年前后,每天新产生的数据都会达到上亿ZB的水平。因此可以看出,随着应用的驱动会带来更大的数据量的井喷,从而导致整个数据的消化吸收需要一些更加完善和更加智能的硬件平台。
刚才谈到认知的应用和大数据,我们知道现在大部分的应用都往云端转移,而这么多类型的认知应用,需要数据中心平台提供多大的计算力呢?可以看一下左边这张趋势图,黄色实线表示传统的数据量随着信息的增长呈线性增长趋势,红色虚线表示智能化对数据的要求呈指数增长的趋势,也就是智能化对数据的要求更高,而智能化对计算的需求也在呈指数级增长。
通过右边这张图可以看到,之前大量计算力的消耗都是在企业级应用负载上,比如传统的OA(办公自动化)、ERP(企业资源管理)以及CRM(客户关系管理)等企业级办公软件。
未来的互联网,包括云计算、人工智能等各方面都会对计算能力有新的要求。相比于传统的数据库中间件和企业应用都呈线性增长趋势,在未来我们会有更多商业智能,包括各种人工智能应用,在大数据和深度学习基础上会有更大规模的增长,这种增长将是指数级的。因此,随着摩尔定律线性的增长,到入口带来大量数据的处理以及之后在云上,数据中心会有更多商业智能应用出现,对计算力也会有不同量级的需求。
为什么DeepLearning和神经网络现在会被大家所熟知或者追捧呢?
基于神经网络的深度学习是人工智能方面的一些专家发明的,他们提出了各种各样的方法,包括反向传播、梯度下降训练、基于GPU神经网络的加速等。神经网络算法本身的结构是相对简单的,也非常有利于算法本身的扩展和延伸。从理论上来说神经网络算法可以近似为大家经常使用的一些函数,可以解决很多复杂和抽象的问题。神经网络算法也非常适合应用在图像识别领域,因为神经网络本质上解决的是分类问题,因此它在图像识别领域是一个非常直观和能够达到实际应用价值的落地方向之一。
算法需要与硬件加速结合起来。我们都知道神经网络的结构是非常规整的,它对硬件结构上的要求并不是那么高,因此硬件工程师可以简单地去堆砌和延伸计算单元。而现在神经网络中常用的计算单元是浮点乘加,这些计算单元的不断累积就可以实现对一定规模的神经网络算法的加速。随着芯片技术本身的不断延伸和进步,作为芯片开发者可以越来越容易将更多的计算单元集成到单块芯片上,从而达到算法的并行化,同时在计算的过程中,也不需要很复杂的逻辑控制。
从上图中右边的趋势图可以看到,最近几年通过搜索引擎对深度学习的搜索次数迎来了爆发性的增长,也说明越来越多人在深度学习上投入了大量的时间去研究和学习,推动深度学习和算法、硬件等各方面的发展。
深度学习之所以在最近几年会呈现指数级的增长,原因刚才我也提到,随着计算能力要求的提升,在之前的技术中,计算量大并且很难进行多层计算,而基于很多层神经网络的深度学习使得快速计算成为了可能,计算力和算法的结合就形成了人工智能当中的热点区域,直接带动很多人工智能应用的落地。
从图上我们可以看到,深度学习是机器学习领域中的一部分,从整个人工智能以及认知计算领域来看,它也只是冰山一角。因此,在整个认知计算中,我们要对很多人类所熟知的一些现象和数据进行更加高级的分析,这就对整个硬件平台以及计算力提出了更高的需求。
如何实现让整个硬件平台能够满足不断迭代和不断演化的算法也是一个挑战。
认知时代对数据中心硬件的需求越来越高。在芯片行业有一个摩尔定律,随着摩尔定律的不断延伸,即硬件计算能力将随着时间的延续可以不断地进行一定规律的增强。而随着芯片生产制造的设备以及整个架构支撑的投资方向的不断困难,摩尔定律正在不断的放缓,当半导体制造工艺达到7nm甚至5nm时能否延续摩尔定律将是一个问题。
随着人工智能的发展,我们将更加关注硬件和算法以及平台应用之间的耦合,这使得人工智能应用能够有更大的挖掘潜力,硬件设备也能达到最好的性能。IT创新更多来自于加速器、I/O设备以及整个垂直软件栈和硬件之间的耦合。这些创新不仅仅为深度学习神经网络提供加速的可能性,还包括整个人工智能和认知计算的范畴,并且能够满足上层的算法和应用进行不断迭代、不断延伸以及不断进化的需求。
这张图展示了POWER处理器的路线图。今年8月份在美国加州的Hot Chips 2018大会上,IBM公布了POWER 9和未来POWER处理器的路线图。
2018年和2019年,POWER芯片还将维持在14nm制程、24核架构,也将继续优化内核架构,包括内存子系统以及I/O互联技术。
基于POWER 8和POWER 9架构,IBM将开放更多的芯片技术,在这种开放的基础上,我们可以跟更多的合作伙伴一起开发基于POWER架构的处理器。
上图黄颜色部分就是基于POWER 8和POWER 9开发的处理器。在合作伙伴开发的过程中,我们可以根据一些特定的应用去选择不同工艺的架构。而对于未来的POWER 10,虽然它的架构还有很多需要去决策的地方,但是我们会让大家看到IBM在加速I/O互联以及先进工艺等领域的不断更新和驱动。
在Hot Chips 2018上,IBM公布了POWER 10处理器会支持PCIE第五代技术,这是POWER 9在首发PCIe Gen4后在PCIE总线技术上的领先。IBM在最近十年,从POWER 6、POWER 7、POWER 8到POWER 9和之后的POWER 10,都持续在价格、性能和整个芯片的特点以及生态之间的耦合,包括未来对上层应用和软件生态等方面做持续的优化和创新。
从这张图我们可以看到POWER 9一共有24个核,每个核可以支持四线程SMT4。目前POWER 9芯片总共有120MB的L3,即三级非一致缓存(NUCA)架构,12块20路组相连的区域,片上的带宽最高可以达到7 TB每秒。
在云和虚拟化中,我们也有更多新的中断架构和策略,包括应用负载平衡上所带来频率优化策略以及受强制保护的硬件执行。另外值得一提的是,在整个硬件加速平台的支持上,POWER 9支持NVLink2.0接口;在I/O子系统中,也有全球首发的第四代PCIe接口,最多可以支持48路;另外,在对称多互联中,本地对称多处理系统(SMP)单通道也有高达16GB每秒的接口;在POWER 9工艺中,我们选择了14纳米 SOI FinFET工艺,整个芯片的规模达到了695平方毫米,集成了超过80亿个晶体管。
接下来我们来看下POWER 9内核微架构的细节。中间对应的是VSU,上面是IFU和ISU,取址和指令队列单元,最下面是LSU,是取址和存储指令的一些单元。从执行单元模块的数量来看,POWER 9在一个核里配了四个Load和Store、四个定点、四个浮点、四个VMX单元以及一个十进制浮点预测单元。在整个架构设计上, POWER 9具有更加先进的算法来实现预测准确率。在标量方面有融合的结构,在可执行单元位宽中,有128位位宽,总共可以实现256bit的数据执行位宽以及独立的Load和Store队列。另外在指令执行性能为8取指、6分派、9发射。
相比POWER 8,POWER 9采用了很多架构增强的技术,除此之外,在流水线设计上,取指令到计算的延迟缩减了5个时钟周期,主要得益于整个微结构电路级别上的优化,当然还有一大部分也归功于整个工艺优化上的效果。以浮点指令为例,从执行到指令完成的延迟减少了8个时钟周期,所以从整个流水线的优化,可以看到POWER 9相比POWER 8还是做了很大的改进,流水线进一步优化也提升了POWER 9在面积、性能和功耗等方面的竞争力。
POWER 9内部有两个SMT4的库共享一个片上L3缓存。缓存也是基于SOI的工艺和eDRAM设计的,相比于SRAM,( SRAM电路的机理最多是采用6个晶体管搭起来静态的电路,我们叫6T结构),eDRAM采用ETEC在硅片中打一个深沟道的模,由于在硅片中打一个深沟道的面积非常小,相比于传统的SRAM,eDRAM在面积上可以得到三倍的提升,也就是相同的容量,eDRAM只需要1/3的面积,同时能耗也可以得到很大的降低。基于eDRAM的存储结构,还可以在带宽上得到比较大的提升。
POWER 9芯片采用了17层的金属,金属层越多,芯片在物理设计上得到的灵活性也更高。比如POWER芯片想要得到更好的电源稳定性以及时钟的稳定性,需要更多的走线资源,而POWER 9在整个电源网络和时钟网络中,采用Mesh结构,里面也有谐振时钟的电路,可以保证在频率非常高的运行状态下得到稳定的性能。
从认知和人工智能的应用对硬件平台的需求可以看出来现在人工智能的应用千差万别,算法也层出不穷。为了提高这种上层负载的灵活性和交互性,底层硬件的计算率该如何来满足上层负载的灵活性和交互性需求以提高硬件架构多样化也是一个重要的话题。
异构计算就是一个很好的解决方案,异构不是一个非常新的概念,在一二十年前就已经被提出来了,异构计算和异构编程也在之前的十多年中不断的发展。在整个异构计算框架下,异构的核心是交互。CPU作为host端,要和很多人工智能的硬件进行数据和任务交互,当然也包括GPU、ASIC、FPGA、Memory以及其他的人工智能芯片。
各种异构计算核心都有自己特别的一些计算能力,现在整个计算机体系的结构仍然是以CPU为核心。CPU,顾名思义就是中央处理器,如果大家把整个架构看成是厨房,CPU就是大厨,而擅长各种不同任务的GPU、ASIC或是FEGA可以做各种不同菜系的帮手。作为一个大厨,CPU要建立一个高效的异构厨房来与各个小伙伴之间交互以及数据传输,还要保证大家对于一件事情理解的一致性。这是非常重要的,也体现了CPU总线在整个异构平台上的重要性。
总线有几个非常重要的因素:
首先是带宽,带宽要足够大才能保证大量数据的快速传输;
其次是延迟,比如数据从GPU到CPU,然后再回来,整个延迟尽可能要在整个内存上寻址;
最后是一致性,即保证一致性内存共享对上层编程的应用性是非常重要的。
在接下来的分享中我会针对这几点做深入的探讨。
POWER系列处理器从POWER 8到POWER 9,在异构计算互联的带宽以及一致性上是有很多创新的。从最早期的PCIe Gen3通过PCIe来连接加速器,随着POWER 9首次使用PCIe Gen4后,整个架构带宽翻倍,这种更大带宽可以支持更多的数据交互。
POWER 8处理器首次采用的NVlink1.0,相当于打通了POWER处理器和NVIDIA GPU之间的专用高速通路,但NVLink 1.0实际上并不支持统一一致性的内存共享。在NVLink 2.0中,不仅是整个物理传输速度的提升(从之前的16G到现在的25G),在整个内存一致性和地址转换上也有很大的提升。
想必大家对NVLink有比较大的兴趣,我们可以更加细致地来看一下NVLink是如何来实现POWER处理器和GPU之间的高效连接的。
NVLink作为一个总线接口,不仅仅是CPU和GPU之间的互联,也是唯一能够在POWER上实现CPU和GPU之间互联的技术,这也是POWER处理器与其他处理器不同的地方。NVLink可以带来很大的带宽。
上图右上角展示了一个最简单最基础的拓扑结构,两个POWER架构的CPU可以通过本地对称多互联(SMP)的技术进行一致性的连接,同时POWER处理器也可以通过CPU和GPU之间,GPU和GPU之间的NVLink做到双向高速的互联。基于这个结构,可以实现更加复杂更加多样的CPU和GPU拓扑结构。在不断地去扩大拓朴结构的同时,我们可以去设计一个比较好的通信算法,随着拓扑结构CPU和GPU计算节点的增多,在算法的效果上可以有很好的线性度,这也是非常重要的。
当计算节点不断增加,有一个比较好的线性度对于大规模的计算集群的构建或是对一个数据中心的构建来说是有非常重要的意义的。首先它可以给整个系统带来更快的训练速度和更高的精度。
上图也是NVLink在整个POWER计算系统中的进化过程。 2016年,我们在POWER 8上发布了NVLink 1.0,当时也有服务器可以支持NVLink 1.0链接,通过NVLink来连接Pascal系列的GPU;从去年到今年中, POWER 9可以支持NVLink 2.0,支持Volta系列的GPU,比如V100,可以支持更高的带宽。上图中也有实测的带宽,还是比较接近理论值的。
相比NVLink 1.0,NVLink 2.0可以让NVIDIA GPUs和POWER 9处理器有更加紧密快速的连接。
从紧密性来讲,我们可以看到一个最大的特点是作为异构计算非常关键的部分,异构编程一直是整个异构计算系统中一个比较头疼的事情。POWER 9和GPU通过POWER 9上比较丰富的异构计算接口资源(NVLink 2.0)紧密相连,使得整个系统的内存在逻辑上可以被统一为一个更大的具有一致性的内存空间,可以同时供POWER 9和GPU来进行访问,这种一致性的模式可以让GPU和POWER 9之间更好的协同工作,从而提高整个系统的性能和功耗。
另外很重要的一点是,可以使编程的复杂度大幅度降低,程序员可以更多去关注计算分配本身,而不用去过多的考虑Memory去寻址的问题。因为整个系统具有统一的一致性内存模型,针对该模型,可以去设计专门对统一寻址的模型基础优化过的软件库。
右边这个图是在编程当中,为了更好地利用POWER 9和GPU本身的计算特点和计算能力以及整个NVLink在中间数据调度的特点,首先在一个典型的高性能人工智能计算应用本身,从上到下(黑颜色的箭头)以时间为顺序执行;从大的分块来讲,负载或应用程序整体的性能既受中央处理器CPU的影响,又会受GPU的影响。在大量的应用当中,它的控制部分需要通过CPU来执行,这些串行的部分通过CPU来执行可以有效地降低延迟,而数据大规模的分发进行并行计算对于GPU来说也有很大的优势。
GPU的控制是非常简单的,它的并行计算单元非常丰富,在GPU做完并行计算之后,在串行和并行计算的边界,POWER 9和GPU之间的数据交互需要一个非常大的带宽、极低的延迟和低功耗传输到POWER 9中进行处理,处理完之后在Memory中对数据进行存储,或是更新之后会有一些新的计算任务重新交回给GPU,然后再反复迭代并行和串行部分。
从这里可以看出,一个高速低延迟的接口,以及一个统一内存的模型对于整个编程和应用程序的性能调优来说是有非常大的好处的。目前POWER 9上有2 TB的统一寻址的内存空间。
接下来为大家介绍下CAPI和OpenCAPI,也是POWER处理器上一个比较有特色的接口。
CAPI,也叫一致性处理器接口。在POWER 9上,我们首次有了OpenCAPI的概念,在OpenCAPI中,我们把传输层和链路层开放给合作伙伴和客户,他们可以去使用OpenCAPI的接口。OpenCAPI也继续保持了CAPI上一致性的特点,可以显著提升可编程性,我们主要的应用是在FPGA上(当然也不局限于FPGA)。
在编程的应用性上,编程人员可以不用过多去考虑设备的驱动以及内核态内存操作,只需要用户态的程序就可以更加方便地跟加速器进行互动。OpenCAPI不像之前CAPI 1.0和2.0,它是架设在整个PCIe物理接口上的,相当于它的协议变得更薄,这样所带来的好处就是接口的延迟和逻辑量会有极大的提升。
POWER 8上的CAPI 1.0是基于PCIe Gen3的,CAPI 2.0时升级到Gen 4;而OpenCAPI的物理传输通路采用了25G的标准,在通道数上没有太多的变化,而在Device灵活性上有了很大的提高。值得一提的是,由于OpenCAPI的协议层更加的薄,延迟上基本上有一个数量级的提升。如果大家对OpenCAPI有更多的兴趣,可以访问OpenCAPI的官方网站以获取更多信息。
POWER 9在工作负载中深度优化可以分为四大类:
第一、在分析计算人工智能和认知计算上的一些优化特点,在POWER 9上,从内核的设计、执行单元的模块化、流水线性能的提高以及单线程能力的提高,使得POWER 9可以支持更加复杂的、对计算力要求比较高的一些人工智能负载。通过计算力的不断提升,可以提供更多的计算资源。在加速上,POWER 9有丰富的加速接口,可以支持更多OpenPOWER。在应用负载上,POWER 9对整个大数据、SAP、DB2 BLU、IBM内部的认知计算以及各种业界广泛使用的大数据平台和人工智能的算法框架都有很好的支持。
第二、高性能计算,接下来我会给大家重点分享橡树岭实验室以及劳伦斯利佛摩尔国家实验室。
第三、在云计算和数据中心上, POWER 9有不同I/O接口和封装的选择,可以有更多的系统设计方案。在虚拟化能力上,目前我们对云的安全要求也在不断的提高,同时对于中断也会有更多的优化。POWER 9上有着良好的网络扩展和内存的性能。
第四、企业级应用,也是POWER计算系统一直以来的强项,比如OA等传统的企业级应用,而且大规模容量的缓存技术也对企业级大数据应用有很好的支持。值得一提的是,IBM在企业级应用上的可靠性和可扩展性在业界一直都处于领先的地位。
这里跟大家介绍基于POWER 9所搭建的AC922人工智能服务器。
今年6月份,在德国举行的超算大会上,基于AC922的超算集群登上了HPC Top500的榜首。AC922是基于POWER 9芯片的人工智能服务器,是世界上迄今为止速度最快的服务器。在人工智能模型训练上,AC922相比传统的服务器有高达3.8倍的时间缩短,在数据库性能上也有接近2倍的提升。该服务器的规格是2U 19英寸机架式机箱,也是现在数据中心非常普遍的使用规格。每个服务器中有两个POWER 9处理器,在数据中心的运用当中,基本上达到了70%以上的使用率。同时,AC922可以支持4到6个NVIDIA Volta GPU,把这些组件集成到一个主板上,放在一个标准的机架式机箱当中,并且可以扩展主动式网络。
珊瑚计划(CORAL)是美国能源部下几个研究机构的集合,包括橡树岭国家实验室、阿贡实验室以及劳伦斯利佛摩尔国家实验室。这些实验室主要从事基础学科的研究,包括高能物理、节能材料以及宇宙等各种分析,它们都需要很大的计算量。而基于AC922所搭建的Summit和Sierra两个系统,可以很好的支持这些计算。这两个系统都可以达到亿亿次级的AI操作,也叫Exascale操作。相比于老一代的泰坦服务器,可以达到十倍以上计算性能的提升,在各种应用场景上,也可以达到5到10倍的提升。同时在今年年初,Summit和Sierra系统在这几所研究机构均实现了全面的部署。
其实早在1954年,IBM就利用超级计算机进行天气预测和很多复杂的计算。截至目前为止,IBM在超级计算机上已经有长达半个多世纪的探索和创新。当中有大家熟知的深蓝(Deepblue)、蓝色基因(Blue Gene)、Watson以及Sequoia这样的超级计算机。美国橡树岭国家实验室的Summit超算集群也是今年HPC高性能计算大会上公布的迄今为止速度最快的超算计算集群。
在未来两年(2020年前后),整个超算要向亿亿次级去迈进,美国能源部对此投资超过2亿美金,而我们也知道在实际上要达到亿亿次级别的计算是非常困难的。IBM作为在超级计算领域的领军者,我们认为,未来计算还是以数据为中心的,基于超大数据规模的复杂计算、建模和仿真去构建一个更加可扩展、可靠和可控的解决方案。
另外,在百亿亿级次计算系统设计中主要技术挑战在于电源效率、可靠性、可扩展性以及可控性。对于电源效率,需要强调一点,目前一个超算的能耗基本上达到了上百千瓦。对于百亿亿次级的超算中,如果不提升电源效率,整个功耗将会达到兆瓦级别,是相当恐怖的,如果再继续像这样发展下去,在百亿亿次级时代,一个超算计算集群或者一个数据中心,可能就需要一个发电站来给它供电了。因此在电源效率、可靠性、可扩展性以及散热等各方面的挑战是贯穿整个超算系统涉及的各个领域。
人工智能的负载需要更多计算的灵活性,随着工作负载需求的不断增加,摩尔定律很难继续线性化地去满足性能。在硬件要求上,单纯的一家公司是很难满足多样化的工作负载变化的,这就需要一个更开放式的平台。
OpenPOWER就是基于这样理念的平台,并期望能够成为开放创新的驱动力。在OpenPOWER诞生之初,我们也希望能够提供更多开放式的开发环境,并且能够在基于高性能的POWER处理器架构的情况下让整个系统能力得到更大的提升。OpenPOWER不仅仅是系统设计,包括芯片领域也希望能够跟合作伙伴一起去产生更多的POWER衍生芯片,从而满足更多这种负载多样性的需求。OpenPOWER服务器的类型在不断的丰富,生态也在不断的壮大。对于客户来说,他们将会有更多的选择。