提供昇腾优化的训练业务自定义算子实现
MindSpeed-Ops
简介
提供昇腾优化的训练业务自定义算子实现
版本说明
| 软件 | 版本 |
|---|---|
| MindSpeed Ops分支 | master |
| CANN版本 | 9.0.0 |
| PyTorch | 2.7.1 |
| triton-ascend | 3.2.1 |
| Python版本 | Python3.10.x |
安装
安装依赖的软件
在安装MindSpeed-Ops之前,请参考版本配套表,安装配套的昇腾软件栈,软件列表如下:
| 依赖软件 | 软件安装指南 |
|---|---|
| 昇腾NPU驱动 | 《驱动固件安装指南》 |
| 昇腾NPU固件 | |
| Toolkit(开发套件) | 《CANN 软件安装指南》 |
| Kernel(算子包) | |
| NNAL(Ascend Transformer Boost加速库) | |
| PyTorch | 《Ascend Extension for PyTorch 配置与安装》 |
| torch_npu插件 | |
| apex |
获取MindSpeed-Ops源码并安装
git clone https://gitcode.com/Ascend/MindSpeed-Ops.git
cd MindSpeed-Ops
# 如果原先有mindspeed_ops安装,请先卸载再重新安装
pip install -e . --extra-index-url=https://triton-ascend.osinfra.cn/pypi/simple
支持算子清单
| 算子名称 | 算子描述 | Released | triton | tilelang |
|---|---|---|---|---|
Add |
加法算子 | ❌ | √ | ❌ |
FusedCrossEntropyLoss |
自定义融合算子 | ❌ | √ | ❌ |
RmsnormWithoutWeight |
自定义融合算子 | ❌ | √ | ❌ |
Sinkhorn |
Sinkhorn算法 | ❌ | √ | ❌ |
Causal_conv1d |
causal_conv1d算子 | ❌ | √ | ❌ |
Wy_fast |
wy_fast算子 | ❌ | √ | ❌ |
RmsNormGated |
RmsNormGated算子 | ❌ | √ | ❌ |
chunk_kda_bwd_wy_dqkg_fused |
KDA chunk backward 融合算子 | ❌ | √ | ❌ |
分支维护策略
🛠️ MindSpeed-Ops 版本分支的维护阶段如下:
| 状态 | 时间 | 说明 |
|---|---|---|
| 计划 🕐 | 1-3 个月 | 计划特性 |
| 开发 🕔 | 3 个月 | 开发特性 |
| 维护 🕚 | 6-12 个月 | 合入所有已解决的问题并发布版本,针对不同的MindSpeed-Ops 版本采取不同的维护策略,常规版本和长期支持版本维护周期分别为6个月和12个月 |
| 无维护 🕛 | 0-3 个月 | 合入所有已解决的问题,无专职维护人员,无版本发布 |
| 生命周期终止(EOL)🚫 | N/A | 分支不再接受任何修改 |
算子开发及合入说明
1、算子合入说明请参考ops.md
2、算子开发可参考使用skills工具:
- triton相关:
triton算子迁移nputriton在npu上优化 - tilelang相关:
tilelang算子迁移npu
常见问题
| 现象 | 介绍 |
|---|---|
| module 'triton.language' has no attribute 'extract_slice' | 问题介绍 |
免责声明
致MindSpeed-Ops使用者
- MindSpeed-Ops提供的所有内容仅供您用于非商业目的。
- 对于MindSpeed-Ops测试用例以及示例文件中所涉及的各模型和数据集,平台仅用于功能测试,华为不提供任何模型权重和数据集,如您使用这些数据进行训练,请您特别注意应遵守对应模型和数据集的License,如您因使用这些模型和数据集而产生侵权纠纷,华为不承担任何责任。
- 如您在使用MindSpeed-Ops过程中,发现任何问题(包括但不限于功能问题、合规问题),请在GitCode提交issue,我们将及时审视并解决。
License声明
Ascend MindSpeed-Ops中涉及的算子,如目录下存在License的,以该License为准。如目录下不存在License的,以Apache 2.0许可证许可,对应许可证文本可查阅Ascend MindSpeed-Ops根目录。