deepseek 适配了 华为升腾 是不是 用了类似Megatron-LM deepSpeed框架的??
- DeepSeek 自己有一个自研训练框架 HAI‑LLM,确实类似 Megatron/DeepSpeed 那种“大模型专用训练框架”;
- 适配华为昇腾时,主要用的是昇腾那套 MindSpeed‑LLM + Megatron‑LM + CANN,而不是把 HAI‑LLM 整个搬过去。
下面分开说清楚。
内容由ai生成
1. DeepSeek 自己确实有类似 Megatron 的训练框架:HAI‑LLM
公开资料里写得很明白:DeepSeek LLM / V2 / V3 等模型,用的都是自研框架HAI‑LLM(Highly Adaptive & Integrated LLM Training),这个框架做的事情跟 Megatron / DeepSpeed 很像:
- 支持DP / TP / PP / 序列并行 / 1F1B 流水线等多种并行
- 用ZeRO‑1 / ZeRO‑3做优化器状态/参数分片
- 做计算/通信重叠、算子融合、Flash Attention等优化
- V3 还在 MoE 上搞了DualPipe 等专用调度算法
从功能定位上看,HAI‑LLM 就是:
“DeepSeek 版的 Megatron + DeepSpeed 混合体”,只用在自家模型训练上,目前没整体开源。
2. 那适配华为昇腾,是不是把 HAI‑LLM 整个搬过去了?
不是。
2.1 昇腾那边已有的“类似框架”栈
华为在昇腾上有一套比较完整的大模型训练/推理栈,里面就包含类似 Megatron 的东西:
- CANN:类似 CUDA 的底层计算架构
- MindSpeed:昇腾的大模型加速库,并行优化、算子融合、通信优化等
- MindSpeed‑LLM:基于 Megatron‑LM 核心架构 + MindSpeed 适配层,做 LLM 训练套件
- MindIE:大模型推理引擎(含 vLLM‑Ascend 等)
其中MindSpeed‑LLM的典型结构是: - 上层:Megatron‑LM 的 TP/PP/DP 训练逻辑
- 中层:MindSpeed 做“猴子补丁式”的昇腾适配和优化
- 底层:CANN + torch_npu + HCCL 通信
也就是说,昇腾已经有一套“Megatron‑LM + MindSpeed” 的组合,本质上就相当于“昇腾版 Megatron 框架”。
2.2 DeepSeek 适配昇腾,用的是哪套?
从华为官方和社区文档看,DeepSeek 在昇腾上训练/推理,走的就是 MindSpeed‑LLM + Megatron‑LM 这条路:
- 华为 ModelArts 的预置镜像里,专门有MindSpeed‑LLM 镜像,说明里写明:
深度融合 MindSpeed 加速库与 Megatron‑LM 核心架构,为合作伙伴提供端到端大模型训练方案。
- 有文章直接给出在昇腾上用MindSpeed‑LLM + Megatron‑LM 跑 DeepSeek‑V4‑Flash的完整步骤:
- 安装 CANN / torch_npu / MindSpeed
- 克隆 Megatron‑LM(core_v0.12.1)
- 用 MindSpeed‑LLM 的脚本做 DeepSeek‑V4‑Flash 的权重转换、训练、推理
- 昇腾社区还有专门的DeepSeek 模型专区,把 DeepSeek‑V3/V4/R1 等模型做成 OM/MindIR 权重 + MindIE/vLLM‑Ascend 推理方案。
这些说明: - 训练侧:DeepSeek 在昇腾上用的是MindSpeed‑LLM(Megatron‑LM 核心)+ HAI‑LLM 里积累的并行/通信策略,而不是把 HAI‑LLM 整个框架替换掉;
- 推理侧:用的是MindIE / vLLM‑Ascend,也不是 HAI‑LLM 自己的推理引擎。
3. 所以,“适配昇腾”具体做了什么?
可以粗略分成三层:
- 底层算子/运行时迁移
- 从 CUDA 迁移到 CANN,重写了 200+ 核心算子;
- 用 torch_npu 把 PyTorch 接口桥接到昇腾 NPU。
- 框架层:把 HAI‑LLM 的“经验”搬到 MindSpeed‑LLM 上
- 把 HAI‑LLM 里验证过的并行策略(PP/EP/DP/ZeRO 等)和通信/调度优化,在 MindSpeed‑LLM + Megatron‑LM 上重新实现和调优;
- 利用 MindSpeed 的图算融合、HCCL 通信优化、激活重计算等昇腾专属优化。
- 模型/权重适配
- 把 DeepSeek‑V3/V4 等模型权重转换为昇腾友好的格式(BF16/FP8、OM/MindIR 等),并配合 MindIE/vLLM‑Ascend 做推理优化。
4. 一句话总结
- 是:DeepSeek 确实有自研的类似 Megatron/DeepSpeed 的训练框架 HAI‑LLM,支撑自家大模型训练。
- 但:适配华为昇腾时,并不是“把 HAI‑LLM 整个搬到昇腾”,而是:
- 底层用 CANN / torch_npu 替换 CUDA;
- 框架层用昇腾已有的MindSpeed‑LLM + Megatron‑LM组合,把 HAI‑LLM 的并行/调度策略迁移过去;
- 推理层用 MindIE / vLLM‑Ascend,而不是 HAI‑LLM 自带的推理引擎。
所以更准确的说法是:
DeepSeek 适配昇腾,是在昇腾已有的“MindSpeed‑LLM + Megatron‑LM + CANN”框架栈上,把自家 HAI‑LLM 的经验和模型特性搬过去,而不是从零另起一个类似框架。
TileLang(俗称铁狼)
国产GPU/NPU算子专用编程语言,北大杨智团队研发,DeepSeek-V3.2主力底层算子开发语言,对标CUDA、替代Triton。
一、基础信息
- 研发方:北京大学计算机杨智副教授团队(TileAI社区),2025年1月GitHub开源,开源项目
tile-ai/tilelang。 - 定位:AI高性能算子DSL领域专用语言,专门写GPU/昇腾/寒武纪/AMD NPU底层内核(GEMM、FlashAttention、量化算子等大模型核心算子)。
- 关键落地:DeepSeek V3.2全链路改用TileLang编写算子,替换OpenAI主导的Triton;华为昇腾Day0首日原生适配、算能TPU、AMD全平台同步兼容。
二、核心特点
1. 语法:类Python,上手简单
Python风格简洁语法,不用手写CUDA繁杂线程、内存调度;
FlashAttention:原生CUDA≈500行 → TileLang仅70~80行,代码缩减80%+。
# 极简示例风格@tilelang.jitdefgemm(A:T.Tensor,B:T.Tensor,C:T.Tensor):# Tile分块计算,编译器自动调度硬件2. 跨芯片一次编写、多硬件编译
一套代码可编译:
- NVIDIA CUDA(A100/H100)
- 华为昇腾AscendC
- AMD ROCm、寒武纪、壁仞国产NPU
底层基于TVM编译器架构,数据流与硬件调度解耦,编译器自动做硬件优化。
3. 性能对标CUDA,优于Triton
- H100实测:同等算子普遍优于Triton,部分算子提速2~5倍,性能持平原生CUDA手写;
- 自动Tile分块、软件流水线、内存排布优化,兼顾开发效率与硬件极限性能。
三、DeepSeek为什么选用TileLang
- 降本提速:自研算子开发周期大幅缩短,大模型训练/推理延迟下降、API算力成本降低;
- 国产算力适配刚需:DeepSeek落地国产昇腾等芯片,TileLang统一屏蔽各硬件编程差异;
- 摆脱Triton生态依赖:Triton绑定CUDA生态,TileLang自主可控、全国产算力友好。
四、安装与使用
# pip安装pipinstalltilelang# PyTorch/Paddle生态均有适配包pipinstalltilelang-paddle接入PyTorch/Paddle即可自定义高性能算子,无缝替换原生CUDA/Triton算子。
五、对标三强对比
| 语言 | 开发主体 | 生态 | 跨硬件 | 适用场景 |
|---|---|---|---|---|
| CUDA | 英伟达 | N卡独占 | 差 | N卡极致性能、开发成本极高 |
| Triton | OpenAI/NVIDIA | 优先N卡 | 一般 | 主流AI快速算子、国产芯片适配差 |
| TileLang | 北大TileAI | 全芯片兼容 | 极强 | 国产N+N卡通用、大模型算子首选 |
内容由ai生成
