SemiAnalysis华为:软件差距缩小
- SemiAnalysis认为华为提供硬件与原生软件栈,DeepSeek提供模型、工作负载及工程支持;DeepSeek可能在2028年甚至2027年主要使用华为平台。
- 在1055种BF16矩阵形状测试中,华为原生内核最高达到理论上限的99.7%;DeepSeek的贡献进一步落在编译器、内核和整机协同。
- Ascend后端已并入TileLang主仓库,AutoSchedule对单个算子最高缩短40%执行时间;报告认为双方协作正在缩小软件生态差距。
硬件与模型工程相互补足
SemiAnalysis将合作的出发点概括为互补:华为有硬件和原生软件栈,需要前沿模型工作负载证明其训练与推理能力;DeepSeek有模型,却无法买到所需计算资源。9月30日为六个仓库加入Ascend支持,是这种合作的具体成果。
报告预计,在建设国产生态的内外压力下,DeepSeek可能在2028年、甚至2027年主要使用华为技术栈。作者认为,华为已有较成熟的生态基础,DeepSeek工程师正在其上继续建设。
950PR样本:计算与内存同时分档
报告观察到,950PR/DT不同型号的核心数、HBM堆叠高度和缓存容量存在差异,部分可能只是虚拟、模拟或测试配置。作者将这与芯片及HBM在缺陷、功耗和性能上的达标情况联系起来:华为把计算和内存都分成不同档位,并进行配对。
本次微基准使用Ascend 950PR_9579,包含28个Cube核心与128 GiB HBM。该型号AICPU有7个被配置、6个可见、5个实际执行;报告认为,AICPU适合开销占主导、数据在NPU内部产生并消费的短任务。
基础算子效率已经很高
950PR面向预填充和推荐业务,核心数量与内存带宽低于950DT。报告用华为原生torch.matmul路径测试1055种BF16矩阵形状,最佳算子内核达到理论上限的99.7%。作者明确指出,这组结果来自华为已有实现,不能归功于DeepSeek。
| 测试口径 | 报告结果 | 原文的适用边界 |
|---|---|---|
| BF16矩阵运算最佳利用率 | 99.7% | 华为原生内核;1055种形状 |
| 低于计算拐点的中位达成比例 | 950PR为41.5%;H100为46.8% | 相对于屋顶模型可达性能 |
| 绝对矩阵运算性能 | 介于A100与MI300X之间 | 950PR样本的绝对吞吐 |
| HBM带宽测试 | 小缓冲消息表现较强,大消息带宽利用率接近H100 | 有效带宽与利用率各按消息大小比较 |
报告把优势集中在计算受限工作负载,并记录两侧测试都受到实际功耗和时钟状态影响。作者同时强调,高浮点运算利用率或高内存带宽利用率,并不必然带来高模型利用率:训练还需要通信、检查点和数据搬运,而且这些工作未必能充分重叠。
TileLang让优化更容易复用
报告认为,共生关系进一步体现在让模型应用及其配套工作更高效、更易复用。Ascend 950后端并入TileLang主仓库,提供原生编译、调度、同步和运行时集成;开发者选择计算、分块大小和数据存放位置,编译器负责协调Cube、Vector及数据传输。
| 工程环节 | 原报告描述的变化 | 作用 |
|---|---|---|
| FlashMLA的KV缓存 | 把量化值与缩放因子放在一起 | 减少取一个token时的数据传输请求 |
| AutoSchedule | 依据依赖和预计执行时间安排重叠与缓冲槽 | 950PR上单个算子执行时间最高减少40% |
| 同步 | 插入必要等待并删除冗余等待,同时检查条件分支 | 减少程序员手动管理同步的工作 |
作者把TileLang与CANN、Triton-ascend的比较限定为热缓存下的简单微基准:在部分情况可以追平或超过CANN,最合适的实现会随规模变化。
超节点通信与计算需要一起安排
DeepEP-Ascend沿用DeepEP V2.5的Python接口,底层调用URMA和HCCL。华为已从CloudMatrix384延伸到950 SuperPod,在跨机架紧耦合系统中拓展专家并行。报告介绍了950DT超节点的EP16分发与合并测试。
报告指出,两套平台测试的算子边界不同:华为分发包含前处理、URMA和后处理三个顺序算子,GB300是一体化调用;华为后处理还含按专家展开的工作。昇腾分开的Cube与Vector路径有利于重叠,但专家计算、通信和数据搬运会争用资源。
DeepEP-Ascend文档还指出,合并处理与URMA通信争用HBM,华为计划通过固件改进缓解。作者将其描述为协同设计的实际过程:模型暴露瓶颈,实现作出调整,剩余问题继续推动平台开发。
V4.1 Flash:从内核延伸到执行全程
DeepSeek向华为提供权重,支持V4和V4.1首日优化发布。针对昇腾累加器限制,DeepSeek将运行中的输出累加值保留在Vector缓冲区,需要缩放和累加时再从L0C传递部分结果。报告据此展示硬件结构怎样塑造模型实现。
| 运行轨迹或情景 | 原报告记录 | 范围与条件 |
|---|---|---|
| 部署 | 32片Ascend 950DT | V4.1 Flash的一个rank与主机线程轨迹 |
| 步骤顺序 | 40个目标模型层,随后语言头、3个草稿块及5轮采样 | 主计算Stream 19,草稿计算Stream 173 |
| 主流占用 | 窗口的88.8%;累计设备时间的72.6% | 其他流存在重叠,两个分母不同 |
| Cube吞吐翻倍情景 | 步骤速度提高至1.32倍 | 其他设备工作、流重叠与空闲保持不变;不是新芯片预测 |
草稿块运行一次产生基础logits,后续Markov头利用采样和嵌入反馈处理token依赖,不会为每个提议重跑Transformer块。报告把推测解码描述为用一次目标模型验证来分摊权重加载成本的方法。
V4.1 Flash使用Engram。由于输入是token ID,取数可以异步进行并与第0层计算重叠。报告称,其分析中卸载到DRAM相对于HBM没有性能损失,而卸载到PCIe 4.0 SSD会降低性能。
生态差距缩小,其他部署仍有适配工作
SemiAnalysis认为,华为已有基础算子能力,DeepSeek进一步帮助缩小软件生态差距。但报告也指出,合作对DeepSeek很有效,并不代表昇腾对所有用户都同样易用;维护编译器、内核和厂商特定行为,暂时还会占用DeepSeek的模型研究与产品开发资源。
很多优化围绕超节点展开。报告以vLLM-Ascend 0.26.0rc1为例,列出x86主机上的问题:DeepGEMM尚不支持、依赖中写死ARM头文件可能阻塞启动、非ARM CPU跳过绑核,以及缺少NPU与x86的持续集成测试、部分配方需要补丁。
同主题站内报告
- 华为提供硬件与软件栈,DeepSeek补充模型工作负载和工程。
- 作者预计DeepSeek可能于2028甚至2027年主要采用华为平台。
- 华为原生BF16内核最高利用率达99.7%,绝对性能仍有差距。
- TileLang整合编译、调度及同步,单算子时间最高减少40%。
- 超节点通信计算重叠仍需协调共享资源。
- V4.1 Flash的执行轨迹显示多流重叠与草稿验证协作。
- 软件生态差距缩小,超节点之外仍有适配工作。
