这天,小H来到办公室,一脸很不开心的样子。
其他人问小H发生了什么,小H开始揉眼睛:
“我养的仓鼠病了,我给它吃了老鼠药,可是它还是死了……”
办公室里立即充满了欢快的笑声,并且建议小H化悲痛为力量,学习好科学文化知识,避免以后别再把老鼠药理解为给鼠治病的药。
小H想了想,还是觉得学习计算机知识更简单。
在上期,我们讲到,DGX A100内部的各块GPU卡是通过NVLink Switch互联的,同一台服务器内部GPU之间可以通过NVLink实现GPU Direct Memory的互通。那么,对于不同服务器的GPU互通应当如何实现呢?
实际上,这个问题在前面几篇已经给出了答案:通过RoCE网络。
如图,GPU需要访问其他服务器上的GPU内存时,需要发起GPU Direct,经过CPU的PCI-E RC(Root Complex),RDMA网卡,RoCE交换机,对端的RDMA网卡,到达对端CPU的PCI-E RC,由对端GPU处理,最终访问到对端的GPU内存。
但是,由于DGX A100的特殊性,如果在8 GPU卡配置的GPU服务器上,所有GPU均通过此种方式实现GPU Direct,无论是网卡,还是RC,都有可能成为带宽方面的瓶颈。
针对这一问题,DGX A100的解决思路是,在系统中增加8张专用的Mellanox CX6 RDMA/RoCE网卡,将A100 GPU和Mellanox CX6网卡做一对一的绑定,使得GPU Direct over RDMA/RoCE的路径尽量不经过CPU。
在《大模型与AI底层技术揭秘 (11) 变形记》中,我们也提到,GPU Direct这一IO加速框架中,还有一项重要的技术是GPU Direct Storage,实际上是让GPU能够直接从NVMe SSD 读取训练样本及写入训练后的参数权重,以提升持久化数据的读写效率。同样地,DGX A100为每块A100 GPU也配置了独立的NVMe SSD盘。这种设计有两方面的价值:
- 避免GPU读写盘的时候绕去其他PCI-E Switch,绕行RC;
- 由于每块GPU独享一块NVMe SSD,可以彻底绕过操作系统的文件系统机制,空间的分配更为简洁;
因此,NVidia设计的DGX A100的各核心组件的连接关系可以总结为下图:
图中,每个红色虚线框内有一块A100 GPU,一块Mellanox CX6 RDMA网卡和一块3.84TB的NVMe SSD盘,GPU可以通过CX6网卡实现GPU Direct Over RDMA,也可以直接通过GPU Direct Storage读写与自己绑定的NVMe SSD。
在8块A100 GPU的支持下,Nvidia DGX A100整机提供了高达2.5P FLOPS的超高计算性能。但是,对于“大模型训练”等大型计算场景,有可能仍然无法满足业务的需求。对于此种场景,就需要将多台Nvidia DGX A100组成计算集群的方案。
那么,将DGX A100 组成计算集群,我们需要做哪些工作呢?
首先,要提供用户登录各台DGX A100主机操作系统的通道,以及各主机CPU平面的通讯,包括Underlay层宿主机、Overlay层虚拟机或Kubernetes下容器的互通;
其次,还需要为GPU到专用的高性能存储之间的互访提供通道,实现GPU通过GPU Direct技术访问存储集群;
最后,需要实现多块A100 GPU之间的跨节点互访,实现GPU可以通过GPU Direct技术访问其他节点上GPU的内存;
第一点需求可以通过通用的以太网/IP技术来实现,与其他云平台网络别无二致。而第2/3点需求如何实现,在业界又出现了不同的声音……
请看下期。
上期答案:图片是被胡塞族武装劫持的货轮“银河领袖”。