ARTICLE · 1257878
我做AI芯片选型这一年学到的事
去年这个时候,我们部门开始认真做AI芯片选型。
在此之前,所有人对芯片的认知就是"英伟达最好,买不到就难受"。但我们面临一个现实:英伟达高端卡进不来,能进来的H20被砍了八成算力还溢价两倍。华为昇腾供货稳定、价格透明,但团队里没几个人用过CANN。寒武纪、摩尔线程、壁仞都在敲门,每家都说"我们已经适配了主流大模型"。
怎么选?不是比参数。参数表上每家公司都写得很好看。
先铺垫几句基础——不然后面的坑看不懂。
不是 GPU 有多聪明,是 GPU 擅长一件事:同时做很多简单的算术。
大模型的本质就是一串巨大的矩阵乘法。Transformer 的每一层,输入是一批 token 的向量,输出是另一批向量,中间全是矩阵乘——Q×K^T、注意力权重×V、全连接层。这些运算不依赖前后结果,可以拆成几千个并行任务同时跑。
CPU 是短跑选手,单核极快但核少。GPU 是万人方阵,几千个小核同时踏步。拿 CPU 跑矩阵乘就像让一个人搬一万块砖,GPU 是让一万个人每人搬一块。对于大模型这种"海量简单运算"的模式,GPU 是天然答案。
顺带一句:这也是为什么内存带宽比算力峰值更重要。矩阵乘从来不是卡在算,是卡在数据搬运。HBM 的带宽决定了每秒钟能喂多少数据给计算单元。一颗 H100 的显存带宽是 3.35TB/s——不够快的通道,算力再强也闲着。
训练要的是:FP16/BF16 算力峰值、大显存(存梯度、优化器状态)、高互联带宽(多卡之间同步梯度)。一块卡不够,几百张卡要像一台机器一样工作。这就是为什么英伟达的 NVLink 是护城河——不是单卡有多强,是卡之间通信有多快。
推理要的是:INT8/FP8 吞吐、低延迟、低功耗、低成本。能并行处理的都并行,不需要训练那种卡间通信。推理芯片可以做减法——砍掉训练才需要的精度、互联、显存规格,换来更低的单价和功耗。
一个日常例子:跑一个 70B 参数的模型做推理,纯 FP16 大概需要 140GB 显存放权重。但你不需要一张 140GB 的卡——量化到 INT8、拆分到多张卡、batch 优化,一张 96GB 的 HBM 卡也能跑。所以推理端,性价比才是核心指标。
英伟达的训练生态(CUDA)是所有人的护城河。但在推理场景,昇腾 950PR 的 Token 吞吐已经是 H20 的 1.8 倍,单价是三分之一。推理专用芯片(Groq 的 LPU 等)在极致时延下更有优势,但国内不好拿。
一个很实用的粗略公式:
并发数 × 单次推理耗时 × 单卡吞吐 = 需要多少张卡
展开三步:
第一步,算单次推理耗时。 假设你的应用每次问答大概 500 个 token 输入 + 200 个 token 输出。不同芯片跑同一个模型,耗时差很多——英伟达 H100 可能 0.3 秒,昇腾 910B 可能 0.5 秒。这是要去测的。
第二步,算并发。 你的应用同时有多少人在用?客服助手可能 100 并发,风控打分可能 1000 并发。Agent 调用更复杂——一次任务可能触发 10-30 次推理往返,实际并发要乘一个系数。
第三步,算卡数。 一张卡每秒钟能处理几个请求?假设单卡吞吐 10 req/s,你需要支撑 500 并发,那就需要 50 张卡。再加上 20% 的余量应对波峰,60 张。
推理成本的快速估算:一张昇腾 910B 单价约 3 万,跑 70B 模型时每秒大概产出 50-80 个 token。按 50 token/s 算,一分钟 3000 token,一小时 18 万 token,一天 432 万 token。一张卡一天的电费大概几十块。算到每百万 token 的成本,国产方案大概 2-4 元,英伟达方案 6-10 元。这个差距在你日调用量过千万的时候会非常可观。
一开始我也犯了这个错。让IT部门拉了三家供应商的报价单,对照算力、显存、功耗列了个Excel。哪个性价比高选哪个——典型的IT采购思维。
很快发现不对。
同一个模型跑在三家芯片上,同样是FP16推理,出来的结果不完全一样。不是算错,是算的方式不一样。有的芯片对某些算子做了近似优化,有的对长上下文场景的KV Cache管理方式不同。差距不大,但对金融场景——风控的校准曲线偏两个点就是事故。
芯片不是显示器,不是买回来插上就能用。你买的是一套软硬件栈:驱动、编译器、算子库、推理框架适配、监控工具、社区支持。买卡只用了一部分预算,后半段才是真正花钱的地方。
这是最容易犯的错。很多人选芯片盯着训练指标——FP16算力多少T、互联带宽多大、千卡集群效率如何。确实,训练对峰值算力的要求最高。
但实际跑起来呢?
我们部门的情况是:训练大概占20%的算力时间,推理占80%。Agent调用一次任务是几十轮推理往返,客服助手每天几千次问答,风控模型每秒几十笔交易实时打分。训练是烧一阵子,推理是天天烧。
推理需要的不是峰值算力,是高并发下的稳定吞吐和低延迟。一颗训练芯片跑推理,就像用法拉利送外卖——能送,但成本算不过来。
所以后来我们把"训练芯片"和"推理芯片"拆开看。训练用最强的(可以是英伟达存量,可以是昇腾950DT),推理大规模部署时再单独评估。很多国产芯片在推理场景的性价比已经超过英伟达——昇腾在Token吞吐效率上做到H20的1.8倍,价格是三分之一。
有个同行跟我说了一句话,我记到现在:"你们选芯片的时候,有没有把CUDA迁移成本算进去?"
我说没有。他笑了:"那就对了,大家都是后来才补的。"
CUDA生态有400万开发者,CANN大概10万。这不是一个数量级的差距。你们团队的算法工程师多少是用PyTorch+CUDA长大的?让他们换到昇腾上,不是"学一个新框架"的问题——是所有的肌肉记忆都要重写。遇到一个bug,CUDA上Google一搜就有答案,CANN上可能要自己翻源码。
这块成本不好量化,但大致可以这么算:一个会用CUDA的算法工程师,转昇腾后前三个月的产出大概打七折。如果你的团队有10个人,那就是三个月的产出损失。加上项目延期、踩坑回滚——这比芯片单价差要多。
所以选型的真正问题不是"华为行不行",是"你的团队准备好了没有"。
除开通用逻辑,银行还有三件事让选型更复杂。
合规和数据主权。 监管已经在推国产化替代时间表,政务、金融领域有明确的自主可控要求。你今天用的是英伟达,但两年后如果政策收紧,你要不要重新迁移一次?两次迁移的成本比一次大多了。
供应链确定性。 英伟达的卡不是想买就能买到。合规渠道拿H20要排队,非合规渠道价格翻倍还有风险。你的业务等不起。昇腾的交付周期更可控——这是被很多人忽略的硬优势。
混合部署是必然。 没有一家银行会all in一家芯片。存量英伟达继续用,新增负载逐渐上国产,两条线并行。这要求你的模型服务层做抽象——PyTorch和MindSpore双适配,推理框架同时支持CUDA和CANN。这块的工程投入本身就是一个项目。
说结论。
训练端:能用英伟达继续用,但不再追加投入。存量A100/H20集群继续服役,新的训练任务优先在昇腾上验证。华为超节点方案(384卡对等互联)在金融场景的后训练(微调、强化学习)上实测有2.5-3倍性能提升——不是单卡强,是互联架构更适配MoE模型的训练模式。
推理端:大规模推理部署首选国产芯片。Agent多轮交互、长上下文场景下,昇腾的统一内存池(48TB共享)天然比跨服务器以太网通信快。单卡推理吞吐是传统方案的4倍以上。成本是英伟达的1/3到1/2。
底线策略:核心风控模型保留英伟达一条线——不是不相信国产,是金融场景下的"稳"比"快"重要。等国产方案在非核心场景跑满六个月没有精度漂移,再考虑切。
团队准备:已经开始推双栈能力。新招的人要求PyTorch和MindSpore都会。存量团队用项目练兵——不是一下子全换,是每个季度拿一个非关键业务去昇腾上跑通,积累经验。
芯片选型这件事,最后比的不是参数。比的是你对未来三年的判断——供应链往哪走、团队能力往哪长、政策往哪变。参数今天看了明天就过时,但架构决策一做就是三年。你能控制的,是让自己不要被任何一个供应商锁死。
诸葛坦
AI时代的深度思考















































































