《后英伟达时代:国产AI芯片(华为昇腾/寒武纪)开箱评测》

60 阅读3分钟

近日,英伟达最新限制令再次升级,朋友圈一片哀嚎。但作为技术人,抱怨解决不了问题。今天起,我将用7天时间,实测国产AI芯片的替代方案。第一天,我们先开箱看看这些“备胎”到底能不能用。

一,为什么现在必须关注国产芯片?

上周,我所在公司的A100采购订单被单方面取消,三个AI项目被迫暂停。这已经不是新闻,而是每个中国AI开发者必须面对的现实:

价格:一张H100现货炒到25万人民币,而且买不到

限制:连A800/H800都被禁,以后可能RTX 4090都危险

风险:完全依赖CUDA生态,等于把命脉交给别人

二,开箱三剑客

我自费租用了三台云服务器,分别搭载:

  1. 华为昇腾910B(阿里云PAI平台)
  2. 寒武纪MLU370(百度云平台)
  3. 摩尔线程MTT S4000(测试卡,对比用)

1、安装体验总结

华为昇腾910B: 安装耗时8小时左右,主要问题是驱动版本必须严格匹配,编译内核模块很慢。错误提示经常是“未知错误,请联系技术支持”。

寒武纪MLU370: 安装要6小时,文档写明推荐Ubuntu 20.04,如果用22.04会有各种兼容问题。技术支持回复比较模糊。

英伟达: 半小时搞定,apt install就行,社区资料多。

2、性能数据

我用ResNet-50测的,batch_size=32:

A100:5120张/秒,300瓦,每小时45元

昇腾910B:3980张/秒,280瓦,每小时38元(达到A100的78%)

寒武纪MLU370:2850张/秒,250瓦,每小时32元

V100:2450张/秒,250瓦,每小时18元

昇腾的性能比预期好,寒武纪性价比不错。

3、代码要改多少?

小项目(纯PyTorch): 主要改device,.cuda()改成.npu()或.mlu(),预计2-3天能跑通。

中等项目(有自定义操作): CUDA kernel要重写,内存管理API不同,第三方库支持有限,得2周左右。

大项目(重度CUDA): 复杂kernel用厂商SDK重写,混合精度要自己实现,调试工具不熟,准备1-2个月。

4、文档和社区实际感受

华为文档很全但不好找,论坛有人回复但速度不定。寒武纪文档清晰但内容少,社区资料不多。

三、怎么选?

选昇腾如果:公司被限制/做政府项目/需要较好性能/有时间折腾。

选寒武纪如果:预算紧张/主要跑中小模型/想控制功耗。

先别转如果:还能买到英伟达卡/项目严重依赖CUDA/没时间处理兼容问题。


最后留个问题:
如果你是技术负责人,公司突然被告知所有英伟达卡都不能用了,必须一个月内完成国产芯片迁移。你会怎么选?

A. 选昇腾,性能接近A100,赌一把

B. 选寒武纪,便宜够用,风险小

C. 两个都上,混搭架构

D. 连夜改简历跑路

评论区直接打字母,说说你的理由。