博文

目前显示的是 二月, 2025的博文

Deepseek DualPipe 分析

图片
一、DualPipe 特点 1、计算和通信 overlap(下图为由 forward chunk 和 backward chunk 组成的 chunk 对的计算和通信流程) 每个 chunk 均会经历四个过程:attention、all-to-all dispatch、MLP 以及 all-to-all combine。橙色表示 forward,绿色表示 input 的 backward,蓝色表示 weight 的 backward,紫色表示 PP 通信,红色表示 barrier 从下面第一张图可以看出, PP 和 alltoall 的通信过程被隐藏在 MLP 和 attention 的计算过程中 从下面第二张图可以看出,DualPipe 使用了 bidirectional pipeline scheduling ,即同时向流水线的首位两端传入 micro-batch 从而充分利用硬件资源  不同 PP 策略对应的 bubbles 数量和 memory usage 的对比 2、 all-to -all communication 优化 定制化 kernels :设计过程结合了 MoE gating algorithm 和集群的 network topology IB 和 NVLink 的 overlapping :每个 token 最多只会被分配到 4 个不同节点 上来减少 IB 流量,同时在分配 token 时让 IB 和 NVLink 的带宽充分 overlap,从而在不引入 NVLink 通信 overhead 的情况下使得某个节点上的 token 有能力选择 3.2 个 experts(即最多支持 4x3.2=13 experts,DS-v3 限制在 8 experts) SM 动态分配 :将 20 个 SMs 动态分配到 10 个 communication channels 上。具体来说 Dispatch 过程:IB sending、IB-to-NVLink forwarding、NVLink receiving 三个过程分别使用不同的 warps Combine 过程:NVLink sending、 NVLink-to-IB forwarding&accumulation、IB receiving&accumulati...

Zero Bubble 论文分析

图片
关键词:输入梯度,权重梯度,Pipeline Parallelism,Zero Bubble,1F1B 在 Deepseek-V3 technical report 中提到了一项很重要的训练优化技术:DualPipe,该技术的目的是为了尽可能地实现 computation 和 communication 两者的 overlapping,DS 作者提到 DualPipe 的设计参考了 ZeroBubble 策略,在 attention&MLP 梯度反向传播过程中区分 input backward 以及 weights backward。这一思想就是来源于 Zero Bubble 论文 ,这种细粒度梯度反向传播优化也让 Pipeline Parallelism 的效率得到了进一步的提升。 一、MLP 的反向传播过程 MLP(多层感知机)的反向传播过程可以分为两个部分: 输入梯度计算 (用 B 表示)和 权重梯度计算 (用 W 表示),前者为基于损失函数对上一层输出 x 进行微分后的结果,返回给上一层并用于该层的权重更新;后者用于本层权重的更新。 以往的设计中 B 和 W 被封装为同一个 backward function 提供给用户 ,这种设计对用户比较友好,且不会影响 DP 流程的效率(W 的通信和 B 的反向传播两者可以 overlap),但会影响 PP 流程的效率,因为上一层 B 的计算需要等待本层 W 计算完毕。因此 ZB 的做法是 splitting B & W 这两个流程。 二、ZB 涉及的 PP 流程和 1F1B 的区别 1、F 和 B 保持 sequentially dependent 的关系,但 W 可以灵活安排来尽可能让 W 的计算时间填补 pipeline bubbles 2、在假设 F/B/W 三个流程耗时均相同的情况下 1F1B、ZB-H1 和 ZB-H2 三者对比如下图所示 ZB-H1:Memory efficient schedule,B 先于 W 从而保证在 maximum peak memory usage 不超过 1F1B 的情况下 bubble size 减少为 1F1B 的三分之一 ZB-H2:Zero bubble schedule,在 warm-up 阶段引入更多的 micro-batches 来填补 ZB-...

跨界的危险

最近几个月断断续续在读介绍 NVIDIA 和黄教主发家史的传记: The Nvidia Way: Jensen Huang and the Making of a Tech Giant 。虽说整本书读下来就像一篇巨长的科技报道,有极强的流水账之感,不过还是有不少值得自己深思的地方。后面会陆陆续续记一些下来,这篇主要是针对第 10 章 The Engineer‘s Mind 中四位 CEO 的经历谈谈跨界的危险:当一位不太懂技术的领导者领导一家技术公司时可能出现的问题。 首先是 Gerald Levin。他于 2000 年主导了著名网络公司美国线上(AOL,America Online)与时代华纳(Time Warner)的合并,维基百科把这次合并称为“the biggest train wreck in the history of corporate America”。在 The Nvidia Way 中,当作者询问 Levin 关于他打算如何使用合并后企业的技术和平台时,他只是一个劲地在向作者介绍 AOL Instant Messenger(一款即时通讯软件) 功能是如何如何强大,并不了解 AOL 的产品实际是如何运作的,因此作者便合理地怀疑这位不太懂技术的企业经理人(business executive)能否掌舵 AOL 这艘巨轮。从 AOL 合并结果来看,作者的担心得到了印证。 第二位是曾任微软 CEO 的 Steve Ballmer。对于 NBA 球迷来说,他比较知名的一个身份就是洛杉矶快船队老板。实际上 Ballmer 的身份不止这一个:他曾在宝洁(Procter & Gamble)做过市场经理,后来在斯坦福读了 MBA,1980 年比尔盖茨则亲自将其招募麾下。虽然 Ballmer 有丰富的市场经验,但是在技术领域却是个小白。2000 年他代替比尔盖茨成为了 CEO,但作者提到在任职期间 Ballmer 不仅错过了移动计算(主要是智能手机和平板电脑),而且还发起了一系列失败的收购(包括针对 aQuantive 和诺基亚),Ballmer 在微软任职的十四年内微软的股票下跌了 30%多。 第三位是曾任苹果 CEO 的 John Sculley。可能有的人听说过“你是想卖一辈子糖水,还是想要改变世界”这句话,其实就是乔布斯当年招募 Sculley 来...