Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

从GPU制造者到服务器提供商:英伟达的计算平台转型

英伟达尝到了硬件带来的甜头,同时公司高层表示他们乐意在发展计划中加入大量的主机。为此,英伟达正越来越多地参与制造 GPU 计算的系统组件,并且为 OEM 和 ODM 服务器提供成品组件。

这是一次巨大的转变,但对所有以计算为中心的平台供应商而言,这个过程终将——在某些情况下逐渐地发生。

在处理器的制造商,同时也是使用该处理器的系统的主要或唯一销售者的情况下,供应商通常默认拥有该平台的完全控制权。实际上销售大量设备的供应商可能有一个经销商渠道,但这是一种经销手段,而不是一种工程手段。在其他情况下,就英特尔(有时由 AMD)提供的 X86 平台来说,起初它们主要对销售处理器感兴趣,它是一种具有某些额外特性的功能强大的 PC 芯片,这些特性使服务器产生价值。

至少在英特尔的案例中,公司在发展过程中逐渐扩展业务到芯片组的销售上,这些芯片组在共享的存储系统中相互连接并与系统中的外围设备相连。最后,公司进一步扩展业务到除主存储器以外的整块主板的销售上。如今,在最新推出的,采用「Skylake」Xeon SP 处理器,可能也包括其之后的两个版本的「Purley」平台上,英特尔提供处理器、芯片组、主板、NAND 闪存和 3D XPoint ReRAM 存储,并且英特尔很快还会提供计划配备在初始 Purley 平台上的代号为「Apache Pass」(https://www.nextplatform.com/2015/05/26/intel-lets-slip-broadwell-skylake-xeon-chip-specs/)的 3D XPoint DIMM 永久性扩展内存;英特尔还可以添加 Omni-Path 网络适配器。尽管一些服务器制造商仍然自己制造主板,但是很少有独立的芯片组,因为将 CPU 彼此连接并与其他外部设备相连的嵌入处理器或其封装中的电路太繁杂;而英特尔原生的芯片组性能确实也超越了八线程 NUMA 架构的 Xeon SP 处理器。

近日,英伟达推出了 HGX-2 平台,以及以 HGX-2 为架构的 DGX-2 服务器,该服务器发布于今年 3 月份的英伟达 GPU 技术大会。正如英伟达在会议之后对 DGX-2 所做的详细拆解那样(https://www.nextplatform.com/2018/04/13/building-bigger-faster-gpu-clusters-using-nvswitches/),它是一件高密集,强性能并具有极佳的热性能的电子产品。DGX-2 架构的核心是 NVSwitch 内存结构,该结构已被嵌入系统中的 GPU 计算节点中,允许多达 16 个最新的「Volta」Tesla V1000 加速器以点对点的方式彼此耦合。在 GPU 复合体中,每块 GPU 与另一块 GPU 之间的带宽为 300 GB/秒。本质上,NVSwitch 结构为 GPU 节点创建了一个 512 GB 的巨大的共享内存空间,以 10 千瓦的功耗,在 Tensor Core 上达到近 2 Petaflops 的算力。

企业中许多机架的功耗不超过 10 千瓦,其中许多机架不具备与集成了两个 HGX-2 的 DGX-2 GPU 计算体所需要的复杂且低容差的中间面连接器。这就是为什么在 HGX-2 平台上,英伟达正从主板和 GPU 加速器连接器的设计上,从仅是为了自己的内部需求,为少数重要的客户和研究人员提供技术规格以及为 ODM 和 OEM 提供参考架构上,转变为设计自己的系统,正如英伟达从 HGX-1 的设计上,转而在 GPU 复合体共享的内存中,制造一台拥有 8 或 16 路 Volta 核心的机器,这台机器仅装载了 HGX-2 系统主板,完全配备了 Volta GPU 加速器和足够多的 NVSwitch 电路和连接器。

这是一次微妙但重要的转变,据英伟达联合创始人兼首席执行官黄仁勋近期向华尔街透露的消息,这将推动英伟达数据中心部门的收入增长,甚至会超过截至目前通过销售大量的 DGX 主机带来的数亿美元的生意。截至 4 月份,2018 财年第一季度结束,英伟达数据中心业务营收 28 亿美元,并且 DGX 服务器的销售似乎占据了业务的 15%。随着英伟达向那些想要自己制造如 DGX-2 服务器的 ODM 和 OEM 仅出售成品主板和 NVSwitch 连接器,而不是原始 GPU 和交换机芯片,英伟达服务器业务的收入将进一步攀升。

负责英伟达加速计算产品管理和市场营销的 Paresh Kharya 告诉 The Next Platform:「这与我们提供设计的 HGX-1 平台有点不同。以 HGX-2 来说,事实上我们提供了集成的主板。设计这些系统真的是很复杂,因为我们要在一堆不同的载体上超越限制,从图像在一堆 GPU 中的信号传输到功耗等等。我们正在超越数据中心的限制,并且为了降低我们合作伙伴的风险,确保他们成功并加快产品上市时间,我们将 HGX-2 作为一个集成主板提供给他们。」

英伟达作为一家 GPU 显卡制造商,同时也是一家 GPU 芯片的供应商,在这两个身份之间没有任何利益冲突。同时,英伟达并不羞于成为一家服务器制造商,它们推出了 HGX-1 平台和基于该平台的实例产品 DGX-1,并已经售卖了 2 年。这是一件复杂的事,并且需要被正确执行,正如我们已经说明的那样,通过这样做,英伟达也获得了更多的收入——我们认为是毛利润率,与英特尔通过销售平台而不是自己数据中心组的处理器所获得的收入一样多。我们认为,在这一领域,英伟达的毛利率要远高于英特尔,这正说明了基于 GPU 加速的 AI 和 HPC 系统的大量需求。

新旧 HGX

借助基于英特尔 Xeon 服务器节点的 HGX-1 平台,GPU 通过混合立体网络中的 NVLink 端口相互连接,服务器节点中的一对处理器通过 4 条 PCI-Express 通道与 GPU 复合体相连,如下所示:

如果 Xeon 处理器拥有大量 NVLink 端口能直接和 GPU 复合体相连,应该可以得到很好的效果。但是由于「Pascal」架构的 GPU 相对较少的 NVLink 端口,这将限制在单一的共享缓存占用上 GPU 的数量,甚至是上文提到的 Volta 加速器,这就意味着为了 CPU 的连接会牺牲掉一些 GPU 的连接。(这就是为什么橡树岭国家实验室的「Summit」超级计算机至多只能给每对 Power9 处理器配备 6 个 Volta V100。)

至少在 2017 年 3 月,微软 Azure 公共云的杰出工程师,Leedert van Doorn 是这样告诉我们的,HGX-1 实际上是由微软设计,并通过 Facebook 建立的 Open Compute Project 开源的。有趣的是,HGX-1 有一个级联的 PCI-Express 交换机网络架构,在运行微软自己的 CNTK 机器学习框架时,它允许多达 4 个系统和 32 个 Pascal 或 Volta GPU 与单张图片相连接。目前尚不清楚微软是否会将拥有单个 CPU-GPU 计算复合体的 CNTK 与 4 个或更多的 HGX-2 集成在一起,但我们清楚的是,是英伟达而不是微软,开发了新一代 HGX-2 的体系架构,同时英伟达是否会开源这个设计还有待考察。顺便一提,用于机器学习训练和拥有延展性的交换机拓扑结构的是 HGX-1 平台的衍生品,同时亚马逊网络服务上使用的 P3 GPU 产品也是基于 HGX-1 平台。

去年发布的 16 GB Volta Tesla V100 加速卡可以装载由 8 块 GPU 构成的 1 Petaflops 的 Tensor Core 芯片组,同时单个 HGX-1 复合体上的 GPU 有 128 GB 的共享内存。GPU 通过一个或两个 NVLink 或 PCI-Express 端口彼此相连,同时最多 4 块 GPU 通过 NVLink 彼此完全连接。NVLink 的连接复合体 拥有 300 GB/秒的对分带宽,并且多 GPU 深度学习范例是数据并行归约化的——有时称为批量并行。使用这种方法,你可以采集 64 或 128 张图像,并同时训练 64 或 128 个神经网络复本,以及将结果整合在一起。

使用 NVSwitch 连接器和 HGX-2 架构,你仍然可以通过这种方式进行机器学习,也可以将神经网络不同的层放置在同一系统下不同的 GPU 上,但是你需要 GPU 之间更高的带宽连接——同时所有 GPU 之间需要点对点连接——使其良好运行。这被称为模型并行化,并且 HGX-2 平台支持这种方法,通过主机来大幅度减少问题的训练时间。

HGX-2 平台拥有 16 个彼此连接的 Volta V100,每个都有高达 32 GB 的帧缓存器,总共有 512 GB 的 GPU 共享内存,同时 Tensor Core 的半精度单元拥有高达 2 Petaflops 的性能。这就意味着 4 倍内存和 2 倍的 FLOPs。每个 GPU 通过 6 个 50 GB / 秒 且聚合在一起的 NVLink 2.0 端口连接到 NVSwitch 复合体中,通常来说,NVSwitch 具有 300 GB / 秒的带宽。重要的是,所有 16 块 GPU 加速器彼此直接相连,并且对分带宽增加了 8 倍,达到 2.4 TB / 秒。这就是为什么在运行一系列 HPC 和 AI 工作负载时,相比于一对 HGX-1 平台,HGX-2 平台有高出 2 至 2.7 倍的性能:

HGX-2 平台不仅通过 NVLink 和 NVSwitch 架构,还采用了大量网络架构来实现这种性能。以下是一张关于 HGX-2 平台的内嵌 NVSwitch 拓扑结构的框图,比三月份提供的图示好得多。

两块主板各有 8 块 GPU,其中用于 NVLink Bridge 的 6 个 NVSwitch ASIC 位于主板背面,用于与 PCI-Express 交换机组相连的 6 个 PCI-Express 连接器 位于主板正面,如下所示:

作为 HGX-2 平台的一部分,英伟达并不是忽视服务器平台的整体外观,只是 GPU 计算器与连接器的复合体以及大型集群的 GPU 图形卡才是研发的所有目的。但英伟达确实对 CPU,存储器和网络适配器整合到整个系统内的方式提出了一些建议,以此来创建一个与英伟达几个月前销售的 DGX-2 系统相同的 OEM 或 ODM。对于级联 PCI-Expre 交换机和网络接口卡以及位于 InfiniBand 或以太网络上的 NVM-Express 存储器,以下是被推荐的架构:


首先要注意的是,CPU 复合体和 GPU 复合体(包含在两个 GPU 主板单元内,同时通过底板连接)是彼此分离的。这允许系统的 CPU 和 GPU 两个部分可以独立地进行更改。此外,每块 GPU 拥有 2 个 PCI-Express 3.0 x16 插槽,通过其与 2 个 HGX-2 主板中的一个直接相连。CPU 通常与主板上任意一块特定的 GPU 相距 3 个节点,同时 NVSWitch 复合体与系统中其他任意一块 GPU 再远一个节点。事实上从任意一块 CPU 到任意一块 GPU 的路径有多条,这减少了系统的争用。(我们可以计算出有多少条潜在的路径,但这需要花费一些时间。)

英伟达提供的 HGX-2 系统参考架构的有趣之处在于网络接口——无论是内置 RDMA 的 100 GB / 秒 InfiniBand 还是附加 RoCE 的 100 GB / 秒以太网——都在主板上,接近 GPU,而不是挂在 CPU 上。RDMA 允许 HGX-2 系统进行多节点放缩,并提供大而宽管道和低延迟率来实现这些。同时,你会注意到,相比于 CPU 复合体,NVM-Express 存储器更靠近 GPU 复合体。

实际上,HGX-2 系统中的 Xeon CPU 是 GPU 复合体的串行协同处理器。很好笑,不是吗?(这让我们想起了一个笑话,自从 GPU 计算开始以来,特别是当英伟达正在开发「Project Denver」以将 ARM 内核加入到 GPU 加速器时,我们一直在说:「一名头上有只母鸡的男子走进一位医生的办公室,那只鸡说:『你好,医生,你能把我屁股下的东西切掉吗?』」)

当然,并不是所有从事超级计算和云搭建的 OEM 或 ODM 都会建造一个与 DGX-2 看起来完全一样的机器。Kharya 表示今年年底发行的大部分基于 HGX-2 GPU 计算平台的机器将在 16 块 GPU 中拥有 2 块 CPU,但如果比例合理的话,可能出现这样一种平衡的情况,也就是 8 块 GPU(单块主板)中有 2 块 CPU。虽然在单个 NUMA 节点中集成 4 或 8 块 Xeon CPU,然后与 1 或 2 块 GPU 主板相连是可能的,但这不是英伟达预想会发生的事。我们会说,如果在 GPU 和 CPU 上存在大量 NVLink 端口,那么可能表示 CPU 上大量的内存占用对 GPU 复合体而言是有帮助的,特别是如果 CPU 和 GPU 的内存是相干的,并通过告诉 NVLink 端口运行。供应商在服务器设计的密集度上也会有所不同,Kyarya 说他在工作中看到的早期机器有 7U 机箱,其他机器是 10U 机箱。

这给我们带来了一大堆 GPU 加速参考设计,英伟达已经做了这样的设计让我们能更容易为每个特定的工作负载选择合适的平台。用于机器学习训练和推断的 HGX 平台(如下如所示的 T1,T2)互不相同,用于训练的机器使用 Volta V100,用于推断的机器使用 Pascal P4。如 HGX-I1 和 HGX-12,它们在一个节点中装载 1 或 2 个 P4. 如下所示:

与现在许多 HPC 系统一样,SCX 平台是针对传统的 HPC 模拟和建模工作负载以及不包括机器学习的应用程序栈,当然了,SCX 中的 SC 是超级计算的缩写,同时 HPC 主题有 4 个变体。有些装载了 2 个、4 个或 8 个 Volta V100 加速器的机器通过 PCI-Express 连接到处理器上——即 SCX-E1,SCX-E2,和 SCX-E3——以及一个装载了 4 个 V100 的,使用 NVLink 2.0 彼此连接的机器,其余机器可能是连接到配备类似 Power9 的端口的 CPU 上。在上表中,IVA 是智能视频分析的简写,VDI 是虚拟桌面基础架构的简写,RWA 是远程工作站的简写。

这实际上只是帮助人们了解什么样的配置对于目前什么样的工作是有用的。久而久之,比如说,当重写 HPC 代码以充分利用 NVSwitch 的优势时,相比 SCX-E3 或 SCX-E4,我们十分期望 HPC 核心更像 HGX-T2 那样考虑节点情况。我们也期望更高密度的推断框以及未来基于 Volta 架构的推断框。

目前,机器学习推断实际上通过单块 GPU 完成的,并且可以在一对 HGX-2 上的 16 GPU 内有序训练,并且也可以采用微软过去在 CNTK 上用的方法在 4 对 HGX-2 主板或 64 块 GPU 上训练。对于石油和天然气行业不断发展的地震分析工作,与机器学习一样,他们正在推行更高的 GPU 和 CPU 使用比率,但对于量子化学和分子动力学来说,最佳比列大约是 4 块 GPU 加一对 CPU,同时使用 PCI-Express 连接也有帮助。

原文链接:https://www.nextplatform.com/2018/05/30/nvidia-takes-more-control-of-its-gpu-compute-platform/

产业硬件英伟达GPU高性能计算
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

张量技术

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

推荐文章
暂无评论
暂无评论~