Workflow
人工智能软硬件协同设计
icon
搜索文档
SA-华为与 DeepSeek 的共生关系-The Huawei-DeepSeek Symbiosis
2026-10-22 22:33
华为与DeepSeek共生关系研究纪要关键要点 一、涉及公司与行业 - 纪要涉及华为(昇腾Ascend芯片、CANN软件栈、盘古模型)与DeepSeek(前沿模型、开源代码库)两家公司,以及英伟达(H100、GB300、Blackwell)、AMD(MI300X)、A100等竞品对比[1][3][4] - 行业覆盖AI芯片硬件、编译器与算子软件栈、超节点互连与专家并行通信、投机解码推理优化、内存卸载等AI基础设施领域[9][67][95] - 纪要核心判断:到2028年甚至2027年,DeepSeek很可能主要使用华为技术栈,尤其在内外压力推动构建全自主中国生态的背景下[7][8] 二、核心观点与论据 (一)共生关系的本质:互补短板 - 双方单凭自身都无法独立完成:华为拥有盘古模型但缺乏能证明其芯片胜任前沿模型训练或推理的顶级实验室;DeepSeek拥有前沿模型却无法直接采购所需算力[3][4] - 华为提供硬件平台与原生软件栈,DeepSeek带来真实工作负载与工程能力,9月30日DeepSeek代码仓库发布对昇腾的支持正是这场协同的产物,协作通过算子编写语言串联[3][4][5] - DeepSeek向华为提供模型权重,支持首日即优化的版本发布,如DeepSeek V4和V4.1[79] (二)昇腾950PR/DT芯片架构与SKU分档 - 950PR/DT已出现多种核心数量、HBM堆叠层数及缓存大小各不相同的衍生版本,部分可能仅为虚拟化/模拟规格或仅供测试使用[12][13] - 华为同时对算力裸片和内存进行分档筛选(binning),将体质较弱的内存与性能较弱的算力单元搭配,而非像英伟达那样仅对算力裸片分级[12][13] - 950DT SKU覆盖36/32/28/8核等多种配置,频率1800MHz或1650MHz,内存从144GiB至16GiB不等,L2缓存128MiB或112MiB,DDR速率40/35/31/27/10/7不等[14] - 950PR SKU覆盖36/32/28/8核,频率1800MHz或1650MHz,内存128/112/84/24GiB,L2缓存128/112/16MiB,DDR速率16/14/12/2[14] - 910B也有910B1、910B2、910B3、910B4等多个变体,分档并非新鲜事[14][15] - 微基准测试使用Ascend 950PR_9579,配备28个Cube核心和128GiB HBM,实测功耗203.3W、温度56℃、HBM使用5242/131072MB[15][16] - 950PR专为预填充(prefill)和推荐场景设计,相比950DT内存带宽和核心规格都更低[32] (三)NPU内部结构与AICPU - 每颗950PR配备可变数量的Linx816 AArch64 ELF AICPU,MIDR编号表明这些核心很可能与麒麟9000S/9010中的中核相同[26] - 该SKU共配置7个AICPU核心,其中6个可见、5个参与实际执行,除设备控制外还提供CPU算子支持如KV元数据,适合D2H传输开销占主导的短任务[27][31] - 在DSA中,调度步骤读取序列长度并分配索引器任务,Cube/Vector核心计算INT8索引器得分并筛选前2,048个索引,这些规划、索引选择和gather步骤在vLLM-ascend实现中均在AICPU上运行[28][29] - 由于算力有限,AICPU只适合开销占主导的短任务以及数据在NPU上产生并消费的工作负载[31] (四)算力与内存带宽微基准测试 - 测试基于昇腾原生torch.matmul(解析为aclnnMatmul_MatMulV3Common_MatMulV3),对比多个开源模型的1,055个BF16 GEMM形状[32][33] - 华为最优算子达到理论上限的99.7%,表明DeepSeek通过DeepGEMM实现的99%+利用率并非最大化利用率的唯一途径[32][33] - 优势集中在计算密集型任务:昇腾算力拐点之下矩阵形状的达成/可达利用率中位数为41.5%,H100为46.8%[35][36] - 英伟达部分结果受功耗限制:700W上限下中位功耗约690-698W,SM频率中位数1335-1470MHz低于1830MHz最高值;华为功耗约599-600W,频率1500-1550MHz低于1650MHz参考值[35][36] - 昇腾MXU设计将矩阵操作数暂存于专用L0A/L0B缓冲、累加值保存在L0C,使数据搬移、计算与结果处理重叠并行,增大的L0C带来更灵活分块与数据复用[37] - 950PR绝对性能仍落后,处于A100与MI300X之间[37][38] - 内存带宽方面,小消息尺寸下950PR有效带宽和带宽利用率超过H100,大消息尺寸下带宽利用率几乎与H100持平[40][41] - 曲线凹陷源于昇腾切换复制方式至启动开销更大的Vector核TensorMove算子,超大规模复制时该开销占比变小、带宽回升[44] - 高FLOPs利用率和带宽利用率不一定转化为高MFU/MBU,训练尤其FSDP需集合通信、检查点保存和数据搬运,难以完全重叠[45] - 基准测试中"芯片"是人为定义,多裸片可封装拼接,每瓦性能或TCO才是最合理对比基准,中国电力成本更便宜,昇腾单位TCO性能将在后续文章分析[46] - 华为硬件可能落后A100超过约5年,但软件已处于前沿水平[47] (五)DeepSeek开源与软件栈进展 - 获得昇腾支持的6个代码库为TileLang、DeepGEMM、DeepEP、TileKernels、FlashMLA、DeepSelect,截至撰稿仅TileLang可用[48][50] - DeepSeek要求CANN 9.2.0(撰稿后发布)及C++20编译器,而CANN 9.2.0-beta.2未提供C++20编译器,HDK将于10月15日发布[49][50] - 此前DeepSeek 2025年开源周部分代码库发布时仅支持Nvidia[49][50] - 华为已能良好执行相关运算,共生关系意义在于让应用其余部分及支持工作更高效、更可复用[50][51] (六)软硬件协同设计的具体体现 - 华为架构已影响DeepSeek软件的数据组织方式:早期FlashMLA KV缓存将量化值与缩放因子分区域存放,昇腾上取回Token需分别传输;新实现将两者放在一起,减少内存传输引擎(MTE)传输请求次数[52][53] - Ascend 950后端已合并至TileLang主代码库,而非仅以独立华为适配器存在,补充原生编译、调度、同步及运行时集成[55] - TileLang让Ascend算子编写更简便,但开发者仍需决定计算逻辑、分块大小和数据存放位置,编译器负责Cube核心、Vector核心与数据传输间的大部分协同[56][57] - TileLang在某些场景可匹敌甚至超越CANN,最优实现随计算规模变化,该测试为缓存预热状态下的简易基准[57][58] - AutoSchedule利用数据依赖与预估执行时间规划重叠操作,决定片上内存缓冲槽数量以预加载后续数据,在950PR小规模下可将单项操作执行时间缩短多达40%[61][62][64] - 编译器插入同步机制确保操作等待所需数据,消除不必要等待,检查条件分支避免预设未执行分支已完成,减轻程序员同步负担[66] (七)DeepEP与超节点通信 - 华为已与英伟达一同将大型纵向扩展AI系统商业化,昇腾超节点从910 CloudMatrix384拓展到950 SuperPod,实现大范围专家并行(wide-EP)横向扩展[67][68] - 9月30日发布公布950DT超节点上通过URMA运行的EP16 dispatch/combine基准[67][68] - 华为dispatch为三个串行算子(前处理/URMA/后处理),GB300为一次融合调用;华为后处理含接收完成环节及按专家扩展操作,GB300结果未含扩展部分[70] - DeepEP-Ascend是DeepEP V2.5移植版,保留相同Python API但底层改用URMA和HCCL;2025年7月华为昇腾团队曾提议纳入deepseek-ai被维护者拒绝,现改为在DeepSeek自己组织下发布[71] - 昇腾Cube与Vector执行路径分离为通信与计算重叠创造机会但非免费:专家计算也需向量处理和数据搬运,通信争用共享内存带宽,隐藏通信量与不拖慢并行计算间存在权衡[72][73] - 华为Kimi K3方案明确限制向量单元使用为并发任务预留算力,在专用CCU与基于向量单元的通信间权衡[74][75] - DeepEP-Ascend文档指出combine处理与URMA通信争夺HBM资源的冲突,华为计划通过固件改进缓解,体现软硬件协同设计:模型暴露瓶颈、实现针对性调整、平台开发优先级跟进[75][76] (八)管理层表态与生态差距收窄 - 5月未经验证的DeepSeek投资者会议纪要中梁文锋表示:软件生态差距终将消除,但硬件面临两个劣势——需四张华为加速卡才能匹敌一张英伟达加速卡,华为硬件推向市场进度落后约两年[77] - 4个月后生态差距确实有所缩小,同一纪要提到TileLang及协助华为构建完善生态[77][78] - 黄仁勋在Dwarkesh播客谈芯片出口管制担忧,从目前软件成果及950PR测试看,华为已有工作加上DeepSeek助力,生态差距确实正在收窄[115] (九)DSv4.1 Flash优化与性能剖析 - 昇腾累加器设计迫使注意力计算采用不同方式:Cube的L0C缓冲无法就地重新缩放累加输出,传回L0C需高昂单位矩阵乘法;DeepSeek将运行中输出累加器保留在Vector UB,仅在需要时从L0C转移部分和;Hopper累加器保存在寄存器,Blackwell支持张量内存与寄存器间加载存储规避该限制[80] - 华为公布32颗芯片昇腾950DT部署下DeepSeek-V4.1-Flash单rank及主机线程性能剖析,6月曾分析DeepSeek V4 Pro类似数据[84] - 执行顺序为40个目标模型层、目标LM Head、3个DSpark起草模块、起草LM Head、5轮采样;主计算运行在Stream 19,起草模型运行在Stream 173[87][88] - DSv4 Pro Trace中的计算通信融合V2 MC²算子此次以V3版本再现,故43次专家分发中每步仅4次AI CPU调起的HCCL操作,对应目标与起草词表头的hcom_allGather和hcom_alltoallv:聚合隐藏状态、执行LM Head的GEMM、交换logits[87][88] - 起草模块仅运行一次生成基础logits,马尔可夫头通过采样与嵌入反馈建模Token依赖,无需为每个候选Token重跑Transformer模块,步骤尾部从MoE与注意力转为小型投影与采样串行链[89][90] - 投机解码为无损方法,通过预测候选Token并单次传递验证分摊权重加载,DSpark候选生成速度远快于验证步骤[95] - DSv4.1 Flash是首个采用Engram的DeepSeek模型,此前Qwen和美团Longcat已使用;Engram以Token ID为输入使取数可异步并与第0层计算重叠,卸载到DRAM相较HBM无性能损失,但卸载到PCIe 4.0 SSD会导致性能下降[97][98] - 稳态窗口内Stream 19占用88.8%窗口但仅贡献72.6%设备时间总和,因其他stream重叠;中部MIX_AIV和AI_VECTOR_CORE区带含dispatch/combine及量化操作[100] - 昇腾通过MIX_AIC、MIX_AIV、AI_CORE、AI_VECTOR_CORE暴露可分别调度的cube与vector路径,混合类型仍涉及超出单一物理单元的工作,名称不意味着把kernel经过时间换算成仅cube或仅vector的实测利用率[101][102] - 一阶测算场景下Cube吞吐翻倍而其他设备工作不变可带来1.32倍阶跃提升,该测算保持实测流重叠与空闲时间不变,属合成推演而非新芯片预测[104][105] - 量化融合存在优化空间,吸引力在于反复出现的生产者-消费者边界及其在兼顾融合通信的Vector耗时中占比较大[106] (十)生态差距与普适性问题 - 合作模式可能对DeepSeek极为有效但未必让昇腾对其他开发者同样好用[107] - 对DeepSeek而言,构建编译器、维护算子、调试厂商专有行为会分散模型研究与产品开发精力,尽管可能是暂时的[107] - 其他用户硬件配置与DeepSeek不一致时可能出问题,大部分优化针对超节点;截至vLLM-Ascend_0.26.0rc1,昇腾在x86主机上仍存诸多问题:x86主机不支持DeepGEMM、依赖的memfabric_hybrid含硬编码ARM头文件导致启动受阻、非ARM CPU跳过CPU绑定、缺乏NPU+x86的CI且部分配方需补丁[108][112] (十一)结论与产业意义 - 华为在部分基础算子上已有极高效实现,DeepSeek带来模型特定工作负载与工程能力拓展平台边界,华为架构与原生栈又深刻影响实现构建方式,沉淀的编译器与内核工作意义不仅在当下性能更在于为下一代模型与部署节省工程投入[109][110] - 更广阔机遇在于成为中国AI产业的工程乘数:其他服务DeepSeek的运营商可复用算子内核与部署实践,其他实验室可依托共享编译器能力开发新模型,若使用者反哺修复与优化则收益复利,每个新团队起步时最棘手的底层工作已铺设完毕[111][113] 三、其他重要但可能被忽略的内容 - 点追逐测试每次启动读取16KiB整数数据,18个block以内延迟保持约134ns,56个block时升至182ns,64个block时跳升至391ns,与超过56个Vector核心后启用第二波核心相符[16][17] - 通过在每个Cube和Vector核心分别运行标量指针追踪探针、记录128MiB链上匹配地址加载耗时,单元格颜色代表两核心地址访问特征平均绝对差,呈现与解析裸片吻合的两个组[19][20] - 通过在另一核心运行内存流量或纯寄存器负载同时对某Vector核心指针追逐测时,额外降速揭示资源共享,印证{0,2,4}和{1,3,5}等分组;Cube/Vector混合启动识别每个子系统含一个Cube和两个Vector[22][23][24] - 950PR_9579实测npu-smi信息:npu-smi 25.7.rc1.6版本、Health OK、203.3W、56℃、HBM使用5242/131072MB、无运行进程[15][16] - AICPU指令集支持包括fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve、svei8mm、svebf16、i8mm、bf16等[26][27] - 950DT与950PR各SKU虚拟化选项包括4,8,16,32或7,14,28或2,4,6等不同组合[14]