大模型与AI底层技术揭秘 (12) 小日子过得不错的某岛国

2023-12-04 14:39:39 浏览数 (2)

这天,方老师的同事Y,很羡慕方老师有很多粉丝,所以怂恿一个熊孩子Z去问方老师一个困难的问题。

“听说网络里面没有您不懂的问题呀?”

“你想问什么呀?”

“交换机用日语怎么说”

“@#¥%……&*日语我只会围棋术语……”

过了好久,方老师突然想到,计算机术语这样的外来语,在小日子过得不错的某岛国,一般用片假名音译表示,如Ethernet Switch片假名可以写成 イーサネットスイッチ 就好了。

这样简单直接的思路可以解决上期我们留下的问题。

上期,我们讲到,GPU可以直接访问SSD存储,从盘上读取数据。在实践中,为了减少一层文件系统相关的逻辑转换,NVidia又公开了一个叫做GDRCopy的库,GDRCopy是一种基于NVIDIA GPUDirect的快速GPU内存复制库,该技术将GPU内存可以和其他PCIe外围设备直接访问,同时,再利用Intel的SPDK提供的块级IO接口,就可以将NVMe SSD的LBA地址提供给GPU。

由于NVMe SSD的接口是PCI-E接口,GPU Direct Storage需要将自身的存储器地址转换为PCI-E地址,并将LBA地址作为设备的地址,构建NVMe 命令字写入NVMe SSD的命令队列。NVMe SSD控制器会通过DMA技术读取或写入GPU内存中的内容。

我们发现,GPU Direct Storage技术实际上是让GPU绕过文件系统访问NVMe SSD,而文件系统代表着操作系统对持久化存储设备的管理,实现多个调用者共享存储卷而不冲突。因此,在实践中,GPU服务器上一般每块GPU会对应一块NVMe SSD盘。

好了,在这几期里面,我们了解了GPU本身的工作原理,以及GPU与周边的CPU、北桥、网卡和SSD盘之间的交互原理,我们就可以从高一个层级来看GPU实现的异构计算系统了——

也就是所谓的GPU服务器。

GPU服务器本身并不是新事物,HPE和Dell等老牌服务器厂商都有GPU服务器产品,可以在一台服务器中支持8块以上的GPU卡,提供超高性能的计算能力。

在NVidia V100推出以后,GPU服务器发生了一次革命。由于AI训练需求的爆发,分布式训练推动了GPU Direct的用户暴增,在GPU服务器中引入GPU Direct所需要的三大组件就成了非常重要的需求。这三大组件是:

NVLink Switch —— 解决服务器节点内部GPU到GPU的通讯;

NVMe SSD —— 用来存放训练模型;

IB/RoCE网卡 —— 实现跨服务器节点的GPU通讯;

为了保证GPU Direct over RoCE和GPU Direct Storage的高效稳定运行,我们还需要为每块GPU配置对应的网卡和SSD,并且保证这块GPU访问对应的网卡和SSD路径最短。

因此,虽然基于x86或ARM处理器的工业标准服务器(ISS)已经是一片红海,但设计一款优秀的GPU服务器却是一个令工程师们头秃的问题。

因此,NVidia做出了一个伟大的决定:亲自示范教大家应当如何做一款优秀的GPU服务器!

这就是NVidia的DGX系列。

下期开始,我们将详解NVidia的DGX服务器的设计细节。

0 人点赞