电子产业一站式赋能平台

PCB联盟网

搜索
查看: 338|回复: 0
收起左侧

理解紧密耦合异构系统中的内存操作:Grace Hopper超级芯片指南

[复制链接]

1073

主题

1073

帖子

1万

积分

论坛法老

Rank: 6Rank: 6

积分
11353
发表于 2024-11-12 08:01:00 | 显示全部楼层 |阅读模式
引言0 J1 v9 b) H  C9 B5 E4 r) d1 {" Z
高性能计算(HPC)和人工智能(AI)领域因异构系统而发生了巨大变革,特别是那些集成了GPU的系统。随着工作负载越来越受内存限制,优化系统内部的通信延迟和带宽变得极为重要。NVIDIA Grace Hopper超级芯片(GH200)代表了紧密耦合异构系统的重大进步,提供了统一的地址空间和对系统所有主内存的透明细粒度访问。
1 F7 T. [- t& _
/ o, r" `2 c) B, j0 v本文将探讨Quad GH200节点的架构(这是瑞士国家超级计算中心Alps超级计算机的基本构建块),并提供有关如何优化这一尖端系统内存操作的见解[1]。
0 J. R8 \" u: g( v1 ~

etd2yxyhk1r640131845344.png

etd2yxyhk1r640131845344.png

8 b3 P$ \- k" D
0 ~1 D# n7 P$ ^( F3 @4 Z9 j8 q7 i架构概述
0 c1 a4 c8 H, N. `3 p/ eQuad GH200节点由四个GH200超级芯片组成,每个超级芯片结合了一个Grace CPU和一个Hopper GPU。这些单元通过NVLink和缓存一致性互连全面互联。让我们来看看关键组件:
/ A; ^4 w6 w; L/ D7 B# p

dn4vw1s5zfv640131845445.png

dn4vw1s5zfv640131845445.png

( k  u  J. [2 l" Q/ h( }* H图1:Quad GH200节点的架构7 M6 {; Q7 f- S" N

/ O" X6 g& b+ P( ^2 L. L0 p* f如图1所示,每个GH200超级芯片具有以下特点:: \1 z; C1 W/ z3 w/ N% z, ^6 R
  • 一个Grace CPU,有72个Arm Neoverse V2核心
  • 一个Hopper GPU,有132个流式多处理器(SMs)
  • 96GB的HBM3内存(4000 GB/s带宽)
  • 128GB的LPDDR5内存(500 GB/s带宽)
    3 o; G1 }) ~- B9 A) o) V6 O) g: L
    4 k% z; a9 A% @
    GH200单元通过以下方式互连:
    , |5 V5 e$ @+ {$ q- N! y, a3 F
  • NVLink:每个方向150 GB/s(总共900 GB/s)
  • Grace互连:每个方向150 GB/s
  • NVLink-C2C(C2C):每个方向450 GB/s(总共900 GB/s)) T4 U7 z" W& s2 h

    0 _4 u% E$ i8 d+ Y# r" U- k每个节点还通过单独的网络接口卡连接到Slingshot网络,每个方向提供25 GB/s(总共200 GB/s)的节点间通信。
    5 a1 j" ]; o+ D* c- K, `
    8 d% ?" m/ H1 W: ?- E内存层次结构和NUMA
    , V8 H2 U( n. d  ~+ i2 qQuad GH200系统呈现出复杂的内存层次结构,具有非统一内存访问(NUMA)特性。
    # A0 \6 Z& v& j, V. z/ I每个GH200由两个NUMA节点组成:
  • 与Grace亲和的LPDDR5内存
  • 与Hopper亲和的HBM3内存
    " Q% N' {3 w& [: F3 T' k1 R[/ol]
    3 p7 s( `' D( \+ L0 [总的来说,一个Quad GH200节点有八个NUMA节点,四个与Grace CPU相关(NUMA 0-3),四个与Hopper GPU相关(NUMA 4, 12, 20, 28)。
    8 T7 P) i5 A. _7 {$ |: ~7 g
    $ g+ ^- h6 o# o# L$ I, P. |理解数据路径8 B! m- b" X/ S" a* N$ R
    为了优化内存操作,理解不同类型操作的数据路径非常重要。让我们来看看读取、写入和复制操作:
    9 ~7 T9 W" ^% V3 b+ t. `1 f

    lbyf5202vbv640131845545.png

    lbyf5202vbv640131845545.png

    1 ?( j3 |8 `. b; e: p图2:Hopper操作的数据路径! ]+ ]/ i0 j+ j* u

    : O6 @4 C4 W+ V8 A) c# y6 J图2说明了Hopper GPU执行的读取、写入和复制操作的数据路径。
    / Y3 e; s1 A( z4 K注意:" K3 p, r) y" F  k
  • 本地HBM访问具有最短的路径和最高的带宽(4000 GB/s)
  • 跨C2C互连的操作限制在450 GB/s
  • 复制操作可能需要多次互连遍历,影响可达到的带宽, s, B3 ~) {# N: o/ T

    3 P" }+ [5 \1 x; R3 O. _内存操作基准测试& g+ f& u  m) U! T' e5 b, w
    为了理解Quad GH200系统的性能特征,我们将检查各种微基准测试的结果:
    ( [$ B( w" U  }& P% W8 Y$ l1. 读取和写入操作:
    1 W0 F" E& }' b; R8 e+ v

    zn3tj0za4tf640131845646.png

    zn3tj0za4tf640131845646.png

    5 z. v0 J5 Q0 w图3:读取和写入吞吐量  e9 H8 G* S: o! h) D: s9 h" Y% r
    7 y+ F. \& q5 ?. @0 O
    图3显示了Grace和Hopper在不同类型内存上进行读取和写入操作的吞吐量,包括空闲条件下和C2C互连负载下的情况。. L5 C( k3 Q4 q8 w- z
    主要观察:
    # f' D! W/ X. X3 u
  • Hopper通常在本地内存访问时更好地利用C2C互连
  • 跨越C2C和NVLink的操作会产生显著开销
  • 在负载下,对HBM的写入受影响最大,特别是对Grace而言
    # M. {! ^) @/ v7 E

    ' P- l9 d( M7 P& F! O% B2. 复制操作:
    ( S6 I/ I/ p. f( D4 f1 C

    lhmh55x401p640131845746.png

    lhmh55x401p640131845746.png

    $ @( e; g+ @. [. W' A9 `. u0 L* [图4:复制吞吐量8 K" u! L6 p5 O6 n+ Y# l; M
    1 g3 Z% s$ _% z& B" N$ A( ]3 }
    图4说明了Grace和Hopper在不同源和目标内存类型之间进行复制操作的吞吐量。
    : e: l$ e& ?0 x( C2 v1 ]8 E7 o) c值得注意的发现:
    : C5 i& k: S. o# m/ I8 T
  • 内存传输存在不对称性(例如,Grace在从本地内存复制到对等GH200时达到更高的吞吐量)
  • Hopper在跨越多个互连时通常能更有效地利用可用带宽
    9 ~; k$ W! r; Z% k9 ]) d0 {
    9 W& C- |1 C2 C
    3. 延迟:
    9 d- g8 K: e7 i  U: d) o3 h3 h

    2bha1dosrmk640131845846.png

    2bha1dosrmk640131845846.png
    , y% ]9 E/ P4 b; `( C' F( v1 [
    图5:主内存访问延迟! p6 x, w, j2 C! @0 W
    9 @0 C! [3 T! n3 j% s9 w. r) @3 D
    图5显示了Grace和Hopper的主内存访问延迟。有趣的是,跨越C2C互连的访问(Grace到HBM和Hopper到DDR)表现出相似的延迟。
    . F4 c8 s- e5 n" A" V9 G' I8 b# v4 C! T* ~7 Y# A' G- C, ^
    优化应用程序
    ) O- X, J  K# _' O9 X理解这些性能特征对于在Quad GH200系统上优化应用程序非常重要。让我们来看一些示例工作负载及其基于内存放置的性能:
    & ]' v5 y2 i: S6 M1 s. i6 ?2 i: j, V1. GEMM(通用矩阵乘法):
    ( x. B5 ~1 g5 w$ g

    xwra2nee20t640131845946.png

    xwra2nee20t640131845946.png
    * ]' d9 a/ Z0 c$ Z, {) N0 h: C: r
    图6:GEMM性能2 [  ~4 x& q7 h: p
    ; D6 B$ f0 P5 w
    图6显示了矩阵放置在不同内存位置的GEMM操作性能。主要要点:
    ! j: s+ j3 d" X
  • HBM放置对于最佳性能至关重要,特别是对于使用Tensor Cores的数据类型
  • 即使将一个矩阵移出HBM也可能显著影响性能
    # _, I5 o! I. Y. ?
    9 v) h# e1 \! v5 E' ^- M5 U
    2. LLM(大型语言模型)推理:2 T+ p  o, R$ c- O# B

    20014rdhvzh640131846046.png

    20014rdhvzh640131846046.png
    $ s3 R+ e  w1 Z$ y- b
    图7:LLM推理时间" N, W8 o9 I8 P7 t0 M# K. h8 [
    # d" f7 S# Y9 }: a/ X$ c
    图7显示了不同模型和内存分配的LLM推理时间。观察结果:5 b+ B( Z  r7 V$ l4 Q# K
  • 内存访问速度对吞吐量起着根本作用
  • HBM分配提供最佳性能,而对等内存访问显著影响推理时间
    + C/ ?2 j) G: u7 B# c

    " r8 Z; y+ A- `% y0 c" u* c6 r3. NCCL(NVIDIA集体通信库)操作:" S, W6 _+ Z& e! n

    wtcar1tazwv640131846146.png

    wtcar1tazwv640131846146.png
    * A. a* ]3 |* m6 {0 \$ x
    图8:NCCL All Reduce和All Gather性能( t+ G' @' L( ]

    # O2 W% A, a) J+ P; j# h- z0 k" g图8说明了节点内All Reduce和All Gather操作的性能。关键点:
    * b  e1 ?* x5 j" P- j
  • 超级芯片局部性比使用的内存类型更重要
  • 同一GH200内存大大优于对等访问* ^+ I  P4 k* `" q/ F: v" W

    * D: T; k% b& f% W5 e最佳实践和建议3 C% Y5 w3 C$ u2 F2 m7 v- s
    基于从这些基准测试和应用程序示例中获得的见解,以下是在Quad GH200系统上优化内存操作的一些最佳实践:
  • 优先使用HBM:尽可能将性能关键数据放在本地HBM内存中,特别是对于GPU密集型工作负载。
  • 最小化跨GH200访问:尽量将数据保持在执行计算的GH200单元本地,因为对等内存访问会导致显著的性能损失。
  • 谨慎利用统一内存:虽然统一内存简化了编程,但要注意与显式内存管理相比的性能特征。
  • 考虑内存传输的不对称性:在设计数据移动模式时,要考虑不同内存类型之间复制操作的不对称性。
  • 优化集体操作:对于使用NCCL或类似库的应用程序,专注于超级芯片局部性以最大化性能。
  • 分析和迭代:使用分析工具识别应用程序中的内存访问模式,并根据系统的性能特征迭代优化数据放置。
    ! s! L) m; |" B0 r[/ol]. L9 _1 p  P) j/ P. C/ N
    结论  r; W2 h+ D& d
    Quad GH200节点为HPC和AI工作负载提供了强大的计算能力和内存带宽。然而,要充分利用其潜力,开发人员必须理解其复杂的内存层次结构并相应地优化数据放置。通过遵循本文概述的最佳实践并仔细考虑不同内存操作的性能特征,可以显著提高在这一先进异构系统上应用程序的效率。
    3 W+ @9 w0 v( r9 G- ~1 R# D# p# W6 p+ C' p; d. ~$ l4 [
    参考文献
    + e/ i1 e0 m9 g% C( m. v6 A9 X/ n[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.( X! _+ X+ P" i7 j4 T  _

    7 p, J  M. L; y' |- W+ \END# V, e4 N% P1 i9 J
    7 C" @% \: z/ F2 b* P6 v

    0 N3 M1 V3 K' B* ?6 v7 @7 I软件申请我们欢迎化合物/硅基光电子芯片的研究人员和工程师申请体验免费版PIC Studio软件。无论是研究还是商业应用,PIC Studio都可提升您的工作效能。
      |2 O' x1 g& L4 T7 T. D0 v点击左下角"阅读原文"马上申请
    . P! f$ n1 X% {+ b
    3 d; i3 O6 C* u0 y欢迎转载
    - S, s% Y5 K& J8 Z/ k  v( j
    # b. e, y  N0 b3 }) ^  t% k转载请注明出处,请勿修改内容和删除作者信息!5 ]$ n& v6 P$ e

    ! Q: M3 P% k' i4 S, u* y# o: D5 I- Q2 `5 R- `0 B! ?

    8 h( J- X8 a; Y2 q$ v; j

    dwno3zivgzi640131846246.gif

    dwno3zivgzi640131846246.gif

    , ~  I- m( s6 x: R( q. [0 O, H  `5 t% T% l* b
    关注我们5 t. W3 {& _9 d0 E8 l
    5 J2 L9 y3 y( L6 M; Q5 Z

    - R: |/ r0 d. u

    4rylqec5bdo640131846346.png

    4rylqec5bdo640131846346.png
    6 i: R- q# r2 U0 n: q( H8 A1 }
    ( X3 D" Z& s: C) b0 W

    dmhmyzw3c0v640131846446.png

    dmhmyzw3c0v640131846446.png
    + f7 A  |2 U2 a8 k
    " b6 i/ ?& }- G+ K# P

    vjb0ch5fihn640131846546.png

    vjb0ch5fihn640131846546.png

    ) M; A) s! S$ W0 k6 a* J+ N
                          . j" c& s+ Z4 g1 F% w' t

    ; A9 d# G4 W( o+ C
    ; z2 g& R0 w. L' Q2 a

    % {- x0 R; v( h9 o+ [# q关于我们:8 S* J  ?) o4 n
    深圳逍遥科技有限公司(Latitude Design Automation Inc.)是一家专注于半导体芯片设计自动化(EDA)的高科技软件公司。我们自主开发特色工艺芯片设计和仿真软件,提供成熟的设计解决方案如PIC Studio、MEMS Studio和Meta Studio,分别针对光电芯片、微机电系统、超透镜的设计与仿真。我们提供特色工艺的半导体芯片集成电路版图、IP和PDK工程服务,广泛服务于光通讯、光计算、光量子通信和微纳光子器件领域的头部客户。逍遥科技与国内外晶圆代工厂及硅光/MEMS中试线合作,推动特色工艺半导体产业链发展,致力于为客户提供前沿技术与服务。
    , ], k) A; G  Y0 s( K% z
    5 D& @0 @7 r" q9 H1 ]( Thttp://www.latitudeda.com/! j1 p  w- Q% S5 t
    (点击上方名片关注我们,发现更多精彩内容)
  • 回复

    使用道具 举报

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则


    联系客服 关注微信 下载APP 返回顶部 返回列表