引言
高性能计算(HPC)和人工智能(AI)领域因异构系统而发生了巨大变革,特别是那些集成了GPU的系统。随着工作负载越来越受内存限制,优化系统内部的通信延迟和带宽变得极为重要。NVIDIA Grace Hopper超级芯片(GH200)代表了紧密耦合异构系统的重大进步,提供了统一的地址空间和对系统所有主内存的透明细粒度访问。
本文将探讨Quad GH200节点的架构(这是瑞士国家超级计算中心Alps超级计算机的基本构建块),并提供有关如何优化这一尖端系统内存操作的见解[1]。
架构概述
Quad GH200节点由四个GH200超级芯片组成,每个超级芯片结合了一个Grace CPU和一个Hopper GPU。这些单元通过NVLink和缓存一致性互连全面互联。让我们来看看关键组件:
图1:Quad GH200节点的架构
如图1所示,每个GH200超级芯片具有以下特点:
一个Grace CPU,有72个Arm Neoverse V2核心
一个Hopper GPU,有132个流式多处理器(SMs)
96GB的HBM3内存(4000 GB/s带宽)
128GB的LPDDR5内存(500 GB/s带宽)
GH200单元通过以下方式互连:
NVLink:每个方向150 GB/s(总共900 GB/s)
Grace互连:每个方向150 GB/s
NVLink-C2C(C2C):每个方向450 GB/s(总共900 GB/s)
每个节点还通过单独的网络接口卡连接到Slingshot网络,每个方向提供25 GB/s(总共200 GB/s)的节点间通信。
内存层次结构和NUMA
Quad GH200系统呈现出复杂的内存层次结构,具有非统一内存访问(NUMA)特性。
每个GH200由两个NUMA节点组成:
与Grace亲和的LPDDR5内存
与Hopper亲和的HBM3内存
总的来说,一个Quad GH200节点有八个NUMA节点,四个与Grace CPU相关(NUMA 0-3),四个与Hopper GPU相关(NUMA 4, 12, 20, 28)。
理解数据路径
为了优化内存操作,理解不同类型操作的数据路径非常重要。让我们来看看读取、写入和复制操作:
图2:Hopper操作的数据路径
图2说明了Hopper GPU执行的读取、写入和复制操作的数据路径。
注意:
本地HBM访问具有最短的路径和最高的带宽(4000 GB/s)
跨C2C互连的操作限制在450 GB/s
复制操作可能需要多次互连遍历,影响可达到的带宽
内存操作基准测试
为了理解Quad GH200系统的性能特征,我们将检查各种微基准测试的结果:
1. 读取和写入操作:
图3:读取和写入吞吐量
图3显示了Grace和Hopper在不同类型内存上进行读取和写入操作的吞吐量,包括空闲条件下和C2C互连负载下的情况。
主要观察:
Hopper通常在本地内存访问时更好地利用C2C互连
跨越C2C和NVLink的操作会产生显著开销
在负载下,对HBM的写入受影响最大,特别是对Grace而言
2. 复制操作:
图4:复制吞吐量
图4说明了Grace和Hopper在不同源和目标内存类型之间进行复制操作的吞吐量。
值得注意的发现:
内存传输存在不对称性(例如,Grace在从本地内存复制到对等GH200时达到更高的吞吐量)
Hopper在跨越多个互连时通常能更有效地利用可用带宽
3. 延迟:
图5:主内存访问延迟
图5显示了Grace和Hopper的主内存访问延迟。有趣的是,跨越C2C互连的访问(Grace到HBM和Hopper到DDR)表现出相似的延迟。
优化应用程序
理解这些性能特征对于在Quad GH200系统上优化应用程序非常重要。让我们来看一些示例工作负载及其基于内存放置的性能:
1. GEMM(通用矩阵乘法):
图6:GEMM性能
图6显示了矩阵放置在不同内存位置的GEMM操作性能。主要要点:
HBM放置对于最佳性能至关重要,特别是对于使用Tensor Cores的数据类型
即使将一个矩阵移出HBM也可能显著影响性能
2. LLM(大型语言模型)推理:
图7:LLM推理时间
图7显示了不同模型和内存分配的LLM推理时间。观察结果:
内存访问速度对吞吐量起着根本作用
HBM分配提供最佳性能,而对等内存访问显著影响推理时间
3. NCCL(NVIDIA集体通信库)操作:
图8:NCCL All Reduce和All Gather性能
图8说明了节点内All Reduce和All Gather操作的性能。关键点:
超级芯片局部性比使用的内存类型更重要
同一GH200内存大大优于对等访问
最佳实践和建议
基于从这些基准测试和应用程序示例中获得的见解,以下是在Quad GH200系统上优化内存操作的一些最佳实践:
优先使用HBM:尽可能将性能关键数据放在本地HBM内存中,特别是对于GPU密集型工作负载。
最小化跨GH200访问:尽量将数据保持在执行计算的GH200单元本地,因为对等内存访问会导致显著的性能损失。
谨慎利用统一内存:虽然统一内存简化了编程,但要注意与显式内存管理相比的性能特征。
考虑内存传输的不对称性:在设计数据移动模式时,要考虑不同内存类型之间复制操作的不对称性。
优化集体操作:对于使用NCCL或类似库的应用程序,专注于超级芯片局部性以最大化性能。
分析和迭代:使用分析工具识别应用程序中的内存访问模式,并根据系统的性能特征迭代优化数据放置。
结论
Quad GH200节点为HPC和AI工作负载提供了强大的计算能力和内存带宽。然而,要充分利用其潜力,开发人员必须理解其复杂的内存层次结构并相应地优化数据放置。通过遵循本文概述的最佳实践并仔细考虑不同内存操作的性能特征,可以显著提高在这一先进异构系统上应用程序的效率。
参考文献
[1] L. Fusco et al., "Understanding Data Movement in Tightly Coupled Heterogeneous Systems: A Case Study with the Grace Hopper Superchip," arXiv preprint arXiv:2408.11556v2, Aug. 2024.
点击左下角"阅读原文"马上申请
欢迎转载
转载请注明出处,请勿修改内容和删除作者信息!
关注我们
关于我们:
深圳逍遥科技有限公司(Latitude Design Automation Inc.)是一家专注于半导体芯片设计自动化(EDA)的高科技软件公司。我们自主开发特色工艺芯片设计和仿真软件,提供成熟的设计解决方案如PIC Studio、MEMS Studio和Meta Studio,分别针对光电芯片、微机电系统、超透镜的设计与仿真。我们提供特色工艺的半导体芯片集成电路版图、IP和PDK工程服务,广泛服务于光通讯、光计算、光量子通信和微纳光子器件领域的头部客户。逍遥科技与国内外晶圆代工厂及硅光/MEMS中试线合作,推动特色工艺半导体产业链发展,致力于为客户提供前沿技术与服务。
http://www.latitudeda.com/
(点击上方名片关注我们,发现更多精彩内容)