国产GPGPU踩坑实录:从卡间互联拓扑到软件栈,聊聊新一代加速卡的真实表现

搞大模型训练的都知道,卡间互联带宽不够,多卡并行就是灾难。最近上手了一款国产GPGPU加速卡的新一代产品,把互联拓扑、训练推理性能、软件生态完整跑了一遍,这里做个复盘。


一、先看硬件底子

新一代加速卡有几个关键升级:

维度 上一代产品 新一代产品
FP64 精度 不支持 支持(国产唯一)
显存容量 64GB 64GB
显存带宽 ~900GB/s ~1.8TB/s
CPU-GPU互联 PCIe 4.0 x16 PCIe 5.0 x16
GPU-GPU互联 PCIe 4.0 自研高速互联链路
功耗 350W 800W
形态 PCIe全高全长 PCIe & OAM

两代之间跨度很大。上一代只支持到 FP32,做科学计算基本没戏。新一代补齐了 FP64,显存带宽直接翻倍。

8 卡服务器节点规格(基于新一代加速卡):

  • CPU:2 × 自研 x86 处理器
  • GPU:8 × 新一代加速卡
  • 显存总量:512GB
  • 显存总带宽:~14.4 TB/s
  • 卡间互联:自研交换芯片全互联拓扑
  • GPU-GPU 单链路带宽:~448 GB/s
  • 节点内总带宽:~3584 GB/s
  • 对分带宽:~1792 GB/s
  • 机间互联:8 × 200G IB / RoCE

—个

二、互联拓扑:Fullmesh vs Switch Clos,差距有多大?

2.1 8 卡 Fullmesh 的尴尬

业界很多方案用的是 8 卡 Fullmesh(全互联)。这方案的好处是简单,坏处是——每张卡只有 1 条 P2P 链路连到其他卡。

Fullmesh

GPU0

GPU1

GPU2

GPU3

GPU4

GPU5

GPU6

GPU7

单链路带宽一般 50-60GB/s,P2P 双向带宽就是这么多。节点内总链路数 28 条,链路总带宽大约 1500-1600GB/s,对分带宽也就 800-900GB/s。

这个数字放在大模型 AllReduce 场景里,Ring 算法跑起来,busBW 直接被对分带宽卡脖子。

2.2 Switch Clos 全互联怎么破局

新一代方案不走 Fullmesh,而是在 8 卡之间插入自研交换芯片,走 Clos 全互联:

Switch Clos 全互联拓扑

交换芯片1

交换芯片2

交换芯片3

交换芯片4

交换芯片5

交换芯片6

交换芯片7

GPU0

GPU1

GPU2

GPU3

GPU4

GPU5

GPU6

GPU7

每张加速卡挂 7 条链路到交换芯片,单链路双向带宽 64GB/s,单卡 P2P 总带宽 = 7 × 64 = 448GB/s。7 个交换芯片聚合后:

维度 Fullmesh Switch Clos 提升
P2P 链路数 1 7
P2P 双向带宽 ~56GB/s 448GB/s
链路总带宽 ~1568GB/s 3584GB/s 2.3×
对分带宽 ~896GB/s 1792GB/s
AllReduce busBW ~112GB/s 224GB/s

这意味着什么?AllReduce 通信不再是对分带宽瓶颈,Ring 算法在 8 卡内能把 7 条 Ring 全跑起来。

2.3 大模型 TP 并行场景实测对比

Tensor Parallelism(TP)是大模型训练里最吃通信的并行策略。TP=8 时每组 8 卡做 AllReduce。

TP 规模 指标 Fullmesh 类方案 Switch Clos
TP=2 Ring 数 1 7
TP=2 AR BusBW ~28-56 GB/s 224 GB/s
TP=4 Ring 数 1-3 7
TP=4 AR BusBW ~28-56 GB/s 224 GB/s
TP=4 AR AlgBW ~18-37 GB/s ~149 GB/s
TP=8 Ring 数 1-3 7
TP=8 AR BusBW ~28-168 GB/s 224 GB/s
TP=8 AR AlgBW ~18-96 GB/s 128 GB/s

7 条 Ring 打 1 条 Ring,TP=8 时算法带宽差距拉到了数倍。这在千亿参数模型训练里就是能不能跑起来的区别。


三、多节点 Scale-Out:PXN 的价值

单节点内互联再强,跨节点还是要走 IB/RoCE。这里有个容易踩的坑——PCIe 上行带宽。

