学习资料
2026 夏季 InfiniTensor 训练营 CUDA 编程 6:《寒武纪软件栈 NeuWare 和 BANG 异构计算平台 1》

7 月 31 日,2026 夏季 InfiniTensor 训练营 CUDA 编程方向第六课《寒武纪软件栈 NeuWare 和 BANG 异构计算平台 1》开讲。
前置课程《内存模型与规约优化》重点讲解并行规约中的原子操作、GPU 内存层级架构;《分块与不规则访存》解析 CUDA GEMM 矩阵乘法极致优化与 Bank Conflict 解决方案,涵盖共享内存机制、动态并行等核心技术。

本节课由寒武纪团队带来 NeuWare 软件栈的层次结构及各层协作机制,以及 BANG 异构计算平台配套的工具链(编译、调试、性能分析等)的深度解析。为后续 BANG C++ 算子开发、并行编程模型及性能优化课程打下理论基础。

NeuWare 软件栈全貌解析

软件栈分层架构

1.应用层:端云一体支持(互联网/金融/交通等)

2.框架层

  • 开源框架支持:PyTorch、TensorFlow 等
  • 寒武纪扩展组件

3.计算库层

  • NN 算子库(CNL)、CV 算子库、通信库(CNCL)。
  • 配套工具:拓扑查看工具、图形化调优工具(Perf)。

4.BANG 异构计算平台

  • 核心工具包 CNToolkit:编译器、运行时、编解码、性能调试工具。
  • 算子库与通信库均基于此工具链开发。

5.驱动层

  • 多平台驱动(端云一体)、硬件抽象整合。
  • 云端部署工具:质量检测、验证套件。

开发者定位指南

  • 算法工程师:聚焦开源 AI 框架层。
  • 框架定制开发者:需掌握计算库与工具使用。
  • 算子/底层开发者:需精通 BANG 编程语言、调优工具及汇编级优化。

多视角下的软件栈技术细节

硬件与基础软件协同

1.硬件技术:微架构指令集、SoC 设计、板卡/集群/超节点技术。

2.基础软件:自研编译器、汇编器、二进制格式、链接器、BANGC/Triton 语言。

3.关键抽象层

  • 驱动层:屏蔽多款硬件差异。
  • BANG 平台层:提供异构并行编程模型(类比 CUDA)。

开发者视角的软件栈

工具链视角

SDK 演进与编译范式转移

1.历史演进:从定制化库 → SDK 1.0 基础软件 → 多层 IR 生态。

2.多层 IR 体系

  • 框架层 IR(HLO/Triton IR)→ MLU VM IR → MELISSA 汇编。
  • 各层各司其职,兼顾生态泛化性与性能。

3.编译范式

  • MagicMind 闭源引擎 → MLIR 开源生态对接。
  • Triton/Linalg → MRO → MLVM → PTX 类汇编(与 CNCC 共用后端)。

AI 框架与开源生态

主流框架适配

1.PyTorch

  • 非侵入式接入(Private Key 注入),兼容动态图/分布式/ Compile。

2.TensorFlow

  • Cambricon-TF 包,设备名替换即可。
  • 支持 XLA 自动编译、MagicMind 部署转换。

训练生态

1.训练生态:Megatron、DeepSpeed、FA v2、Lightning 等原生支持。

  • 透传机制:高层框架 → Transformer Engine/Apex → CNL/CNCL/Extra 库。

2.强化学习/ vLLM

  • 热点算子集成至 torch_mlu_ops
  • vLLM 适配:支持多机多卡、MRGraph(对标 CUDA Graph)、KV Cache INT8。

3.Triton 生态

  • 原生支持 TL 原语,性能达 BANG C 极致优化的 80%。
  • 开发周期从 10 天缩短至 1-2 天(配合 Skill 工具)。

专用加速库

  • torch_mlu_ops:无缝对接 PyTorch Compile,集成 FA/量化算子。
  • CNTrainKit:训练前性能预估、并行策略排布、静态内存分析。

加速库层核心技术

计算加速范式

1.乒乓流水:双片上 RAM + 计算/IO 流并行,Load-Compute-Store 全重叠。

2.工具链:CNPerf 抓 PMU 数据 + GUI 分析热点。

通信加速范式

1.CNCL:对标 NCCL,支持 AllGather/Reduce 等原语,基于 BANG C + CNDRV 开发。

2.CNSHMEM:对标 nvshmem,PGAS 编程模型,支持 MoE 稀疏通信与通算融合。

  • 与 PyTorch Symmetric Memory + Triton JIT 联动。

CNTLASS 模板库

  • 高层抽象:Tile/CNTE 编程模型,C++ 语法封装 Tensor/Layout。
  • 开发效率:Attention 算子开发从 1 个月缩短至 1 周。
  • 性能表现:BF16 GEMM 逼近硬件极限,支持 Autotuning。

BANG 异构计算平台深度解析

核心工具链(CNToolkit)

  • CNCC:BANG C 编译器,支持异构混合编码,Host/Device 自动拆分。
  • CNPerf:Kernel 级性能分析(执行时间/指令数/Cache Miss)。
  • Sanitizer:内存越界/未定义行为检测(MemCheck/RaceCheck)。
  • CNGDB/Studio:调试器与 VS Code 插件。

硬件架构与存储模型

1.Cluster 结构:IPU/MPU + NRAM/WRAM/SRAM + 功能单元(向量/标量/张量)。

2.存储层级

  • 片上:NRAM/WRAM/SRAM(异步搬移,增强数据局部性)。
  • 片外:Global DRAM + Local DRAM(线程栈)+ L2 Cache。

执行模型与并行编程

1.Host-Device 异步:独立执行,显式 Sync 同步。

2.Block/Unit 映射:Kernel 按 Unit 粒度占用 Cluster,支持排队复用。

3.内建变量:TaskID/TaskDim/CallID 索引并行任务。

加速范式与编译优化

1.图执行:基于阿姆达尔/古斯塔夫森定律,压缩串行部分,最大化并行。

2.算子融合

  • 编译时融合:Inductor/XLA 自动生成 Triton Kernel。
  • 手写融合:BANG C 大 Kernel 减少片外访存。

驱动层关键技术

核心功能

1.虚拟化:单卡切分多虚拟卡(物理隔离)。

2.软件隔离:Cluster Bitmap 环境变量控制(类似 CUDA MPS)。

加入训练营

📺 完整课程内容,请观看直播或查看课程回放:

InfiniTensor 官网https://www.infinitensor.com

B 站直播: InfiniTensor 官方直播间

视频号直播: InfiniTensor 视频号预约

答疑交流: 训练营官方社群 ⬇️

关注与交流