• 发文
  • 评论
  • 微博
  • 空间
  • 微信

收藏丨陈左宁:为什么说传统超算并不最适合AI

本来科技 2020-10-19 11:25 发文

陈左宁院士

近年来人工智能(AI)对计算算力、计算环境提出了新要求。那么,如今高性能计算机对AI的适应性到底怎样?是不是随着AI对算力的需求越来越大,在经典的HPC上进行适当的改进——比如增加一些加速部件,就能满足这些需求?

在2020全国高性能计算学术年会(HPC China 2020)上,中国工程院副院长、中国科协副主席、中国工程院院士陈左宁对这些问题,给出了她思考后得出的结论。

经典HPC并不最适于AI对算力的需求陈左宁院士的结论有三层意思:

经典高性能计算机算力环境可以支持现有人工智能的模型算法,但从性能功耗比和性价比来讲都比较低。经典高性能计算机并不最合适用于AI对算力的需求,要去匹配AI,需要创新体系结构和软件架构。随着智能计算理论的演进,可能会突破图灵“可计算性理论”的范畴,比如类脑计算和量子计算,可能会带来体系结构和软件新的突破,但还有待研究。用8个字总结一下就是,可用、不契合、待改善。当然,陈左宁院士在这里提及的AI,是加了限定词的:比如“云端AI”、“做训练的AI”,那些与数据训练有关的、数据规模和模型规模大到一个芯片不足以支撑的AI。这个结论,是陈院士经过细致分析后得出的。她提出,要研究AI对算力的需求,首先要追本溯源:目前AI的本征是什么、它“本征地”对算力的需求是什么。

当前,人工智能三个流派——符号主义、连接主义、行为主义日趋融合、协同发展,这三个流派也都在指向“反映‘关系’”。

也就是说人工智能的核心特征之一就是反映“关系”。

那么“关系”的计算,有哪些特征?

陈左宁院士给出了答案:在高维空间中,开放的、多点的、不确定的近似计算。

经典高性能计算能否对应这些特征?不能——

首先,高维空间——经典高性能计算随着计算复杂度的提升,也在向高维发展;但与AI计算相比,经典高性能计算的模型是确定的,模型确定后可以降维,可以在确定的模型框架下,来判别是否收敛、是否合适降维。但对于AI计算来说,模型很多不确定,高维计算就很难降维。

其次,开放——经典超算模型也是多点的,但不是开放的;在一个计算空间里,经典超算不是像AI那样开放的。比如AI模型数据越多,提取特征越多。

最后,不确定的近似计算——这是一种概率计算,不是精确的数值计算,这是跟经典高性能计算非常不一样的地方。

基于上述3点,陈左宁院士得出结论:经典高性能计算机并不最合适用于AI对算力的需求。

当前AI模型和算法的七大发展趋势要让经典高性能计算机能够更好服务于AI计算,我们需要了解和发现AI模型及算法的发展趋势。

陈左宁院士总结,当前人工智能模型和算法有七大发展趋势:

向无监督学习的方向发展。

现在的深度学习模型,多是有监督的学习,因此需要大量数据、大量标注、大量计算。为了减少数据标注和计算开销,未来AI模型越来越青睐“无监督学习”。

进而,HPC就要适应“小数据”对算力的需求:如主动学习,强调人机交互能力和数据整合能力;迁移学习,要求对大数据的预训练;强化学习,注重信息采集能力和概率计算能力。

AI的可解释性越来越重要。

AI的可解释性,是AI迈向更负责任的AI的有效途径。AI模型也发展出透明模型和事后可解释模型。

它们对算力的具体需求是,将可解释技术融入到软件环境中,包括为现有软件框架增加可解释技术的接口、发展以人为中心由决策理论驱动可解释AI的概念框架(简言之就是要将“人的解释”与模型框架融为一体 )。

AI模型迈向自学习、自演化。

迈向自学习、自演化的AI模型目前有如AutoML等。支撑自动机器学习模型,要求计算框架能够支撑AI的这种自学习能力,如大算力支撑、辅助设备支撑等。

多种算法、模型的有机组合。

AI的这一趋势已经很明显了。目前单一算法越来越难以解决实际问题,势必需要多种模型的有机融合。而且,人工智能模型的发展也希望融入多种技术来解决已有问题。同时,人工智能的应用流程越来越复杂,也需要不同的算法和模型组合。

这对算力的需求体现为,算力系统的计算存储等具备可扩展能力,基础软件通过能力提升可支持复杂模型、不同类别软件的协同和交互。

图中视觉问题就需要多种模型组合

AI应用越来越需要关注全生命周期。

AI模型生命周期包括设计、数据预处理、部署、推理等,不同节点的任务具有不同的时间、空间和计算需求;且全生命周期都要考虑可解释、公平等需求。

分布式、分散式的需求越来越突出。

大型、复杂模型,海量数据需要并行、分布式计算;联邦学习等分散场景原生性地需要分布式机器学习原生算法。

深度推理。

