news 2026/5/9 13:28:16

CANN/torchtitan-npu 自定义Context Parallel特性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/torchtitan-npu 自定义Context Parallel特性

自定义Context Parallel特性

【免费下载链接】torchtitan-npuAscend Extension for torchtitan项目地址: https://gitcode.com/cann/torchtitan-npu

在分布式训练任务中,上下文并行(Context Parallelism, CP)是突破单卡内存瓶颈、支持超长序列训练的核心技术。在基于 NPU 硬件生态推进 torchtitan 框架适配时,现有技术方案暴露出显著的局限性:

  1. PyTorch 原生 CP 设计强绑定于标准的 SDPA 算子,仅提供 RingAttention 或原生 AllGatherKV 的特定实现,无法支持采用复杂稀疏注意力机制的模型如 DeepSeek-V3.2 模型的DSA。
  2. 框架需要允许开发者灵活扩展新的 CP 范式,如 UlyssesCP。

实现原理

torchtitan_npu在torchtitan_npu/patches/distributed/custom_context_parallel.py对原生CP context 进行替换,从而使能自定义的CP context,增强CP的可扩展性。目前已提供如下两个自定义的CP context:

SDPA Ulysses CP

定义在torchtitan_npu/distributed/context_parallel/ulysses_cp.py,为常用的SDPA实现Ulysses风格的CP。通过自定义Context Parallel Context,我们在基于torch_npu提供的融合算子的Attention计算前后插入All-to-All通信算子,将数据从"序列并行分布"转换为"多头维度分布",使单计算节点获得完整上下文。

DSA CP

定义在torchtitan_npu/distributed/context_parallel/dsa_cp.py,为DeepSeek Sparse Attention提供AllGatherKV风格的CP。本项目在遵循torch原生CP设计逻辑的基础上,通过自定义Context Parallel Context,将注意力部分的forward函数进行替换,对KV相关激活做CP域的AllGather,以此确保注意力计算在CP场景下的正确性。

关于DSA CP的更多原理介绍,参考技术文档。

配置选项

在训练任务的 TOML 配置文件(例如torchtitan_npu/models/deepseek_v32/train_configs/deepseek_v32_671b_debug.toml,或实际启动训练时--job.config_file所指向的路径)中,找到对应的[parallelism]节,并添加以下配置以启用 Custom CP:

配置项类型默认值说明
context_parallel_degreeint1Context并行度
enable_custom_context_parallelboolfalse是否启用自定义CP

注意enable_custom_context_parallel目前仅对 DeepSeek-V3 和 DeepSeek-V3.2 的并行化实现生效,其他模型(如 Llama3)的并行化实现暂不支持。

CP类型由框架根据模型及转换器配置自动选择,无需手动指定:

  • DeepSeek-V3:启用自定义CP后自动使用 Ulysses CP。
  • DeepSeek-V3.2:当model.converters中包含npu_dsa时,自动使用 DSA CP。

配置示例:SDPA Ulysses CP(DeepSeek-V3)

首先在配置文件中使能本代码仓的自定义配置,随后在[parallelism]节中添加以下配置:

[job] custom_config_module = "torchtitan_npu.config.custom_config" # 使能本代码仓的自定义配置 [parallelism] context_parallel_degree = 2 enable_custom_context_parallel = true

配置示例:DSA Context Parallel(DeepSeek-V3.2)

[job] custom_config_module = "torchtitan_npu.config.custom_config" # 使能本代码仓的自定义配置 [model] converters = ["npu_dsa", "npu_rms_norm", "npu_permute", "npu_gmm", "npu_rope"] # 需包含 npu_dsa 以启用 DSA CP [parallelism] context_parallel_degree = 2 enable_custom_context_parallel = true

【免费下载链接】torchtitan-npuAscend Extension for torchtitan项目地址: https://gitcode.com/cann/torchtitan-npu

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

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

CANN / ascend-boost-comm 基础设施FAQ

1. 请问提交PR后出现ascend-cla/no红色标签,如何处理? 【免费下载链接】ascend-boost-comm 算子公共平台,南向对接不同组织开发的算子库,北向支撑不同加速库应用,实现M x N算子能力复用 项目地址: https://gitcode.c…

作者头像 李华
网站建设 2026/5/9 13:26:32

CANN HCOMM通信通道参数定义

HcclChannelDesc 【免费下载链接】hcomm HCOMM(Huawei Communication)是HCCL的通信基础库,提供通信域以及通信资源的管理能力。 项目地址: https://gitcode.com/cann/hcomm 功能说明 定义通信通道参数。 定义原型 typedef struct {…

作者头像 李华
网站建设 2026/5/9 13:25:41

基于GNN的优化算法智能选择:从问题表征到自动化决策

1. 项目概述:当算法选择遇上“选择困难症”在算法工程师的日常里,面对一个具体的优化问题,比如调度排班、路径规划或者参数调优,我们手头往往有一堆“兵器”:遗传算法、模拟退火、粒子群、蚁群……每个算法都有自己的“…

作者头像 李华
网站建设 2026/5/9 13:21:30

HCCL rank table文件加载失败故障诊断

rank table文件加载失败 【免费下载链接】hccl 集合通信库(Huawei Collective Communication Library,简称HCCL)是基于昇腾AI处理器的高性能集合通信库,为计算集群提供高性能、高可靠的通信方案 项目地址: https://gitcode.com/…

作者头像 李华
网站建设 2026/5/9 13:18:50

华为CANN/ops-cv广播关系详解

broadcast关系 【免费下载链接】ops-cv 本项目是CANN提供的图像处理、目标检测相关的算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-cv 广播概念 broadcast(广播)描述了算子在运算期间如何处理不同形状的…

作者头像 李华
网站建设 2026/5/9 13:18:50

云边端协同空间智能架构,构筑智慧港口低时延、高可靠实时算力底座

云边端协同空间智能架构,构筑智慧港口低时延、高可靠实时算力底座副标题:边缘端实时重构 云端全局调度,满足港区毫秒级态势感知与决策响应一、技术应用背景与行业算力瓶颈智慧港口全域数字化、智能化升级进程中,全域空间感知、三…

作者头像 李华