英伟达禁止在CUDA软件中使用翻译层

拥抱科技有未来 2024-03-07 10:30:20

自2021年以来,英伟达已在其在线列出的许可条款中禁止在其他硬件平台上使用翻译层运行基于CUDA的软件,但该警告此前并未出现在安装过程中的主机系统上的文档中。如今该内容已被添加到安装CUDA 11.6及更新版本中的EULA(最终用户许可协议)中。

这一限制似乎是为了防止像ZLUDA这样的倡议,英特尔和AMD最近都参与了ZLUDA,也许更关键的是,一些中国GPU制造商使用带有翻译层的CUDA代码。

Longhorn是一名软件工程师,他注意到了这些条款。“您不得对使用SDK元素生成的输出的任何部分进行反向工程、反编译或反汇编,以便将此类翻译输出用于针对非Nvidia的平台。‘

在CUDA 11.4和11.5版本中安装的EULA文档中没有该条款,可能在此之前的所有版本中都没有。但是,它存在于11.6及更新版本的安装文档中。

当领头羊有好的一面也有坏的一面。一方面,每个人都依赖你;另一方面,每个人都想站在你的肩膀上。后者显然就是目前CUDA所发生的情况。由于CUDA和Nvidia硬件的结合已经被证明是非常高效的,大量的程序都依赖于它。

然而,随着越来越多的竞争硬件进入市场,越来越多的用户倾向于在竞争平台上运行他们的CUDA程序。有两种方法可以做到这一点:重新编译代码(可供相应程序的开发人员使用)或使用翻译层。

显而易见的原因是,使用像ZLUDA这样的翻译层是在非Nvidia硬件上运行CUDA程序的最简单方法。你所要做的就是获取已经编译好的二进制文件,并使用ZLUDA或其他翻译层运行它们。ZLUDA现在似乎举步维艰,AMD和英特尔都放弃了进一步开发它的机会,但这并不意味着翻译是不可行的。

几家中国GPU制造商,都声称可以运行CUDA代码。因此,目前还不完全清楚英伟达禁止翻译层是对目前这些模式的直接回应,还是对未来发展的先发制人的打击。

显而易见,使用翻译层会威胁到英伟达在加速计算领域的霸主地位,尤其是在人工智能应用领域。这可能是Nvidia决定禁止在使用翻译层的其他硬件平台上运行他们的CUDA应用程序背后的推动力。

重新编译现有的CUDA程序仍然完全合法。为了简化这一点,AMD和Intel都有工具将CUDA程序分别移植到他们的ROCm和OpenAPI平台上。

随着AMD、英特尔、Tenstorrent和其他公司开发出更好的硬件,更多的软件开发商将倾向于为这些平台展开设计,而英伟达的CUDA主导地位可能会随着时间的推移而减弱。此外,专门为特定处理器开发和编译的程序将不可避免地比通过翻译层运行的软件运行得更好,这意味着AMD、英特尔、Tenstorrent和其他公司在与英伟达的竞争中处于更好的竞争地位——如果能让软件开发人员加入进来的话。

0 阅读:4

拥抱科技有未来

简介:感谢大家的关注