清华大学教授唐杰在《从知识图谱到认知图谱:历史、发展与展望》中提到,人工智能沿着“计算—感知—认知—意识”发展,对算力的需求也从最初的表示、计算、存储+人机输入/输出,逐步过渡到知识数据驱动、认知推理、决策智能甚至要求支撑自学习、记忆机理,进一步发展出有(无)意识处理器。

陈左宁认为,这反映出AI对计算需求的演进。有可能未来智能化程度越高,对计算的需求越颠覆,以至于现有的图灵可计算的技术无法支撑。这一方面需要计算平台要能够有效应对多种形式的不确定性(如概率计算、类脑仿脑体系结构、模拟计算),另一方面则寄希望于认知理论的进一步突破。

计算模式的13个“小矮人”

根据人工智能发展趋势,可以总结出人工智能对算力的需求有几个特点:

一是关系、概率、近似计算更加突出;同时不要求高精度和高容错,因为都是近似的概率计算;

二是在节点上计算简单,同时人在环路中需求非常明显。

对软件栈的需求,就是要求软件栈是复杂、动态、分布式,分散的,要支撑新的场景(如原生支持分散场景等),以及架构创新(如软硬件协同设计、体系结构突破等)。

陈左宁总结说,目前人工智能算法模型仍然在基本的计算模式之中——2006年,Berkeley View总结出13个基本计算模式(又称13 dwarfs,13个“小矮人”),现在的算法仍然没有跳出这些。

Berkeley View2006年总结出的“13dwarfs”

但是未来的复杂问题会不会超出这个范围,现在还很难说。陈左宁提出,或许随着我们对AI认知的加深和突破,还会出现新的趋势。

经典CPU处理AI势必造成功耗浪费

为了说明经典高性能计算现有体系结构对AI模型支持的局限性,陈左宁院士提到了AlphaGo和李世石下棋的例子:

同样是下棋,为什么相比人,AlphaGo耗能如此之大?

人机对弈,李世石动脑所耗能量约为10MJ,AlphaGo耗能约为3000MJ ,相差2个数量级。

这其中差别,跟现有体系结构的限制有很大关系。

现在的高性能计算机,仍然是基于遵循冯·诺依曼结构的芯片架构。冯·诺依曼架构,最典型特征是“计算、存储分离”。存算分离的优点是,可以通过编排指令做各种复杂计算;缺点也很明显,芯片内的数据移动功耗大于运算功耗。

特别是,高性能处理器结构复杂,其运算功耗占比就更低;而随着工艺的进步,互联功耗占比还会越来越大。

冯·诺依曼结构之所以设计成存算分离,是为了方便用复杂的指令系统去搞定复杂计算。

但AI不同,它不需要复杂的节点计算,也不需要复杂的指令系统。

这解释了,经典CPU处理AI势必会造成很多功耗是浪费的——这也是人们为什么研究和发展AI芯片的缘故。

现有支持AI的超算体系结构,在节点间尺度上多为同构系统,比如美国的Summit、中国的“神威·太湖之光”,都是大节点同构、但节点内尺度上有异构形式(如CPU+GPU/FPGA等)。CPU、GPU、FPGA以及张量加速单元(TPU),能够实现复杂的并行;但人工智能硬件重点关注深度神经网络这类模型:适度的低精度计算、可对部分简单算子(如矩阵乘、向量计算等)加速等。

AI对算力体系结构的需求

要摆脱体系结构的限制,需要对现有体系结构进一步优化。这包括:

适度使用较低精度;

更有效利用内存层次结构;

更有效的并行形式;

使用大片上缓存和高带宽内存(目前应用较多);

发展包含编解码部件、稀疏部件等在内的新部件(比如NVDIA A100 专门做了稀疏部件的设计);

计算流/数据流/控制流有机结合;

异构深度融合结构……

再进一步,变革体系结构,使其能够实现“更合理的映射”。

所谓更合理的映射,可以理解为:既然人工智能表征的是点和点之间的“关系”,而“关系”本身又具有一种拓扑连接关系,那么如果计算物理架构能够更好地映射到这种拓扑连接,显然是最有效的。

如何实现?

首先要有面向应用需求的体系结构设计(主要是一些参数的变化,比如SIMD个数、核心数,改变芯片尺寸、互连、能耗等);

进一步可以发展存内计算、网内计算这种适合人工智能算法的计算形态(存算一体、传算一体);

最好的是,面向“连接关系”设计硬件、面向“连接”设计体系结构,使拓扑关系表示更能反映“关系和连接”。比如当前排行超算TOP 500榜首的日本“富岳”,通过设计出6D-Torus,更适于映射高维度的数据。

再进一步,变革体系结构,使其能够实现“高可扩展的架构设计”。

这类讲的比较多的有晶圆级封装和系统级封装。

异构集成系统设计方案的创新,让“Chiplet”走进人们视野。这种“产品中的不同组件在独立的裸片上设计和实现”的理念,正随着技术的发展引起大型商业公司和研究机构的关注。如今,不仅多核系统可以Chiplet,甚至多个Chiplet也可以再做融合。

