背景 在 KCD Hangzhou 的活动中有幸跟百炼的于文渊大佬做了交流,得知在模型同步可以考虑 p2p 分发的方式。于是做了一个简单的调研,发现 Kimi 开源的推理引擎 Mooncake 也提供了类似的方法,就花时间阅读了下源码,共涉及 Mooncake 和 checkpoint-engine 两个项目。 实话说,本人对 AI 硬件与内核联动相关领域并不熟悉,因此在阅读源码过程中,有很多专业性的技术了解甚少,理解起来十分吃力。好在如今有 Copilot 协助,才得以完成代码阅读。在这个过程中也发现一个很有意思的阅读源码的方法: 在 VSCode 中让 Github Copilot 进行辅助阅读源码,针对不明白的点,及时提问 等所有细节都整理清楚后,将与 Copilot 的聊天内容导入到 NotebookLM 中 在 NotebookLM 中,再次对内容进行梳理,NotebookLM 也会主动引导提问 对 NotebookLM 每轮返回的结果进行评估,如果符合预期则保存为 note 在 NotebookLM 中,将所有保存的 note 作为 source,然后通过「Slide Deck」生成 Slide 接下来,我将使用生成的 Slide,来分析大模型 p2p 分发的逻辑。 核⼼挑战:⼤模型时代下的权重更新瓶颈 优化一:提供硬件直达,消除中介 通过「内存注册」,提供硬件可直接操作的物理地址 优化二:零拷贝与内核旁路,告别开销 利用 RDMA 和 NVLink & CUDA IPC 技术,实现内存和硬件之间的直接流动,完全绕过 CPU 和操作系统内核。 优化三:利用 P2P 以及流水异步化机制,压榨并行 这里需要补充一点,在 checkpoint-engine 中 P2P 只在 h2d 阶段获取原始权重时才会用到,其余权重同步逻辑均由 NCCL 库来实现。 ...