昇腾 910 的硬件架构:为什么它适合跑大模型

前言

搞清楚昇腾 910 的硬件结构,很多性能优化的手段就不需要死记硬背了------理解了底层,上层该怎么做是自然推导出来的。


一、达芬奇架构的核心:Cube、Vector、Scalar

昇腾 910 的 AI Core 采用达芬奇架构,每个 AI Core 里有三种计算单元:

计算单元 功能 典型算子 性能特点
Cube Unit 矩阵乘法 Conv、MatMul、Linear 1 个周期算 16×16×16 的矩阵乘
Vector Unit 向量运算 ReLU、Softmax、Add 1 个周期处理 256 个 FP16 元素
Scalar Unit 标量控制 循环、分支、地址计算 类似 CPU 的标量处理

三种单元可以并行工作。Cube 在算矩阵乘的时候,Vector 可以同时做激活函数,Scalar 在准备下一批数据的地址。这个设计让 Conv+ReLU 这种连续操作不用等前一步算完再开始。

910 有 64 个 AI Core,每个 AI Core 有独立的 Cube、Vector、Scalar。这意味着理论上 64 个算子可以同时在不同 Core 上执行(如果数据没有依赖的话)。


二、存储层次:从 HBM 到 UB

数据在不同存储之间搬来搬去,是性能调优的核心问题。昇腾 910 的存储层次:

存储层级 容量 带宽 延迟 用途
HBM 32GB 1.2TB/s ~100ns 模型权重、KV Cache
L2 Cache 共享 8MB ~10TB/s ~20ns 热点数据缓存
UB(Unified Buffer) 每核 128KB ~30TB/s ~5ns 算子计算的输入输出
寄存器 每核 64KB - ~1ns 临时变量、累加器

数据搬运的瓶颈

一次矩阵乘法的计算量是 2 × M × K × N FLOPs。数据搬运量是 (M×K + K×N + M×N) × sizeof(float16)。当矩阵不够大的时候,搬运时间大于计算时间------这就是「带宽瓶颈」。

910 的 Cube Unit 峰值算力是 256 TFLOPS(FP16),HBM 带宽是 1.2TB/s。一个 FP16 元素占 2 字节,所以「计算/带宽」的平衡点是:

复制代码
计算量 / 搬运量 = 256T / (1.2T / 2) = 427

也就是说,每个字节搬运过来,需要做 427 次 FP16 运算才能打满算力。这解释了为什么小 batch 推理慢------矩阵太小,算力浪费了。


三、多卡互联:HCCS 和 PCIe

910 的多卡互联有两种方式:

HCCS(Huawei Cache Coherence System)

910 内部用的互联协议,带宽 392GB/s(全双工),延迟 <1us。同服务器内的卡间通信走 HCCS,适合 AllReduce 等集合通信。

PCIe 4.0

跨服务器通信走 PCIe,带宽 64GB/s(x16),延迟 5-10us。比 HCCS 慢 6 倍,所以跨机训练的通信开销远大于单机。

互联拓扑图

复制代码
单机8卡拓扑:

  [NPU0] ←HCCS→ [NPU1] ←HCCS→ [NPU2] ←HCCS→ [NPU3]
     ↕ HCCS        ↕ HCCS        ↕ HCCS        ↕ HCCS
  [NPU4] ←HCCS→ [NPU5] ←HCCS→ [NPU6] ←HCCS→ [NPU7]

HCCL 做拓扑感知的时候,会优先用 HCCS 通道,避开 PCIe 的瓶颈。


四、为什么适合跑大模型

大模型(LLaMA、GPT 等)的推理特征是:大矩阵乘法 + 长序列 KV Cache。昇腾 910 的硬件设计正好匹配这两个特征:

大矩阵乘法 :Cube Unit 的 16×16×16 矩阵乘,在 batch 大、序列长的时候利用率最高。一个 LLaMA-7B 的 Linear 层,输入矩阵是 [batch×seq, 4096],权重矩阵是 [4096, 4096],乘出来是 [batch×seq, 4096]。batch=8、seq=2048 的时候,矩阵乘法的数据量足够打满 Cube Unit。

长序列 KV Cache:32GB 的 HBM 可以存下长序列的 KV Cache。LLaMA-7B 在 910 上,batch=8、序列 4096,KV Cache 只占 16GB,还有余量。加上 PagedAttention 的按需分配,显存利用率能到 90%。

多卡并行:HCCS 的 392GB/s 带宽,让 AllReduce 的通信开销控制在 15% 以内(8 卡训练)。对比 NVLink 的 600GB/s,差距不大,而且 HCCL 的拓扑感知能弥补一部分差距。


五、跟 A100 的硬指标对比

指标 昇腾 910 NVIDIA A100
FP16 算力 256 TFLOPS 312 TFLOPS
INT8 算力 512 TOPS 624 TOPS
HBM 容量 32GB 40GB/80GB
HBM 带宽 1.2TB/s 1.6TB/s
互联带宽 392GB/s (HCCS) 600GB/s (NVLink)
AI Core / SM 数量 64 108
功耗 310W 400W

910 的绝对算力低于 A100,但功耗也低 23%。在算力/功耗比上,910 是 826 GFLOPS/W,A100 是 780 GFLOPS/W。加上国产芯片的采购成本和供应链优势,910 在大规模部署时的性价比不输 A100。


六、软件栈怎么适配硬件

昇腾的软件栈(CANN)是针对达芬奇架构深度优化的:

  • GE:根据 Cube/Vector/Scalar 的并行能力做算子调度
  • ATC:编译时选择 Cube 或 Vector 实现,匹配 AI Core 的计算能力
  • AOE:搜索最优的 tile 大小,让 UB 的利用率最大化
  • HCCL:根据 HCCS 拓扑选择通信路径

理解硬件架构之后,这些软件优化的逻辑就不难理解了------都是在匹配硬件的特点,让数据流动和计算能力对齐。


参考资源


总结

昇腾 910 的硬件设计围绕两个核心:Cube Unit 做大矩阵乘法、HBM 存大模型权重和 KV Cache。理解了存储层次和计算单元的并行能力,就能推导出大部分优化手段------大 batch 打满 Cube、减少 HBM 搬运用 UB 缓存、HCCS 拓扑感知降低通信延迟。910 的绝对算力虽然不如 A100,但算力功耗比更优,加上国产供应链优势,大规模部署的性价比不输竞品。

相关推荐
ACP广源盛139246256734 小时前
OpenAI 推出的 GPT-5.5 大模型,倒逼接口芯片升级迭代@ACP#IX8024应用迭代
网络·人工智能·嵌入式硬件·电脑·音视频
南屹川4 小时前
【服务网格】Istio入门:从部署到流量管理实战
人工智能
掘根4 小时前
【openCV】cv::Mat的创建和赋值,图像像素的读写,算术操作
人工智能·opencv·计算机视觉
会编程的土豆4 小时前
Kafka 操作流程(零基础完整流程)
分布式·kafka
救救孩子把4 小时前
65-机器学习与大模型开发数学教程-6-1 浮点数精度与数值稳定性
人工智能·机器学习
南屹川4 小时前
【云计算】Kubernetes入门与实践:从部署到运维
人工智能
armwind4 小时前
数字图像处理-9-图像的腐蚀和膨胀
图像处理·计算机视觉
MediaTea4 小时前
AI 术语通俗词典:GRU
人工智能·rnn·深度学习·gru
IT_陈寒4 小时前
Vite踩坑实录:静态资源加载把我搞懵了
前端·人工智能·后端