如果你最近正在搭大模型训练集群,或者要给线上推理服务换一批算力,大概率绕不开标题里这些型号:H200、B300、A100、A800,以及昇腾910A/910B/910C。这几张卡来自两套完全不同的生态,放在一张表里对比很容易被个别参数带偏,比如只盯着FP16算力,或者只看显存大小。我在实际部署中踩过不少次坑,这篇文章就按代际定位、核心规格、互连、软件生态、场景选型和常见问题六个维度,把七张卡掰开揉碎讲清楚。适合正在做AI基础设施选型、算法团队评估算力、以及刚入行想建立硬件认知体系的同学参考。

1. 先别急着看参数,搞清这几张卡是哪个时代的东西

1.1 英伟达三代架构盘根错节

英伟达这几张卡别看名字像兄弟,实际上横跨了三代架构。A100和A800属于Ampere架构,2020年左右发布,是上一代AI训练的绝对主力。H200属于Hopper架构,本质上不是全新芯片,而是H100在显存上的“大改版”——核心算力和H100基本一致,但把显存从80GB HBM3拉到了141GB HBM3e。B300则是Blackwell Ultra,是Blackwell架构的增强版,2025年才陆续有公开参数流出,主打FP4精度和超大显存。

这个代际关系非常关键,因为不同代际的卡在同一模型上的表现差距,往往不是“算力数字”能体现的。比如A100跑FP8要靠转换,而H200本身就是为FP8/Transformer优化过的;B300更是直接把推理的主战场拉到了FP4量化。选卡之前先搞清楚代际,才不会被宣传文案里“算力翻倍”之类的词带跑。

1.2 昇腾910系列:A/B/C其实是一脉相承的迭代

昇腾910系列是国内自研AI加速卡里最常见的训练卡。910A是早期版本,我印象里它的标称FP16算力在256 TFLOPS左右,功耗310W;910B是中间迭代,主要提升了大模型场景最需要的显存容量和互联能力,行业里最常见的30GB/64GB版本基本都来自这个阶段,FP16标称普遍到376 TFLOPS左右;910C则是后面推出的高密度版本,内部封装了双Die,对外仍然是一张卡,但算力和带宽比910B明显上了一个台阶,业界普遍把它看作对标H200的中坚型号。

需要注意的是,昇腾这三个型号并不像英伟达那样有清晰的“架构代际命名”,更多是同一代达芬奇架构下的不同规格。你在采购时看到的“910C套件”往往已经连同整机、固件、CANN版本打包好了,所以看单卡标称不如看“整机可用显存”和“对应软件栈版本”。

1.3 一份速查表先把“户口”对上

型号 归属生态 架构/系列 定位
A100 80GB 英伟达 Ampere 通用训练/推理,过去的主流选择
A800 80GB 英伟达 Ampere A100的互连降级版,面向特定合规市场
H200 英伟达 Hopper H100的大显存增强版,适合长上下文与推理
B300 英伟达 Blackwell Ultra 新一代旗舰,主打FP4/FP8与超大显存
昇腾910A 华为自研 达芬奇 第一代训练卡,早期国产算力主力
昇腾910B 华为自研 达芬奇 第二代,显存和互连优化
昇腾910C 华为自研 达芬奇 双Die高密度版,对标新一代国产训练需求

看到这张表,你会发现A800和A100其实是“同芯不同命”,昇腾910A/B/C更像同一个家族的连续升级。把户口关系理清以后,下面的规格对比才有意义。

2. 核心规格硬碰硬:算力、显存、带宽和功耗

2.1 算力数字背后的精度陷阱

算力是大家最爱刷的数字,但最容易被营销带偏。A100和A800的FP16算力都是312 TFLOPS,这个数字在Ampere时代很能打;H200的FP16到了989 TFLOPS,看起来是A100的三倍多;到了B300,厂商更喜欢宣传FP4算力,数字一下飙到“几十个PFLOPS”,因为Blackwell真正强化的是低精度推理路径。

