GPU 挑战者众。

 

后起之秀动辄以数倍的算力输出对标 GPU,GPU 性能甚至变成了这些新架构最直观的比较基准。

 

如日中天的 GPU 会在围剿下成为末路黄花吗?

 

今年的 GTC 中国站,黄仁勋缺席,但他的黄氏定律(Huang’s Law)却登场了,只昭示着一个事实:爷青结?不可能!

 

你觉得什么样的人有资格来命名一条定律?翻翻科技史,以黄仁勋与加速计算这 25 年打下的江山来看,他提出并命名一条定律并不违和。但关键在于,能否立得住脚?能否经得起时间检验?我们一起来推敲一下。


 
黄氏定律:NVIDIA 助力 AI 推理性能每年提升一倍以上

 

为何推出黄氏定律?

 

GPU 与深度学习互相成就,但是,GPU 很有可能成为深度学习继续发展的瓶颈——推测这应该是黄氏定律提出的背景。

 

当前的 AI 革命可以说是 GPU 主导推动的。AI 三要素——算法、数据、算力,有些算法自 20 世纪 80 年代便已经出现,深度神经网络、卷积神经网络、反向传播、随机梯度下降等,而大型数据集早在 21 世纪初就已经出现了,比如 ImageNet 数据集。但是,直到 2012 年,Alex Krizhevsky 开发出 AlexNet,“一种基于 NVIDIA GPU 的深度神经网络”这场革命才真正开始。在那一年里,他在 AlexNet 上获得的性能提升,比此前在 ImageNet 上 5 年的工作成果的总和还要多。

 

不过,在从 AlexNet 到 ResNet 的短短几年内,对计算性能的需求就提高了一个数量级以上。最近,自然语言处理网络的发展速度更快,从 BERT 发展到 GPT-3,训练时间对 Peta 级别的算力要求(Petaflop*天数)也越来越高。

 

人们可以构建的网络,在很大程度上,正在受到训练网络所能使用的 GPU 性能的限制——想要构建更大的模型,并在更大的数据集上进行训练,但是受限于已有的 GPU 资源,在可接受的时间内可以达到的训练程度。

 

黄氏定律是给 NVIDIA 自身的指引,但更重要的是让业界看到:GPU 将充分满足时代需求,通过每年将 AI 性能提升一倍,来推动神经网络的发展,从而让人们构建更强大的网络,并在更强大的硬件上进行训练。

 

黄氏定律为何紧盯推理?

 

根据黄氏定律,NVIDIA 将推动 AI 推理性能每年提升一倍以上。那么问题来了,为什么是推理?而不是 GPU 最擅长的训练?

 

训练是指采用一个经过整理的数据集(可能是标注过的),迭代地使用它来计算更新模型的权重;推理则是指采用经过训练的模型,输入内容,通过模型计算后获取相应的输出。在实际应用中,例如你可以输入一张图片,得到对应的分类;输入一条语音,得到相应的文本;输入一个问题,得到对应的答案……

 

而不论什么应用场景,推理都是深度学习中性能发挥作用最大的环节,就像这一波 AI 热潮中,真正的引爆点还是在于图像、视频等分析。云端训练是 GPU 的天下没错,超过九成使用的是 NVIDIA 方案,但逐渐起来的推理领域的抢食者正在虎视眈眈,云端推理以 FPGA 为典型代表,边缘和终端推理市场还有大量 Arm 架构生态的用户……

 

IDC 今年 5 月发布的《人工智能基础架构市场(2019 下半年)跟踪》报告显示,从工作负载角度看,用于推理的服务器在 2019 年占有 40%以上的市场份额。但是到 2021 年,用于推理的服务器将超过用于训练的服务器,达到 51.3%的市场占比。

 

NVIDIA 今年 5 月发布的 Ampere 架构,将重心都放在了针对 AI 应用的改进上,包括第三代 Tensor Core,支持 TF32 运算,还支持 FP64 双精度运算,以及相关的调度性能、互联等,已经显示了黄氏定律的决心。这几大创新使得基于 Ampere 架构的 Tesla A100 加速卡,可以同时用于 AI 推理、AI 训练,还可以用于科学仿真、AI 对话、基因组、高性能数据分析、地震建模及财务计算等等。

 

NVIDIA 首席科学家 Bill Dally 表示,“为了提供更高的性能,要确保黄氏定律提出的发展趋势仍在继续,因此必须每年将推理性能提高一倍,但实际远不止一倍。”

 

除了硬件架构上的创新,NVIDIA 也在通过软件来降低推理的部署难度。事实上,深度学习模型部署的流程中涉及到不同的技术角色,是一个非常复杂的过程:数据科学家来设计模型、机器学习工程师优化模型,随后将形成的模型放在模型库中,DevOps 在 GPU 或 CPU 集群上架设服务。其中,模型可能来自于不同框架,同时这些模型可能是不同类型的模型,比如:语音模型、NOP、CV 模型、推荐系统的模型等。需要把这些模型根据实际业务联系起来,虽说为了效率起见,建议这些模型都运行在 GPU 上。但是 GPU 资源不够的情况下,会出现运用 CPU 的情况……
 

 

为了简化推理部署过程,NVIDIA 开发了 Triton 推理服务器,这是一款开源软件,支持多个不同的推理后端。除了支持 CPU、GPU 外,它还有一些很重要的技术,比如:动态批处理,对不同的请求进行打包达到更高的吞吐,每一个模型拥有独立的调度队列,以及灵活的模型加载。同时,Triton 也提供了诸多利用率、吞吐、延时方面的指标,这些指标可以给到 Kubernetes 资源调度的工具使用。

 