比如美国初创公司Cerebras发布的“全球最大的芯片WSE”,就是晶圆级封装的典型代表;苏黎世联邦理工学院发布刚刚在今年发布的4096核心RISC-V芯片,也是一个由多个Chiplet组合起来的众核架构。

据称WSE上有1.2万亿个晶体管

在理想状态下,这类“大芯片”的效率非常高,比“CPU+GPU”高很多倍,同时所需能耗和空间也非常低。

当然,类脑芯片和量子芯片这种更加能够映射到AI表征的“关系”的芯片,是从硬件形态上对体系结构的突破,现在代表性的产品有谷歌发布的Truenorth 神经形态芯片浙江大学发布的“达尔文2”芯片。

值得指出的是,类脑芯片目前仍处于概念验证阶段,量子芯片更是还在襁褓之中。

AI对算力软件栈的需求

前文提到,根据发展趋势,AI对算力软件栈的需求,要求软件栈是复杂、动态、分布式,分散的,要支撑新的场景(如原生支持分散场景等),以及架构创新(如软硬件协同设计、体系结构突破等)。

这是由于,目前现有的人工智能软件栈是分离的——即各流程软件支持是分离的,每个阶段有每个阶段的处理系统。

比如:预处理,一般是基于CPU 集群,软件多用Hadoop、Spark等;模型设计,前端CPU服务器+JupyterNotebook系统;模型训练,基于CPU-GPU集群的TensorFlow等框架;部署、推理多利用边缘设备等等。

正是由于各阶段有各自的处理系统、不同的阶段用不同的系统,导致现在缺乏原生的扩展能力和动态支撑能力,包括编排、流程化处理,都缺乏很好的支撑。

由此,人工智能软件栈需求就是对可扩展的支持、动态的支持、协同全流程计算等的需求。

其中,协同全流程计算需要考虑AI应用的全生命周期和为“人的介入”作特殊设计。特别是人在环路中这点必须特殊考虑。

传统HPC中,“人的介入”非常明确——就是开发阶段,模型、算法确定以后就不必再去考虑了;但在AI特别是在训练中则不得不区别对待。

比如要研究人在回路中的最大特征,如要研究语义、交互、迭代;要研究不确定性、脆弱性和开放性条件下的任务建模、环境建模和人类行为建模;要研究人机物融合新型人工智能等等。

从架构创新的角度,人工智能对算力软件栈的需要,则集中在以下几个方面:

从集中式到适应分布式、分散、动态的需求;

从“以计算为中心”到“以数据为中心”;

从“面向计算机专家”到“面向数据分析专家”;

弹性、多框架的协同;

支持云边端协同。

特别需要指出的是,受编程及软件平台感知边缘资源限制,如今的智能任务不可能只在一台大机器中完成,显然需要云边端协同完成;而智能本身的任务分配,包括感知、认知、决策,也是一个闭环,同样需要云边端的智能融合。

最后,两点说明

当前,AI对算力的需求潜力已毋庸置疑。但由于AI发展的历史尚短,自身无论计算理论、方法算法都尚不完整,特别是数学理论的基础还很不坚实,因此,AI还不能如传统的数值模拟一样,能够非常明确地提出对HPC计算能力的要求。

也就是说,AI的计算理论还没有发展到它能对HPC明确提出很高的需求阶段。但反过来看,如果AI能够接近甚至达到人的智能水平,肯定会对计算能力、存储能力等的需求非常高。

另一方面,高性能计算未来也将不再简单比拼“肌肉”——只追求规模和性能——更加智慧的高性能计算系统将成为主流。

未来,高性能计算、物联网、大数据和人工智能将实现深度融合。国家超级计算广州中心主任卢宇彤甚至预言,“到2030年,所有高端计算设备将自带AI支持功能,高性能计算仿真将利用AI平台提高性能,AI也将重塑计算仿真。”

因此,现阶段HPC与AI融合、适配问题的关键在于,在HPC体系结构发生改变的过渡阶段,如何在AI的演进阶段支撑其计算能力需求,这是目前HPC领域应该考虑的问题。

还应注意到,深度学习仅仅是AI算法的一个分支,面向AI的云端高性能计算环境需要广泛适应包括深度学习在内的多种应用模式,未来的应用需求仍有待进一步研究。

声明:本文为OFweek维科号作者发布,不代表OFweek维科号立场。如有侵权或其他问题,请及时联系我们举报。
2
评论

评论

    相关阅读

    暂无数据

    本来科技

    不说大话、假话、空话、套话,敢说...

    举报文章问题

    ×
    • 营销广告
    • 重复、旧闻
    • 格式问题
    • 低俗
    • 标题夸张
    • 与事实不符
    • 疑似抄袭
    • 我有话要说
    确定 取消

    举报评论问题

    ×
    • 淫秽色情
    • 营销广告
    • 恶意攻击谩骂
    • 我要吐槽
    确定 取消

    用户登录×

    请输入用户名/手机/邮箱

    请输入密码