选自:Nextplarform
机器之心编译
参与:侯韵楚、黄小天
世界上的 hyperscaler 愈发依赖于机器学习算法,来提供其众多应用程序中用户体验与操作的一个重要部分;因此他们也在挑战机器学习框架以及被用来部署框架的系统的极限,而这并不值得大惊小怪。Facebook 和微软在开放计算峰会(the Open Compute Summit)中展示了他们最新的 CPU-GPU 混合设计,并对如何最佳利用 Nvidia 最新的「Pascal」特斯拉加速器提出了一些洞见。
无独有偶,为支持机器学习工作负载而创建的特殊系统,将会为特定种类的加速传统型 HPC 工作负载,甚至是 GPU 加速的数据库工作创建极佳的节点。对这一类有益的系统往往也会对另一类有益,并且 Facebook 和微软的系统之间存在一定的相似性。例如胖节点将被用作未来「峰会」和「Sierra」超级计算的构建基块,后者是由IBM、Nvidia 以及 Mellanox 公司组成的美国能源部建立。可以说,对扩展 GPU 计算能力举足轻重的 NVLink 互连在设计时已经将 hyperscalers 和 HPC 店铺考虑在内,但如今 hyperscalers 更热衷于获取 Pascal GPU 并将它们捆绑进入紧密耦合的计算复合体。他们还能从这方面的大量预算中获益,而由政府和学术界资助的 HPC 中心存在着一些预算问题。尽管自从去年以来,Nvidia 一直在销售自己的DGX-1 混合系统,但该系统从未以成为 hyperscalers 或 HPC 中心购买的产品(即数百或数千个节点)为目标,而是想要成为这样的机器——使被选中的研究人员能在产品首次展示时获得 Pascal GPU,并由此开始他们在机器学习方面的努力(当然也有例外,如日本 RIKEN 的新型 DGX-1 集群或 Nvidia 自己安装的集群)。
2015年12月,社交媒体巨头在 NIP 会议(神经信息处理系统会议,the Neural Information Processing Systems conference )上公布了首代服务器 Big Sur ,而 Facebook 在 OCP 峰会上揭幕的 Big Basin ceepie-geepie 系统便是其继承者。Big Sur 填充了 8 个 Nvidia Tesla M40 加速器,这 8 个加速器可以插入 PCI-Express 3.0 x16 插槽,拥有供CUDA 应用程序使用的 12 GB GDDR5 帧缓冲存储器,还包括两个可插入很高机箱的 Haswell Xeon E5 处理器。
通过转换到具有 16GB HBM 存储器的 Pascal Teslas 的 SMX 变体,Facebook能够在 Big Basin 服务器内运行更大的数据集,同时可以在 CUDA 内核与 HBM 存储器之间提供更多内存带宽,并驱动其后的更多浮点。通过支持半精度运算,Pascal GPU拥有 64 GB 有效内存,并可能在更大数据集中四倍于有效浮点运算,因此相对于 Maxwell M40 及 Pascal P100 代GPU 加速器 33% 的原始容量增长,机器学习模型会大得多。M40 上的单精度运算是 7 万亿次,在 P100 上则是 10 万亿次,因此匹配度为 30%;而移至半精度时它将再次加倍,模型也会更大。
Facebook 想要通过 Big Basin 的 CPU-GPU 节点,来使计算中的 CPU 部分从 GPU 部分中分离出来。所以 Big Basin 在技术上并不是服务器,而更像 GPU 的外壳——仅仅是一群 GPU 或是 lingo 中的 JBOG;比如去年揭幕的「闪电」NVM-Express 存储外壳只是一束闪光或 JBOF;又如「Knox」、「Honey Badger」以及新的「Bryce Canyon」阵列也仅仅是一堆磁盘或JBOD。Facebook 目前正在部署一个「Leopard」服务器,它把早期的 Xeon 处理器作为将工作卸载到大型 JBOG 的头节点,但它将会附加新的「Tioga Pass 」双插槽系统,即采用英特尔未来的「Skylake」Xeon处理器作为头节点。这就是将CPU 与 GPU 计算进行分离的含义。如今它们可以彼此独立地安装和升级,但只有在设备之间的网络足够快时才可能实现。
Big Basin的主板设计受到了 Nvidia DGX-1 的启发,并且它像 DGX-1 系统那样部署了 Pascal P100 显卡的 SMX2 变体,这种变体的链接方式很特殊,能够将信用卡大小的组件直接安装在主板上;其他的 Pascal 显卡具有插入 x16 插槽的 PCI-Express 形状因子。Big Basin 系统有两个 board,每个 board 有四个 Pascal SXM2 组件,就像这样:
该系统具有四个 PCI-Express 交换机,用于 GPU 彼此间以及与 Xeon 计算复合体的交叉耦合;另外,这两者之间的分解意味着 Facebook 可以在 AMD Opteron、ARM 或 Power 9 处理器组件间进行互换,而不必更改与系统相关的其他信息。Big Basin 的参数要求 GPU board 必须支持下一代的 SXM2 卡,这意味着「Volta」GPU 将与当前的「Pascal」GPU 插槽兼容,至少在由SXM2组件表示的互连级别方面是这样。
GPU 使用 4 个 mini-SAS 连接器使主机 Xeon 模块与 JBOG 外壳相连,而 NVLink 端口则在混合立方体网格中将 GPU 彼此交叉耦合。就像这样:
在由广达电脑旗下的 hyperscale 部门广达云科技为 Facebook 构建的 Big Basin 中,有趣的是 NVLink 1.0 端口以 20 Gb /秒的速率运行,但下一代 NVLink 2.0 端口「能使串行器的运行速率达到25.78125Gb/秒」。这个「能使」十分精确,事实上我们知道,NVLink 2.0 端口以及更通用的「Bluelink」端口在 Power9 处理器上的运行速率都在 25 Gb /秒。Facebook 所显示的 NVLink 拓扑图表中,有趣的是每个 Pascal 架构的 GPU 都具有 4 个 NVLink 1.0 端口,但 Volta 架构的 GPU 将有6 个 NVLink 2.0 端口。这使 GPU 之间能存在更多的交叉耦合与更紧密的链接,对于更大规模但不需要最紧密耦合的NVLink 群集来说也是如此。
Facebook 的 Big Basin 内部有两种不同的拓扑结构,可通过翻转 PCI-Express 交换机设置中重定时器显卡的跳线进行设置。这是第一种拓扑结构:
这是第二种拓扑结构:
一个很大的差异是会有 1 个 x16 管道或 2 个 x8 管道离开 GPU 复合体;产生如此巨大差异的原因尚不明确。
设计 Big Basin 的工程师 Kevin Lee 解释道:「与 Big Basin 相比,我们能在使用 Resnet-50(一个流行图像分类模型)的测试中达到几乎 100% 的吞吐量改进,这使我们在使用更复杂模型的同时能够更快地进行实验」。Facebook 的训练的是单精度的,所以它显然看不到在进行双精度训练和移动至半精度训练时那样的跳跃。
进入 HGX-1
微软在 OCP 峰会上揭晓的 ceepie-geepie 黑箱已经开始与鸿佰科技(Ingrasys)共同开发,鸿佰科技是一家隶属于制造商巨头富士康的 OpenPower 平台制造商。微软通过 OCP 峰会发布了机器学习黑箱 HGX-1 的开源代码,并希望各大公司将其作为机器学习训练模型的标准。正如上文所言,如果 MPI (Message Passing Interface )协议能够被正确移植到具有某种层次结构的 NVLink 和 PCI-Express 上,HGX-1 或许就能为超级计算机群创建一个良好的胖节点。
微软的开源服务器项目 Olympus 的 HGX-1 变体与 Big Sur 黑箱相似,它支持 8 个 Pascal SXM2 GPU 模块,并且在系统内使用 PCI-Express 互连连接 GPU 处理复合体与 Xeon 计算复合体。
发稿时,HGX-1 系统拓扑结构的速度和馈送的相关信息还尚未提供,但 Nvidia 的加速计算部门的副主管 Ian Buck 告诉 The Next Platform ,HGX-1 系统将会在 1 个黑箱之内和多个黑箱之间具有一组级联式 PCI 交换机。在 1 个黑箱中,这个 PCI-Express 交换复合体允许系统中 2 个 Xeon 处理器的其中 1 个动态性地直接对 1 个、4 个或 8 个 GPU 寻址,而且还允许在使用与 DGX-1 和 Big Basin 系统相同的混合立方体网格的 NVLink 虚拟存储器上紧密共享数据。微软正在扩展这种 PCI-Express 网络,使其能连接多达 4 个 HGX-1 系统,并允许复合体中 8 个 Xeon 处理器中的任何一个有权访问 32 个 Pascal P100 SXM2 模块中的数据,并通过使用微软的 CNTK 开源机器学习框架将 HGX-1 节点的内存和计算能力有效地增加 4 倍。
虽然微软最初设计 HGX-1 是为了支持 Nvidia Pascal 的计算模块,这无疑远未过时且可以采取 Volta 模块,但不要产生误解。微软依旧保留着灵活的选择权。
微软 Azure 共享云的一位杰出工程师 Leendert van Doorn 告诉我们:「HGx-1 的机箱对 Nvidia GPU 进行了优化,但它没有理由不支持 AMD Radeon GPU 或英特尔 Nervana 的机器学习芯片。」