# MindSpeed_overlap **Repository Path**: EX_mitsu/MindSpeed_overlap ## Basic Information - **Project Name**: MindSpeed_overlap - **Description**: 昇腾大模型加速库 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 457 - **Created**: 2025-04-21 - **Last Updated**: 2025-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Badge Documentation

# 简介 MindSpeed Core 是针对华为[昇腾设备](https://www.hiascend.com/)的大模型加速库。 大模型训练是一种非常复杂的过程,涉及到许多技术和挑战,其中大模型训练需要大量的显存资源是一个难题,对计算卡提出了不小的挑战。 为了在单个计算卡显存资源不足时,可以通过多张计算卡进行计算,业界出现了类似 Megatron、DeepSpeed 等第三方大模型加速库,对模型、输入数据等进行切分并分配到不同的计算卡上,最后再通过集合通信对结果进行汇总。 昇腾提供 MindSpeed Core 加速库,使能客户大模型业务快速迁移至昇腾设备,并且支持昇腾专有算法,确保开箱可用。 此外在 MindSpeed Core 加速库的基础之上也提供了大语言模型、多模态模型以及强化学习模型套件加速库: - 📝 大语言模型库: [MindSpeed LLM](https://gitee.com/ascend/MindSpeed-LLM) - 🖼️ 多模态模型库: [MindSpeed MM](https://gitee.com/ascend/MindSpeed-MM) - 🖥️ 强化学习加速库: [MindSpeed RL](https://gitee.com/ascend/MindSpeed-RL) --- # 📣 Latest News - [May 21, 2025]: 🚀 MindSpeed Core 支持Mcore 0.12.1版本。 > 注: 当前版本仅支持local后端的transformer实现,需要用户配置参数`--transformer-impl local`。te后端实现正在筹备中,敬请期待。 --- # 安装 MindSpeed Core拉取源码后使用pip命令行安装`pip install -e MindSpeed`,具体请参考 [部署文档](./docs/user-guide/installation.md) 安装 MindSpeed Core 指定分支及其依赖软件。 获取并切换 Megatron-LM 版本至 core_v0.12.1 版本,可参考: ```shell git clone https://github.com/NVIDIA/Megatron-LM.git cd Megatron-LM git checkout core_v0.12.1 ``` 当前版本配套表如下: | 软件 | 版本 | |:------------:|:------------| | MindSpeed Core分支 | master | | Mcore版本 | 0.12.0 | | CANN版本 | 8.1.RC1 | | PyTorch | 2.1.0、2.6.0 | | torch_npu版本 | 7.0.0 | | Python版本 | Python3.9.x、Python3.10.x | # 快速上手 使用MindSpeed Core仅须增加一行代码,即可在昇腾训练设备上运行Megatron-LM,并进一步参考[特性介绍](#特性介绍) 使能MindSpeed的各项加速特性。 以 GPT 模型为例:在 Megatron-LM 目录下修改`pretrain_gpt.py`文件,在`import torch`下新增一行:`import mindspeed.megatron_adaptor`,即如下修改: ```Python import torch import mindspeed.megatron_adaptor # 新增代码行 from functools import partial from contextlib import nullcontext import inspect ``` 具体操作可以参考[快速上手指导](./docs/user-guide/getting_started.md)。 --- # 加速特性分级说明 MindSpeed Core 加速特性分为三个层级,用户可根据实际需求选择通过设置启动脚本中的 `--optimization-level {层级}` 参数来自定义开启的优化层级。该参数支持以下配置:
层级 层级名称 介绍
0 基础功能兼容 提供Megatron-LM框架对NPU的基本功能适配。
1 亲和性增强🔥 在L0基础上使能部分融合算子与昇腾亲和计算改写。
2 加速特性使能🔥🔥 默认值。在L0、L1基础上开启更丰富的加速特性,加速特性通常通过具体参数使能,可参考“特性介绍”章节。
# 特性介绍 MindSpeed 特性由七大模块组成,分别为:megetron特性支持、并行策略特性、内存优化特性、亲和计算特性、通信优化特性、关键场景特性以及多模态特性。其中【Released】表示是否商用发布,原型特性为非商用发布。 - 特性的介绍中说明了对应特性的应用场景及使用说明。一般而言,在脚本中加入相关参数即可轻松使用对应特性。🛰️ - MindSpeed 加速特性仅支持mcore,这也是megatron在v0.6.0版本后主推分支,也是当前版本的默认分支。🛰️ - 当前大模型训练主要使用bf16数据类型,以下特性若无特殊声明原则上兼容fp16, 如使用其它数据类型遇到问题可提交issue, 我们会快速响应。🛰️ ## Megatron特性支持
特性名称 介绍 Released
Megatron 数据并行 link
Megatron 张量并行 link
Megatron 流水并行 link
Megatron 虚拟流水并行 link
Megatron 分布式优化器 link
Megatron 序列并行 link
Megatron 异步DDP link
Megatron 权重更新通信隐藏 link
Megatron 重计算 link
## 并行策略特性
特性名称 介绍 Released
Ascend Ulysses 长序列并行 link
Ascend Ring Attention 长序列并行 link
Ascend Double Ring Attention 长序列并行 link
Ascend 混合长序列并行 link
Ascend 自定义空操作层 link
## 内存优化特性
特性名称 介绍 Released
Ascend 激活函数重计算 link
Ascend 重计算流水线独立调度 link
Ascend Mask归一 link
Ascend BF16 参数副本复用 link
Ascend swap_attention link
Ascend Norm重计算 link
Ascend Hccl Buffer 自适应 link
Ascend Swap Optimizer link
## 亲和计算特性
特性名称 介绍 Released
Ascend rms_norm 融合算子 link
Ascend swiglu 融合算子 link
Ascend rotary_embedding 融合算子 link
Ascend flash attention link
Ascend npu_matmul_add_fp32 梯度累加融合算子 link
Ascend 计算通信并行优化 link
Ascend MC2(存在已知问题⚠️) link
Ascend fusion_attention_v2 link
## 通信优化特性
特性名称 介绍 Released
Ascend Gloo 存档落盘优化 link
Ascend 高维张量并行 link
## Mcore MoE特性
特性名称 介绍 Released
Ascend Megatron MoE GMM link
Ascend Megatron MoE Allgather Dispatcher 性能优化 link
Ascend Megatron MoE Alltoall Dispatcher 性能优化 link
Ascend Megatron MoE TP拓展EP link
Ascend 共享专家 link
## 关键场景特性
特性名称 介绍 Released
Ascend EOD Reset训练场景 link
Ascend alibi link
## 多模态特性
特性名称 介绍 Released
Ascend fused ema adamw优化器 link
Ascend PP支持动态形状 link
Ascend PP支持多参数传递 link
Ascend PP支持多参数传递和动态形状 link
Ascend 非对齐线性层 link
Ascend 非对齐Ulysses长序列并行 link
## 其它特性
特性名称 介绍 Released
Ascend TFLOPS计算 link
Ascend Auto Settings 并行策略自动搜索系统 link
Ascend 确定性计算 link
## 自定义算子 昇腾训练自定义算子统一由torch_npu提供API,以下API预计2025年q4起不维护,请优先使用torch_npu提供的自定义算子,如有新需求或问题可提issue反馈,我们会尽快回复。 部分自定义算子设置为公开接口,公开接口设置说明请参照 MindSpeed 安全声明中的[公开接口声明](SECURITYNOTE.md#公开接口声明),具体对外接口细节参照以下算子对应的手册链接。
自定义算子名称 介绍 Released
npu_dropout_add_layer_norm link
npu_rotary_position_embedding link
fusion_attention link
rms_norm link
swiglu link
npu_mm_all_reduce_add_rms_norm link
npu_mm_all_reduce_add_rms_norm_ link
npu_gmm link
npu_grouped_mat_mul_all_reduce link
npu_fused_moe_token_permute link
npu_fused_moe_token_unpermute link
npu_ring_attention_update link
npu_matmul_add_fp32 link
npu_groupmatmul_add_fp32 link
npu_apply_fused_ema_adamw link
lcal_coc link
ffn link
npu_all_to_all_all_gather_bmm link
npu_bmm_reduce_scatter_all_to_all link
quant_gmm link
npu_apply_fused_adamw_v2 link
--- # 分支维护策略 🛠️ MindSpeed 版本分支的维护阶段如下: | **状态** | **时间** | **说明** | | ------------------- | -------- |----------------------------------------------------------------------| | 计划 🕐 | 1-3 个月 | 计划特性 | | 开发 🕔 | 3 个月 | 开发特性 | | 维护 🕚 | 6-12 个月| 合入所有已解决的问题并发布版本,针对不同的MindSpeed 版本采取不同的维护策略,常规版本和长期支持版本维护周期分别为6个月和12个月 | | 无维护 🕛 | 0-3 个月 | 合入所有已解决的问题,无专职维护人员,无版本发布 | | 生命周期终止(EOL)🚫 | N/A | 分支不再接受任何修改 | 🛠️ MindSpeed 版本维护策略: | **MindSpeed版本** | **维护策略** | **当前状态** | **发布时间** | **后续状态** | **EOL日期** | |---------------------|-----------|----------|------------|----------------|-----------| | 2.0.0_core_r0.8.0 | 常规版本 | 维护 | 2025/03/30 | 预计2025/9/30起无维护 | | | 1.0.0_core_r0.7.0 | 常规版本 | 维护 | 2024/12/30 | 预计2025/6/30起无维护 | | | 1.0.0_core_r0.6.0 | 常规版本 | 维护 | 2024/12/30 | 预计2025/6/30起无维护 | | | 1.0.RC3_core_r0.7.0 | 常规版本 | 停止维护 | 2024/09/30 | 2025/3/30起无维护 | | | 1.0.RC3_core_r0.6.0 | 常规版本 | 停止维护 | 2024/09/30 | 2025/3/30起无维护 | | | 1.0.RC2 | 常规版本 | 停止维护 | 2024/06/30 | 2024/12/30起无维护 | | | 1.0.RC1 | 常规版本 | 停止维护 | 2024/03/30 | 2024/9/30起无维护 | | --- # 常见问题 | 现象 | 介绍 | |------------------------------------|---------------------------------------| | Data helpers 数据预处理出错 ❗ | [link](docs/faq/data_helpers.md) | | Torch extensions 编译卡住 ❗ | [link](docs/faq/torch_extensions.md) | | megatron0.7.0版本长稳测试出现grad norm为nan ❗| [link](docs/faq/megatron070_grad_norm_nan.md) | | Gloo建链失败Gloo connectFullMesh failed with ... ❗| [link](docs/features/hccl-replace-gloo.md) | # 技术文章 - [MindSpeed 加速百万级超长序列大模型训练](https://mp.weixin.qq.com/s/8q4MxCkosLn0yoneuxzynw) 🚀🚀 - [MindSpeed 加速万亿MoE大模型训练](https://mp.weixin.qq.com/s/HQRzYzSUNNMonv5d1AP0OQ) 🚀🚀 - [大模型训练内存优化难?MindSpeed 帮你来支招](https://mp.weixin.qq.com/s/lwjVgM67hwsgtOKp06zYPg) 🚀🚀 # 安全声明 ⚠️ [MindSpeed 安全声明](SECURITYNOTE.md) --- # 致谢 🔎 MindSpeed-Core 由华为公司的下列部门联合贡献 : 华为公司: - 昇腾计算产品部 - 计算算法部 - 计算软件平台部 - 计算技术开发部 - 公共开发部:NAIE - 网络技术实验室 此外,MindSpeed-Core 感谢以下团队对项目的贡献: - 微信基础架构中心 - 科大讯飞AI工程院内核技术部 感谢来自社区的每一个PR,欢迎贡献 MindSpeed-Core!