这里有个坑:很多人拿“FP16算力”来横向比较,但昇腾910B的FP16大概在376 TFLOPS,910C的公开口径普遍到700-800 TFLOPS级别,看起来比A100高不少。可实际跑一个PyTorch模型时,算力能不能发挥出来,取决于算子融合度、数据精度、显存带宽,以及是否有对应的底层优化库。所以我的建议是:算力数字只用来判断代际差距,不要直接换算成“训练速度快几倍”。

2.2 显存容量是当前大模型选型的一票否决项

大模型时代,显存容量比算力更像“一票否决项”。一个70B参数的FP16模型,光权重就要占140GB左右,再加上梯度、优化器状态、KV Cache,单张A100 80GB根本放不下。H200的141GB显存,能让70B模型在不做太多压缩、小batch推理时勉强塞进单卡;B300的288GB更是冲着“单卡装大模型”去的。

昇腾910B常见的64GB显存,跑7B/13B模型比较从容,但跑70B预训练必须配合张量并行和流水线并行;910C因为双Die封装,公开配置里显存容量也明显向98GB/128GB级别抬升,实际目标就是把“单机满血跑大模型”的门槛再降一档。做选型时,先把你业务里最大模型的权重、激活值、KV Cache全部列出来,拿到所需显存总量,再看单卡能不能覆盖、多卡并行能不能兜底,远比先比算力更靠谱。

2.3 显存带宽和功耗:别忽视的两个隐性指标

除了容量,显存带宽直接影响推理时每个Token的读取速度和训练时的通信瓶颈。A100 80GB的带宽是2TB/s,H200提升到4.8TB/s,B300更是达到8TB/s级别。这意味着一张H200在跑自回归生成时,理论上每秒可以从显存里读出接近4.8TB的权重和激活值,比A100多了一倍多的“出口”。昇腾910B的内存带宽没有英伟达那么激进,通常在1.6-2TB/s区间,910C通过双Die设计把带宽和总容量做上去,才能支撑大模型训练时的AllReduce开销。

功耗方面,A100和A800单卡400W,H200单卡700W,B300已经是千瓦级选手。这里要特别提醒:标称TDP和实际功耗不是一回事。负载不满时卡不会跑满TDP,但大模型训练几乎全程高负载,所以散热设计必须按TDP上限来。升腾910B单卡大概在400-450W,910C会更高一些,但总体比H200/B300温和。功耗不只是电费问题,它直接决定你需要风冷还是液冷,机柜能放几张卡,甚至决定整个数据中心的暖通改造方案。

2.4 功耗、暖通与液冷:B300带来的数据中心难题

最近很多做数据中心暖通设计的朋友都在讨论“英伟达B300机柜怎么散热”,这不夸张。过去8卡A100服务器整机功耗大约6.5kW,常规风冷机柜还能应付;H200的8卡服务器整机功耗已经到10kW以上,需要高密度风冷甚至冷板式液冷;到了B300或GB300系列,一个满配机柜功耗可以到120kW甚至更高,纯风冷基本不现实,必须做整柜液冷加二次侧冷却冗余。

有朋友问过我说“A800 400W,是不是一台机柜也能塞很多张?”你要知道,机柜散热能力不等于单卡功耗简单叠加,还要看交换机和CPU的发热量。实际规划时,我建议先把每个机柜的总功耗预算列出来,再倒推可以放几张卡。比如一个风冷机柜预算上限10kW,放8张H200的服务器就已经逼近极限,不要再往里面塞其他高功耗设备。液冷前提下,B300才真正能用满整机算力。换句话说,选B300不是在选显卡,是在选一套“GPU+服务器+液冷机柜+暖通系统”。

3. 单卡强不等于集群强:互连才是大头

3.1 英伟达NVLink和NVSwitch怎么玩

大模型训练很少单卡干活,数据并行、张量并行、流水线并行都需要卡间通信。A100的NVLink双向带宽是600GB/s,A800被限制到了400GB/s,这是A800和A100最核心的性能差别。在一些通信密集型任务里,A800和A100的差距可能达到10%-20%,而不是只看算力一样的表面现象。