如果说云端训练是过去、是根基,推理应用才是未来最大的蓝海,不论是在数据中心,还是在机器人、自动驾驶等边缘应用中,GPU 每领先一步,就意味着获取了更为广阔的开采空间。

 

黄氏定律如何延续?

 

既然是定律,应该作为业界一项重要指标,在可预见的未来一直延续。以往的迭代演进,只能部分论证其方向性和正确性,只有未来的产品才是试金石。

 

以下是 Bill Dally 剧透的三个在研项目,虽然不见得会全部转换为产品,但至少代表了方向或原型。

 

超高能效加速器

 

据 Bill Dally 介绍,NVIDIA 正在进行多个研究项目,这些项目旨在寻找不同的替代方案,而这些方案中的任何一个,都能在接下来的几代中,继续帮助 NVIDIA 实现性能提升一倍的目标。为实现这一点,NVIDIA 在实验室构建了大量的深度学习推理加速器。

 


 
上图左侧图片是 RC18,这款芯片在 2018 年研制完成,能达到每瓦 9 teraops 的计算能力,并且还可从 0.3 扩展至 128 teraops。

 

他表示,“在构建 RC18 的过程中我们学到了很多,特别是了解到,即使是非常高效的 Tensor Core,在进行推理时,也有许多能量并没有真正用于负载的数学运算,而是用在了搬运数据。”

 

因此,NVIDIA 构建了 MAGNet 系统,可用于设计空间探索,也可以探索深度学习加速器的不同组织形式,如何使用不同的数据流和不同的调度方案,将数据从内存的不同部分移至不同的处理单元,从而执行计算。

 

通过协调并控制通过设备的信息流,MAGNet 能够最大限度地减少数据传输,而不是像以前一样,只有三分之一的能量用于数学计算,能够获得 60%或更多的能量和计算量。它生成的 AI 推理加速器在模拟测试中,能够达到每瓦 100 tera ops 的推理能力,比目前的商用芯片高出一个数量级。这一研究原型以模组化实现,因此能够灵活扩展。 

 

虽然还未发布,Bill Dally 期望这些技术能运用在今后的 Tensor Core 版本以及未来用于汽车、机器人嵌入式芯片中的深度学习加速器中。

 

挖掘光链路潜能

 

为提高计算能力,GPU 需要通过 NVLink 和 NVSwitch 连接,以实现更大的扩展规模。目前带宽可以达到每线对 50Gb/s,下一步达到 100 至 200Gb/s,但是,Bill Dally 预估,要想在 NVLink 中所使用的信号传输带宽每隔一代提高一倍,会变得愈加困难,因此 NVIDIA 考虑使用基于光子学的光通信技术替代方案。

 

据了解,他的团队正在与哥伦比亚大学研究人员密切合作,探讨如何利用电信供应商在其核心网络中所采用的技术,通过一条光纤来传输数十路信号。这项名为“密集波分复用”的技术, 有望在仅一毫米大小的芯片上实现 Tb/s 级数据的传输,是如今互连密度的十倍以上。

 

NVIDIA 的光链路,与 Intel 近来首提的“集成光电”,有共通之处。当算力暴涨时,传输能力越来越成为一个必须关注到的问题。除了更大的吞吐量,光链路也有助于打造更为密集型的系统。Bill Dally 展示了一个未来将搭载 160 多个 GPU 的 NVIDIA DGX 系统模型。

 

全新编程系统原型 Legate

 

如今很多开发者使用 Python 或 Python 内的 NumPy 库进行数值分析,因此 NVIDIA 开发了 Legate 程序包,该程序包基于 Legion 的数据感知和任务调度运行时的系统而构建。开发者借助 Legate,即可在任何规模的系统上,运行针对单一 GPU 编写的程序——甚至适用于诸如 Selene 等搭载数千个 GPU 的巨型超级计算机。

 

以 CuPy(这是当前运行雅可比迭代性能最优异的库)做示例,如果在任务调度器 Dask 上运行,或者增加 GPU 数量时,其性能表现会迅速下降;使用 Legate 的话,可以从 Legate 和 Dask 在 CPU 上的运行对比看出,代表 Legate 性能的曲线依旧平坦,这是因为 Legate 能更好地并行处理任务并让所有处理器处于繁忙状态。当在 GPU 上运行 Legate 时,性能轻微有些下降,这些曲线展示的便是所谓的弱扩展性。每当 GPU 数量增加时,问题的规模会成比例增加。

 

 

Bill Dally 指出,理想状态的增速呈现形式应是一条直线,在一开始几次 GPU 倍增后,得到的是一条直线,但随后直线便开始下降,这是因为 Legate 无法针对大量 GPU 进行理想的并行处理,也是要努力解决的问题。


 
25 年来,NVIDIA 其实在做一件事,就是加速计算。但为了构建领先业界的加速计算设备,除了 GPU 本身的架构创新、工艺升级,NVIDIA 一直在构建配套软件,通过大量的库和基于这些库构建的垂直技术堆栈去渗透市场。

 

写在最后

 

引爆了第一波 AI 训练革命后,GPU 当前仍是最大赢家。趁着各行其是的 AI 计算架构还没有太多战绩的时候,黄氏定律提出的正是时候。

 

不过别忘了,当业界把许多专用的 AI 加速器放在与 GPU 完全对立的角度去看待时,其实二者在技术路线的选择上,仍有很多联系:比如 GPU 中主要用来加速矩阵运算的 Tensor Core 单元,跟许多 AI 加速器中采用的技术手段很相似。

 

黄氏定律下的 GPU 发展方向,有两点可以肯定:在保持可编程性、对通用并行计算的良好支持之外,未来会不断在架构上进行创新,而创新的重心则是 AI。也就是说,NVIDIA 的 GPU 将继续走通用计算+AI 路线,以适应人工智能,特别是深度学习不断变化的需求。