原文:
(1)文/观察者网 吕栋,英伟达禁止通过转换层兼容CUDA,针对中国企业?-观察者网
(2)文/界面新闻 彭新 英伟达禁止第三方公司兼容CUDA?相关公司回应|界面新闻 · 科技 (jiemian.com)
1.英伟达的CUDA生态护城河
CUDA(Compute Unified Device Architecture,统一计算设备架构)是英伟达于2006年推出的一种基于GPU的通用计算框架。简单来说,CUDA让英伟达的GPU不仅可以处理图形任务,也可以处理科学计算、机器学习等复杂耗时的并行计算,以及为AI大模型训练、推理提供算力。
长期以来,英伟达GPU和CUDA的高效结合,吸引了数百万开发者为其开发程序。由此,英伟达打造了深厚的CUDA生态壁垒。以至于如今新的GPU玩家入局时,首先考虑的就是如何兼容CUDA,否则将会给用户和开发者带来很高的学习成本。
对于新进者而言,兼容CUDA主要有两种方式:重新编译代码和使用转换层(translation layers)。相对来说,使用像ZLUDA这样的转换层,在非英伟达硬件上兼容CUDA是最便捷的途径。
ZLUDA,是一部分海外开发者尝试在英特尔、AMD硬件上运行CUDA应用的软件项目。该项目尝试打破英伟达的CUDA生态壁垒,允许CUDA应用无需修改源代码即可在第三方硬件上运行,并一度得到英特尔、AMD的支持。但随着英特尔、AMD转向支持自有软件平台,ZLUDA项目运转举步维艰,该项目于今年初开源。
一直以来,对于如何将CUDA应用迁移到第三方硬件平台,是英伟达对手们的一个难点。
此前,英特尔和AMD分别推出了OneAPI和ROCm,提供类似CUDA功能。两大芯片厂商都希望通过搭建生态系统以及提供更便捷的迁移工具,试图将英伟达的客户吸引过来。
在国内,目前一部分国产GPU厂商采取兼容CUDA的策略,以确保用惯了英伟达产品的客户在迁移时没有障碍。另外也有厂商着手培育自己的软件生态,其中包括摩尔线程、壁仞科技、登临科技等。如摩尔线程推出基于旗下GPU产品的“MUSA”软件架构。
2.英伟达提高兼容难度
日前有国外软件工程师发现,英伟达在CUDA 11.6及更高版本的EULA(最终用户许可协议)中的某条款明确提到:“您不能逆向工程、反编译或反汇编使用此SDK生成的任何结果,并在非英伟达平台上进行转译。”这句话在CUDA 11.4和11.5版本的安装EULA中并不存在。
有熟悉国内GPU市场的投资人向界面新闻记者解释,原本英伟达的开发工具就不被允许用在非英伟达产品上,只是之前AMD放弃资助ZLUDA项目,并将这个项目变成开源以后,再侧面强调一次而已。他进一步称,此次英伟达在CUDA软件中更新的条款,实质上没有更新任何东西。
3.中国企业被怀疑
基于此,国外科技媒体Tom's Hardware认为,英伟达针对CUDA的限制,似乎旨在阻止英特尔和AMD参与的ZLUDA等项目,“或许更关键的是,(为了防止)一些中国GPU制造商借助转换层利用CUDA代码。”
这篇报道提到,中国GPU企业登临科技设计的处理器,具有“与CUDA/OpenCL等编程模型兼容的计算架构”,并称如果考虑到逆向工程的难度(除非已掌握有关英伟达GPU架构的所有底层细节),很可能采用了某种转换层技术。
该报道还提及另一家中国GPU创企摩尔线程,并称其MUSIFY转换工具旨在兼容CUDA,并怀疑摩尔线程可能涉及移植代码。
有行业人士告诉观察者网,CUDA本身是闭源的,没有授权企业可以使用,通过转换层直接使用英伟达CUDA的源代码,会涉及知识产权方面的法律风险。
4.中国企业否认移植CUDA代码
但很快,摩尔线程便发布声明,否认移植CUDA代码。摩尔线程表示,MUSA是该公司自主研发、拥有全部知识产权、软硬一体的全功能GPU先进计算统一系统架构,与CUDA无任何依赖关系。MUSIFY是摩尔线程面向广大MUSA开发者提供的开发工具,方便用户在MUSA计算平台上进行应用移植与开发,可以让开发者将自己的C++源代码,转换成MUSA C++源代码,再通过MUSA编译器MCC编译生成基于MUSA指令集的二进制代码,最终运行在摩尔线程全功能GPU上。
另一家国内GPU创企壁仞科技也向观察者网透露,BIRENSUPA软件开发平台是壁仞科技自主研发的软件开发平台,从底层架构、指令集到编译层工具均为自主研发,与此次报道无关。
5.提高兼容难度是一把双刃剑
需要指出的一点是,英伟达最新动作并非禁止兼容CUDA,而只是禁止通过转换层利用CUDA代码,也就是提高了兼容CUDA的难度。Tom's Hardware的报道也提到,重新编译现有的CUDA程序仍然完全合法。为了简化这一点,AMD和英特尔都有工具分别将CUDA程序移植到他们的ROCm和OpenAPI平台。
对英伟达来说,尽管禁止通过转换层使用CUDA代码可能有法律依据,但升级兼容难度也是一把双刃剑。
前述外媒指出,随着AMD、英特尔、Tenstorrent和其他公司开发出更好的硬件,更多的软件开发人员将倾向于为这些平台进行设计,而英伟达的CUDA主导地位可能会随着时间的推移而减弱。
此外,专门为特定处理器开发和编译的程序,将不可避免地比通过转换层运行的软件运行得更好,这意味着如果能够吸引软件开发人员加入的话,AMD、英特尔、Tenstorrent和其他公司能够在与英伟达的竞争中获得更好的竞争地位。