“CUDA不再是铜墙铁壁。”这话出自AMD高级副总裁、计算与图形事业部总经理Jack Huynh之口。在台北电脑展的后续采访中,他直接向NVIDIA开炮:“开发者会发现,从CUDA迁移到ROCm,比想象中简单得多。”
这是AMD多年来对CUDA生态最直白、最自信的一次表态。背后的底气,来自ROCm 6.2软件栈的成熟,以及MI300X/MI400系列硬件的大规模部署。AMD正在告诉世界:英伟达的护城河,我们已经在填了。
CUDA的“护城河”神话
过去十年,CUDA(NVIDIA统一计算设备架构)被公认为AI芯片领域最深的护城河。超过500万开发者、数千个加速库、几乎全部AI框架原生支持——任何想挑战英伟达的对手,都要面对“CUDA兼容性”这堵墙。
AMD、Intel、以及一众AI芯片初创公司,都试图用“兼容CUDA”来曲线救国。但AMD现在换了个打法:不再追求二进制兼容,而是让ROCm生态足够好,好到开发者愿意主动迁移。
AMD凭什么说“优势已不大”?
- 硬件性能持平或反超
MI300X在HBM容量(192GB)和带宽(5.2TB/s)上已经领先H100,而MI400系列(预计2025年底发布)将进一步提升。跑大模型,AMD不缺算力。 - ROCm 6.2:填补关键短板
过去ROCm最大的问题是:缺少类似cuDNN、cuBLAS的高性能库,且PyTorch/TensorFlow支持滞后。
ROCm 6.2解决了: - 新增 hipBLASLt、rocFFT等优化库,在LLM训练上性能接近CUDA 95%
- PyTorch 2.x原生支持ROCm,一键安装(不再需要手动编译)
- 推出 ROCm迁移工具:自动将CUDA代码转换为HIP(AMD的CUDA-like语言),转换成功率官方宣称超过90%
- 生态伙伴站台
- Hugging Face:保证所有Transformers模型在AMD GPU上开箱即用
- OpenAI:已在内部用AMD GPU进行推理实验
- Lambda Labs、CoreWeave等云厂商推出AMD GPU实例,价格比H100低30%
转换到底多简单?AMD给出“三步法”
AMD技术营销总监在演示中,将一颗CUDA程序迁移到ROCm,只用了三个步骤:
- 安装ROCm和PyTorch ROCm版(一行命令)
- 运行迁移脚本:hipify-perl 自动将.cu文件转成.hip文件
- 重新编译:用hipcc替换nvcc,多数情况无需修改代码
现场演示: 一个经典的LLM训练脚本,原本跑在A100上,改了两行import,就在MI300X上跑通了。训练loss曲线几乎重合。
当然,AMD也承认:涉及手写PTX汇编、特定硬件指令的极优化CUDA代码,仍需要人工调整。但这样的代码在AI应用中占比不到5%。
NVIDIA的反击:不急,我还有牌
面对AMD的攻势,NVIDIA并非毫无准备:
- CUDA 12.5新增了对AMD/Intel CPU的优化,但GPU端依然封闭
- 推出 CUDA EULA限制第三方兼容层(如ZLUDA),从法律上打击“模拟CUDA”路线
- 强化 NVIDIA AI Enterprise平台,用“软硬一体化”锁定企业客户
但分析师指出:当AMD的ROCm在性能和易用性上接近CUDA,且价格便宜30%-40%时,云厂商和AI公司必然分流采购。英伟达的护城河,正从“绝对壁垒”退化成“相对优势”。
网友反应:等等党又赢了
- “等AMD能把PyTorch训练做到开箱即用,我就换卡。”
- “问题是很多小公司没有AI工程师,只能用最省事的CUDA。”
- “别光说转换简单,跑起来稳不稳、会不会有坑?”
- “支持竞争!H100卖3万美元太黑了。”
冷静分析:ROCm的“最后一公里”
虽然AMD宣称转换简单,但实际生产中仍有隐忧:
- 调试工具:CUDA有Nsight、Compute Sanitizer,ROCm的调试体验仍粗糙
- 算子覆盖:部分定制CUDA扩展(如FlashAttention v3)尚未在ROCm上完全优化
- 社区习惯:Stack Overflow、GitHub上CUDA问答是ROCm的100倍,遇到bug解决更慢
说白了,技术转换容易,习惯转换难。
谁会先受益?
- 公有云厂商:AWS、Azure、GCP已经在引入AMD GPU实例,给客户多一个低价选择
- AI初创公司:预算敏感,如果AMD实例能跑通模型,每年省下几十万刀
- 学术机构:科研预算有限,更愿意尝试高性价比的AMD方案
总结
AMD说“CUDA优势已不大”,并非口嗨,而是基于ROCm生态的真实进步。
但英伟达的护城河不是一天挖成的,也不可能一夜填平。未来两年,AI芯片市场将从“NVIDIA only”走向“NVIDIA + AMD + 自研”的三足鼎立。
对于开发者来说,好消息是:不需要再死磕CUDA一家了。
坏消息是:你可能要多学一套ROCm。
