近日,英伟达最新限制令再次升级,朋友圈一片哀嚎。但作为技术人,抱怨解决不了问题。今天起,我将用7天时间,实测国产AI芯片的替代方案。第一天,我们先开箱看看这些“备胎”到底能不能用。
一,为什么现在必须关注国产芯片?
上周,我所在公司的A100采购订单被单方面取消,三个AI项目被迫暂停。这已经不是新闻,而是每个中国AI开发者必须面对的现实:
价格:一张H100现货炒到25万人民币,而且买不到
限制:连A800/H800都被禁,以后可能RTX 4090都危险
风险:完全依赖CUDA生态,等于把命脉交给别人
二,开箱三剑客
我自费租用了三台云服务器,分别搭载:
- 华为昇腾910B(阿里云PAI平台)
- 寒武纪MLU370(百度云平台)
- 摩尔线程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. 连夜改简历跑路
评论区直接打字母,说说你的理由。