2.1 计算范式分野:GPU 通用并行 vs NPU 专用张量


文档摘要

2.1 计算范式分野:GPU 通用并行 vs NPU 专用张量 同样是"AI 加速芯片",为什么 GPU 和 NPU 的设计哲学几乎是反过来的?答案藏在它们各自的"出身"里。 2.1.1 两种出身,两种基因 GPU 和 NPU 的根本差异,源于它们被发明出来的初衷不同。 GPU 的英文全称是 Graphics Processing Unit(图形处理器),它最初的任务是渲染图形。图形渲染的本质是"对海量像素做相同但独立的计算",于是 GPU 进化出了极擅长大规模数据并行的架构。后来人们发现,AI 训练里的矩阵运算和图形渲染在并行特征上高度相似——都是"对海量数据做相似运算",于是 GPU 顺理成章地成了 AI 算力的主力。但它的底色始终是通用并行处理器。

2.1 计算范式分野:GPU 通用并行 vs NPU 专用张量

同样是"AI 加速芯片",为什么 GPU 和 NPU 的设计哲学几乎是反过来的?答案藏在它们各自的"出身"里。

2.1.1 两种出身,两种基因

GPU 和 NPU 的根本差异,源于它们被发明出来的初衷不同。

GPU 的英文全称是 Graphics Processing Unit(图形处理器),它最初的任务是渲染图形。图形渲染的本质是"对海量像素做相同但独立的计算",于是 GPU 进化出了极擅长大规模数据并行的架构。后来人们发现,AI 训练里的矩阵运算和图形渲染在并行特征上高度相似——都是"对海量数据做相似运算",于是 GPU 顺理成章地成了 AI 算力的主力。但它的底色始终是通用并行处理器

NPU 的英文全称是 Neural-network Processing Unit(神经网络处理器),它从一开始就是为神经网络运算定制的。NPU 不追求通用性,而是把神经网络里最高频的运算(尤其是矩阵乘法)做成硬件原语,用最少的控制开销、最直接的数据通路去完成计算。它的底色是专用张量处理器

GPU 出身:图形渲染 → 发现能算 AI → 顺带成为 AI 主力 基因:通用并行(先有通用,后有 AI 加速) NPU 出身:从一开始就是 AI 定制 → 砍掉通用性换效率 基因:专用张量(先有 AI,后有少量通用能力)

💡 关键认知:GPU 是"通用处理器加了 AI 加速器",NPU 是"AI 加速器加了少量通用能力"。这个主辅关系决定了它们在灵活性、能效、生态上的全部差异。

2.1.2 SIMT 与数据流:执行模型的差异

两种基因落到硬件执行层面,表现为两种截然不同的执行模型。

GPU 采用 SIMT(单指令多线程) 模型。它把大量线程组织成一个个"Warp"(线程束,典型 32 线程),一个 Warp 里的所有线程在同一时刻执行同一条指令、处理不同数据。这是一种"指令驱动"的模型——硬件读取一条指令,然后让一束线程一起执行它。它的好处是灵活:只要你的计算能写成"对大量数据做相同操作",GPU 就能高效并行;代价是要维护复杂的调度器、分支处理和缓存一致性。

NPU(以达芬奇架构为代表)更接近数据流驱动模型。它的计算单元按神经网络层的运算特征排布成专用流水线,数据一旦就绪就沿着固定的数据通路流动并被计算,指令只负责配置这条流水线,而不是逐条驱动每个运算。它的好处是高效:没有复杂的调度开销,数据通路最短,能效比高;代价是不够灵活,遇到流水线没覆盖的运算就要退化到通用单元去算。

维度 GPU(SIMT) NPU(数据流)
驱动方式 指令驱动,按 Warp 调度 数据流驱动,流水线配置
灵活性 高,几乎能算任何并行任务 低,专为神经网络运算优化
控制开销 大(调度、分支、缓存一致) 小(数据通路固定)
能效 中等
生态 极成熟(CUDA) 在建设中

⚠️ 别把 SIMT 等同于 SIMD:SIMT 比 SIMD(单指令多数据)更灵活,允许同一 Warp 内的线程有不同的控制流(虽然会损失效率)。这是 GPU 之所以"通用"的关键——它不像传统 SIMD 那样要求所有数据走完全相同的路径。

2.1.3 矩阵乘:两条路线的共同战场

无论 GPU 还是 NPU,AI 计算的核心都是矩阵乘法(一次神经网络层的前向/反向传播,本质上都是大规模矩阵乘加)。两种架构的差异,本质上是对"如何高效完成矩阵乘"的不同回答:

  • GPU 的回答:用张量核心(Tensor Core)这种专用单元处理矩阵乘,其余运算仍交给通用的 CUDA 核心。矩阵乘是 GPU 里的"VIP 客户",有专属高速通道,但 GPU 仍然是一台通用机器。
  • NPU 的回答:用 Cube 这种把矩阵乘做成硬件原语的单元作为整个 AI Core 的中心,其余单元(Vector、Scalar)都围绕它服务。矩阵乘不是 VIP 客户,而是这座工厂的"主车间"。
矩阵乘的位置: GPU: [通用算力] + [张量核心(矩阵乘)] ← 矩阵乘是"加速器" NPU: [Cube(矩阵乘)] + [Vector/Scalar] ← 矩阵乘是"主车间"

这种"主辅关系"的差异,就是第 2.2、2.3 两节要拆解的内容。下一节我们先看 NVIDIA 的张量核心是怎么一步步进化到 Blackwell 这一代的。

2.1.4 没有绝对优劣,只有场景匹配

理解了分野,还要避免一个误区——把"通用 vs 专用"简单等同于"好 vs 坏"。两种路线各有代价:

  • GPU 的通用性让它能服务图形、科学计算、AI 等多种负载,生态(CUDA)极其成熟,但控制开销大、对单一负载的能效不是最优。
  • NPU 的专用性让它在 AI 负载上能效更高、单位算力成本更低,但灵活性差、生态建设需要长期投入。

在 AI 算力竞赛里,两者其实是"在不同约束下追求同一个目标"。NVIDIA 靠通用性 + 先发优势建立起生态护城河;华为则在制程受限的现实下,用专用架构的高能效来弥补单卡规模差距。这也是为什么后续章节会反复看到两大平台"同题不同答"——它们的基因决定了各自的取舍。

思考与延伸

  1. 如果未来 AI 模型形态发生根本变化(比如不再以矩阵乘为主),GPU 和 NPU 谁更容易适应?请用"通用 vs 专用"的代价解释。
  2. SIMT 模型允许 Warp 内分支,但分支会损失效率。结合这点,你能解释为什么 AI 框架里要尽量避免"条件分支"吗?
  3. 为什么 NPU 的"能效比"通常优于 GPU,但在生态成熟度上却长期落后?这两者是偶然相关还是有内在联系?

本节关键词:GPU、NPU、SIMT、数据流架构、矩阵乘 返回:第 2 章支柱页 下一节:2.2 Blackwell 架构与张量核心演进


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U