推荐Lovart 中文版 - 一站式 AI 设计平台推荐一人企业Vibe Coding社区!热门AI设计工具新品免费AI编程工具 Trae - 智能编码助手Seedance2.5已上线新用户注册即领免费算力
UIED.CN今天偷学哪一招,朋友

DeepSeek 这次没开源模型:直接把昇腾底层“工具箱”整套放出来了

DeepSeek 这次没有发布新模型。

image.png

也没有再晒一张 Benchmark 排行榜。

而是直接把模型背后最底层的一套“工具箱”,搬到了华为昇腾平台。

本次开源内容包括:

TileLang

DeepGEMM Ascend

DeepEP Ascend

TileKernels

FlashMLA

以及:

DeepSelect。

它们分别覆盖:

高级算子编程;

矩阵计算;

多卡通信;

常用计算与访存算子;

稀疏注意力;

数据筛选。

简单理解:

过去 DeepSeek 为 NVIDIA 平台打造了一套高性能软件栈。

现在,它开始为昇腾平台补上一套相互对应的实现。

这件事的意义并不只是:

DeepSeek 模型可以在昇腾上运行。

而是开发者开始获得一整套可以用来:

写算子;

优化算子;

训练模型;

部署模型;

连接多卡;

处理长上下文

的开源基础能力。



一、AI 芯片真正难的,从来不只是硬件参数

聊 AI 算力时,大家最容易关注的是:

芯片有多少算力;

显存有多大;

带宽有多高;

一张卡能跑多少 Token。

但真正把一颗芯片放进大模型训练和推理系统后,很快就会发现:

硬件只是第一步。

一套成熟的 AI 计算平台,至少还需要:

编译器;

算子语言;

矩阵计算库;

注意力算子;

通信库;

量化算子;

性能分析与调试工具;

多卡调度能力。

可以把 AI 芯片理解成一座性能很强的工厂。

芯片决定:

厂房和机器的上限。

软件栈则决定:

开发者能不能方便地操作机器;

不同生产线能不能协作;

原材料能不能快速流转;

最终能不能接近理论产能。

没有成熟的软件生态,再高的理论算力,也未必能在真实模型中充分发挥。

DeepSeek 这次开源的,正是这座工厂里的:

语言、工具、流水线和运输系统。



二、TileLang:让开发者不用一直手搓底层算子

整套开源组件里,TileLang 是最基础的一层。

它是一种面向高性能 AI Kernel 开发的领域专用语言。

Kernel,也就是算子。

例如大模型中常见的:

矩阵乘法;

注意力;

量化;

归一化;

数据搬运;

专家路由

等操作,最终都需要被实现成能够在芯片上高效执行的算子。

传统方式往往要求开发者深入处理:

线程分配;

内存布局;

数据搬运;

流水线;

同步;

硬件指令;

对齐约束。

这些工作不仅开发难度高,而且代码很容易变得复杂。

TileLang 希望提供更加接近 Python 的高级编程方式。

开发者可以先描述:

数据应该怎样计算。

再由编译器继续处理:

底层代码生成;

调度;

同步;

SIMD / SIMT 执行;

硬件相关优化。

这并不意味着 TileLang 可以完全代替 CUDA、Ascend C 或 CANN。

更准确地说,它建立在底层计算平台之上,为开发者提供了一层更加简洁、可组合的高性能算子编程方式。



三、为什么 DeepSeek 先在 NVIDIA 平台验证 TileLang?

因为 NVIDIA 平台的软件生态已经比较成熟。

一个新的算子语言,首先需要证明两件事:

开发是不是更简单。

以及:

性能能不能真正打满。

如果只简化代码,却明显牺牲性能,它就很难进入大规模训练和推理。

如果性能很高,却仍然需要大量底层硬件知识,也无法真正降低开发门槛。

DeepSeek 表示,TileLang 路线已经在 NVIDIA 平台完成验证,并承担了 DeepSeek V4 系列训练中大量算子的实现。

也就是说,TileLang 并不只是一个实验室里的语言 Demo。

它已经进入了真实的大模型训练流程。

现在再把它扩展到昇腾平台,相当于把一套经过实际模型训练检验的方法,迁移到新的硬件后端。



四、昇腾版 TileLang 做了什么?

TileLang 昇腾后端主要面向:

Ascend 950。

它对底层 Ascend C 指令和昇腾运行环境进行封装,并提供:

原生代码生成;

自动调度与同步;

SIMD / SIMT 向量编程;

GEMM;

FlashAttention

等算子开发能力。

