处理人工智能应用的高性能计算机的架构和评测

2021-04-29 04:06:00郑纬民
关键词:测试软件算力高性能

郑纬民

(清华大学 信息科学技术学院,北京 100084)

1 AI算力基础设施的重要性

当前人工智能(artificial intelligence,AI)热度不断攀升,AI是国家提出的新型基础设施建设(新基建)的重要领域之一。作为新基建之一,国家给予人工智能领域的投入不断增加。AI基础设施建设的投入主要集中于大型新型高性能计算机集群的建设。目前,国内在建和已经建设完成多个大型计算机,其中,华为深圳鹏程实验室投入42亿人民币建设了一台大型AI计算机,很多省市都在进行人工智能计算机的建设。人工智能技术的快速发展和当前算力的不断突破有着不可分割的关系。为了满足人工智能技术的快速发展,建设新的AI算力基础设施成为了重要一步。

1.1 人工智能应用问题

人工智能应用问题,主要分成3类: ①图像、视频检测。例如,安检摄像头,机场人脸识别系统,其核心是卷积神经网络(convolutional neural network,CNN)的应用,这类应用在当前已经取得了不错的实际应用效果,但是这类应用问题并不需要庞大的算力支撑,因此,也就不需要大型计算机的投入;②决策类。比如AlphaGo下围棋就是决策类的问题,属于强化学习的范畴。前两类应用暂时都不需要庞大的算力支持;③自然语言处理。其一个应用领域是语言翻译,如中英互译;另一个是自动问答系统的实现,即创造一台机器能回答用户提出的问题,创造一台可以回答天气情况等简单问题的机器不难,但创造一台让用户认为对话的是人类的机器是十分困难的;再一个是生成文本摘要,一篇文章经过计算机的处理生成其摘要,或者通过简单的描述,帮用户生成一篇长文,比如让计算机写小说、论文。这方面研究目前发展迅速,著名的模型有GPT-1[1],GPT-2[2],GPT-3[3]和BERT[4]。

1.2 自然语言处理对AI算力的需求

近年来,自然语言处理的模型演变得越来越复杂,因此,国内外学术界一致认为自然语言处理问题需要强大的AI算力基础设施支持,人脸识别和下围棋等应用并没有这么高的要求。自然语言处理需要强大的AI算力支撑是因为其模型庞大的参数量,如2019年2月发布的GPT-2模型的参数有15亿。仅一年后的2020年2月,TuringNLG模型[5]的参数就达到了170亿,是GPT-2参数量的10倍以上。到2020年7月,GPT-3模型的参数达到了1 700亿。同时,各个模型的结果表明,参数越多其效果越好,但参数越多,所需要的算力越庞大,也就需要性能更加强劲的高性能计算机。为了满足神经网络训练所需的庞大算力,许多公司着手建立了自己的高性能计算机。2020年5月,微软推出了一台专门为OpenAI公司设计的超级计算机,其包含超过28.5万个处理器内核,1万块图形处理单元(graphic processing unit,GPU),每个显卡服务器的连接速度为400 Gbit/s,其性能在当年的超级计算机排名中可以排到前5名。此外,OpenAI核算了2012年以来所有模型所用的计算量,发现最大规模AI模型所需算力已经增长了30万倍,每3~4个月翻一番,而我们熟知的摩尔定律指出芯片性能翻倍周期是18~24个月,可见传统的基于CPU的高性能计算机已很难满足大规模AI模型对算力的需求。目前,自然语言处理模型的发展趋势是大幅增加参数数量,GPT系列模型的发展过程印证了这一说法。如表1,GPT模型拥有1.17亿参数,预训练数据量约5 GB,GPT-2参数量为15亿,预训练数据量40 GB,而2020年最新的GPT-3参数达到了1 750亿,预训练数据量45 TB。如此庞大参数量的模型训练所需运算量巨大,同时其训练费用也达到了1 200万美元,要训练规模如此巨大的模型需要耗费大量时间和算力。GPT-3的1 750亿参数比GPT-2的参数增加了116倍,同时也带来了最终效果的显著提升,如图1。如此大规模的模型要用什么样的机器训练呢?其采用1万块NVIDIAV100GPU,耗时15天训练完成。可以看出,下一代AI的发展需要大规模AI算力基础设施,即人工智能需要庞大算力作支撑。GPT-3的效果是显著的,但其跟人脑还有较大差距。图灵奖获得者Hinton认为4.3万亿参数(GPT-3参数的25倍)可以包含一切,但现有计算机系统无法胜任其训练任务。因此,人工智能问题中,现在需要大规模算力的主要是自然语言处理,而人脸识别等应用并不需要。此外,图像图形的处理问题、决策问题、自然语言处理等问题的结合也需要更庞大的算力。