H200沿用了Hopper的NVLink方案,双向带宽大约900GB/s,配合NVSwitch,8张卡在一个HGX模组内可以做到全互联。B300这一代NVLink继续加码,带宽到了1.8TB/s级别,这意味着更大规模的Expert并行、更长序列的Attention都能在卡间快速交换数据。英伟达这套NVSwitch方案,相当于把8卡甚至几十卡变成了一个“虚拟大GPU”,这也是纯靠算力堆叠很难追上的护城河。

3.2 昇腾靠HCCS和RoCE组网,延迟和带宽如何

昇腾这边,卡间互连主要靠HCCS,这是一种高速总线协议,单卡对外有多个HCCS口,服务器内部通过华为自己的拓扑连接多张卡。跨节点通常走RoCE以太网,常见的是200G/400G RoCE方案。就我实际体验来说,昇腾的单节点内通信调度做得不差,但跨节点通信对RoCE组网质量很敏感。

RoCE这东西看着只是“普通以太网上的RDMA”,配置起来却有很多门道。如果交换机丢包、ECMP哈希不均、流控没调好,训练时AllReduce带宽就会骤降,甚至出现“一个人坐下整个集群等网络”的现象。昇腾集群的建设经验里,我见过不少团队把精力都放在调模型,结果发现网络是瓶颈。所以如果你是自建昇腾集群,网络交换机选型和RoCE调优的地位,不亚于选910C还是910B。

3.3 从模型并行维度看集群扩展

互连决定了你能用什么并行策略。A100/A800那代,很多人用8卡张量并行跑千亿模型,因为NVLink带宽够;到了H200,显存大了,甚至可以用更少的卡跑更大的模型。B300的1.8TB/s互连,意味着在八卡甚至几十卡范围内做张量并行、序列并行时,通信压力会更小。

昇腾910B因为单卡显存和互连相对有限,我建议优先用数据并行加流水线并行,必要的时候才用张量并行,因为张量并行对卡间通信要求最高。910C把显存和HCCS带宽都提高了,张量并行才变得比较实用。一个很朴素的原则: 在两卡之间搬数据比在两台服务器之间搬数据便宜得多 。所以优先选单机卡数多、单卡显存大的配置,能有效降低网络复杂度。

4. 软件生态:真正决定你能不能落地的因素

4.1 CUDA、Megatron、DeepSpeed和vLLM已经绑在一起

英伟达真正的护城河不是硬件,是CUDA生态。你拉一个PyTorch镜像,装好CUDA、cuDNN、NCCL,马上能跑PyTorch原生代码;Megatron-LM、DeepSpeed、vLLM、Triton这些主流框架也都是优先适配CUDA。遇到性能问题,GitHub上随便一搜就能找到别人踩坑的记录。这种“闭着眼睛能跑”的体验,是任何AI加速卡替代品短期内很难完全复制的。

选A100、A800、H200、B300这类卡时,你基本不需要担心框架适配。更实际的工作是选合适的CUDA版本和PyTorch版本组合。比如新卡刚发布时,旧版CUDA可能不识别,甚至算的是错的,一定要看官方Release Note。很多翻车事故不是卡的问题,是系统里CUDA版本和显卡驱动对不上。

4.2 昇腾的CANN、MindSpore与torch_npu适配现状

昇腾的软件栈核心是CANN,相当于英伟达的CUDA + cuDNN + NCCL的合体。早期用昇腾开发很痛苦,很多算子要手工改成CANN的接口,或者用MindSpore写一遍。现在情况好了一些,PyTorch模型可以通过torch_npu插件迁移到昇腾上,主流的训练脚本改动量可以控制在很小的范围。