开发者不需要所有逻辑都从最底层开始编写。

可以继续使用 TileLang 的高层接口,再由后端生成适合昇腾平台的实现。

DeepSeek 还表示,目前训练中使用到的 TileLang 算子,在昇腾平台均已拥有对应的高性能实现。

这意味着同一种模型能力,可以通过相似的开发思路,分别落到 NVIDIA GPU 与华为昇腾 NPU。



五、DeepGEMM Ascend:负责大模型最核心的矩阵运算

如果说 TileLang 是语言和编译工具,那么:

DeepGEMM Ascend

就是专门负责矩阵运算的高性能计算库。

GEMM 全称:

General Matrix Multiplication。

即通用矩阵乘法。

大语言模型中的大量计算,最终都可以归结为矩阵运算。

例如:

线性层;

注意力投影;

MoE 专家计算;

量化推理;

部分索引与打分操作。

DeepGEMM Ascend 目前支持:

BF16。

FP8。

FP4。

MQA logits。

MegaMoE。

它还与原来的 DeepGEMM API 保持兼容。

也就是说,已经使用 DeepGEMM 工作流的开发者,在昇腾平台上不需要重新学习一套完全不同的 Python 调用方式。

底层硬件变了。

上层接口和开发流程尽量保持一致。

这对于模型从一种硬件迁移到另一种硬件,非常重要。



六、为什么矩阵库不能只依赖通用框架?

PyTorch 本身当然可以执行矩阵乘法。

但通用实现需要兼顾:

不同模型;

不同尺寸;

不同硬件;

不同使用场景。

而大模型的实际矩阵形状、精度、量化方式和数据布局非常特殊。

如果围绕 DeepSeek 模型的真实工作负载进行专项优化,就可以进一步处理:

分形矩阵布局;

地址计算;

对齐约束;

稀疏数据加载;

计算与数据搬运重叠;

MoE 专家计算。

DeepGEMM Ascend 大量使用了昇腾平台特有的优化方式,包括稀疏数据加载和基于协程的流水线。

官方仓库给出的目标非常直接:

在多种矩阵形状下接近硬件性能上限。



七、DeepEP Ascend:给几百张卡修一条“高速公路”

训练和运行大模型,并不是每张卡各算各的。

尤其是 MoE 模型。

一个 Token 进入模型后,可能会被路由到不同设备上的专家。

这就需要在大量芯片之间不断进行:

数据分发;

结果合并;

跨设备传输。

DeepEP Ascend 负责的就是这一层:

大规模分布式通信。

它提供 MoE 专家并行中的:

Dispatch;

Combine;

All-to-All

等核心操作。

同时还涉及:

流水线并行;

上下文并行;

数据并行;

远程内存访问

等通信原语。

可以把它理解成多卡系统中的高速公路。

算子负责在每张卡上完成计算。

DeepEP 则负责:

让数据快速送到正确的卡;

再把不同设备上的结果高效收回来。

如果通信太慢,再强的单卡算力也会被等待时间拖住。



八、双方还在推进 Ascend 950 的 128 卡超节点

DeepSeek 表示,在面向昇腾平台的开发过程中,华为团队提供了大量技术支持。

双方共同推进:

基于昇腾 950 的 128 卡超节点方案。

并围绕:

计算;

通信;

内存;

多卡协同

进行深度优化。

DeepEP Ascend 的公开测试已经覆盖 EP8、EP16、EP32、EP64 和 EP128 等规模。

在部分 EP32 以内的测试中,持续通信带宽可以达到物理有效带宽上限的约 90%~95%。

不过官方仓库也明确说明:

更大 EP 规模;

部分 Combine 场景;

流水线并行;

远程内存;

部分集合通信

仍在继续优化。

所以这更适合被理解为:

一套已经能够运行、并持续快速完善的首批开源基础设施。

而不是整个昇腾多卡软件栈已经彻底完成。



九、TileKernels:把高频小算子整理成通用工具箱

大模型中并不只有巨大的矩阵乘法。

还有大量看起来比较“小”,但调用频率非常高的操作。

例如:

MoE 路由;

量化与反量化;

RoPE;

随机数;

RMSNorm;

Engram Gate;

HyperConnection;

数据变换;

访存处理。

如果这些小操作效率不高,整个模型仍然会不断产生额外开销。

TileKernels 就像一套通用算子工具箱。

它使用 TileLang 编写,并同时支持:

NVIDIA CUDA 后端;

华为昇腾后端。

同一套 Python API 可以根据运行环境自动选择对应硬件实现。