表1 GPT系列模型规模信息

2 AI算力基础设施

2.1 AI算力基础设施的架构

AI的基础设施是一台专门处理人工智能问题的机器。其系统结构要素包括:处理器、内存、存储和互联网络。处理器包括CPU、向量处理器(也称阵列处理器,能够同步进行综合数据的运算操作)和异构加速器(GPU、寒武纪、华为升腾等);内存包括主存和加速器上复杂的存储层次;存储包括全局并行文件系统Lustre[6],GPFS[7]和本地存储;互联网络由以太网,Infiniband[8],NVLink[9]等构成。AI基础设施的架构和原来的高性能机器相差不大,主要体现在AI计算机采用大量的异构加速器。

图1 不同模型参数量在不同训练样本数量下的准确率Fig.1 Accuracy of different model parameters under different training samples

2.2 代表性HPC和AI算力系统

高性能计算(high performance computing,HPC)机群,其作为高性能机器主要处理传统的科学计算问题,新的AI算力系统则专门处理人工智能问题。当前代表性的HPC系统包括:①天河2号[10],由国防科技大学打造,曾经在2013年6月到2015年11月是全世界超级计算机Top500[11]第1名,该排名1年认证2次,我国的天河2号占据了榜首几年,可见其性能的强大,其特点是在通用CPU的基础上引入了异构加速器;②无锡56研究所做的神威太湖之光[12],2016年6月到2017年11月是Top500第1名,算力遥遥领先,其亮点在于,在引入片上异构众核处理器的基础上,所有机器的CPU都是国产的; ③美国的Summit[13], 2018年6月到2019年11月是Top500第1名,其特点是采用NVLink连接GPU和大容量NVMeSSD本地存储;④日本富岳[14]超算,从2020年6月开始是Top500第1名,其特点是采用同构向量处理器、高维网络和半精度优化。这4台机器基本上都应用于传统的科学计算,比如天气预报、核武器模拟、飞机机翼结构评估等。新的AI算力系统的代表是鹏城云脑II,由华为合作深圳鹏城实验室在建,是专门适用于AI应用的高性能计算机,其引入AI异构加速器,针对半精度计算进行了优化。其采用4套华为Atlas900系统,每套系统128个节点,每个节点8块华为升腾加速卡,每套系统共有1 024块升腾加速卡,升腾加速卡类似于GPU。云脑共有4 096块加速卡,其计算性能半精度是1 Eflops,双精度是1 Pflops。4套系统节点间用200 Gbit/s网络互联,全交换无带宽裁剪,全局共享存储。

2.3 AI算力系统和传统超算的区别

AI算力系统和传统超算的区别主要有3个方面:①处理器方面。传统的科学计算问题主要是双精度运算性能优先,兼顾低精度计算,更大规模机器甚至需要采用80位或128位高精度浮点运算,如传统的天气预报问题,它需要很长的浮点运算。而AI运算,着重半精度计算性能,即8位或16位的浮点运算,不需要128位,这是AI算力系统和传统超算的最重要区别。传统超算也能用于人工智能、深度学习,但其擅长的是128位的运算,而不是半精度运算,运算精度不匹配造成计算效率的下降和资源浪费;②互联网络方面。传统HPC系统一般从全系统角度考虑网络拓扑和通信需求,而AI系统需要高性能参数平面网络连接训练单一模型的加速器组;③存储系统方面。传统超算一般采用Lustre等全局并行文件系统,支持MPI-IO,而AI超算采用局部NVMeSSD存放训练数据(如GPT-3 训练数据45 TB),避免从全局文件系统读取数据造成瓶颈。对于人工智能问题,我们希望超算系统具有强大的半精度浮点运算性能;而对于科学计算问题,我们希望超算系统具有强大的双精度运算性能。

