过去十年,全球迎来一场 AI 革命,人工智能在各行各业引发了颠覆性的变革。在机器学习、深度学习、大规模语言模型等 AI 能力的加持下,自动驾驶、生物医药、行业大模型、智算中心等行业和领域正迎来百万倍的效率飞跃。而这一切的背后,离不开加速计算。
在今日举行的“2022 百度云智峰会·智算峰会”上,NVIDIA 亚太区开发与技术部总经理李曦鹏分享了以“加速计算助力智能云深入产业”为题的演讲,介绍了 NVIDIA 在加速计算领域的思考及洞见,包括 NVIDIA 如何与客户一起探索互联网行业的加速计算解决方案,实现端到端的极致性能优化,以及加速计算可以如何助力云深入到行业。以下为内容概要。
10 年 100 倍,加速计算价值千亿的巨大空间
我们首先看一下加速计算,以及各种计算任务(workload)如何上云。
对于一个现代的加速计算集群,这个集群可以是云上的一个高性能集群,也可以是客户自建的一个加速计算集群。它们需要去承担非常多种类的计算任务,从 AI 任务到 simulation(模拟或仿真),以及二者的组合 Sim+AI,或者 AI for Science,再到目前最火爆的数字孪生、量子计算等。大家可以看到,加速计算集群需要去支撑的计算任务非常丰富,实际上,这里还有大量,类似于数据处理、云端渲染、信息召回,数据库等也同样需要去加速的计算任务没有罗列出来。
大家可能会说,上面的这些计算任务是一个数据中心的典型应用,为什么要说是加速计算集群的典型应用呢?过去几十年间,得益于摩尔定律,算力在持续增长。但如今摩尔定律已经放缓,从最初每年 1.5-1.6 倍性能的提升,下降到如今每年 1.1 倍左右的提升。与此同时,加速计算却依然保持着每年 1.6x 以上的性能增速。五年可以实现 10 倍的性能提升,十年就可以实现 100 倍的提升,这与摩尔定律十年可以实现的 4 倍性能提升形成了显著的差异。
另一个方面,碳足迹、能源消耗,以及机房空间等各个因素,都制约了传统计算的规模扩大。如果大家看一下使用了加速计算的 Green 500 前 30 的超级计算机,它们的平均效能比是其他超级计算机的 7 倍多。这不但带来了能源的节省,也同时带来了更低的成本,使得我们的计算任务,特别是以 AI 为代表的计算任务可以不断地持续增加。
针对 AI 部分,和大家通常理解的只是模型训练和预测不同,NVIDIA 一方面需要对整个工作流提供端到端的加速,另外,也需要通过对不同部分的模块化,普惠到更多企业和终端用户。NVIDIA 在这方面一直引领业界,我们也提供了从基础设施、调度、加速库、加速框架、部署工具,一直到最上层的应用框架的全套解决方案,也就是 PPT 中所展示的 NVIDIA AI 平台软件 NVIDIA AI Enterprise。这里我就不具体展开,只是举一个例子。
我们以典型的 AI 模型端到端流程,介绍 NVIDIA 能提供什么支持。通常我们看到的,其实是图中中间的两个步骤,训练和预测,还有部分人在预测的时候也会简单使用框架进行预测。但是实际上,问题比这个复杂很多。
首先我们需要去做数据预处理,这里 NVIDIA 提供了 RAPIDS (针对结构化的数据),CV-CUDA(针对图片数据)等各种解决方案。
数据预处理的一个难点,需要做到训练预测的一致性,减少调试过程。处理好的数据需要喂给模型训练,模型训练企业用户可以选用不同的框架。NVIDIA 加速了 PyTorch、TensorFlow、JAX,还有国内越来越流行的 PaddlePaddle 等框架。同时,也有 TAO Toolkit 来做迁移学习。
这里的一个难点是,需要做好数据预处理和训练的流水,避免频繁的数据搬运。有了模型之后,我们需要做预测优化。TensorRT 是现在精度最高、速度最快的深度学习推理优化器,NVIDIA 也在不断提高它的性能,并与各个深度学习框架集成,降低使用门槛。有了加速预测的模型后,我们可以使用 Triton 来进行大规模的部署。而实际使用中采集到的新数据,又可以用于训练。如果我们只是加速其中一部份,是没有办法达到模型的快速迭代,和实现整体性能的成倍提升,因此我们强调端到端的优化。
刚才我们以 AI 为例,讲到了 AI 类的计算任务如何可以被加速。但是实际上,目前世界上只有 5% 的计算任务被加速,这已经是几百亿美金的市场。
//
未来十年,所有的计算任务都将被加速,包括现有的以及十倍于现阶段的新计算任务!这将为加速计算市场带来 100 倍的增长空间!
NVIDIA 在加速计算的探索与经验
大家可能会觉得,NVIDIA 真是高瞻远瞩,早早落子各个行业的加速计算方案。但是实际上,今天大家看到的解决方案,都是 NVIDIA 基于客户的实际需求,与客户深入合作出来的。下面,我们用大家最为熟悉的互联网行业作为例子,介绍 NVIDIA 如何与客户一起,打造行业的加速计算解决方案。
这一页对我们理解加速计算的价值非常重要,因为,加速计算的特点,决定了我们的工作方式。首先,加速计算对于应用来说,可以带来数量级的性能提升,加速与没加速的应用,性能可能相差几十倍甚至几百倍。
第二,底层的库,例如矩阵计算、快速傅立叶变换、排序、向量操作等,它有一定的普适性,但是上层的应用通常有特异性,并非所有的优化策略都可以自然而然地带来上层应用的优化。这里没有一个一劳永逸的方法。我们常常听到一些加速计算初学者说自己使用了这样或者那样的优化方法,为什么性能并不明显?因为,我们的优化应该是应用导向,Profiling 导向。
第三,根据 Amdahl’s law,一个计算任务里面只有尽可能多的环节被加速才能带来性能的大幅提升。举个极端例子,如果一个计算任务,只有一半的部分被加速了,即使加速速度达到 1000x,整个计算任务的加速上限也只有 2x。因为上层应用的特异性,需要对整个工作流进行优化。而优化带来的巨大收益,我们需要更多地进行软硬协同的设计。所以,AI/HPC 的核心是加速计算,而加速计算的核心是优化,优化,端到端的优化!这需要,业务、算法、工程人员和优化工程师的密切配合。这也是我今天最重要的一页 PPT。
下面,我们以推荐系统,这个互联网最重要的应用为例,介绍 NVIDIA 如何与客户一起,打造行业的加速计算解决方案。
目前 NVIDIA 在推荐系统方面已经拥有了全链路的解决方案和产品。但是几年前,我们最早和百度合作的时候还不是这个样子。
大家可以看到,最著名的 wide & deep 模型是 Google 团队在 2016 年推出的,NVIDIA 和行业客户的深入合作则从 2018 年开始。在一开始,我们就针对 NVIDIA 的 DGX 高性能服务器来重新设计了推荐系统的训练方法和数据分布方式,并且后续的软件、硬件演化都是在此基础上不断去解决新遇到的技术瓶颈。
我们在一开始就是希望去解决 TB 级别以上的推荐系统的模型。在这个过程中的一些重要节点包括:NVIDIA Merlin 的推出、DLRM 进入 MLPerf、Merlin-HugeCTR 将 DLRM 的训练时间推进到 1 分钟以内、Big-ANN-Benchmark 将技术点从排序部分拓展到召回部分等等。另外,今年 3 月份推出的 NVIDIA Grace Hopper SuperChip,更近一步推进了推荐系统的进化。这是一个软硬协同设计、软件适配硬件,应用和软件反过来推进硬件架构革新的典型例子。
我们再来看一下推荐系统技术架构路线及其架构的演化。大家注意,软件架构与硬件架构的演进是和应用本身的发展息息相关,两者是相辅相成的。软硬件架构的演进为应用和算法的演进提供了可能性,而应用和算法的演进也对软硬件架构提出了新的要求。因此,我们称之为 co-design。
我们回到这页 PPT,从最左边看,是在没有深度学习时期的推荐系统,例如传统的矩阵分解,协同过滤等。这个阶段对于算力的要求其实并不高,因此通常直接采用 CPU 的方案。
而到了一些浅层 DNN 的引入,计算量有了适当增加,embedding 大小也持续增加,大家出于惯性,还是喜欢直接使用 CPU。但是很自然,这样的性能会受到节点间通信带宽的限制,也就是再增加服务器的数目,对于提高计算速度没有帮助。这个时候大家就想,我是不是应该做加速计算?
而企业用户很自然第一步,把 DNN 部分移到 GPU 上,这是因为,一,这部分算力最大;另外,二,例如 TensorFlow 等深度学习工具,针对这一部分已经提供了很好的支持。更进一步,随着 DNN 部分的加速,大家会发现瓶颈开始往 embedding 和 CPU-GPU 之间的通信转移,也就是 CPU 的内存带宽和 PCIe 的带宽成为了新的瓶颈。
这个时候,下一代的技术演变就出现了,也就是把 embedding table 也进行 GPU 加速,这里解决了两个问题,一个是内存带宽,GPU 的内存带宽高达 2T~3TB/s,远远高于系统的内存带宽。另外,把 embedding table 移到 GPU 上,将 CPU-GPU 之间通过 PCIe 的通信变为 GPU-GPU 之间 NVLink 的通信,这部分通信速度也得到了成倍的提高。这就有了 NVIDIA 的全 GPU 解决方案。
更进一步,因为 embedding 数据天然存在冷热分布,因此可以利用系统内存进一步提升模型大小,同时保持训练速度,这个时候,NVIDIA 的 Grace Hopper、CPU 和 GPU 之间的高速 C2C 互联就起到了帮助。
我们观察到,几乎所有的重点客户都已经迁移到 CPU+GPU 的混合部署,而头部客户都有重点业务迁移到纯 GPU 方案上,而业界领先的几家公司都有在调研和开发 Grace Hopper 的统一架构。这是一个清晰的发展趋势,各个公司有快有慢,但是加速计算的潮流是无法阻挡的。
对 NVIDIA 而言,推荐系统是一个完全诞生于中国、推广到全世界的全新计算任务。在这个过程中,NVIDIA 的经验是,立足于客户真正有价值的难题,和客户一起攻坚,实现端到端的性能优化!
以推荐系统为例,NVIDIA 的技术增长飞轮是从解决模型推理线上时延的问题,通过优化,实现了几十倍的性能提升,从而给广告业务带来显著的收入提升,进一步推动了更多的模型研发,更复杂的模型开始向 GPU 迁移,最后,引导整个工作流向 GPU 的迁移。
通过一个个关键难题的解决,客户的更多计算任务在 GPU 上实现了性能加速,同时 NVIDIA 也沉淀出了 Merlin 这样的产品来降低推荐系统的进入门槛,扩大了用户群体,带动新一轮的需求产生。这便是我们业务增长的逻辑!
NVIDIA 非常关注客户计算任务中最关键的问题,和客户一起工作,一起为了端到端的极致优化。可以说,加速计算的本质就是实现性能极致优化。而能实现这一点,除了 NVIDIA 带来全栈计算能力之外,更重要的是我们有一批优秀的优化工程师,这是我们的核心生产力。
加速计算助力智能云深入产业
我们刚才看了一个互联网的典型应用,推荐系统。下面,我们来讨论下,加速计算如何可以助力云深入到行业、产业。
以自动驾驶行业为例,看看 NVIDIA 可以做些什么,让技术飞轮转动起来。自动驾驶是一个巨大的行业,麦肯锡的报告称其产业规模可达 8,660 亿美金。而行业的玩家也非常需要技术赋能,特别是基于 AI 的技术赋能。大家想到自动驾驶行业,首先想到的还是车上的设备,比如多少个雷达,多少个摄像头,用的什么芯片。其实这个行业远远不止这样。
我们换个角度,从业务的端到端来看,从自动驾驶汽车的设计、工程、仿真、制造、到销售、服务,都存在着大量的计算任务需要去发掘和构建。这里面的计算任务包括AI的计算任务、HPC 的计算任务、数据科学的计算任务,还有数字孪生所带来的各种机会。
这一切,谁最懂?我们的客户应该最懂自己的需求。当然,也有很多客户,还没有能将自己的需求和加速计算连接起来。而这个行业的解决方案,还有很多空白和等待我们去发掘的地方。这就需要 NVIDIA、百度智能云,一起深入到客户一线,和客户一起分析他们的计算任务,一起共创,找到真正关键的、有价值的计算任务,利用云设施、云服务,构建基于加速计算的解决方案,并通过优化好这些计算任务,实现业务价值,从而推动更多的需求。
再举一个例子,比如未来自动驾驶汽车的设计,也是一个充满想象力的领域。这里面需要大量的计算机辅助工程(CAE)。比如,基于流体力学的外型设计、基于材料力学和结构力学的整车强度分析、基于热物理的电池热管理模拟、雷达天线方位和覆盖范围模拟等。这些都是典型的 HPC 应用,更快的模拟速度、更低的模拟成本,可以加大设计的选择空间和加快效果的验证。
目前,GPU 已经支持了主流的 120 多个 CAE 应用,单就计算流体力学(CFD)部分,已经可以带来 7x 的成本节省和 4x 的电力消耗下降。并且,CFD 也是 AI for Science 快速发展的领域,NVIDIA 的 Modulus,百度的 Paddle AI+Science 科学开发套件,都可以进一步加速 CFD 这一领域。
未来,汽车外型的气动设计可以变成一个自动化的过程,会不会有更多优秀的气动外形的车问世?这将是一个让人充满遐想的领域。注意,这还只是整个产业链中,设计环节中 CAE 的一个例子而已。因此,在我看来,未来利用云设施、云服务,构建基于加速计算的解决方案,大有可为!
最后,我想重新展示这张技术飞轮,和 NVIDIA 创始人兼首席执行官黄仁勋今年 10 月份对于加速计算的判断,作为今天分享的结束页。
这个世界需要加速计算,需要云,需要 NVIDIA 和百度智能云,一起深入客户一线,一起发现、优化,加速最重要的计算任务,需要业务、工程、优化工程师的紧密合作!
点击查看完整视频内容
即刻点击 “阅读原文” 或扫描下方海报二维码,收下这份 GTC22 精选演讲合集清单,在NVIDIA on-Demand 上点播观看主题演讲精选、中国精选、元宇宙应用领域与全球各行业及领域的最新成果!