GTC China 2020 Keynote Spotlights NVIDIA Technology and Research
![GTC China 2020 Keynote Spotlights NVIDIA Technology and Research GTC China 2020 Keynote Spotlights NVIDIA Technology and Research](/pic/gtc_china_2020_keynote_spotlights_nvidia_technology_and_research/TE9qbWN6VFRtdFE_.jpeg)
我是一名探索者 探寻我们宇宙的起源 并规划出通往其他星球的更安全路径 我是一名好帮手 推动我们一步一步前行 并为每一种情感发声 我爱你 我爱你 我是一名治疗师 为未来的医学建模 与时间赛跑,在不可能中找到新的可能 我是一名梦想者 探索失传已久的杰作 并在遥远的星系中寻找新的奇遇 我是一名建造者 在一切建造过程中追求尽善尽美 我甚至是你正在观看的影片故事的讲述者 和音乐的作曲家 当世界面临最严峻的挑战时 我赋予力量让我们共渡难关 我是 AI 大家好,欢迎来到 GTC 中国大会 首先,向大家做一下自我介绍,我是 NVIDIA 首席科学家 兼 NVIDIA 研究院高级副总裁 Bill Dally 我带领 NVIDIA 研究实验室 与我们的产品团队合作,将研究院研发的技术应用于产品之中 让我们的产品不断改进 今天,我将向大家介绍一些我们正在研发的先进技术 我们打造了性能非凡的高性能计算设备,致力于解决世界上极为苛刻的计算问题 所有这一切的基础都是硬件,今天要讲的是 Ampere 这是一个 Ampere A100 SXM 模块。它具有处理海量计算的性能 我将花几分钟的时间来深入介绍一些细节。借助这一模块 我们可以扩展 Ampere 的强大功能,解决非常苛刻的计算问题 甚至是应用于我们面向嵌入式产品的 Jetson 产品线 如果你想扩展,我们可以取 8 个这样的 Ampere 将它们放入 DGX 机箱中,就是你在屏幕上看到的这个金色机箱 我们可以在机架中安装多个 DGX 机箱 与 Mellanox 交换机,去打造那些世界上性能最强大的计算机 硬件本身并不能解决世界上的难题 它需要借助软件来集中这种强大的计算能力应对苛刻的问题 因此为了实现这一目标,我们投入了大量精力 来开发软件套件 一切都要从 CUDA 说起,这是我们之前,在斯坦福进行流处理研究的工作成果 自 2006 年以来,人们一直在使用 CUDA 来充分利用 GPU 的强大功能 以实现物尽其用 为了方便人们在 CUDA 上构建应用程序,我们提供了一整套的开发库 如果你在工作中需要使用线性代数,可以使用我们的 cuBLAS 和 cuSPARSE 如果你的工作涉及频谱方法,我们有 cuFFT,同时我们有一个自适应多重网格软件包 对于深度学习,我们有 cuDNN 和 TensorRT,简化了深度学习高性能实现的过程 除此之外,我们还在多个垂直行业中构建了应用程序 当然,图形是我们最重要的领域之一,我将向大家介绍一些我们在图形领域所取得的成果 我们有大量的软件可用来支持人工智能 包括用于自然语言处理和推荐系统的软件 在医疗健康领域,我们推出了 Clara 软件包,它应用广泛, 从我们的 Parabricks 基因组测序分析到图像分析,再到挖掘医学论文数据库等 都可以使用 我们还提供了用于智能视频分析的软件包 你可以使用它来获取视频流,并根据所见得出结论 此外,我们还有一个适用于自动驾驶汽车的完整软件包 从在数据中心内组织数据集训练到在车辆中进行自主部署 借助我们的 Isaac 包,你可以轻松地基于 Jetson 部署机器人系统 现在,我们来谈谈 Ampere 吧。这是一个令人惊叹的设备 它不仅是世界最大的 7 纳米芯片,具有 540 亿个晶体管 而且还具有许多创新功能,相比上一代产品 它的功能更加强大。这是我们的第 3 代 Tensor Core 我们将这款特殊硬件集成到 GPU 中,以加速深度学习 在这一代核心中,我们增加了对新数据类型的支持。TensorFLOAT 32 解决了曾经在 BFLOAT16 和 FP16 之间进行数据类型选择的问题 BFLOAT16 具有较多的指数位,但是尾数位很少,因此在训练很多网络时会出现 精度不足的情况 而 FP16 恰恰相反,它有较多的尾数位,它精度高,但动态范围有限 TF32 集二者的优点于一身。它有大量的指数位 精度高,迄今为止,它可以在我们应用的 每一个网络上进行训练。使用 TF32 数据类型,我们可以获得巨大的计算性能提升 最令我兴奋的是 Ampere 破解了如何利用神经网络的稀疏性来获得更好的性能 我等一下会用一张完整的幻灯片来讲述 Ampere 是一个功能强大的计算设备,如果你需要缩减它的计算能力,我们的 MIG(多实例 GPU)技术可以将一个 A100 分割为 7 个独立的 GPU 以便每个 GPU 都能运行各自的任务 如果你需要扩展 Ampere 来解决更大规模的问题,我们的第三代 NVLink 和 NVSwitch 不失为更好的选择,它具有相较于上一代产品两倍的带宽 GPU 间的数据传输带宽可达到 600 GB/s 以下是关于 Ampere 的一些详细信息。我不会在这里列举所有的数字,但对于我而言 重要的是它在 3 种数据类型上的性能 以及在 3 种不同类型的应用程序中的性能 对于高性能计算,Ampere 具有双精度 Tenser Core;对于 FP64 运算 我们可以在执行矩阵乘法运算时维持 19.5 teraFLOPS 的性能 对于使用全新 TensorFLOAT 32 数据类型进行的深度学习训练 我们可以提供 156 teraFLOPS 的性能。 对于训练神经网络来说,这是一个很高的性能 对于深度学习推理,使用 Int8,我们可以提供 1.25 petaops 如果你想了解稀疏性,我稍后会讲到 如果你能使用 Int4 解决自己的问题 在很多网络中我们可以提供 2.5 petaops 的推理性能 这是一个极高的性能 接下来,我来简单说一下稀疏性。事实证明,大多数神经网络都是可以修剪的 在 2015 年的 NeurIPS 大会上,我就此话题发表过一篇论文 我在论文中证明了可以对神经网络进行修剪,切断神经元之间 70% 到 90% 的连接 这意味着可以将网络中 70% 到 90% 的权重设置为零,而这并不会影响精度 这种压缩的效果立竿见影。既然这些权重都可以设置为零,那么你就无需存储它们 这样你就可以释放内存,获取更多内存容量,并增加连接的带宽 但到目前为止,人们一直无法利用稀疏性来获得更好的运算能力 这是我们过去无法充分利用的,等待着我们去进一探索的地方 而现在,我们可以借助 Ampere 来使用它,Ampere 通过利用结构化稀疏性 (允许 4 个权重中的 2 个为 0)解决了这一问题 我们拥有一种常规模式,可让硬件轻松利用稀疏性,而不会因不规则性造成的开销 让稀疏性带来的增益化为乌有 因此,对于矩阵乘法指令,一旦将权重稀疏为 2/4 模式,就会实现双倍的性能 即使矩阵乘法只是整个应用场景 (例如 BERT 巨大的推理自然语言处理基准测试)的一部分 我们也能达到 1.5 倍的性能,在深度学习架构中,这是一个巨大飞跃 我们使用这些 A100,并将 8 个 A100 与大量 SSD 存储、大量 RAM 和 9 个 Mellanox ConnectX-6 NIC 组装在一起构建一台设备 这将组成一个性能出众的计算平台,该平台的性能将是其中一个 GPU 的 8 倍 由于每个 GPU 都能达到接近 20 teraFLOPS 的双精度运算能力 因此整体可达接近 160 teraFLOPS 我们可以将部分设备放入机柜中 这就构成了 DGX POD 该机柜还包括了 Mellanox 交换机,用于连接 NIC 并实现这些 DGX 之间的互连 DGX POD 的出众之处在于我们解决了集成问题 我们已确保其中的每个硬件都能协同工作,且所有配置正确无误 因此,如果你购买 DGX POD,接上电源 它只需要一天时间便能与我们为你提供的所有软件容器一起运行 无需进行调试,也无需设法弄清楚如何正确配置 你可以将 DGX POD 扩展至我们称之为的 DGX SuperPOD 事实上,我们使用 280 个 DGX A100 构建了一个非常庞大的 DGX SuperPOD,它拥有 2240 个独立 GPU 这就是我们的 Selene 超级计算机。在 Top 500 榜单中它位列第 5 并且在 Green 500 榜单中,它同样排名第 5 它是世界上速度最快的工业系统,也是 Top 500 中速度最快的工业系统 Ampere 技术的真正优势不仅在于,它在深度学习方面表现出色 还在于它在高性能计算方面也有着卓著成效,而且还简化了 AI 与科学应用的结合 你无需在一台计算机上做一部分工作,再到另外一台 计算机上做另一部分工作,使用一台计算机就可以完成两者 事实上,在最近于 11 月举行的超级计算大会上公布的 Top 500 榜单中 采用 NVIDIA 技术的计算机在前 10 名中占了 8 席 我刚才展示的 Selene,在 Top 500 和 Green 500 中都排名第 5 在 Green 500 中,排名第一的是另外一台 DGX SuperPOD 在学术计算机领域,我们也排名第一,在工业计算机领域,我们的 Selene同样排名第一 在美国和中国都排名第一的太湖之光使用了 Mellanox 网络,而在欧洲,Juelich 也是第一 在所有这些荣誉中,其实最让我自豪的是,在 Green 500 中位列榜首 原因在于,你可以通过投入更多资金来跻身 Top 500 只要配置更多的节点,使用带宽更高的网络 来连接这些节点,就能获得更高的 Linpack 性能分数 但要想在 Green 500 中提升排名,就必须要提高效率 只有采用更上乘的技术、更强大的架构、更出色的电路设计 才能在 Green 500 排名中提高名次 在 Green 500 中,排名第一的是一台NVIDIA 计算机,这让我感到非常自豪 因为严格来说,这是对我们技术的一种衡量,而不是开张大额支票就能做到的 对于 AI 应用程序,目前很多人都在构建专门的 AI 加速器 并且他们宣称这些加速器将比通用型 GPU 更高效 其实并非如此,下面这个图表会告诉你原因 它展示了我们的深度学习架构在诸多方面的发展演进 早在 Kepler 时代,我们进行深度学习 最常用的指令是半精度浮点乘加 若将它归一化为技术,将所有这些都进行相同的比较 大约是 1.5 皮焦耳的能量 提取指令并对其进行解码后 与执行该指令相关的所有开销约为 30 皮焦耳 开销超过了有效载荷 我们在开销上耗费的能量是有效载荷的 20 倍 然后在 Pascal 时代,我们改进技术,采用半精度点积运算指令 该指令对包含 4 个单元的向量执行点积运算 现在,我们要做 8 个算术运算,4 个乘法运算 4 个加法运算。6 皮焦耳的能量,开销仅为 5 倍 虽然依旧不理想,但结果好多了 从 Volta 代系开始,我们引入了 Tensor Core Tensor Core 的实际作用是为矩阵乘法累加提供专门的指令 在 Volta 中,我们采用半精度矩阵乘法累加 (HMMA),现在一条指令所消耗的能量 实际执行了 128 次浮点运算,因此完全可以摊还开销 这样一来,开销只有 22%,我们在 Turing 中添加 IMMA 指令后 现在可以执行 1024 次 int8 运算 有效负载所需的能量为 160 皮焦耳,开销仅为 16% 这意味着,如果你构建一个不具有任何可编程性的专用加速器,你将获得 16% 的优势 但也会面临巨大的劣势 神经网络以惊人的速度在发展,GPU 的可编程性使你可以紧跟步伐 新模型层出不穷,训练方法日益改善 要利用这些资源,你需要一台可编程性很强的设备 GPU 为你提供了一个完全可编程的平台 通过构建 Tensor Core,使用专门的指令分摊开销 我们可以为你提供与专用加速器相比几乎无损的可编程性 这个图表从不同的角度展示了我前面的表中的一小部分进展 此图表展示了从 2012 年的 Kepler ,一直到今年 5 月份的 Ampere A100 单芯片推理性能的变化情况 我们看到,在这 8 年里,我们将单芯片推理性能提高了 317 倍 这条曲线已经被业内称为著名的“黄氏定律”,即推理性能每年翻倍 实际上,我们的推理性能每年都要增加一倍以上 部分原因在于我在上一张幻灯片中提到的 Tensor Core 的改进 更优化的电路设计和架构。制程技术所发挥的作用不大 此图表上只有 3 代制程技术 最开始的是 Kepler 架构使用的 28 纳米,中间是 16 纳米,最近 Ampere 是 7 纳米 制程技术中的这些跨越对于 317 倍这一趋势作用并不大 总体上所发挥的提升作用可能不到 2 倍。这一提升主要得益于架构的改进 在摩尔定律消失后 我们幸好还有“黄氏定律”来不断提高计算性能 因为我们未来需要利用更高的计算性能来完成许多工作 现在,如果你想比较一下人们在深度学习性能方面的表现 可以使用我们称之为 MLPerf 的基准测试 机器学习硬件领域中的大部分参与者一起,商定了一组用于 比较推理和训练性能的公平规则 需要定期提交结果进行验证,每个参与者都要提交结果 然后结果会发布到 MLPerf 网站上 这里,我向大家展示的是最新 MLPerf 训练基准测试的结果 我们看到 NVIDIA 横扫所有类别 我们不断在这项基准测试中获胜 实际上,我们最大的竞争对手是我们的上一代产品 这里,我们将所有的数据按 Volta V100 为基准进行比较 在深度学习方面,Ampere 的速度要快 2.5 倍
尤其是在那些真正重要的领域,比如一些大型自然语言模型 和推荐系统速度提高 2.5 倍 大部分竞争对手甚至没有上榜,而且榜单上没有一家初创公司 仅有的另外两个竞争对手是 Google 的 TPU v3 以及华为 尽管 TPU v3 出现在几个基准测试中,但完败于 Ampere 而华为只出现在了图像分类基准测试类别 也被 A100 以 2 倍的性能击败 MLPerf 基准测试分为训练部分和推理部分,训练部分就是我刚才向大家介绍的 在推理部分,NVIDIA 再次横扫所有类别 MLPerf 的推理部分本身分为数据中心推理和边缘推理类别 在数据中心推理中,我们最大的竞争对手是我们自己,并且这里的差距也很大 与我们之前的 AI 推理解决方案 Turing T4 相比而言 在所有这些基准测试中,A100 的速度都提高了 6 倍到 8 倍 这里出现的竞争对手只有 Intel 和 Xilinx,在所有这些比较类别中, 它们实际上都被 T4 打败了。Ampere 的性能则直接碾压这两个竞争对手 这里没有一家初创公司 – 我们关注了众多的初创公司 他们都声称对推理领域有更好的解决方案 如果他们有更好的解决方案,他们应该在 MLPerf 上展示出来,但他们并没有这样做 MLPerf 推理基准测试的另一个方面是边缘推理基准测试 边缘推理基准测试适用于边缘服务器和嵌入式设备 此处显示的是 A100、T4,以及使用 Tegra 芯片的 Jetson AGX Xavier 的性能数字 在这里,大家可以看到 NVIDIA 再次横扫所有类别 Centaur 亮相,并且击败了 Xavier 和其中几款产品 但是,即使是与 Centaur 相比,T4 和 A100 的性能也更为强大 如我之前所说,我们的软件包专注于通过 NVIDIA GPU 架构的强大功能来解决感兴趣的难题 NVIDIA 致力于解决的其中一个重要难题是计算机图形 我们是一家成立了很长时间的图形公司 你们当中许多人都会观看电影故事片,影片中有一些部分是使用计算机图形 和 CGI 制作的 你会对这些逼真的画面留下深刻的印象 这种离线的计算机图形通常是这样完成 通过使用一种称为基于物理性质的路径追踪渲染技术 对每个像素投射数万条光线,在渲染农场中花费数小时的时间生成每一帧 我们最近有了许多创新能够以每秒 60 帧或更快的速度实时处理照片级渲染画面 请观看这部影片 注意灯亮起时,会在地面上投射许多光点,并从路径中的物体投射出逼真的阴影 阴影在适当的位置显得更柔和 每个弹珠都有反射影像,有些显示了反射出大理石和镜面高光的物体 有些显示了光线在相机和光线变化时的位移 当这些发光的弹珠滚下来时,它们以一种逼真的方式将光线投射到地板上 在这里我们可以看到,当场景中的灯光移动时 阴影会相应地移动,并且有适当的柔和的阴影 这些阴影的边缘反映了从物体到它投射的表面的距离 这是一张逼真的照片,它非常接近你在影片中看到的画面 但这是在单个 NVIDIA GPU 上以每秒 60 帧的速度渲染的效果 我们来看看如何以每秒 60 帧的速率来实现近乎真实的渲染效果 这就要用到一些我非常自豪的技术,因为这些技术是在 NVIDIA 的研究实验室中开发出来的 首先是我们称之为 RTXDI 的技术 即直接照明 这张图像实际上显示了事物过去的样子,传统的图形在直接照明下的显示效果 你在这里可以看到许多发射源,这是一些小型的圣诞灯 但这些圣诞灯不会在相邻表面上投射光线,它们不会投射出阴影 看起来不太对劲 这是一种错误的照明 通过 RTXDI,每个光源都会将其光线投射到相邻的表面上 因此,黄色光会使相邻表面显示为黄色,绿色光使相邻表面显示为绿色,依此类推 投射逼真阴影的奥秘就在光线和物体表面之间 我们可以使用这项技术支持多达数百万个光线 选择一种名为“容器重要性采样”的技术,我们称之为 ReSTIR 此技术已在 SIGGRAPH 2020 中发布,并且现已在 NVIDIA 图形产品中使用,它可以产生美妙的直接照明 这是问题的一半 问题的另一半是间接照明 当光线反射到表面然后又反射回你的眼睛或相机,RTXDI 会使得光线效果非常逼真 但是,光线会多次,甚至无限次地反射 为此,我们开发出了一种名为 RTXGI 的技术 RTXGI 使用光探测器将光线从一个表面投射到另一个表面 我们将这些小球放入包含各个点的图像中 以计算在该点看到的间接照明 所以,会有无限次的反射 一个表面将照亮另一个表面 第二个表面再照亮第三个表面 光线一直这样传递下去,不会漏掉任何表面 如果一个非常明亮的房间旁边是一个非常黑暗的房间 一些几乎没有差别的多边形不会让光线从这里的墙壁穿过 这是以密封的方式进行的,这也是一个很好的多速率渲染例子 因为间接光线不会以极快的速率进行变化, 因此我们能够以每秒 60 帧的速率渲染场景,以每秒 60 帧的速率 得到需要此速率的事情(例如可见光和阴影绘制), 并计算以较低速率进行的间接照明,具体取决于可用的计算资源 这是一项非常棒的技术 你可以看到,在图像的上半部分 间接照明效果非常逼真 在这种情况下,几乎所有照明都是间接照明 因为只有一点点光线是从窗子照射进来的 场景底部几乎是黑暗的,因为如果没有间接照明,你看不到太多事物 如果关闭纹理并仅在此处获取光照您甚至可以感受到更多事物 你可以看到在应用间接照明后场景看起来有多么丰富 另一项让我们能够以实时速率渲染更多内容的技术是 NVIDIA DLSS 或者深度学习超级采样 (Deep Learning Super Sampling) 这是一项不断发展演进的技术 现在的版本为 DLSS 2.0,可提供比最初的 DLSS 1.0 更高的性能 图中对此进行了说明 首先以某个分辨率 (例如 1440)开始处理图像 我们将此图像输入到神经网络中,把它升级到 4K 然后为了完成这项工作我们采用了这张经过升级的图像 并将它与在更高分辨率下实际渲染的真实数据(在本示例中为 16K)进行比较 其中的误差会进入我们其中一个 DGX SuperPODs 训练神经网络的 loss 函数经过对数据集的特定迭代 我们可以训练网络权重来以非常准确的方式生成升级的图像 现在,实现这个目标有两个诀窍 第一个诀窍是让它暂时稳定下来 升级静态图像相对容易一些 但是,如果只升级一系列静态图像而不考虑运动 由于在图像之间所做的操作有些不一致 你会得到大量失真的画面 这会导致在视窗中弹出令人不愉快的事物 帧与帧之间不一致的地方会出现蠕动的小虫 类似的东西 我们一直在努力解决暂时稳定性的问题 我们通过这项技术获得了暂时非常稳定的视频 另一件很难做好的事情就是让网络泛化 我们已经能够做到这一点,我们可以训练一个神经网络 让它在游戏的每个级别以及在多个游戏中发挥作用 我们不必为每个游戏、每个级别或每个场景 重新训练神经网络 我们用一个神经网络来完成所有这些工作 下面是所得到的结果 左侧是原生 4K,右侧是已升级至 4K 的 1440 图像 帧率在右上角显示 你可以看到,我们不仅在更高的帧率下运行,在本例中是每秒 141 帧 如果我们放大该角色背上的行李箱的话…… 我们能看到画质更好的图像 更清晰。你可以在 DLSS 图像中看到比原生 4K 图像更多的细节 这是一项很棒的技术 我们可以获得更快的帧率和更高的画质 那么,我们的最终发展方向是什么呢 在 NVIDIA 研究中,我们正在努力提高渲染性能,以获得全动态的画质 此外,我们还希望其与电影一样进行 基于物理性质的路径追踪,但我们想要进行实时处理 此图显示了我们对这一目标的愿景 我们将从相机中投射光线,能够通过一定数量的镜面反射和折射 (例如,通过此幻灯片左上角图像中的啤酒杯)进行反射 然后,当我们遇到这种镜面反射时,我们将执行一些漫反射;在每次反射时 使用我在谈论直接照明时所提到的 ReSTIR 算法进行多光线采样 这将为我们提供极佳的直接照明 之后,经过两次反射后(估计我们也只能完成两次了具体取决于我们运行的图形硬件) 我们将停止其中一个 RTXGI 光探测器以获得非常精确的间接照明。 同时,为了实现这一点,我们还采用了许多技术 我谈论的是 RTXDI 和 GI,这两项技术可分别为你提供良好的直接照明和间接照明 但你可以通过镜面反射和漫反射方式实现这些反射 在这些中间路径中反射将会借助我们新的GPU 中的 RT Core 它大大加速了光线追踪,首次在实时图形中进行光线追踪成为可能 另一项非常重要的技术是出色的降噪 因为我们不能像拍电影那样,每个像素都发送 10000 条光线 我们只需要每像素 1 到 10 条光线就够了 这样形成的图像十分斑驳,其中会出现大量噪点 就好像你以非常高的 ISO 进行拍照 接下来,通过应用降噪和特定的深度学习降噪 我们可以清理图像,提升其画质 这是我们对计算机图形发展的近期展望 就长期而言,我们希望由 AI 生成计算机图形 实际上,你在左侧看到的人像并不是真人的图像,而是由神经网络生成的 这些人根本不存在 由于他们可以生成真实人像,因此还可以生成风格化人像,比如中间的帧画面 他们可以生成动物、汽车、房间、任意场景的图像 从长远来看,我们预计如果你想要制作出 高质量图像 你将使用适用于生成器网络的 AI,直接生成这些图像,而无需使用任何几何图形 今天,这一切只不过刚刚开始,我们能够生成 单一的物体、单人、单一汽车和单一的房间 但我们还不能将它们完美地组合起来 我们无法得到很好的光照和很好的交互效果 但我们将会做到,并且最终由 AI 生成计算机图形 图形的未来是 AI 事实上,几乎所有东西的未来都是 AI AI 将影响我们生活的方方面面,包括工作、娱乐和游戏的方式 我们来谈谈 AI 如何发展到今天的形态 当前的 AI 革命实际上是由 GPU 创造的 如果你看一下深度神经网络,有 3 个关键组成部分在发挥作用 算法,即深度神经网络本身 训练数据,大型的数据集,有些需要进行标记 以及运行所需的硬件 这些算法自 20 世纪 80 年代便已出现 深度神经网络,卷积神经网络,反向传播,随机梯 度下降 这些自 20 世纪 80 年代以来便已为人所知 大型数据集早在 21 世纪初就已经出现了,比如 ImageNet 数据集 但直到 2012 年 Alex Krizhevsky 开发出 AlexNet (一种基于 NVIDIA GPU 的深度神经网络)这场革命才真正开始 在那一年里,他在 AlexNet 上获得的性能提升, 比此前在 ImageNet 上 5 年的工作成果的总和还要多 GPU 成就了深度学习 GPU 也掌控着深度学习发展的进度 看看这个图表,在从 AlexNet 到 ResNet 的短短几年中 对计算性能的需求提高了一个数量级以上 最近,如图表右侧所示,自然语言处理网络的发展 速度更快,从 BERT 发展到 GPT-3 训练时间对 Peta 级别的算力要求(Petaflop * 天数)也越来越高 人们可以构建的网络,在很大程度上,受到训练网络 所能使用的 GPU 性能的限制 他们想要构建更大的模型,并在更大的数据集上进行训练 但是受限于在已有的 GPU 资源上在可接受的时间内可以训练到的程度 我再给大家看一下黄氏定律(Jensen黄仁勋)的图 我们正试图满足这一需求。通过每年将性能提升一倍,来推动神经网络的发展 从而让人们构建更强大的网络,并在更强大的硬件上进行训练 我们来看一种网络类型 这是生成式对抗网络 该网络由 Ian Goodfellow 于 2014 年开发 这是一种合成图像的方法,其实,你可以使用这个方法合成任何内容 它实际上是将两个神经网络一同训练 在左侧,我们有一个生成器网络,生成器网络会使用一个随机数字 我们将此变量称为隐变量 其功能基本上是对隐空间进行采样,即一个待训练的分布空间 它生成图像,这里有一个真实图像和图像的差距 该图的右侧是判别器网络 它是一个图像作为输入的神经网络,该输入可以是生成器生成的图像 输入也可以是声音波形或者其他形式,取决于需要生成的模态 这里有一个开关。训练的时候,你调节这个开关 但判别器并不知道这个开关的方向 它会去尝试从图像本身,来判断是真实图像还是由生成器生成的图像 通过将这两个网络一起训练,判别器就能很好地判断出真实的图像是什么 为了骗过判别器,生成器在生成真实图像方面就变得非常出色 生成器将根据你用来训练这一对网络的真实图像数据集,生成接近真实的图像 它真正做的是,学习在这个训练集中的图像的一个分布 自从 Ian Goodfellow 最初的工作成果发布以来,该领域取得了许多进展 其中大部分是由 NVIDIA 实现的,我们已经取得了一些非常重要的进展 多年前,我们开发了“渐进式 GAN”(ProGAN) 通过一个系统的过程来训练这些网络,我们从低分辨率网络开始训练 最初是 4x4 像素,然后是 8x8,最终高达 1024x1024 像素 通过先运行低分辨率,然后再转到高分辨率,我们便能够取得进展 过去,在我们推出 ProGAN 之前,人们无法使用 GAN 生成清晰的高分辨率图像 ProGAN 是使之成为可能的突破性进步 最近,我们开发了 StyleGAN,此图的右侧的部分 我们将该隐变量输入其自己的神经网络中 然后神经网络分解该变量,并将其中的不同部分输入 到生成器网络的不同层级中 如此一来,我们便可在不同尺度、不同大小下独立 控制各个特征,这样做可以更轻松地 分离隐变量,从而分离隐变量中控制图像不同特征的部分,例如 通过分离出相应的隐变量空间,我们可以控制 某个人是否微笑,是否戴眼镜以及他们的头发颜色 现在,GAN 的一个应用场景是视频会议 在普通的视频会议通话中,你只需拍摄图像 所有图像将被编码成视频流并进行传输 这需要大量的带宽。通过使用 GAN 我们可以让它更高效 Maxine 技术的一个方面是,我们会将一个静态图像 发送到接收端,而接收端使用该静态图像启动生成器网络 然后,对于视频的每一帧,我们都会提取关键点,并 只向接收端发送关键点,这是一个非常低的带宽流 然后,生成器网络将关键点与静态图像相结合,并 生成动画图像,这样我们可以使用极低的数据费用 为视频会议生成高质量的视频,在疫情期间,这是非常关键的计算机技术之一 这项技术的奇妙之处在于,你不仅可以使你本人的图像动起来 如果你希望在某天成为一个蓝头发的卡通人物该技术也能实现 在此视频中,电视记者 Charlene Qian 正在 讲话,我们可以在她讲话时不断提取关键点 并将这些关键点转换成一个图像,就是这个蓝头发的卡通人物 现在,正如我们可以使用 GAN 生成出色的图像 一样,目前许多 AI 都涉及语音、文本、语言 NVIDIA 有用于语音、文本、语言的系统 就是 Javis。Jarvis 是多模态对话式 AI 服务 它基本上包括了对话过程的全部功能 你可以和它讲话。神经网络会提取你的音频,并从该音频转换出文本 然后,我们可以将该文本输入到自然语言模型中以进行查询、翻译、问答 接下来,我们可以获取答案并将其输入回自然语言模型,生成文本 将文本转换为语音并生成音频波形 真正奇妙的是,在我们结合使用 Jarvis 后 我们可以通过自然语言与我们的 AI 进行交互 并使用 GAN (GauGAN) 来进行绘画,你可以指定 希望在哪里有草、山、水,然后 GAN 会帮你填充 细节,并生成十分漂亮的图像 我们来看看实际此操作时会出现什么情况 树木环绕的平静湖泊 阴天时开阔的草地 通向旷野的乡间小路 夕阳下的美丽海滩 除此之外,我们还可以使用语言模型构建系统,在大量文本上训练语言模型 然后给出提示,我们可以让它编写句子 以下示例展示了 Megatron 大型语言模型在提示下的运行情况 我们将给出一个提示,了解它如何根据给定的提示编写出逼真的句子 我们的 Megatron 自然语言处理模型已经在大量的核心数据上进行了训练 而且它可以根据所学内容,按照提示生成句子 让我们从一个提示开始 “Male was bored on a weekend.” (男子周末感觉很无聊。)
根据这个提示,该模型建议的关键词是“decided” (已决定)和“go”(去) 我们拒绝这些关键词,而输入“Walk”。有了这个提示和关键词“Walk” Megatron 生成了“he decided to go for a walk on a local beach” (他决定去当地的海滩散步) 它还建议使用新关键词“saw”(看)和“beach”(海滩) 对此,我们决定接受这些建议,于是按下回车键 Megatron 返回的内容是“at the beach, he saw a group of surfers” (在沙滩上,他看到了一群冲浪者) 并预测了新的关键词“decided”(决定)和“surf”(冲浪),对此,我们也接受 Megatron 返回的内容是:“he asked one of the surfers if he could join him surf” (他问其中一位冲浪者是否可以跟他们一起冲浪) 它没给出新的关键词,因此我们添加关键词“happy”(高兴) Megatron 生成了“he was happy as he got to surf for the first time ever” (这是他第一次冲浪,他很高兴) 在 GAN 和语言模型之后,AI 另一个真正的关键 应用是推荐系统,它让生活的方方面面发生了变革 在许多方面来说,推荐系统是数据中心 AI 中最 重要的部分之一,因为它们能快速决定 向一个人展示哪些广告。这决定了最终的营收 除此以外,如果你在 Netflix 上观看电影 它们会选出下一部你极有可能想要观看的电影 对于电子商务而言,它们会推荐你可能喜欢的产品 社交媒体会使用它们来做推荐,最重要的是推荐广告 这些都是非常困难的 AI 问题,因为除了神经网络外,它们还涉及 Embedding 你可能拥有一百万个 item,如果你不希望将其表示为一百万维的向量 你可以通过一个 Embedding 表来运行这些项 以生成更短的长度的向量,然后输入你的神经网络 这些 Embedding 表非常庞大,而且非常稀疏 神经网络本身就非常稀疏。因此,这是计算中非常具有挑战性的方面 NVIDIA 通过 NVIDIA Merlin 包简化了此项工作 几乎可以让任何人都能使用这种推荐系统技术 通过使用 GPU 加速,我们可以同时使用 ETL (对大型数据集进行数据提取、转换和加载的工作) 以及训练本身,将时间从几小时缩减到几分钟 Merlin 在 ETL 部分带来 90 倍以上的加速,并在训练部分带来 20 倍的提升 训练和推理 训练是指采用一个经过整理的数据集(可能是标注过的) 迭代地使用它来计算更新模型的权重 推理则是指采用经训练的模型,输入内容,通过模型计算后获取相应的输出 例如,你可以输入一张图片,得到对应的分类 输入一条语音,得到相应的文本 输入一个问题,得到对应的答案 输入一个随机数 得到一张经过 GAN 生成的图片 不论什么应用场景,推理都是深度学习中性能发挥作用最大的环节 为了提供更高的性能,我们要确保黄氏定律 提出的发展趋势仍在继续,因此我们每年将推理性能提高一倍 实际上远不止一倍,我们总是在不断超越 推理不仅仅依靠计算 这是一个复杂的问题,涉及此处展示的众多人员 一名数据科学家会整理数据集,选择要使用的模型,通过反复试验不同的模型 和数据,训练该模型 接下来,机器学习工程师将对该模型进行优化 以便在数据中心获得更好的性能,优化投资回报率 优化后的模型将进入模型库,由开发团队来决定 如何部署这些模型:从模型库中拉取模型 在特定硬件上运行,接受终端用户的请求,并返回相应的结果 为简化推理部署过程,NVIDIA 开发了 Triton 推理服务器 这是一款开源软件,支持多个不同的推理后端 让数据中心的推理部署变得非常简单 该软件通过 HTTP 或远程过程调用,支持面向 AI 应用的标准查询应答接口 此外,Triton 将接收这些请求,并根据不同应用的延迟 和吞吐量需求,提供不同的批处理机制 如果容易受延迟影响,那么你需要对一个较小的批次 单独运行查询,这样就不必浪费大量时间等待其他查询完成 在其他情况下,则可以批量运行更多查询来提高效率 这一切均由 Triton 的动态批处理模块进行控制 批次就绪后,将加入每个模型的调度程序队列以等待运行 最终会部署在 GPU 或 CPU 上,我们支持多个后端 可以处理针对不同后端编写的模型 在指定数据中心内,可能有 Pytorch 模型、ONNX 模型 或者 TensorFlow 模型。我们可以处理上述所有模型,甚至支持更多格式 因此可以轻松对模型进行操作,并分配适当的 GPU 资源 这些让部署变得非常简单 事实上,通常情况下,你运行的不仅仅是一个单一的模型 而是一个模型的集合,例如在之前的 Jarvis 示例中 你可能有一个模型进行特征提取,输入到另一个神经网络中进行语音到文本的转换 然后通过自然语言模型完成问答处理,最后进入语音合成模型,生成最终的波形 Triton 可以处理此类集成,并了解如何调度 所有这些不同的模块并同时向其馈送内容 简化数据中心内复杂推理的部署 人工智能的另一个关键应用领域是医疗健康 NVIDIA Clara 是一套旨在通过GPU 加速医疗健康发展的应用 如此处所示,我们通过 Parabricks 从基因组学入手 获取一个基因组序列,组装、比对序列 并检测变异,帮助根据基因组,实现针对个人的个性化医疗健康服务 COVID 等多种病原体具有结构,且疗法如何与该结构相互作用至关重要 CyroSPARC 等软件平台有助于发现该结构 人们可通过 CyroSPARC,利用 X 射线晶体学拍摄一组影像 然后 CyroSPARC 将在 GPU 上,根据这些影像构建病毒结构 有了结构以后,您就可以利用 AutoDock 进行对接实验 借助 Rapids 加速的数据库系统,我们从数据库中提取数十亿种治疗性化合物 对其进行 AutoDock 分析,查找最有可能与 COVID 病毒 发生作用的化合物,然后选出一批化合物以供进一步筛选 进一步筛选将通过各种分子动力学模拟进行 旨在找出哪些化合物能够真正与病毒上最受关注的 特定位点结合,适合进行物理测试 Clara 还提供众多医疗影像处理工具 可分析乳房 X 光检查,超声检查 帮助放射科医生发现一些关乎诊断的重要情况 现在,无论是基因组分析、影像分析,还是此流程所涉及的 任何其他分析,医生可能都希望了解文献中对某种情况的观点 而医学文献极度丰富,人们可以参考的论文太多 为此,我们推出了 Biomegatron,这是一种自然语言处理系统 医生可以查询想要了解的某一特定情况。而 Biomegatron 将搜索医学文献 推荐相关度较高的文章,同时还能回答有关特定疾病的问题 如需了解 GPU 如何从各个不同的时间维度加速医疗健康发展,请参考此处的示例 在 Folding@Home 计划中,采用 GPU 的人员 可捐赠未使用的计算周期,获取蛋白质序列 并运行折叠代码,进而尝试从序列中发现结构 由于使用众多不同型号的 GPU ,此计划花费了数月时间 但是其他方法则需花费 30 倍的时间 然后逐步将周期缩短至数天,获取 X 射线晶体学数据 即冷冻病毒的这些 X 射线图 人们可在 12 天内发现病毒结构,而以前则需要五个月的时间 最近,DeepMind 发布了 Alpha Fold 这是一种应用强化学习从序列中学习到结构的方法 此方法将获取蛋白质的氨基酸序列, 例如病毒的基因序列,并能够借助人工智能发现结构 且速度与之前相比大大提高,可能只需几分钟 另一方面,在找出一些治疗性化合物后,我们希望针对已知结构来进行筛选 AutoDock 经 GPU 加速,运行速度较之前快了 33 倍 橡树岭国家实验室利用其基于 GPU 构建的 超级计算机 Summit,能够在一天内筛查 20 亿种化合物 而之前这一过程则需要三个月的时间 发现这些化合物后,便可使用 Torch 等代码对其进行模拟 这样就能在八分钟内对数百万种药物进行筛查,而不用再花费几百天时间 如果需要进一步分析,我们目前有在 GPU 上运行的整套计算化学工具包 可对这些候选药物进行进一步分析 该流程中,我们首先会从基因组学入手 NVIDIA Parabricks 可通过 GPU 加速基因组学分析 其中包含用于组装的模块 进行基因组测序时,你会得到许多 read 其长度从几百个碱基到几万个碱基不等,就像是拼图游戏 我们需要将所有这些 read 组装到包含 30 亿碱基的完整人类基因组中,这是一个大型一维拼图游戏 Parabricks 会进行组装,并且会在完成组装后 将组装的基因组与参考基因组进行比对,从而找出变异 即特定个人基因组的不同之处 这些变体对于治疗非常重要 如中间的图所示。检测变异的方法有很多 但是 Parabricks 可将这些检测方法的速度 提升 10 倍到 40 倍,让人们能够迅速发现 特定基因组真正值得关注的地方 Parabricks 可用于三种类型的基因组分析 生殖系基因组是你出生时就拥有的基因组 体细胞基因组是一种取自肿瘤的基因组,可能会随着癌症的发展,迅速发生变异 RNA 序列表达特定蛋白质,从细胞中提取 是基因组表达的动力学 从右图中可以看到,如果我们具有此 RNA 序列数据 Parabricks 拥有分析此类数据的模块,我们就可以直观地了解基因的表达情况 这需要一个维度非常高的空间,可能会表达出来的每种蛋白质都有一个维度 然后会投射到二维空间,这样可提供更多的洞见 然后分析人员可以放大该空间的一部分 从而直观地查看与其想要获得的发现有关的进展情况 因此,总体而言,NVIDIA Clara Parabricks 加快了提取序列数据并从中获得洞见的过程 GPU 引领的人工智能革命也带来了机器人技术的变革 迄今为止,大多数机器人都是定位极其精确的机器 这些机器经过编程,能够以毫米级精度移动执行器 如喷枪、点焊机或某些机械手,完成重复性极高的任务 但不会与环境有任何交互。这完全是开环的 但是,借助深度学习,我们可以构建能够感知环境并与环境交互的机器人 在 NVIDIA 的机器人技术研究实验室,我们正在从事这项工作 我来向大家展示一下工作中一些有趣的内容 为了与此人互动,捡起块状物,此机器人需要 计算路径并控制其运动,从而平稳移动,避开障碍 为此我们开发了一项名为“黎曼运动策略”的新技术 该技术本质上能够从数学角度简化 这一复杂运动问题的表达,便于实时解决问题 除了在模拟环境中堆叠这些块状物,我们还加大难度 人为设置了一些障碍,即这些紫色的圆柱 而无论球滚到哪里,机器人都将能够快速计算一条路径 绕开这些圆柱形障碍并抓住球 一旦我们能够在未知环境中移动并成功避开障碍后 我们就要了解如何操控未知目标 许多人已经完成了操控方面的一些工作 但通常需要针对特定目标对机器人进行训练 这样做的结果是,如果机器人看到,未进行针对性训练的目标,便无法抓取 这些视频展示了机器人学习如何抓取陌生目标的过程 我们已使用人工智能对机械手进行了泛化训练 使其能够找到未知目标的最佳抓取点。 它还可以学习如何在有障碍物的情况下抓取目标 这里,我们想拿起杯子,可以看到,杯子被糖盒挡住了 因此,我们先改变目标,命令机器人捡起糖盒 将其移走,再次通过黎曼运动策略计算运动的抓取过程 然后返回,重新将目标设为杯子 清理障碍物后,机器人就可以计算抓取杯子的最佳方式 抓住杯子,然后继续执行任务 我们可以在模拟环境中训练机器人 然后让机器人将模拟环境中学到的内容应用于真实环境 因此 GPU 特别适合机器人技术 在本视频中,四足机器人学习如何行走和处理障碍物,这充分说明了这一观点 起初,四足机器人什么也不会,通过强化学习和一系列课程 我们训练其在条件越来越困难的表面上行走 起初机器人在平面上行走,然后是陡度不同的楼梯 接着是布满各种障碍物、块状物和不规则障碍物的表面 在掌握了在简单表面行走后,机器人就可以学习在更加复杂的表面上行走 它会学习如何应对每一种表面 接下来,在真实环境中,在模拟环境中接受过训练的机器人 便能够按自己的路径走过不同街区 还能上下楼梯,而这些全都依靠它在模拟环境中 学到的技能,其中对其策略网络进行了训练 使其对遇到的每种状况都能作出特定的动作反应 它学习了不同的步态以应对不同类型的楼梯和其他表面 因此,模拟环境中的训练所学内容可应用于真实环境,而我们 能够利用 GPU 的并行性在模拟世界中并行训练多个机器人 这让 GPU 有了更广阔的应用空间 AI 的另一个应用便是自动驾驶汽车 自动驾驶汽车是一个极其复杂的问题,涉及到传感器 摄像头、雷达、激光雷达、实时计算等多种类型的技术 在此应用中,汽车不仅需要高速行驶 还要预测其他汽车、行人及周围其他交通参与者的行为 驾驶汽车的风险很高 每年有 130 万人命丧高速公路 于是我们选择采用人工智能技术,打造由 GPU 控制的自动驾驶汽车 而人工智能充当的驾驶员不会在驾驶时发短信 身体状况不佳时不会开车,并且能够在各种情况下 始终完全专注于驾驶,对四周各个方位的情况了如指掌 因此能够显著提高在高速公路上驾驶的安全性 此应用并不是在汽车中采用一些 AI 技术那么简单 而是要解决从数据采集开始的端到端问题 你必须通过各种传感器,包括摄像头、雷达 激光雷达、超声波设备生成大量带标记数据的数据集 然后接收所有的数据并进行挑选,毕竟并不是所有数据都同样重要 你并不希望将这些数据一股脑儿地加入自己的训练集 而是会选择最相关的数据来训练模型 然后在大型 DGX SuperPOD 上的数据中心中训练模型 生成经过训练的神经网络模型,以便部署到汽车中 在将这些模型部署到汽车之前,我们要通过 硬件在环的仿真模拟对其进行仿真测试 我们会利用运行这些模型的汽车中的实际 AI 硬件 来模拟合成这些模型看到的信息 这些信息包括为摄像头生成的合成视频流,为激光雷达 生成的合成激光雷达数据,为雷达生成的合成雷达回波 然后我们会验证这些模型在仿真时是否正常工作 在汽车中运行的原生软件中包含许多组件 其中一个是 DRIVE AV,也就是自动驾驶汽车组件 负责驾驶汽车的便是这一组件。接下来 我会介绍可用于实现自动驾驶的各种不同的模型 包含能够使用所有传感器感知汽车周围环境的感知组件 以及规划组件,这些组件可以决定汽车的行驶路线,应该加速还是刹车 还有预测组件,这些组件可以预测场景中其他汽车、行人及其他交通参与者的行为 以便根据其他交通参与者可能出现的行为方式进行提前规划 汽车中还有一个叫做 DRIVE IX 的组件,该组件是一个监视 驾驶员行为的摄像头,可判断驾驶员注视的位置、驾驶员的行为 以及他们的手势 驾驶员可以通过手势控制汽车,而不用按按钮或调旋钮 然后是 DRIVE RC,可提供远程控制功能 如果发生意外,必须有人远程接管汽车,我们拥有能够远程控制汽车的软件包 为此,我们需要使用卓越的神经网络来感知环境 我们需要检测障碍物,了解与物体之间的距离和碰撞时间 我们采用特定神经网络来搜索自由行驶空间 即汽车应该行驶的空间以及不能行驶的空间 为进行检测,我们不仅需要使用摄像头,还需使用激光雷达和雷达 我们采用特定神经网络规划路线,帮助路线规划程序 查找最佳方向、发现交通标志,以及绘制地图 该神经网络可在高速公路上识别远光灯 可帮助你停车 可处理不同特征、天气、不同交叉路口、交通信号灯等状况 我们可以看到这是相当大的计算负载 多个摄像头、多个其他传感器、激光雷达和雷达 各自运行着多个模型,以提取推进规划过程所需的 各种不同的信息 为处理如此巨大的工作负载,我们将采用专为 边缘应用打造的基于 Ampere 架构的各种产品和解决方案 在这里,我们使用的解决方案专为自动驾驶汽车而打造 而且我们可以根据特定自动驾驶汽车的工作负载调整规格 如果只需要驾驶员辅助功能,则可使用基于 Orin Ampere 架构 提供每秒 10 万亿次运算,且能耗仅为 5 瓦的嵌入式芯片来处理该任务 对于 L2 级自动驾驶,我们可提供 45 瓦能耗 且每秒 200TOPS 的 Orin AGX 来处理该工作负载 对于能够完全实现自动驾驶的 L5 级无人驾驶出租车 我们可提供超级计算机应对汽车自动驾驶工作 该计算机采用一对 Orin 和一对 A100 算力高达每秒 2 千万亿次运算,功率为 800 瓦 这种双重的计算机可提供冗余,如果其中一部分系统失效 则另一部分系统继续工作处理其中一些传感器的信号 至少在汽车安全停车之前仍继续控制汽车 接下来要介绍的是此次主题演讲中我个人最喜欢的部分 也就是我的研究实验室正在进行的一些项目 这些是 NVIDIA 研究院正在研究的三个项目 首先,我要强调的是,这些都是研究项目 它们并不一定会在未来的某个时间转变为真正的产品 因此,这些并不是 NVIDIA 的产品 我想讲的第一件事,便是我们将如何延续黄氏定律 保持每年将推理的性能提升一倍 事实上,在过去的八年里,从 Kepler 到 Ampere 我们每年所实现的提升均不止一倍 我们正在进行着多个研究项目,这些项目旨在寻找不同的替代方案 而这些方案中的任何一个均能在接下来的几代中 继续帮助我们实现性能提升一倍的目标 为实现这一点,我们在实验室构建了大量高效的深度学习推理加速器 左侧图片显示的是 RC18 RC 代表研究芯片。这块芯片在 2018 年研制完成 能达到每瓦 9 teraops 的计算能力 并且还可从 0.3 扩展至 128 teraops 芯片由一组处理单元组成,每个这样的小型芯片含有 16 个处理单元 然后,36 块这样的芯片便可组装成一个多芯片模块 借助其内部构建的高效推理引擎,该模块能够实现比当前已发布产品更高的推理效率 在构建 RC18 的过程中我们学到了很多 特别是我们了解到,即使是非常高效的 Tensor Core 在进行推理时,也有许多能量并没有真正用于负载的数学运算 而是用在了搬运数据 因此,我们构建了一个名为 MAGNet 的系统,可用于设计空间探索 此系统能让我们探索深度学习加速器的不同组织形式 如何使用不同的数据流和不同的调度方案 将数据从内存的不同部分移至不同的处理单元,从而执行计算 借助 MAGNet,我们便能像下图这样模拟深度学习加速器 我们的全局控制器能控制一组处理单元 这些处理单元用于在各自的局部内存、芯片上的全局缓存 和芯片外部的 DRAM 间交换数据 每个处理单元内部,均有缓存保留权重和输入激活值 向量乘积累加单元 (MAC) 每个向量 MAC 可执行 8 至 32 条向量的乘积累加运算 然后我们拥有 8 至 32 条这样的 MAC 这样一来,每时钟周期可进行 64 至 1024 次乘积累加运算 这些乘法累加器的输出将落入图上底部的输出激活值区域 这些计算结果将在此以适当方式被累加 并存入输出激活值缓存中,等待系统将其写入全局缓存 右侧的图片详细展示了向量 MAC 其中有一堆乘法器,它们的结果会输入一个大型累加器 这本质上就是一个点积运算 因此在这些芯片上,主流的数据流组织方式都涉及两个方面,将权值驻留 并让输入激活值流入,输出激活值顺序流出,正如下方小型饼状图所示,这会导致 大部分能量用于累加缓存,其占比为 55% 只有不到三分之一,准确的说是 29% 的能量 用于执行推理所涉及的算数运算 如果问题在于输出不固定 然后所有时间均用在了访问累加缓存,那么还有保持输出固定的替代方法 这个替代方法所做的便是将问题推向输入端,但因为需要 不停访问新权重,所以现在所有能量均集中在了权重缓存 因此,注意到有这样的问题存在后,我们便进行了创新,并决定要添加一层存储层 我们将其称为权重收集器和累加收集器 收集器会在数据流中添加一层存储层 也会为在深度神经网络中嵌套循环的卷积计算添加一层存储层 这样一来,我们便能够移动计算量 就不会像以前的计算一样,只有三分之一的能量用于数学计算 我们能够获得 60% 或更多的能量和计算量 而这个特定单元能够达到每瓦 29 teraops 的推理能力 这款产品发布于 2019 年年末 自发布之后,我们对此架构又进行了改进,但还未发布 目前我们能够达到每瓦 100 teraops 的推理能力 因此,我们依然在延续黄氏定律,并且每年将推理性能提升不止一倍 虽然还未发布,但我们期望这些技术能运用在之后的 Tensor Core 版本 以及未来用于 汽车和机器人嵌入式芯片中的深度学习加速器中 因为我们需要不断扩展,所以我们需要将多个 GPU 用 NVLink 和 NVSwitch 连接 这项技术是由 NVIDIA 研究院开发的 但我们预估,要想继续让我们在 NVLink 中 所使用的信号传输带宽每隔一代提高一倍,会变得愈发困难 目前,我们的带宽可以达到每线对 50Gb/s 可以看到我们依然有方法实现 100 至 200Gb/s 但在这之后则会变得愈发困难。因此,我们在考虑 使用基于光子学的光通信技术替代方案 用于从 GPU 传出信号,并在 NVSwitch 之间传输 这张图片展示了大致的概念。左侧是我们已发布的 基于电信号的 DGX,右侧则是基于光信号的 DGX 的假想图 在这个系统中,我们会将两块 GPU 封装在 一张纵向卡上然后纵向卡之间会用光纤束进行互联 每个纵向卡的右侧部分为光源 正如其名,它能为光学电源提供多种波长的光 光学引擎会以极高的数据速率将这些光调制成信号 我们发现在采用硅光子技术的方案中,每根光纤均具有多种波长的光 而每种波长的光均能以 25 至 50Gb/s 的速度传输信号 这样一来,总的数据速率在 400Gb/s 而每根光纤的速率在几 Tb/s,保守估算 使用该方案传输信号时的能效比为每比特四皮焦耳 而电信号方案则为每比特八皮焦耳 电信号在传输时,由于自身的限制 其传播距离只有三分之一米,但光信号的传播距离 有 20 至 100 米,因此,我们只需一个单跳NVLink 便可连接至规模更大的系统 而不需要像电信号一样不断重复连接 我们打算采取一种相对新型的光学技术实施此方法 此方法名为密集波分复用 我们先从光学电源开始,即左侧显示的梳状激光光源 该光源可生成多种不同颜色的光 这些颜色间的间隔非常小 可能不同颜色间的间隔在 100Ghz 之间 我们在发射端将梳状激光馈送至光学引擎芯片 激光将沿着光总线传播,环形谐振器将在此对其进行调制 每个环形谐振器均被调谐至其中一种波长 以便选取该种波长的光,或使其通过 对于每种颜色的光,我们能调制 25Gb/s 的比特流 因此,如果现在有 32 种颜色的光,且每种颜色的速率为 25Gb/s,那么从光纤输出的总速率则为 800Gb/s 在接收端,我们又设计了一系列环形谐振器 每个用于选取其中一种颜色的光,并将其馈送至光检测器 光检测器会将光送至跨阻放大器,最后输出信号供我们接收 我们会将这一部分与位于中介层的 GPU 封装在一起 GPU 会通过有机封装与 包含环形谐振器和波导的光子集成电路,进行通信以使光向四处发散 此外,电气接口芯片会接收来自 GPU 的短距离互联信号 并且控制 PIC 上面的环形谐振器来调制这些光信号 再回顾一下接收端,这里有 EIC 和 PIC 但对于 EIC 的接收端,我们需要知道跨阻抗放大器 和 PIC 均包含光检测器 综上所述,我们给出了未来采用光电技术方案的 DGX 系统概念图 借助这种系统可以构建一个大型的 GPU 托盘,如图所示的例子中 每排有 18 个 GPU,9 排便包含超过 160 个 GPU 这些 GPU 均采用大型光纤束进行信号传输 可以看到右侧的 NVSwitch 托盘,具有多张 NVSwitch 卡,蓝色光纤连接的是 作为输入端的光学电源,橙色光纤连接的是输出端 灰色光纤连接的是托盘内部单独的 NVSwitch 此光纤用于形成 Clos 网络,从而使我们能够从输入端至输出端为数据设定路径 我要分享的最后一个项目便是 Legate 关于 GPU 我们面临的问题之一是 GPU 加速可受益的应用程序很多 远远超过了我们花时间编写的 CUDA 程序,甚至所有在使用的库也很多 我们在不断努力,不断简化编程步骤 如今有很多人在使用 Python 或 Python 内的 NumPy 库进行数值分析 因此我们开发了一款名为 Legate 的程序包,该程序包基于 我们称之为 Legion 的数据感知和任务调度运行时系统而构建 借助 Legate,我们无需更改代码便可让 Python 程序无感运行在 Jetson Nano 甚至是 DGX SuperPOD 上 开发者所需做的便是基于原始的 Python 代码,将原本的 “import NumPy as NP”更改为“import legate.numpy as NP” 这段代码会加载 legate.numpy 库,并自动完成之后的操作
因此,我们可以在 Jetson Nano、单卡 A100 也可以在图中所显示的 DGX A100 或 DGX SuperPOD 上运行 现在,我们来看看在这些系统上运行的结果 这是一个相对简单的雅可比迭代示例,代码显示在右侧 首先,让我们来看看在单个 GPU 上运行的结果 在这里,我们真正需要关心的是这个橙色正方形标志 它代表 CuPy,这是当前我们运行雅可比迭代性能最优异的库 可以看到图中绿色线所代表的 Legate,在 GPU 上运行的结果略优于 CuPy 如果我们在任务调度器 Dask 上运行,或者当我们增加 GPU 数量时 其性能表现会迅速下降 但是,如果我们使用 Legate,这是 Legate 和 Dask 在 CPU 上运行的对比结果 可以发现代表 Legate 性能的曲线依旧平坦 这是因为 Legate 能更好地并行处理任务并让所有 GPU 处于繁忙状态 当我们在 GPU 上运行 Legate 时,性能有些轻微下降 这些曲线所展示出的便是所谓的弱扩展性 每当增加 GPU 数量时,问题的规模便会成比例增加 因此,理想状态的增速呈现形式应是一条直线 在一开始的几次 GPU 倍增后,我们得到的是一条直线 但随后直线便开始下降,这是因为 Legate 无法 针对大量的 GPU 进行理想的并行处理,这也正是我们要努力解决的问题 让我来总结一下 在 NVIDIA,我们不断努力构建全球一流的计算设备 并构建与这些计算设备配套的软件 用于解决世界范围内要求十分苛刻且十分重要的问题 这一切均基于我们的 Ampere GPU。我们可以对 Ampere GPU 的性能进行扩展,向上可扩展至 A100,向下则可至嵌入式 Jetson 设备 还可以通过 DGX、DGX SuperPOD 将其扩展至运行速度一流的超级计算机上 之后,我们便能通过大量的库和基于这些库构建的垂直技术堆栈 将这种搭载在从 Jeston 到超级计算机等任意规模系统上的技术 运用到图形、人工智能、医疗健康 视频分析、自动驾驶和机器人技术中存在的问题上 通过我们在研究实验室的工作,我向大家展示了未来的一些发展方向 而这真的只是冰山一角 我们正在做着许多激动人心的事情,而我相信当我们 能在未来的某一刻将其中的一些构思变为现实时,一定会振奋人心 届时,我们将构建更强大的计算设备 并将其运用至一系列更广泛的问题上,从而改善人们的生活 非常感谢各位,祝大家生活愉快 大家好,欢迎参加 GTC 中国大会 NVIDIA 高峰论坛 我叫郑义陶,英文名是 Raymond Teh 负责 NVIDIA 亚太地区销售和营销业务 我是本次座谈会的主持人 今天,我们将聆听四位 NVIDIA 领导人讲述公司的新突破及其对中国市场的重要性 大家好,我是郑义陶,Raymond 负责英伟达在亚太区的业务 很高兴与大家相聚在 NVIDIA GTC China大会 过去的几年,英伟达在游戏业务、专业可视化 数据中心以及自动驾驶等领域有着迅速的发展 这其中离不开广大中国客户与合作伙伴的联合创新 我谨代表 NVIDIA 感谢各界朋友一直以来的大力支持! 今天我很高兴邀请到几位 NVIDIA 的高层 现在就让我们一起来深入的探讨与分享吧 女士们、先生们,请允许我介绍本次座谈会的四位演讲嘉宾 第一位演讲嘉宾是 NVIDIA 全球业务运营执行副总裁 Jay Puri 先生 Jay 负责 NVIDIA 全线产品与服务的全球销售和区域营销 我们的第二位演讲嘉宾是 NVIDIA 企业市场兼开发者计划全球副总裁 Greg Estes 先生 19 日 他负责领导公司的各项工作,与超过 200 万名开发者和数千家 AI 初创公司开展合作 我们的第三位演讲嘉宾是 NVIDIA 医疗业务全球副总裁 Kimberly Powell 女士,她负责 NVIDIA 全球医疗健康业务 我们的第四位发言人是 Ashok Pandey 先生,在中国通常被称为“潘迪” Pandey 是 NVIDIA 亚太地区副总裁,负责运营和合作伙伴事宜 我们有非常多元化的背景,当然也有丰富的经验 今天我们要讨论很多内容 那我们开始吧 Jay,如果可以的话,我要先问您第一个问题:中国市场对 NVIDIA 有多重要? 你好 Raymond,中国不仅市场规模巨大,而且对 NVIDIA 极为重要 中国市场具有战略意义,我们在这里进行了大量投资 NVIDIA 进入中国已有二十多年 一开始,我们运营的是 PC 游戏平台 GeForce 中国有数百万的 GeForce 粉丝,这绝对是件了不起的事 我们建立了一个由合作伙伴、AIC、分销合作伙伴和游戏开发商等组成的极佳生态系统 PC 游戏中一些非常重要的发展趋势实际上源自中国市场, 比如免费游戏、网吧、电竞等 所以说,一家企业只有了解了中国市场,才能在世界范围内取得成功 因此,中国市场对 NVIDIA 至关重要 我要在此感谢所有的 GeForce 粉丝 我们刚刚推出了新的 RTX 30 系列产品,简直太棒了 希望大家可以试一下 当然,在 10 到 15 年以前,我们就意识到摩尔定律已经到了极限 我们开创了加速计算的新计算模式 它一开始用于高性能计算和大多数科学应用领域 经过过去几年的不断调整,此平台现已可应用于人工智能和数据分析 您在亚太地区运营,会完全理解这一点 中国应用 AI 为行业提供竞争优势的能力一直处于最前沿 大学正在进行一些非常前沿的研究 世界上一些极为重要的 AI 研究人员都在中国 创业生态系统充满活力 真正让人欣慰的是,中国 AI 领域的大部分工作都是在 NVIDIA 的 AI 计算平台上完成的 因此,说中国市场对 NVIDIA 重要,就有点轻描淡写了 应该说,中国市场极其重要。 我们努力向中国市场学习,改进我们的平台,以便继续满足优质合作伙伴和客户的需要 我想借此机会感谢他们的信任,以及各位对 NVIDIA 的信任 我们将继续锐意创新,满足您的需求 谢谢你,Jay,您很好地回答了我的问题 Jay 刚刚谈论了我们的业务,Greg,GTC 是我们的开发者大会 您能和我们分享一下针对开发者我们在做的工作吗? 好的,我很荣幸,首先我也要欢迎大家参加 GTC 中国大会 这是我们为开发者举办的一次盛会 本次 GTC 中国大会将有数万人参加 并会举办 200 多场来自不同市场领域的不同类型的演讲 演讲嘉宾有研究人员、核心开发者、学生等等 在许多方面,中国都是我们最重要的开发者市场 在中国,有超过 40 万开发者注册参与了我们的项目,这比世界上任何其他国家/地区都多 中国一直是我们工作的重点 全世界目前约有 225 万注册用户参与我们的开发者项目 他们可以访问我们的 SDK 我们不仅在 CUDA 领域投入大量工作,而且还积极致力于我们拥有的其他上百个 SDK 它们用于 Kimberly 即将谈到的医疗健康领域、机器人、金融服务和实际上我们所处的各个市场 GTC 让所有这一切得以汇集, 您不仅可以聆听开发者分享他们的重要工作和他们在 GPU 方面的重要研究 还会遇到业内整个生态系统里的其他成员 所有平台提供商和全新领域,包括初创企业正在做的事情 Jay 刚才简单提到了这一点 我们的初创加速计划在中国已有数百家初创公司会员
2020-12-21 05:20