! M; V4 w4 b) T3 j - h" u% g# l+ d! x" G/ V* Z- A) H5. HFReduce:通信库的创新,突破 allreduce 瓶颈# {& n6 k* K( c
在大规模深度学习训练中,allreduce 操作是一个非常频繁且耗时的操作。它负责将所有 GPU 上计算得到的梯度进行汇总,然后更新模型的参数。传统的 allreduce 实现,如 NCCL,虽然已经经过了高度优化,但在 PCIe 架构下,仍然存在一定的性能瓶颈。 & u( G) `! K% i- E8 [0 x" Y$ T0 ], n2 J- v. X; {
为了解决这个问题,Fire-Flyer 2 团队自主研发了 HFReduce 通信库,专门针对 allreduce 操作进行了深度优化。HFReduce 的核心思想是“先局部 reduce,再全局 allreduce”。它巧妙地利用了 CPU 和 GPU 各自的优势。首先,在每个节点内部,利用 CPU 的向量指令(如 AVX512)对节点内所有 GPU 的数据进行快速 reduce 操作。由于 CPU 擅长执行向量化计算,这一步能够非常高效地完成。然后,将每个节点 reduce 后的结果,利用双二叉树算法和 RDMA 传输,进行节点间的 allreduce 操作。双二叉树算法能够有效地减少通信的跳数,降低通信延迟;RDMA 传输则能够直接在节点间进行数据传输,避免了 CPU 的参与,进一步降低了开销。0 X& b5 ~1 |+ H
+ e& _8 m, q6 h) m0 s! }6 O. k9 a
7 |; O5 }3 ]( d4 G $ x- X* {5 X' Z: z+ I这种分而治之的策略,使得 HFReduce 相比于 NCCL 具有显著的优势。首先,它大幅降低了 PCIe 带宽的消耗。由于节点内部的 reduce 操作已经在 CPU 上完成,节点间只需要传输 reduce 后的结果,数据量大大减少,从而降低了对 PCIe 带宽的压力。尤其是在大规模集群中,这一优势更加明显。其次,它消除了 GPU 内核的开销。HFReduce 的 reduce 操作完全在 CPU 上进行,不占用宝贵的 GPU 计算资源,避免了 NCCL 的 GPU 内核启动开销,使得 GPU 能够更专注于深度学习模型的计算。 % V/ M. R+ o: M % f' X U/ l; u3 Y$ _ ) z7 F9 ?- K+ [! i8 @8 @, J+ v3 e1 M( W& A
为了进一步提升性能,HFReduce 还支持 NVLink 加速。通过在 PCIe A100 GPU 之间安装 NVLink 桥接器,可以利用 NVLink 的高带宽进行 GPU 之间的预 reduce 操作,进一步减少 PCIe 带宽的压力,然后再将结果传输到 CPU 进行最终的 allreduce。 3 F/ w6 _& a. u3 @6 S3 ^" Y; |1 f
4 ^! O; s0 s7 \% [& E9 wHFReduce 的实现细节也体现了精益求精的工匠精神。对于小数据量的传输,利用 GDRCopy (GPU Direct RDMA) 技术,直接在 GPU 之间进行数据拷贝,避免了 CPU 的参与,降低了延迟;利用 CPU 的 SIMD (Single Instruction, Multiple Data) 指令,如 AVX512,对 reduce 操作进行向量化加速,充分发挥 CPU 的计算能力;优化内存访问模式,减少跨 NUMA 节点访问内存带来的延迟;利用 RDMA (Remote Direct Memory Access) 技术,实现高效的节点间数据传输,避免额外的 CPU 开销。: g R; N6 Q! K' d" q; A1 Y
) p) x- C: f# f* d% J: s
6. HaiScale:为深度学习量身打造的训练框架- Q1 {0 ~ ?; v) n
HaiScale 是 Fire-Flyer 2 AI-HPC 的深度学习训练框架,它不仅仅是一个简单的训练工具,而是针对 PCIe 架构进行了全方位的优化,旨在最大程度地发挥硬件性能,为深度学习训练提供强大的支持。! s4 }& U$ C2 c% U! X l
. s# s4 S8 P; j' i2 E9 E# E
HaiScale 实现了一个增强版的分布式数据并行 (DDP) 算法。通过异步 allreduce 和反向传播计算的重叠,HaiScale 进一步提高了训练效率。传统的 DDP 算法在进行 allreduce 操作时,需要等待所有 GPU 完成梯度计算,然后才能进行参数更新。HaiScale 则将 allreduce 操作和反向传播计算进行重叠,即在 GPU 计算梯度的同时,就开始进行部分 allreduce 操作,从而隐藏了通信延迟,提高了整体的训练效率。 , V2 ~" y: C4 i+ v0 N! ]6 k% I% x0 T9 u- Z% O7 {4 C$ s. B
针对 LLM 训练,HaiScale 提供了多种并行化策略的支持,包括张量并行 (TP)、流水线并行 (PP) 和全分片数据并行 (FSDP)。对于需要高带宽的张量并行操作,HaiScale 支持利用 NVLink 桥接,实现 PCIe GPU 之间的张量并行,提升 TP 效率。对于流水线并行,HaiScale 通过精细的数据并行 rank 配置,错开不同流水线阶段的执行时间,减少网络竞争,提升流水线并行的效率。对于全分片数据并行 (FSDP),HaiScale 针对 PCIe 架构进行了深度优化,包括高效的内存管理,减少内存碎片,提升内存利用率;以及通信与计算重叠,将参数的通信和计算过程进行重叠,隐藏通信延迟。* t" ~) r# [ i! _
5 N$ V% E/ Q7 s1 A! s, T4 n
除了上述策略外,HaiScale 还支持 ZeRO (Zero Redundancy Optimizer) 等其他并行化策略。用户可以根据不同的模型和训练需求,灵活选择合适的策略,实现最佳的训练效率。HaiScale 的这种灵活性和可扩展性,使得它能够适应各种不同的深度学习训练场景。 / K* ?5 M* T3 u2 X U+ H: p; u3 \, [& K5 g9 o
7. 存储、资源管理与稳定性:全方位的保障6 E% u, @9 W% q
Fire-Flyer 2 采用了计算-存储一体化网络设计,将计算流量和存储流量融合在同一网络中,简化了网络架构,降低了成本。为了避免网络拥塞,Fire-Flyer 2 采取了前面提到的多种网络调优策略。$ j: K7 q3 u3 `+ N' I+ E
+ v: B$ ~& { D, c+ v; F* j
在存储方面,Fire-Flyer 2 采用了自主研发的 3FS 分布式文件系统。3FS 针对 NVMe SSD 和 RDMA 网络进行了专门的优化,实现了高吞吐量和低延迟,满足了深度学习训练对存储系统的高要求。3FS 存储节点的配置包括:1 颗 AMD 64 核 EPYC 7742 CPU,512GB 8 通道 DDR4-3200MHz 内存,2 个 Mellanox CX6 200Gbps IB 网卡,以及 16 个 15.36TB PCIe 4.0x4 NVMe SSD。0 u; T" N" t( U; _) K
+ T1 V" q" Y/ r! j% Y: R3FS 的核心技术之一是采用了 Chain Replication with Apportioned Queries (CRAQ) 协议。CRAQ 实现了强一致性和高性能。它将读写操作分离,写操作在链式复制的尾节点执行,读操作可以在任意节点执行,从而提高了读性能。此外,3FS 还通过精细的请求发送控制机制,有效地缓解了网络拥塞,实现了可持续的高吞吐量。7 w, ~8 L2 n) ^, ?4 X% N# I
' B. B1 {- h y
为了进一步提升 LLM 服务的效率和经济性,Fire-Flyer 2 还开发了 3FS-KV 分布式数据处理系统,支持 KV 存储、消息队列和对象存储等多种模式,并支持 DeepSeek 的 KV Context Caching on Disk 技术,可以将 LLM 服务的成本降低一个数量级。2 g: X* H1 B+ j5 Y( e3 r4 E
$ c* b5 Z; h. _# e: _在任务调度和资源管理方面,Fire-Flyer 2 采用了 HAI 平台。HAI 平台采用分时调度策略,根据资源需求和集群负载情况进行任务调度,并鼓励用户进行多 GPU 并行训练,提高资源利用率。 4 D! D& w( K" J0 m N$ C$ D" @8 K! e% u$ H
为了保证集群的稳定可靠运行,Fire-Flyer 2 实现了多种机制,包括检查点管理器 (Checkpoint Manager) 和验证器 (Validator)。检查点管理器能够将模型参数和优化器状态分块写入 3FS,实现快速保存和加载,并采用周期性异步保存策略,减少硬件故障带来的损失。验证器则定期检查硬件的运行状态,及时发现潜在问题。 % O- X3 p* v" }& W$ R" i7 k1 N+ K* Y% x+ H+ a! |0 \, r
8. 总结与展望:Fire-Flyer AI-HPC 的深远意义 * @8 g; S1 ?# |, [ J: F6 EFire-Flyer 2 AI-HPC 不仅仅是一个高性能计算集群,更是一个深度学习软硬件协同设计的典范。它通过对计算节点、网络架构、通信库、训练框架、存储系统以及资源管理平台的全面优化,实现了深度学习训练的高性能、低成本和可持续性。Fire-Flyer 2 的成功,证明了软硬件协同设计在构建高性价比 AI 基础设施方面的巨大潜力。 . c7 c0 T. l/ d7 `4 s( ?; Q3 t" Y$ c5 J' i2 u4 ~0 F
Fire-Flyer AI-HPC 的研究成果和实践经验,为 AI-HPC 集群的建设和发展提供了宝贵的参考,也为深度学习的未来发展奠定了坚实的基础。随着深度学习技术的不断演进,Fire-Flyer AI-HPC 也将持续创新,不断探索 AI-HPC 架构的未来,为人工智能的发展贡献力量。- D7 j. C# c: k3 y( j
% S9 x+ T0 n3 h
附录 1 ] p# a% V G' k# A对于NVlink,DeepSeek的研究人员是边用边骂: % d- M, F) q3 }9 j, L+ D& C- c" `( m; H. Z
B. Discussion about NVLink Technology Choices # L; K2 O/ G! F: I5 w" U" h: Z; c9 `4 ~% G3 d* x& U! r
Initially, we did not use NVLink to avoid extra costs and maintain stability, as HFReduce was sufficient for training requirements at that time. However, as the demand for LLMs increased, we added NVLink specifically for LLM training purposes. The decision to install NVLink should be based on actual needs due to its potential drawbacks。% k3 J7 u! n' S3 u( \
3 V$ s, S- f7 _$ H+ `& o- y还在附录里列出了关键的典型错误: d; g! W8 ]4 y2 c, `9 K: K5 ]6 o( ~$ E0 g& H* q# v
IB网络也被吐槽的体无完肤,这也许是之前英伟达股票狂跌的原因之一吧 1 Z6 j; y) C0 g1 P; G5 h : b3 V5 i8 M, l而且仔细想一想,结合后面DeepSeek V3的论文中专门强调了对于内存读写和网络框架及驱动的优化内容(甚至用了PTX),并且被误解为要取代CUDA。就知道他们是在踩坑的同时填坑,填完了坑才有了这种软硬件一体化设计的论文公开。2 i" z& ]3 I. y2 l$ k& |- i6 L
9 I. w. b) I7 e6 Z
参考论文: arXiv:2408.14158v2 [cs.DC] 31 Aug 2024 . t' M& |" k6 B- {0 i4 {5 c( b. Y 7 [* x6 _+ G. G* S+ A7 Z" S原文链接 ' T* o7 l& x% p! B* A* U/ v! ?# k2 i7 K7 a9 s0 Z- @+ p
有图片都在原文里,有兴趣的可以看看。作者: WiFi 时间: 2025-2-8 09:05
我从来没有称呼过没有教过我的人老师。看完后,我尊尊敬敬的称一声:谢谢,谢老师。解惑了。9 B+ f+ w- }2 { F/ J* m
同时也让我对喷DS只是蒸馏了OpenAI的人及其不屑。作者: 晨枫 时间: 2025-2-8 10:55 本帖最后由 晨枫 于 2025-2-7 20:57 编辑 0 x+ H9 \. R* o2 r
; v: `& a7 y- m' {! e
我也从来没有称呼过没有教过我的人老师。看完后,我尊尊敬敬的称一声:谢谢,谢老师。不过没有解惑,因为没看懂。隔行如隔山,也就不勉强弄懂了。还是要多谢解释。 & q% E7 t* W* Q; y* ]) [- f7 g: ^+ G- y+ V+ t* \
问题:4 R7 ]# F4 Q" c# u/ H5 V5 y( D8 x
5 D. m" l& }' \4 ^# }9 x* |这里提到的A100,和英伟达的A100卡不是一回事吧?6 }% z! |8 C/ j) y1 ?
w6 h2 Y& S; _4 v1 i+ N' X
最大的问题:这样的做法在scalability和transportability方面有什么长处、短处?因为没有看懂,所以还是没有解答最初的疑问:如果换GPU,换模型架构,或者极大增大模型尺寸,这套架构需要推倒重来吗? / c' x' B9 @3 p5 d( v o8 K& }; c
这是case by case optimization,还是scalable and transportable framework not only in terms of concept but also toolset?作者: xiejin77 时间: 2025-2-8 11:13