更大的机器能做什么?这是一个争论许久的问题。根据以往的经验,在机器做出来之前,是没有确定性的应用,但大规模的机器做出来之后,会促进应用的发展。更大集群不仅是将已有问题算得更快,更重要的是解决现在不能解决的问题,先有一台机器,有可能就有应用场景了。

3 算力的评估

目前,华为、寒武纪、曙光、浪潮等许多公司都建造了自己的AI超算,如何对比它们的性能成为了问题。公众需要一个简单的指标来知晓哪套系统的人工智能算力更强,整个领域的发展状况如何?同时,一个好的指标可以引领领域的健康发展。

3.1 传统超算的算力评估方法

传统的高性能机器有Top500评比,它是通过LINPACK软件[15]进行测试得出成绩。LINPACK作为评测超算性能的一个软件,新的超算建造完成后可以通过运行LINPACK来评估其性能,完成测试的时间最快,那就是Top500第1名。LINPACK测试是针对过去传统的高性能机器设计的,其测试结果的好坏,表示这台机器做传统科学计算的性能。目前,新的问题是,对于新的AI超算我们也需要一个软件来测试其性能,测试结果告诉我们这台机器在处理AI问题方面是否优秀。针对传统超算测试的LINPACK已不适用于AI超算,因为LINPACK主要是双精度浮点运算为主的测试,而人工智能训练主要是以单精度浮点运算或16位浮点运算为主,推理任务以Int8为主,显然,LINPACK给出的传统高性能计算机的测试结果和人工智能需要的性能不完全一致,用其来测试新的机器结果是不具有信服度的。

3.2 AI算力的评估方法

既然现有的评估方法不适合,就需要重新设计一个测试评估软件。目前国际上还没有公认的针对AI超算的性能测试软件,我们国家的团队正在着手研发,并基本做成了第1版测试软件。要做针对AI超算的测试评估软件,其难点主要有2个:①测试软件的可扩展性。我们希望新的测试软件对于大、中、小型集群都可以进行测试,就是其适用范围要广。测试软件应该适用于绝大多数超算,而不是针对某一个系统进行开发。现在多数的深度学习研究,只用了一块GPU,也就是一台PC机或者一台服务器几块GPU做深度学习研究,其性能确实比CPU运算有较大提升。但是,为什么广大研究者不采用多个服务器大量GPU一起运算呢,其效率将会有更大的提升。其难点不在于资金和集群构建,而在于程序的编写和软件的适配。通过应用多GPU运算可以大幅加速训练过程,提高解决人工智能问题的速度,但是如何编写可以充分利用多GPU的程序是主要难点,特别是在面对AI超算这种具有几千、上万块GPU的超大集群时。因此,新的测试程序应该兼容单GPU、多GPU和超大GPU集群的测试场景,让研究者可以直观地比较各系统间性能的差距。②测试软件要能反映AI超算解决人工智能应用问题的性能。新的测试软件不能随意地进行无意义的简单浮点运算,这样不能反映AI运算基础设施解决人工智能问题的性能。我国团队开发的第1版测试软件已评测了10多台机器,当前人工智能的研究十分火热,很多国家和公司也都在建设AI运算基础设施,因此,我们特别需要一个测试程序来评比各个AI超算的性能。

猜你喜欢
测试软件算力高性能
多方求解智能时代算力挑战
新华月报(2024年7期)2024-04-08 02:10:56
这个第二不一般
都市人(2023年11期)2024-01-12 05:55:06
卫星通信在算力网络中的应用研究
卫星应用(2023年1期)2023-02-21 06:51:50
中国电信董事长柯瑞文:算力成为数字经济的主要生产力
网络自适应测试软件运行方法设计
自动化检测EPU10A板卡系统设计与实现
一款高性能BGO探测器的研发
电子制作(2017年19期)2017-02-02 07:08:49
高性能砼在桥梁中的应用
SATA推出全新高性能喷枪SATAjet 5000 B
高性能可变进气岐管降低二氧化碳排放
汽车零部件(2014年8期)2014-12-28 02:03:03