作者 | zer0
编辑 |沙漠之影
兼容CUDA,打不通?
新熙网3月6日报道称,据外媒报道,英伟达已禁止使用翻译层在其他GPU上运行CUDA软件。
自 2021 年以来,NVIDIA 在其许可条款中明确禁止使用翻译层在其他硬件平台上运行基于 CUDA 的软件。 软件工程师@longhorn发现这个“禁令”已被添加到 CUDA 11 的安装中最终用户许可协议 (EULA) 中包含 6 及更高版本。
英伟达 CUDA 11EULA 6 及更高版本有一个限制性条款:“您不得对使用此 SDK 生成的任何结果进行反向工程、反编译或反汇编,并在非 NVIDIA 平台上进行翻译。 ”
与 NVIDIA CUDA EULA 相关的限制截图。
EULA 链接:
一石激起千浪。 GPU行业长期饱受“CUDA依赖”之苦,NVIDIA多年不断巩固的CUDA生态墙犹如铁墙,是其他GPU新秀难以匹敌的关键壁垒。 为了迎合市场需求,一些非NVIDIA GPU平台选择兼容CUDA,站在NVIDIA生态的肩膀上,拥抱GPU开发者。
这一消息引发了一场讨论:CUDA兼容性禁令意味着什么? 是否会对国内GPU企业产生不利影响?
对此,北京GPU独角兽公司Moore Threads发表声明澄清:“Moore Threads Musa Musify不涉及NVIDIA EULA的相关条款,开发者可以放心使用。 ”
Moore Threads的部分澄清声明截图。
根据 Tom's Hardware 的说法,与 CUDA 兼容有两种常见做法:重新 编译**(可供相应程序的开发人员使用),使用平移层
其中第一个符合重新编译现有 CUDA 程序的做法。 AMD 和 Intel 都有工具可以分别将 CUDA 程序迁移到其 ROCM 和 OpenAPI 平台。 国内一些GPU公司也采用了类似的兼容性思路。
EULA 条款主要禁止使用 Zluda 开源库等翻译层。 外媒称,这是在非NVIDIA硬件上运行CUDA程序的最简单方法。
英特尔和AMD此前都支持Zluda项目,但随后都停止了。 Zluda 利用 ROCM 技术栈实现 CUDA 应用程序的二进制兼容性,使 CUDA 应用程序无需修改即可在 AMD 硬件平台上运行**。
开发者之所以长期致力于NVIDIA GPU,是因为CUDA好用,与NVIDIA GPU硬件的软硬件配合也是最好的,无需换新平台重新开始,其他平台可能存在潜在bug。
不过,如果CUDA可以在其他硬件上运行,虽然会有一定的性能损失,但缩小与NVIDIA的生态差距已经相当有利了。 这将在一定程度上威胁到英伟达在加速计算领域的霸主地位,英伟达做出限制也就不足为奇了。
随着生成式AI越来越普及,被视为英伟达GPU护城河的CUDA的兼容性成为热门话题。
去年在纽约举行的一次活动中,英特尔首席执行官亨利·基辛格(Henry Gelsinger)称赞了CUDA技术,同时承认“整个行业都在积极淘汰CUDA市场”。
当时,他引用了MLIR、Google、OpenAI和其他例子,表明他们正在转向“Pythonic编程层”,以使AI训练更加开放。 他认为,“CUDA的护城河又浅又小”,它的主导地位不会永远持续下去,因为该行业有动力将更广泛的技术带入广泛的培训、创新、数据科学等领域。
AMD首席执行官苏姿丰在去年的一次采访中表示,她不相信护城河,在她看来,过去,开发人员倾向于使用硬件特定的软件,但展望未来,每个人都在寻求构建与硬件无关的软件功能,人们希望确保他们能够从一个基础设施迁移到另一个基础设施, 因此,这些更高级别的软件正在构建中。
上个月,硅谷芯片架构之神吉姆·凯勒(Jim Keller)也在社交平台上抱怨:“CUDA是沼泽,而不是护城河。 他抱怨编写 CUDA 的效率低下,Triton、Tensor RT、Neon 和 Mojo 的存在是有充分理由的。
可以说,AI芯片和GPU领域长期遭受苦难,业界对这种封闭的生态圈怨声载道。 与CUDA的兼容性只是权宜之计,芯片制造商或具有长期野心的初创公司正在构建自己的软件生态系统,并支持更开放的生态系统。
开源编程语言,如 OpenAI Triton,正在成为对抗 CUDA 封闭阵营的关键力量,通过大大简化 GPU 加速编程过程并显着减少编译新硬件所需的工作量来减少开发人员对 CUDA 的依赖。
与此同时,随着GPU短缺变得更加严重,迫切需要更多计算能力的人工智能公司可能会越来越多地考虑AMD和英特尔等竞争对手的替代品。 随着他们卷起袖子推出更强大、更具成本效益的 GPU,英伟达的霸主地位将受到挑战。
从业务决策的角度来看,NVIDIA不断创新,着眼于解决复杂的视觉计算问题,有充分的理由捍卫其长期存在的知识产权和业务成果,以便客户及其生态系统能够更牢固地结合在一起。