>>返回主页
ODCC服务器工作组组长/中国电信北研院主任 王峰:人工智能服务器技术探讨

2018-10-17 10:10

王峰1.jpg

  王峰:人工智能现在是产业热点,从ODCC服务器工作组的角度来讲,服务器作为人工智能所需的计算能力的最重要载体,它的发展要能够与时俱进。因此,我们发起了一个专门的研究项目,对人工智能服务器的技术体系做全面的梳理,今天在这里给各位来宾汇报下工作进展。

  人工智能到现在耳熟能详,它的发展历程也是有起有伏。1956年,AI概念提出后就迎来了第一小高潮,标志性事件是人工智能技术对数学原理第二章的内容作了证明,但是因为算法模型难以满足更广阔的需求,以及激增的计算能力需求得不到满足,使得AI跌入第一次低谷;第二波高潮的标志性事件则是专家系统的问世与应用,但是因为专家系统的建设投入、运行维护的代价很高,最终PC机的性能提升和应用普及影响了它的价值;当前,我们正面临第三波高潮,以深度学习为基础的AI正快速进入到我们生产生活的方方面面。

  从人工智能的发展历程不难看出,计算能力始终是推动人工智能发展的重要动力。特别是在当前这一波以深度神经网络为理论基础的人工智能浪潮中,算法、数据和计算能力是业界公认的三大基石。其中,算法、数据的作用比较难以量化,而计算能力则可以用数字来说话。这个图是来自OpenAI的数据,可以从中看出典型人工智能训练负载对计算能力的需求的变化情况。图中的左下角是2012年出现的最早期的深度神经网络模型AlexNet,右上角是这两年最火爆的AlphaGo系列。从图中可以看出,从2012年一直到现在,人工智能的计算能力需求是一个指数性的增长,大概每3.5个月就要翻一番。在这种压力下,计算能力受到挑战。遵循摩尔定律发展的CPU计算能力,每18-24个月翻一番,与前面提到了人工智能算力的每3.5个月翻一番的需求有较大差距。同时,摩尔定律也面临发展的物理极限,功耗墙等已经严重影响了新的芯片工艺的发展,最典型的就是10nm工艺迟迟未能面世。而在计算领域,除了摩尔定律外还有Gustafson定律,这个定律是说系统优化某一个部件所获得的系统性能的改善程度,取决于该部件被使用的频率或其所占总执行时间的比例。这意味着什么呢?这意味着如果我们的程序中串行部分比例比较小,并行部分的比例比较大,那么通过增加处理器个数,就能获得更大的加速比。这也是CPU从单核走向多核多线程的理论依据,而当前GPUFPGA等则通过提供更多的计算核个数,获得更高的加速比。

  发挥硬件的并行加速能力,还需要业务场景和算法模型的支持。在并行计算领域有一个很著名的案例,一只鸡孵出小鸡需要21天,但是不能指望7只鸡在3天就孵出小鸡。但是,当前的人工智能大发展所依托的深度神经网络,恰恰就是适合于并行处理的架构。从左边这个图上可以看出,深度神经网络的模型有输入层、输出层,中间是隐藏层。而之所以叫深度神经网络,就是中间的隐藏层可以有很多层,每层里都有神经元、突触。深度神经网络里面,BP算法非常关键。例如:在训练说话网络时,网络的输入可以是单词的各个英语字母,输出则是单词的英语发音,中间是多个隐藏层;在输入单词字母后,可以通过标注过的数据在输出层检测输出发音,如果发音错误,则调整上一层神经元的输入突触权重并以此向上层迭代;通过重复学习各个单词,不断调整上层输入突触,能够实现网络发音的逐渐改进,并最终可正确发出没有学过的单词的发音。这一过程中,海量神经元的突触的参数调整就是典型的并行计算过程。

  在上述理论基础上,落实到具体场景还会有不同的计算能力需求。当前,AI的典型业务场景有三类:第一类场景是海量重复计算的场景,例如人脸识别,主要是对大量人脸数据的分析,任务相对重复;第二类是专家经验辅助的场景,针对一个个案,例如在医疗领域开展人工智能的辅助诊断;第三类场景是跨领域协同,例如像智能交通系统,就需要把方方面面的数据汇聚起来再做全面的分析。不同场景都会有不同的计算能力需求。另外,AI服务器的设计也和它们是用于训练还是用于推理、是放在数据中心还是边缘机房等因素密切相关。当前,人工智能领域越来越看重边缘,希望在边缘提供低延迟的反馈,解决用户的体验问题。而在集中化的数据中心中,除了必备的高性能计算外,如果是用于数据训练那么对存储会有较高要求,如果是用于推理则需要对高速网络等配置做全面考虑。

  针对CPU计算能力现状,AI服务器会采用“CPU+”的架构。其中,AI服务器少不了CPU,而无论是是GPU还是FPGA,它们都是作为人工智能加速单元出现在服务器中。人工智能服务器里的主要工作过程,需要CPU与加速器件的协同。其中,加速器件更多是用海量数据的并行处理,强调数据处理的流量;而CPU则侧重在计算过程的控制。它们在人工智能服务器里有不同的分工,如何配比是一个关键问题。

  当前,AI加速芯片是业界关注的焦点。从通用性的角度看,最优的是CPU,然后是GPGPU,也就是通用GPU,然后是硬件可编程的FPGA芯片,最后是专用的集成电路ASIC。从性能、专用性来讲,因为ASIC是专用的,典型的像谷歌的TPU、寒武纪、包括上周华为刚发布的处理器,可以针对细节做优化,算法的实现都可以做专项能力的提升,所以在性能、功耗等方面有优势。而在通用性、灵活性、应用兼容性等方面,CPUGPU等则更优。虽然AI加速器件非常重要,但是从服务器整体来讲,它们也只是其中的一小部分,从这个我们合作伙伴仁宝做的GPU服务器的主板图可以看出,GPU只是其中一小块儿,服务器的设计与实现是系统化的工程,除了AI加速芯片外还有很多事情要做。

  我们针对AI服务器的相关技术体系做了一些梳理。CPU方面,x86架构是主流,但是ARM在功耗上的优势使得它也在日益得到关注。AI加速是重中之重,刚才已经讨论过了,不在赘述。内存方面,我们现看到类似Intel傲腾的技术,能够在内存、存储之间做灵活的调配,也许以后在应对多样化的AI场景时会有帮助。存储这块主要是NVMe SSD的引入,之前NVMe价格是个大问题,而现在一方面是器件成本在逐步下降,另一方面就是AI业务的高价值使得这类此前认为的高端技术能够在现网里有需求。主板总线,NVLink等协议比PCIE有更高的性能,而PCIE也在持续发展中,在未来也有广阔空间。网络这一块,传统的云服务也许万兆网络就够用了,但是现在我们要讨论100GRDMA技术,比如InfiniBand,是否更加适合AI应用。另外,管理、散热等也要做专门的主板布局和相关的设计。不要以为在现在的PC服务器上插一个GPU或者显卡就能当一个GPU服务器来用。还是刚才说的,AI服务器的设计实现一定是一个系统化科、学化的工程,我们对这个事情有一个比较全面的阐述。

  有了上述的技术体系梳理,在AI服务器的设计中就要考虑典型配置参数,而高性价比的服务器配置一定和前面提到的业务场景密切相关,另外,现在我们也有一些经验配置,例如:内存越大性能越强,因此容量至少和GPU总的显存大小相同;SSD需要保存与用户通常要处理的数据集大小相当的存储容量,然后再多留出数十GB空间;HDD最容易成为性能瓶颈,它需要容纳下典型AI业务所需的全部数据。最后,服务器实现了还要有相应的评测,我们重点看三方面:第一方面是看计算指标,最主要的是单精、半精的浮点计算性能;第二方面是从主板的系统指标来讲,最典型的是GPU间的数据带宽等;第三方面是看场景指标,不同的领域里都有不同的要求,我们需要通过典型的AI框架和算法,评测服务器的业务性能指标。

  最后做一下展望,我们认为软硬件融合、低功耗、边缘智能、新型AI加速技术的引入是未来人工智能服务器发展的趋势。

  以上是我给大家汇报的我们在人工智能服务器方面的研究。后面会有一个白皮书发布在ODCC网站上,也希望各位同仁多对我们指导,谢谢大家!

0