
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 视频号预约
答疑交流: 训练营官方社群 ⬇️

关注与交流

