引言

大模型时代,算力成了硬通货。但"买算力"这件事远没有买云主机那么直白:同样是跑推理,GPU、TPU、NPU 的成本能差出好几倍;同样是 100 TFLOPS 的标称算力,实际吞吐可能天差地别。这篇文章从架构层面讲清楚三类主流 AI 芯片的设计差异,再落到开发者的真实问题——训练和推理分别该怎么选。

三种架构的设计哲学

GPU:通用并行的胜利。 GPU 起家于图形渲染,天生擅长把同一个操作应用到海量数据上(SIMT 架构)。NVIDIA 从 Volta 架构开始加入 Tensor Core,专门加速矩阵乘加(MMA),AI 算力几代翻了几十倍。GPU 最大的优势不是硬件本身,而是 CUDA 生态:cuDNN、NCCL、TensorRT,加上 PyTorch、JAX 的原生支持,让它成为"什么都能跑"的默认选项。代价是功耗和价格——H100 单卡功耗 700W,云端租用一卡一小时几十块钱。

TPU:为矩阵乘而生的专用机。 Google 的 TPU 核心是脉动阵列(Systolic Array):数据像血液流过心脏一样在计算单元阵列里有节奏地流动,权重驻留在单元里,大幅减少访存次数。这种设计对 Transformer 这种"大矩阵乘打天下"的负载效率极高,配合 HBM 高带宽显存和 ICI 芯片间互联,TPU Pod 能扩展到上万芯片协同训练。短板是生态:TPU 基本绑定 JAX/XLA 技术栈和 Google Cloud,想搬到自己机房没门。

NPU:把推理塞进终端。 NPU(神经网络处理单元)的目标场景是手机、摄像头、车端这些功耗敏感的设备。设计思路是砍掉通用性,只保留推理所需:INT8/INT4 低精度计算单元、本地 SRAM 缓存、专用 DMA。华为昇腾的达芬奇架构、高通的 Hexagon、苹果 A 系列的 Neural Engine 都属于这一类。NPU 的算力数字通常不大(几十 TOPS),但每瓦性能(TOPS/W)能做到 GPU 的 10 倍以上。

算力指标怎么看

芯片参数表里的数字很容易误导,几个关键指标要分清:

  • 峰值算力要看精度:同一块芯片 FP16、INT8、FP8 的算力差好几倍。H100 的 FP16 约 990 TFLOPS(稀疏),但 FP32 只有 60 多。比较芯片必须在同一精度下比。
  • 显存容量与带宽往往比算力更致命:大模型推理是访存密集型负载,决定 token 生成速度的常常是显存带宽而非算力。这也是为什么 7B 模型在带宽 1TB/s 的卡上比在算力更强但带宽 300GB/s 的卡上出字更快。
  • 互联带宽决定扩展效率:多卡训练时,NVLink(900GB/s)和 PCIe(64GB/s)的差距会直接体现在加速比上。

实测一下手头的卡永远是好习惯:

import torch, time

def bench_matmul(size=8192, dtype=torch.float16, iters=50):
    a = torch.randn(size, size, device="cuda", dtype=dtype)
    b = torch.randn(size, size, device="cuda", dtype=dtype)
    torch.cuda.synchronize()
    start = time.perf_counter()
    for _ in range(iters):
        c = a @ b
    torch.cuda.synchronize()
    elapsed = time.perf_counter() - start
    tflops = 2 * size**3 * iters / elapsed / 1e12
    print(f"{dtype} {size}x{size}: {tflops:.1f} TFLOPS, "
          f"显存占用 {torch.cuda.max_memory_allocated()/2**30:.1f} GiB")

bench_matmul()

跑出来的数字一般只有峰值的 60%~80%,这才是真实世界。

训练与推理的选型逻辑

| 维度 | GPU | TPU | NPU | | --- | --- | --- | --- | | 定位 | 训练 + 推理通用 | 大规模训练/推理(云端) | 端侧推理 | | 典型精度 | FP8/FP16/BF16/INT8 | BF16/INT8 | INT8/INT4 | | 生态 | CUDA,最全 | JAX/XLA,较封闭 | 各家 SDK(CANN、NNAPI 等) | | 获取方式 | 自购/各云厂商 | 仅 Google Cloud | 随终端芯片 | | 每瓦性能 | 中 | 高 | 最高 |

训练场景:除非团队已经全栈投入 JAX,否则 GPU(H100/H200/昇腾 910B)几乎是唯一现实选项,原因无他——出问题时能搜到答案。千卡以上的集群要重点考察互联方案(NVLink + RDMA)和故障恢复能力。

云端推理:先算账。7B 级别模型用 vLLM 或 TensorRT-LLM 在 A10/L40S 这类推理卡上性价比最高;超大模型高并发场景,可以评估 TPU v5e 或 AWS Inferentia 这类专用推理芯片,单位 token 成本能降 30%~50%,但要接受框架迁移成本。

端侧推理:模型必须量化到 INT8 甚至 INT4,用 ONNX 或厂商工具链(昇腾的 ATC、高通的 SNPE)转换部署。核心经验是:先确认目标 NPU 支持的算子集合,模型里花哨的自定义层很容易踩坑。

举个带宽决定速度的具体例子:7B 模型 FP16 约 14GB,自回归解码每生成一个 token 理论上要把全部权重读一遍。显存带宽 1TB/s 的卡,理论上限约 70 token/s;带宽 300GB/s 的卡就只有 20 token/s 左右,哪怕后者算力更高。这就是推理选型"先看带宽再看算力"的原因。另一个趋势是 MoE 模型

Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