【DeepSeek开源昇腾基础设施】
DeepSeek开源昇腾基础设施TileLang、Ascend C与六组CUDA侧组件对应关系详解2026年9月30日DeepSeek面向华为昇腾平台开放了一组大模型训练与推理基础设施。相关内容覆盖TileLang昇腾支持、矩阵计算、专家并行通信、通用算子、注意力以及TopK等环节。把公开仓库逐个对照可以看到DeepSeek给一组已经在NVIDIA/CUDA平台使用的项目补上了昇腾实现范围远超几个零散算子。一、开源组件与CUDA侧项目如何对应昇腾侧组件或后端对应的CUDA侧项目或后端核心功能TileLang Ascend后端TileLang CUDA后端高性能算子DSL、代码生成、调度和同步DeepGEMM-AscendDeepGEMM CUDA版本GEMM、MoE等大模型核心计算内核DeepEP-AscendDeepEP CUDA版本MoE专家并行dispatch/combine通信TileKernels Ascend后端TileKernels NVIDIA后端MoE路由、量化、Engram、mHC、RoPE等算子FlashMLA Ascend内核FlashMLA CUDA内核MLA/DSA稠密及稀疏注意力DeepSelect Ascend内核DeepSelect CUDA内核DSA与采样使用的TopK这张表对应的是DeepSeek自己的项目。它不是NVIDIA官方CUDA Toolkit的替换清单。从功能领域看DeepGEMM-Ascend与cuBLAS、CUTLASS所覆盖的矩阵计算领域存在交集DeepEP-Ascend与NCCL、NVSHMEM参与的多设备通信领域存在交集。但DeepGEMM更聚焦大模型特定计算内核DeepEP更聚焦MoE专家并行因此不能直接写成“DeepGEMM-Ascend等于cuBLAS”或“DeepEP-Ascend等于NCCL”。二、各组件解决什么问题1. TileLang更高层的算子开发入口TileLang是面向高性能GPU、CPU和NPU内核开发的领域专用语言。开发者使用Python风格语法和面向Tile的编程模型描述计算再由编译器及不同硬件后端完成代码生成和调度。TileLang增加昇腾支持后同一套上层编程方式可以面向NVIDIA GPU与华为昇腾NPU。两个后端的实现并不相同平台差异主要由编译器和后端处理。2. DeepGEMM-Ascend大模型矩阵计算DeepGEMM-Ascend是DeepGEMM面向华为昇腾平台的移植。官方项目说明强调其与DeepGEMM的API兼容并覆盖BF16、FP8、FP4 GEMM以及相关模型计算场景。矩阵计算是大模型训练与推理的核心负载。保持上层接口相对一致有利于模型和框架在不同硬件平台之间复用调用逻辑但底层仍需针对昇腾架构重新进行数据布局和流水优化。3. DeepEP-AscendMoE专家并行通信MoE模型需要将Token分发给不同专家并在计算完成后合并结果。DeepEP-Ascend提供dispatch、combine等专家并行通信能力并基于昇腾侧通信基础设施实现。它补充的是多NPU协同环节。只有计算内核而缺少高效通信大规模MoE训练和推理仍可能受数据传输限制。4. TileKernels可复用高性能算子集合TileKernels使用TileLang编写覆盖MoE路由、量化、Engram、流形超连接、RoPE等操作。公开说明显示项目增加昇腾后端后可以在相同Python API下自动选择NVIDIA GPU或昇腾NPU实现。这种设计有助于将平台差异收敛到算子和编译后端而不是扩散到模型的每一层调用代码。5. FlashMLA注意力内核FlashMLA提供MLA/DSA相关的注意力实现。当前仓库同时包含CUDA与Ascend构建目标昇腾侧增加了相应的稠密或稀疏注意力内核。注意力通常是大模型推理的重要性能热点。把相关内核与矩阵计算、TopK和通信组件一同开放使优化对象从单个算子扩展到更完整的模型执行链路。6. DeepSelectTopK选择DeepSelect是面向DeepSeek Sparse Attention和采样场景的高性能TopK实现。该项目同时支持CUDA和昇腾平台但公开文档也列出了不同后端当前在数据类型、索引类型等方面的差异。所以看到“支持双平台”时还要继续查当前版本支持的数据类型、参数和硬件范围不能只看项目首页的一句话。三、TileLang与Ascend C是什么关系可以将二者理解为不同抽象层的开发方式模型与框架 ↓ TileLang / 高性能算子库 ↓ 原生代码生成 / Ascend C / PTO / AscendNPU IR等路径 ↓ CANN编译及运行时能力 ↓ 昇腾NPUAscend C面向昇腾算子编程允许开发者控制数据搬运、片上存储、计算流水和同步等底层过程。它能够提供较强的硬件控制能力也是高性能实现的重要基础。TileLang提供更高层的Tile编程模型。其昇腾生态可以通过原生代码生成、Ascend C、PTO或AscendNPU IR等不同路径连接硬件具体方式取决于硬件和项目版本。它的目标是降低常见高性能算子的表达和维护成本。因此TileLang与Ascend C不是竞争或替代关系。对开发者而言它们构成了“高层快速开发”和“底层精细优化”两种互补入口。Ascend C继续开放底层能力开发者就能保留手工精调的自由TileLang通过高级编译降低常见算子的开发成本。两条路线并行既照顾追求极致性能的专家也给快速验证和批量开发留下入口。从生态建设看开放不是附加项。只有底层能力足够透明、足够可用上层工具和社区创新才有生长空间。四、此次开源的工程意义降低跨平台维护成本部分项目保持同名API或统一Python接口使模型上层代码能够尽量稳定。跨平台迁移仍需要测试和调优但不必从完全不同的接口体系起步。提供真实的Ascend C优化样本开发者可以直接研究模型关键组件中的数据布局、流水调度、同步以及通信与计算重叠策略。这类真实负载的参考价值通常高于孤立的教学算子。让计算和通信共同优化DeepGEMM-Ascend、FlashMLA、DeepSelect和TileKernels覆盖计算热点DeepEP-Ascend处理专家并行通信。二者进入同一套开放技术栈后更有利于分析端到端瓶颈。扩大昇腾开源协作面代码开放后算子覆盖、正确性、编译适配、性能回归和框架集成都可以形成具体议题。开发者不再只能讨论“是否支持”而能进一步讨论“哪个Shape、哪种数据类型、哪个版本还需要优化”。五、应当如何看待与CUDA生态的关系CUDA生态包含编程模型、编译器、数学库、通信库、调试工具、框架适配和长期社区积累。几项开源组件不能直接等同于完整CUDA生态也不能据此得出“已经全面替代CUDA”的结论。这次发布带来的直接变化是DeepSeek的部分关键模型基础设施有了NVIDIA GPU与昇腾NPU两条实现路径。上层接口尽量对齐底层分别针对硬件优化。对开发者而言能读代码、跑测试、报问题比“对标”两个字有用得多。“一花独放不是春百花齐放春满园”昇腾生态建设也需要更多开发者、企业与开源项目共同参与才能让技术能力真正沉淀为可持续发展的产业生态。参考资料DeepSeek官方公告DeepSeek开源昇腾基础组件DeepSeek官方网站DeepSeek官方GitHubDeepSeek官方技术说明昇腾稀疏注意力前向内核解析Ascend C官方仓库TileLang官方仓库DeepGEMM-Ascend官方仓库DeepEP-Ascend官方仓库TileKernels官方仓库FlashMLA官方仓库DeepSelect官方仓库