如果 Scale-Out 链路走 PCIe → PCIe Switch → 网卡,PCIe 5.0 x16 的单向带宽就是硬上限,多节点 AllReduce 的 busBW 被卡在 ~64GB/s。

新一代方案支持 PXN(Peer eXchange Network),跨节点 AllReduce 不走 PCIe Switch,而是走加速卡直连交换芯片 → 网卡:

节点 2

节点 1

加速卡1

加速卡2

交换芯片组

网卡1

网卡2

加速卡1

加速卡2

交换芯片组

网卡1

网卡2

IB/RoCE 交换机

PXN 的关键在于:多机 AllReduce 的瓶颈从"PCIe 上行速率"变成了"加速卡到交换芯片的速率",理论上限从 ~64GB/s 跳到 ~224GB/s。

规模 不走 PXN(理论上限) 走 PXN(理论上限)
2 节点 16 卡 ~64 GB/s BusBW ~224 GB/s BusBW
4 节点 32 卡 ~64 GB/s ~224 GB/s
128 节点 1024 卡 ~64 GB/s ~224 GB/s

多机场景下这个差距是致命的。不走 PXN 的方案,加再多节点 AllReduce 带宽也涨不上去。


四、训练性能:拿真实模型跑一圈

4.1 跨代对比

用同一模型、同一节点、同一超参做全参数训练,新一代产品对比上一代的单节点吞吐(TGS):

新一代 vs 上一代训练吞吐对比(以新一代为基准) LLaMA类 MoE类 文生图 文生视频 120 110 100 90 80 70 60 50 40 30 20 10 0 相对性能(%)

新一代在各类模型上训练吞吐普遍达到上一代的 300%+,跨代提升显著。

4.2 与国际主流产品对比

与某国际主流训练卡的对比(同一并行策略 + 同一精度):

与国际主流产品性能比(以对方为 100% 基准) LLaMA-7B LLaMA-13B LLaMA-70B MoE-8x7B MoE-32B 120 110 100 90 80 70 60 50 40 30 20 10 0 性能比(%)

结论:基本达到国际主流产品的 95%-105%,精度一致的前提下性能持平。

与另一国际旗舰产品对比,MoE 类模型大致在 75%-85%,Dense 类模型在 65%-105%,仍在持续优化中。


五、推理性能:MoE 和 Dense 分开看

推理这边分两种场景:

5.1 大模型推理

以某主流推理卡为基准,DeepSeek 671B BF16、TPOT ≤ 100ms、TTFT ≤ 30s 条件下,新一代产品的并发处理能力:

  • MoE 模型:达到上一代国产方案的 150%-300%
  • Dense 模型:达到上一代国产方案的 350%-500%

对比国际主流推理卡,MoE 模型约 75%-85%,Dense 模型约 65%-105%。

5.2 中小模型推理延迟

512 输入 1024 输出场景下,New Card 对比国际主流推理卡的 Prefill/Decode 性能比:

中小模型推理 Prefill 性能比(以竞品为 100%) 1.5B 7B 8B 14B 32B 70B 200 180 160 140 120 100 80 60 40 20 0 性能比(%)

小模型场景下 Prefill 优势更明显,大模型逐渐趋于持平。Decode 阶段的表现也呈类似趋势。


六、软件栈:从 DTK 到 OpenDAS

硬件再强,软件不行也是白瞎。这套方案的软件栈分三层:

硬件

加速卡

运行时

HIP Runtime

ROCk Kernel Driver

基础库层 DTK

BLAS/cuBLAS 兼容

FFT/cuFFT 兼容

RNG/curand 兼容

Sparse/cuSPARSE 兼容

DNN/cuDNN 兼容

NCCL/RCCL 兼容

Thrust 兼容

CUB 兼容

编译优化层

AI 编译器

Triton

XLA

TVM

AITemplate

框架层

PyTorch

TensorFlow

PaddlePaddle

Jittor

DeepSpeed

vLLM

LMDeploy

Megatron-LM

Colossal-AI

SGLang

应用层

模型库

开发者社区

OpenDAS 开源套件

DAS 平台

6.1 DTK:CUDA 兼容层

DTK(DCU Toolkit)走的是 HIP(Heterogeneous-compute Interface for Portability)路线。HIP 是一个开源的 C/C++ 异构并行编程模型,同时兼容 CUDA、ROCm 和 DTK。

CUDA 生态 DTK 生态 说明
cuBLAS rocBLAS/hipBLAS 基础矩阵运算
cuDNN MIOpen 深度学习基础库
NCCL RCCL 集合通信
cuRAND hipRAND 随机数
cuSPARSE hipSPARSE 稀疏矩阵
cuFFT rocFFT/hipFFT 快速傅里叶变换
CUB hipCUB 基础算法库
Thrust rocThrust 并行算法库

