国产卡是如何兼容CUDA的?
发布时间:2026-05-28 10:44:08 作者:超级管理员 点击:1 【 字体:大 中 小 】
都在说CUDA是英伟达最强的护城河,CUDA到底是什么?CUDA是英伟达在2006年推出的并行计算平台,简单说就是一套让程序员把计算任务扔给GPU跑的"语言+工具+规则"。听起来没什么特别,但问题在于,过去二十年,全球AI和深度学习的生态,几乎全部建立在CUDA之上。PyTorch、TensorFlow、各种大模型训练框架,底层都在调用CUDA。全球数百万AI工程师,写的代码默认就是CUDA代码。这套生态的护城河,不是技术本身,而是习惯和惯性。

当前时间节点买了一张国产GPU,性能可能不差,但跑不了CUDA代码,对大多数AI工程师来说,等于买了一台没有软件的电脑。
这是国产GPU厂商必须面对的问题:用户的代码是为CUDA写的,不是为你写的。你让一个工程师把几十万行代码全部重写来适配你的新平台?不现实。所以,怎么让为CUDA写的代码在我的卡上也能跑,成了每家国产GPU厂商都必须回答的问题。
业界大致摸索出了几条路。
第一条,是直接翻译源代码。工具扫描你的CUDA代码,把里面的API调用自动替换成国产平台的对应接口,就像把一本英文书逐字翻译成中文书,然后交给中文读者。华为昇腾的CANN平台提供了这类迁移工具。好处是转换后的代码原生跑在国产卡上,性能损耗小;坏处是翻译不可能百分之百完美,总有些翻不过来,需要工程师手动修改。
第二条,是运行时拦截。不改源代码,而是在程序运行的时候,悄悄拦截所有对CUDA的调用,实时转发给国产GPU的驱动。程序以为自己在调英伟达的库,背后已经被偷梁换柱了。这就像同声传译——你说英文,翻译官在旁边同步翻成中文,对方听到的是中文,整个过程你毫无感知。摩尔线程的MUSA、沐曦的MXMACA走的都是这条路,用户体验好,改动极少甚至零改动,但翻译层本身有性能开销,复杂的CUDA特性也可能翻译不了。
第三条,是干脆重建生态。不翻译,直接重新写一遍。华为的MindSpore框架是这条路的代表,思路最彻底,但现实很骨感——MindSpore的用户量和PyTorch相比差距悬殊,工程师们不愿意学一套新框架,除非被迫。所以这条路更多是长期战略,短期内解决不了兼容问题。
在这几条路之外,有一家公司走了一条完全不同的路,值得单独说说,那就是海光。
海光的DCU系列,底层架构脱胎于AMD,AMD有一套开源的GPU计算平台叫ROCm,其中有个接口叫HIP,HIP的API设计和CUDA高度相似,官方还提供了hipify工具,可以自动把CUDA代码转成HIP代码,转换率相当高。
海光DCU正是基于这套体系,推出了自己的软件栈DTK(DCU Toolkit)。不过在极致性能调优上也不如完全自研的架构灵活。但在短期内,这是国产卡里CUDA兼容性最好的方案之一。
兼容CUDA这个说法,其实是个程度问题,不是非黑即白。
CUDA经过二十年发展,API数量庞大,功能极其复杂。国产厂商的兼容层,通常能覆盖最常用的那20%接口,而这20%能跑通80%的主流模型。但如果你的代码深度依赖NVIDIA特有的硬件特性,比如Tensor Core的特定指令集,兼容层就可能翻车。更准确的说法是:国产卡在主流AI训练和推理场景下,已经能做到较好的CUDA兼容;但在边缘场景和极致性能优化上,仍有差距。
这件事之所以难,根本原因在于CUDA和国产GPU的底层架构存在根本性差异。NVIDIA GPU有自己独特的线程层级模型,国产GPU的硬件架构各不相同,有的更像DSP,有的更像向量处理器,CUDA的很多优化技巧在国产GPU上可能根本没有对应的硬件支持,细腻的表达,注定会丢失。
CUDA的护城河,本质是二十年的生态积累。国产GPU厂商正在做的事,是先用"翻译"让用户能用起来,再慢慢建立自己的生态。这条路很难,但没有捷径。
总投资约50亿!交通银行贵安数据中心正式接入电网
万亿空间!NVIDIA 2027财年第一季度财务报告深度解读!
上新!移动模型服务平台MoMA上架多款千问旗舰模型
GPU显卡驱动如何安装?
极智算算力平台|硬核算力底座,赋能 AI 全域高效落地
全球巨头砸钱超3800亿 工业富联涨停引爆算力板块
总投资24亿!中国银联黄山数据中心园区项目正式通电
GTX显卡和RTX显卡的区别是什么?
AutoDL 算力平台|弹性普惠算力,让 AI 开发零门槛
呼和浩特 H100*8卡 45台 现货出租