但“能跑”和“跑得快”是两回事。torch_npu只是把PyTorch算子翻译成CANN指令,如果模型里用了昇腾算子库没有覆盖的特殊算子,性能就会断崖式下降。vLLM也有昇腾的适配分支,推理场景的兼容性明显比训练场景好。昇腾310P3这类推理卡我接触得更多,它本身不是训练卡,主要跑INT8/FP16推理,配合MindIE或CANN的推理引擎,部署流程已经比较成熟。

4.3 昇腾NPU跑Swift和Megatron的实战心得

最近很多人问“昇腾NPU能不能直接跑Swift和Megatron组合”。我实测下来可以,但有几个前提。第一,环境里必须装对版本的CANN和torch_npu,最好用官方提供的Docker镜像,否则光编译驱动就能折腾几天;第二,Swift本身是高层次微调框架,它底层会调用PyTorch和torch_npu,所以你的模型里不能有太过冷门的自定义算子;第三,Megatron这类框架跑大规模并行时,需要手动确认通信后端是HCCL而不是NCCL,否则默认走了错误的通信路径。

实际项目里,我用昇腾910B跑过7B/13B模型的LoRA微调,损失曲线和精度都能收敛,训练吞吐大概能发挥到标称算力的六成到七成。如果一上来就堆几千张卡做超大集群,那就要做专门的算子优化和通信调优。我的经验是:单机或者少量机架的昇腾集群,已经能满足不少微调和推理需求;但如果你要追求SOTA级别的大规模预训练效率,现阶段还是英伟达生态更省心。

5. 场景选型:训练、推理、混合负载的三张决策清单

5.1 预训练:优先问显存、带宽和互联

预训练大模型时,你的核心矛盾是“显存不够放权重和优化器状态”和“通信太慢等AllReduce”。这两个问题直接指向三件事:单卡显存总量、显存带宽、卡间互连。

如果目标是百亿级模型做全量预训练,A100/A800显存太紧,至少需要大量卡做张量并行,通信开销会吃掉不少总算力。H200和昇腾910C更适合在这个规模下当主力,尤其是H200的141GB显存,能让张量并行数不必拉满,减少通信比例。B300当然更强,但前提是机房散热、供电和网络都配套,否则买了也跑不满。

一个实用测算方法:把模型参数量乘2字节(FP16)作为权重,再算上梯度和优化器状态,通常还要再乘3-4倍,才是你需要的总显存。比如70B模型FP16,权重140GB,Adam优化器状态可能还要再加几百GB,单卡再多也难,必须用ZeRO或流水线并行打散。先把这套账算清楚,再决定是买大显存卡,还是买更多卡。

5.2 推理:别用训练卡的标准买推理卡

推理场景和训练完全是两种逻辑。推理时显存主要用于存权重和KV Cache,算力反而是“够用就好”。A100/A800虽然是上一代卡,但在中低并发、大batch推理上依然很稳;H200的4.8TB/s带宽和141GB显存,让它成为长上下文、高并发服务的明星卡;B300的FP4路径则更适合已经把模型量化到FP4的重负载推理。

昇腾910B/910C在推理侧的性价比也在提升,只要你模型里常用算子都能被CANN覆盖,量化到INT8之后吞吐完全可以接受。昇腾310P3则是另一个思路,专走轻量级推理和边缘场景,不追求大模型,而是追求低功耗、高密度。

推理选型时最重要的不是“这张卡有多快”,而是“你打算用什么精度跑模型”。如果你的模型是FP16,买一张B300很可能发挥不出FP4算力优势;如果你的业务能吃FP8/INT8量化,那H200的FP8算力或者昇腾的INT8算力才算真正用上。

5.3 实际项目中的两种组合方案

方案一:英伟达生态为主线。用H200做核心训练和长上下文推理,B300留给FP4量化的超大规模推理,A100/A800做开发和测试环境,成本低、兼容性好。这套方案的风险主要是单卡功耗高,需要提前评估机房液冷。

方案二:昇腾为主线。用910C做训练主力,910B做推理和微调,配合RoCE网络和CANN工具链,适合对软件栈自主可控要求高的用户。这套方案要接受的是算子兼容性和性能调优成本。混合方案也可以,比如训练用英伟达、推理用昇腾,但前提是你的模型导出和量化流程在两套生态上都能跑通,否则上线时会很痛苦。

