news 2026/5/9 15:07:03

CANNBot LongCat-Flash AFD通信计算重叠案例

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANNBot LongCat-Flash AFD通信计算重叠案例

案例:LongCat-Flash AFD 通信计算 overlap

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

概述

这个案例解决的是 Attention-FFN Disaggregation 之后跨节点 Send/Recv 暴露在关键路径上的问题。做法是在分离部署后让通信流和主计算流 overlap,最适合 AFD 场景下的低时延优化;这个案例的主要实现形态来自模型设计与文档编排。

背景与问题

在非分离场景里,Attention 和 FFN 在同卡上通过多流加控核获得收益;但做了 AFD 之后,MoE 模块被剥离到另一侧节点,新的瓶颈就变成了跨节点的 Send/Recv。如果这部分通信完全串行,Attention 侧会在等待 FFN 返回时出现明显空洞。

因此,AFD 的多流重点从“本地双计算路径并行”转变成了“通信与本地计算 overlap”。

核心思路

  • Attention 节点保留主计算流执行本地 attention 路径。
  • 额外的流承担跨节点 Send/Recv。
  • FFN 节点接收后执行 router / dispatch / GMM / combine,再把结果发回。
  • 主流只在真正需要消费对端结果时等待。

执行编排图

关键代码

AFD 路径里,Attention 侧的主要代码形态是先发送,再异步等待对端返回:

if self.enable_afd: dist.send(hidden_states_norm, dst=(self.global_rank - self.ffn_world_size), tag=self.send_tag) shortcut_mlp_output = torch.empty_like(hidden_states) dist.recv(shortcut_mlp_output, src=(self.global_rank - self.ffn_world_size), tag=self.recv_tag)

在普通路径中,这个位置原本是本地 MoE:

if not self.enable_afd: shortcut_mlp_output = self.mlp(hidden_states_norm, is_prefill, cur_topk_list=cur_topk_list)

所以 AFD 的本质是把“本地 shortcut MoE”替换为“远端 FFN 服务 + 通信 overlap”。

复用参考

  • 代表实现:LongCat-Flash AFD。
  • 相似实现:其他 PD/分离式部署场景都能借鉴“通信单独成流”的思路。
  • 特化实现:LongCat-Flash 会继续结合权重预取和控核一起调优。

注意事项

  • 这个案例的重点在整体编排,不是某一段孤立代码。
  • 如果 FFN 侧本身成为瓶颈,通信 overlap 也无法完全消除拖尾。
  • 集群网络、Send/Recv 实现和 SDMA 行为会显著影响收益。

关键词

AFDdist.senddist.recvoverlapSend/Recv通信计算并行

【免费下载链接】cannbot-skillsCANNBot 是面向 CANN 开发的用于提升开发效率的系列智能体,本仓库为其提供可复用的 Skills 模块。项目地址: https://gitcode.com/cann/cannbot-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 15:03:30

CANN/pypto累乘函数prod

# pypto.prod 【免费下载链接】pypto PyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。 项目地址: https://gitcode.com/cann/pypto 产品支持情况 产品是否支持Ascend 950PR/Ascend 950DT√Atlas A3 训…

作者头像 李华
网站建设 2026/5/9 15:00:31

CANN/cann-recipes-infer Qwen3-MoE模型NPU推理

Qwen3-MoE模型在NPU实现低时延推理 【免费下载链接】cann-recipes-infer 本项目针对LLM与多模态模型推理业务中的典型模型、加速算法,提供基于CANN平台的优化样例 项目地址: https://gitcode.com/cann/cann-recipes-infer 概述 Qwen3-MoE模型是2025年开源的…

作者头像 李华
网站建设 2026/5/9 14:58:19

Git switch:专为安全分支切换设计的现代命令

1. 为什么今天还要专门讲git switch?——一个被低估的日常高频操作Git 分支切换,听起来像呼吸一样自然,但恰恰是这种“太熟了”的操作,最容易在真实项目里翻车。我带过六七个不同规模的开发团队,从十人初创到百人产研中…

作者头像 李华
网站建设 2026/5/9 14:49:53

AI赋能DAB变换器:基于XGBoost与PSO实现全开关ZVS的混合调制策略

1. 项目概述:当AI遇见电力电子,如何让DAB变换器“全开关软着陆”?在数据中心、电动汽车充电桩或者光伏储能系统里,你总能找到一个默默无闻但至关重要的“能量搬运工”——隔离型DC-DC变换器。它的任务是把电能从一个电压等级&…

作者头像 李华
网站建设 2026/5/9 14:49:53

CANN/torchtitan-npu快速上手指南

快速上手 【免费下载链接】torchtitan-npu Ascend Extension for torchtitan 项目地址: https://gitcode.com/cann/torchtitan-npu 参考 软件安装 准备环境后,按照如下步骤操作,在 NPU 平台上运行 torchtitan-npu。 数据准备 下载 Tokenizer &a…

作者头像 李华
网站建设 2026/5/9 14:49:52

大文件如何分享给别人?盘点2025最适合传输大文件的方法

无论是把公司电脑上的项目文件带回家继续赶工,还是在新旧两台电脑间迁移资料,我们总会遇到“电脑之间互传文件”的需求。 文件小的时候还好说,一旦文件变大、变多,或者需要频繁传输,很多人就开始头疼了。 其实&#…

作者头像 李华