这意味着开发者不必为每一种硬件,单独维护完全不同的上层调用代码。

目前公开的许多算子,性能已经接近对应硬件的计算或内存带宽限制。



十、FlashMLA:专门加速长上下文注意力

大模型进入百万 Token 上下文以后,注意力计算会迅速变得昂贵。

DeepSeek 使用的 MLA:

Multi-head Latent Attention

可以通过压缩 KV Cache,降低长上下文推理的内存压力。

而 FlashMLA 则提供对应的高性能注意力算子。

本次发布后,FlashMLA 已经同时支持:

NVIDIA GPU;

华为昇腾 NPU。

它包含:

稀疏注意力 Prefill;

稀疏注意力 Decoding;

FP8 / FP4 KV Cache;

Attention 前后操作融合;

部分稠密注意力算子。

在 Ascend 950 的公开测试中,稀疏注意力 Prefill 最高达到:

410 TFlops。

约为理论硬件峰值的:

95%。

Decoding 最高达到:

360 TFlops。

约为理论峰值的:

83%。

这类算子会直接影响:

长上下文首字延迟;

连续生成速度;

KV Cache 成本;

多轮 Agent 任务效率。



十一、DeepSelect:让模型更快选出真正重要的数据

DeepSelect 负责的是:

TopK。

TopK 的作用是从大量候选项中,快速找出数值最大的前 K 个结果。

这项能力会出现在:

稀疏注意力;

Token 采样;

Lightning Indexer;

专家路由;

候选筛选

等场景。

例如 DeepSeek Sparse Attention 不需要每一次都关注完整上下文。

系统需要先从大量历史 Token 中,找出最相关的一小部分。

这时 TopK 的速度就会直接影响整个注意力流程。

DeepSelect 针对这些特定工作负载重新设计了高性能实现。

目前同时支持:

CUDA;

昇腾。

在官方覆盖的工作负载中,相比原生 torch.topk,可以获得:

约 2~20 倍加速。

它看起来只是一个数据筛选组件。

但在高频调用场景里,这种小算子往往会成为真实系统的性能瓶颈。



十二、六个项目,可以这样理解

如果觉得项目名字太多,可以用一个比较通俗的方式理解。


TileLang
→ 编写高性能算子的语言和编译工具

DeepGEMM Ascend
→ 负责矩阵计算的发动机

DeepEP Ascend
→ 负责多卡数据运输的高速公路

TileKernels
→ 日常高频算子的通用工具箱

FlashMLA
→ 长上下文注意力加速器

DeepSelect
→ 从海量数据中快速挑出关键内容

这六部分组合起来,才构成一套相对完整的模型训练和推理底层能力。

DeepSeek 这次不是单独开源一个算子。

而是在尝试建立:

从高级语言到计算、通信和注意力的完整昇腾开发链路。



十三、“与 NVIDIA 版本一一对应”为什么重要?

这次官方特别强调:

昇腾组件与此前面向 NVIDIA 平台的开源组件一一对应。

最直接的价值是:

减少迁移成本。

例如:

DeepGEMM Ascend 兼容 DeepGEMM API。

DeepEP Ascend 的公开 Buffer API 与 NVIDIA 版对齐。

TileKernels 可以使用相同 Python API,并自动选择运行后端。

开发者可以继续沿用相似的:

调用方式;

模型代码;

测试流程;

性能分析思路。

不需要因为底层硬件发生变化,就从零重新搭建完整软件系统。

这并不意味着两种硬件的底层实现完全一样。

NVIDIA GPU 和昇腾 NPU 在:

指令;

内存;

通信;

矩阵布局;

编译工具

方面都有明显区别。

所谓“一一对应”,更准确的含义是:

能力和上层接口尽量对应,底层则针对不同硬件分别优化。



十四、这也是一种 Model-System Co-Design

现在模型能力越来越强以后,单独训练一个更大的模型已经不够。

模型结构和系统软件之间需要一起设计。

例如 DeepSeek V4 使用:

MoE;

稀疏注意力;

FP8 / FP4 KV Cache;

Lightning Indexer;

HyperConnection。

这些模型结构都会提出新的底层需求。

MoE 需要更快的专家通信。

稀疏注意力需要更快的 TopK 和注意力 Kernel。

低精度计算需要 FP8、FP4 矩阵库。

长上下文需要更低的 KV Cache 和更高效的 Prefill、Decoding。

整个过程变成:


模型提出新的计算需求
↓
系统团队开发新算子和通信库
↓
硬件执行效率提高
↓
模型可以继续扩大训练和推理规模
↓
新的模型结构再次推动软件升级