6. 常见问题与避坑清单

6.1 显存不够用:先软调再换卡

很多人刚上手就发现“一张卡装不下模型”,第一反应是换更大显存的卡。其实很多情况先用软件手段解决更划算。ZeRO把优化器状态分页打散到多卡,梯度累积可以减小batch而不影响收敛,激活值重计算用算力换显存,张量并行把权重拆到多卡上,这些组合起来,往往能让A100 80GB也跑起70B模型的微调。

当然,软调有上限。如果模型权重本身就超过所有卡的总显存,那只有两条路:换更大显存的卡,或者把模型量化到更低精度。我的习惯是先在配置低的卡上把小规模流程跑通,再逐步加卡,避免一上来就买一堆B300然后发现代码根本装不起来。

6.2 驱动、算子兼容性和固件坑

A100/A800这类卡的问题集中在驱动和CUDA版本。别以为装个最新驱动就万事大吉,新驱动不一定兼容旧卡,旧驱动又不识别新卡。稳妥做法是查官方“驱动- CUDA - PyTorch”兼容矩阵,再装对应容器镜像,比如NVIDIA官方NGC容器通常已经配好。

昇腾卡的问题更明显:算子缺失和固件版本不匹配。有时候同样的代码在910B上能跑,放到910C上报算子不支持,因为CANN对不同芯片的算子库并不完全一致。我的建议是拿到卡以后,先把要用的模型所有算子跑一遍算子兼容性检查,再开始真正训练。昇腾310P3这类推理卡则要特别注意输入数据的Layout和精度,AIPP和DVPP处理流程会直接影响最终精度。

6.3 二手A100/A800验卡实操

二手A100/A800市场很活跃,但坑也最多。第一,用 nvidia-smi -q 看卡的产品名,A100就是A100,A800就是A800,如果显示被魔改,大概率有问题。第二,看内存健康状态,用 nvidia-smi -q -d MEMORY 查看ECC错误计数,如果报错持续增长,这张卡离坏不远。第三,做长时间压力测试,跑 gpu-burn 或者大矩阵乘法几小时,同时观察有没有掉卡、温度突跳、显存ECC飙升。

还有一个容易忽略的点:确认PCIe链路速率。如果卡插在x8槽或老主板上,实际带宽会打骨折,算力再高也是白搭。用 nvidia-smi topo -m 看拓扑,再结合NCCL测试看卡间通信带宽,才能确认这张卡在你的服务器上是“满血状态”。

6.4 昇腾卡精度与量化:从FP16到INT8/FP8

昇腾卡的精度选择直接影响效果。910A/910B早期最常用的是FP16混合精度训练,主权重保存在FP32,前反向用FP16,这是最稳妥的组合。到了910C,虽然算力更强,但如果不熟悉混合精度,直接用FP16可能会遇到loss震荡。

推理侧,昇腾310P3这类卡的主战场是INT8量化。INT8量化不是简单把模型权重截断到-128到127,而是要做校准,选代表性数据集,统计每层激活值的动态范围,再决定scale值。很多团队在昇腾上跑INT8推理精度下降,就是因为校准集选得太随意,或者模型里某些层对量化极度敏感。无论选昇腾还是英伟达,FP8/INT8量化都需要先做效果评估,再整体上线。

最后分享一点个人经验:参数表上的数字,永远不如你先拿自己模型跑一轮基准测试靠谱。同样是标称376 TFLOPS,跑不同模型、不同并行策略、不同框架版本,结果能差出30%以上。如果有条件,不管选H200、B300还是昇腾910C,都先借几台机器,用你自己的数据和代码实测一周,再决定要不要大批量采购。我见过太多团队被“最强算力”四个字打动,买回来以后才发现散热、带宽、软件适配全是坑。算力这件事,适合自己的负载才是真的够用。

更多推荐