术语对照

NVIDIA DCU 描述
SM (Streaming Multiprocessor) CU (Compute Unit) 计算单元
Warp (32 threads) Wavefront (64 threads) 硬件执行线程束
Thread Work-item / Thread 执行单元
Block Work-group / Block 线程块

写 CUDA 代码的老哥上手 HIP 基本没门槛——核函数语法一模一样,Runtime API 高度兼容。DTK 目前兼容 CUDA 10.2 和 11.8 的 API,还支持 CMake 构建系统,工程迁移成本很低。

6.2 DAS:AI 全栈平台

DAS(DCU AI Software Stack)在 DTK 之上集成了大量 AI 框架和工具:

  • 训练框架:PyTorch、DeepSpeed、Megatron-LM、Colossal-AI、FastMoE
  • 推理框架:vLLM、LMDeploy、TGI、SGLang、Llama.cpp、FastLLM
  • 微调工具:LLaMA-Factory、HF PEFT、xFormers、FlashAttention
  • AI4Science:AlphaFold2、DeepMD-kit、UniFold、OpenFold 等

PyTorch API 覆盖度 98%+,vLLM API 覆盖度 99%+,主流模型的适配已经比较成熟。

6.3 OpenDAS 开源生态

OpenDAS 把整套工具链开源了出来,包括:

  • AI 编译器(Triton、XLA、TVM、AITemplate)
  • 推理框架(ONNX Runtime、MIGraphX)
  • PyTorch 套件(TorchVision、TorchAudio 等)
  • PaddlePaddle 全套件
  • AI4Science 套件
  • MMCV 系列

6.4 科学计算生态

这个容易被忽略,但这套方案在科学计算领域的积累相当扎实:

科学计算生态

分子动力学

GROMACS

NAMD

LAMMPS

Amber

OpenMM

计算化学

CP2K

VASP

NWChem

PWMAT

FHI-aims

工业仿真

OpenFOAM

OpenCFD

RapidCFD

GESTS

气象环境

SD3

CALPUFF

NAQPMS

LICOM3

计算物理

QUDA

Chroma

PIConGPU

生信基因

BarraCUDA

Blast

BWA

DeepVariant

分子动力学、计算化学、工业仿真、气象环境、天体物理、生信基因——覆盖了几乎所有科学计算主流软件。


七、CUDA→HIP 迁移实操

从 CUDA 切到 HIP,代码改动量有多小?直接看 DAXPY 示例:

CUDA 版本

__global__ void add(int n, double *x, double *y) {
    int index = blockIdx.x * blockDim.x + threadIdx.x;
    int stride = blockDim.x * gridDim.x;
    for (int i = index; i < n; i += stride) {
        y[i] = x[i] + y[i];
    }
}

HIP 版本

__global__ void add(int n, double *x, double *y) {
    int index = blockIdx.x * blockDim.x + threadIdx.x;
    int stride = blockDim.x * gridDim.x;
    for (int i = index; i < n; i += stride) {
        y[i] = x[i] + y[i];
    }
}

一模一样。Kernel 语法完全一致,Runtime API 做简单的命名映射即可。DTK 还提供了 GPUFusion 工具,对已有 CUDA 程序做自动编译测试,Amber、NAMD、GROMACS、MAGMA、XGBoost 等大量科学计算软件均通过编译测试。


八、总结

这套国产 GPGPU 方案的核心竞争力,个人跑下来觉得有三点:

  1. 互联拓扑架构领先:自研交换芯片 + Clos 全互联,P2P 带宽 448GB/s,对分带宽 1792GB/s,对比 Fullmesh 方案有 2-8 倍的差距。大模型 TP 并行和多机 Scale-Out 场景优势明显。

  2. 软件生态兼容性好:HIP 编程模型 + DTK 数学库做到了 CUDA 兼容,PyTorch/vLLM 等主流框架覆盖度 98%+,迁移成本低。

  3. 全场景覆盖:从 AI 训练推理到科学计算(分子动力学、计算化学、气象环境),从单卡到万卡集群,一套方案打全场。

当然也有一些需要持续关注的方面——Dense 模型推理性能还在爬坡,部分小众框架的适配仍需时间。但以当前迭代速度,这些问题都在快速改善。


本文基于公开技术资料整理,具体性能数据已做脱敏处理,仅供参考。

Logo

免费领 150 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