所以 DeepSeek 开源的不是几件孤立工具。

而是其模型与计算系统协同设计的一部分。



十五、为什么这件事可能比再开源一个模型更重要?

开源模型权重,可以让更多人部署和微调模型。

但模型想真正运行起来,还需要底层软件支持。

如果每一家国产或新兴 AI 芯片厂商,都要从零建设:

编译器;

算子库;

通信库;

注意力实现;

调试工具,

整体生态成长会非常慢。

TileLang 的价值,在于尝试建立一种更加通用的高性能算子开发方式。

同一套语言,目前已经支持或正在覆盖:

NVIDIA CUDA;

AMD ROCm;

Apple Metal;

华为昇腾;

以及其他 AI 加速器后端。

如果这条路线继续成熟,未来一个新硬件平台想接入大模型生态时,就不一定所有算子都必须完全手写。

可以先接入统一的编程模型,再针对芯片特性完成性能优化。

这会降低新 AI 硬件建设软件生态的门槛。



十六、哪些开发者最值得关注?

大模型训练团队

可以关注 DeepGEMM、DeepEP 和 TileKernels,降低昇腾平台上的计算与通信适配成本。

推理平台开发者

FlashMLA、DeepSelect 和低精度 GEMM,会直接影响长上下文、吞吐量和推理成本。

AI 芯片与编译器团队

TileLang 提供了一个多后端高性能算子语言的参考路径。

云服务和算力平台

更完整的软件栈,有利于将昇腾集群封装成更加成熟的大模型训练和推理服务。

算子研究者

这些仓库不仅可以直接使用,还能作为分析昇腾性能优化、内存布局、通信机制和流水线设计的参考实现。



十七、目前仍然有哪些限制?

这次开源很重要,但也不能理解成:

所有昇腾设备已经可以一键运行完整 DeepSeek V4。

目前公开仓库的主要验证环境集中在:

Ascend 950。

CANN 9.2。

torch_npu。

部分组件仍处于初始发布或持续开发阶段。

例如:

DeepEP Ascend 的部分 Pipeline、Engram 和 Bucket 能力仍然属于实验状态。

部分集合通信尚在完善。

FlashMLA 新版本还调整了 KV Cache 格式,并移除了对部分旧模型和 NVIDIA Hopper 路径的支持,旧项目升级前需要关注兼容性。

不同组件的:

硬件要求;

CANN 版本;

模型版本;

数据类型;

支持范围

也并不完全一样。

开发者在正式接入生产环境前,仍然需要逐个查看仓库说明并完成真实工作负载测试。



结语

DeepSeek 这次开源的不是新模型,而是模型背后的一套昇腾基础工具链。

从:

TileLang 高级算子语言。

到:

DeepGEMM 矩阵计算。

DeepEP 多卡通信。

TileKernels 常用算子。

FlashMLA 稀疏注意力。

DeepSelect 高性能筛选。

它基本覆盖了大模型训练和推理中非常关键的几个底层环节。

更重要的是,这些能力与此前的 NVIDIA 路径尽量保持对应。

上层接口尽可能一致。

底层再分别发挥不同硬件的特性。

对于昇腾来说,这意味着生态建设不再只是:

“模型能不能跑起来。”

而是继续走向:

“开发者能不能更容易写出接近硬件上限的代码。”

AI 芯片竞争到最后,拼的不只是算力数字。

还要看:

编程是否足够简单;

算子是否足够丰富;

通信是否足够高效;

模型迁移是否足够顺畅;

社区能否持续参与优化。

DeepSeek 这次把整套组件开出来,相当于不只交出一辆车。

还把:

发动机;

变速箱;

道路系统;

维修工具;

以及部分设计图纸

一起放进了开源社区。

相关链接


TileLang
https://github.com/tile-ai/tilelang

TileLang 官方文档
https://tilelang.com/

DeepGEMM Ascend
https://github.com/deepseek-ai/DeepGEMM-Ascend

DeepEP Ascend
https://github.com/deepseek-ai/DeepEP-Ascend

TileKernels
https://github.com/deepseek-ai/TileKernels

FlashMLA
https://github.com/deepseek-ai/FlashMLA

DeepSelect
https://github.com/deepseek-ai/DeepSelect

DeepSeek GitHub
https://github.com/deepseek-ai

昇腾社区
https://www.hiascend.com/


标签

评论 0

最新评论

登录后发布评论并参与互动。

暂无评论,欢迎抢沙发。

推荐阅读

查看更多