【文/观察者网 吕栋】
毫无疑问,英伟达是这波AI浪潮的最大赢家。截至3月5日收盘,这家美国GPU巨头的市值已经暴涨到2.15万亿美元(约合人民币15.48万亿元),仅次于微软和苹果,排名美股第三。
在很多吃瓜群众看来,英伟达之所以能最先吃到AI大模型的蛋糕,自家的GPU功不可没,这确实没错。但实际上,GPU之上,英伟达花费近20年打造的CUDA生态护城河,也不可或缺。
所谓CUDA,全称是Compute Unified Device Architecture(统一计算设备架构)。它是一种基于GPU的通用计算框架。简单来说,CUDA让英伟达的GPU不仅可以处理图形任务,也可以处理科学计算、机器学习等复杂耗时的并行计算,以及为AI大模型训练、推理提供算力。
长期以来,英伟达GPU和CUDA的高效结合,吸引了数百万开发者为其开发程序。
由此,英伟达打造了深厚的CUDA生态壁垒。以至于如今新的GPU玩家入局时,首先考虑的就是如何兼容CUDA,否则将会给用户和开发者带来很高的学习成本。有外媒在评论英伟达时直言,身为行业领导者有利也有弊,“一方面大家依赖你,另一方面也想站在你的肩膀上。”
对于新进者而言,兼容CUDA主要有两种方式:重新编译代码和使用转换层(translation layers)。
相对来说,使用像ZLUDA这样的转换层,在非英伟达硬件上兼容CUDA是最便捷的途径。尽管英特尔和AMD出于法律层面的考虑不再进一步开发ZLUDA,但这种技术仍然具有可行性。
在一些分析看来,当转换工具未成气候时,英伟达可能会睁一只眼闭一只眼。但当越来越多公司涌入GPU领域,甚至威胁到英伟达在AI加速计算领域的霸权时,英伟达便会采取行动。
日前有国外软件工程师发现,英伟达在CUDA 11.6及更高版本的EULA(最终用户许可协议)中的某条款明确提到:“您不能逆向工程、反编译或反汇编使用此SDK生成的任何结果,并在非英伟达平台上进行转译。”这句话在CUDA 11.4和11.5版本的安装EULA中并不存在。
英伟达CEO黄仁勋
基于此,国外科技媒体Tom's Hardware认为,英伟达针对CUDA的限制,似乎旨在阻止英特尔和AMD参与的ZLUDA等项目,“或许更关键的是,(为了防止)一些中国GPU制造商借助转换层利用CUDA代码。”
这篇报道提到,中国GPU企业登临科技设计的处理器,具有“与CUDA/OpenCL等编程模型兼容的计算架构”,并称如果考虑到逆向工程的难度(除非已掌握有关英伟达GPU架构的所有底层细节),很可能采用了某种转换层技术。该报道还提及另一家中国CPU创企摩尔线程,并称其MUSIFY转换工具旨在兼容CUDA,并怀疑摩尔线程可能涉及移植代码。
有行业人士告诉观察者网,CUDA本身是闭源的,没有授权企业可以使用,通过转换层直接使用英伟达CUDA的源代码,会涉及知识产权方面的法律风险。
但很快,摩尔线程便发布了澄清声明,强调摩尔线程MUSA/MUSIFY不涉及英伟达EULA相关条款,“开发者可放心使用”。
摩尔线程表示,MUSA是该公司自主研发、拥有全部知识产权、软硬一体的全功能GPU先进计算统一系统架构,与CUDA无任何依赖关系。MUSIFY是摩尔线程面向广大MUSA开发者提供的开发工具,方便用户在MUSA计算平台上进行应用移植与开发,可以让开发者将自己的C++源代码,转换成MUSA C++源代码,再通过MUSA编译器MCC编译生成基于MUSA指令集的二进制代码,最终运行在摩尔线程全功能GPU上。
换句话说,摩尔线程否认了移植CUDA代码。有摩尔线程内部人士向观察者网表示,该公司是将开发者原本的C++代码转换成MUSA语言,基本属于重新编译代码,“我们要重新建立一个规则和CUDA类似的MUSA系统,还要专门去移植算子库,软件团队工作量会很大,但这样效率很高,对开发者很有帮助。”
另一家国内GPU创企壁仞科技也向观察者网透露,BIRENSUPA软件开发平台是壁仞科技自主研发的软件开发平台,从底层架构、指令集到编译层工具均为自主研发,与此次报道无关。
有行业人士坦言,英伟达此举并非主要针对中国企业,而是想针对ZLUDA,这种方案直接使用了英伟达的源代码,“如果这么轻易就可以让英伟达的代码跑在别家的GPU上,那英伟达的生态壁垒就不复存在了。”
需要指出的一点是,英伟达最新动作并非禁止兼容CUDA,而只是禁止通过转换层利用CUDA代码,也就是提高了兼容CUDA的难度。Tom's Hardware的报道也提到,重新编译现有的CUDA程序仍然完全合法。为了简化这一点,AMD和英特尔都有工具分别将CUDA程序移植到他们的 ROCm( 1 ) 和OpenAPI平台。
对英伟达来说,尽管通过转换层使用CUDA代码可能有法律依据,但升级兼容难度可能也是一把双刃剑。
前述外媒指出,随着AMD、英特尔、Tenstorrent和其他公司开发出更好的硬件,更多的软件开发人员将倾向于为这些平台进行设计,而英伟达的CUDA主导地位可能会随着时间的推移而减弱。
此外,专门为特定处理器开发和编译的程序,将不可避免地比通过转换层运行的软件运行得更好,这意味着如果能够吸引软件开发人员加入的话,AMD、英特尔、Tenstorrent和其他公司能够在与英伟达的竞争中获得更好的竞争地位。