3月5日消息, NVIDIA在新许可条款中禁止使用翻译层在其他硬件平台上运行基于CUDA的软件,不得逆向工程/反编译/反汇编(出现在CUDA11.5的条款中)。外媒指出,该限制条款是在阻止英特尔和AMD参与的ZLUDA计划。
英伟达凭借其GPU硬件+CUDA生态+NVink综合优势垄断了AI算力90%以上的市场,其最大的竞争优势是CUDA生态,此次收紧也是进一步限制行业竞争对手借力后续翻译转换类兼容方式或将逐步断绝,中小AI算力芯片厂商差距进一步拉大。
自 2021 年以来,NVIDIA已禁止在其在线列出的许可条款中使用翻译层在其他硬件平台上运行基于 CUDA 的软件,但该警告之前未包含在安装过程中放置在主机系统上的文档中。现在,禁用条款已添加到安装 CUDA 11.6 及更高版本的 EULA 中。
这一限制似乎是为了阻止像ZLUDA这样的计划,英特尔和AMD最近都参与了这些计划,也许更关键的是,一些GPU制造商将CUDA代码与翻译层结合使用。
软件工程师Longhorn注意到了这些术语。“您不得对使用 SDK 元素生成的输出的任何部分进行逆向工程、反编译或反汇编,以便将此类输出工件转换为面向非 NVIDIA 平台。“
该条款在随 CUDA 11.4 和 11.5 版本一起安装的 EULA 文档中不存在,此之前的所有版本中都没有。但是,它存在于版本 11.6 及更高版本的已安装文档中。
由于 CUDA 和 Nvidia 硬件的组合已被证明非常高效,因此大量程序都依赖它。然而,随着更具竞争力的硬件进入市场,越来越多的用户倾向于在竞争平台上运行 CUDA 程序。有两种方法可以做到这一点:重新编译代码(可供相应程序的开发人员使用)或使用转换层。
出于显而易见的原因,使用像 ZLUDA 这样的转换层是在非 Nvidia 硬件上运行 CUDA 程序的最简单方法。所要做的就是获取已经编译好的二进制文件,并使用 ZLUDA 或其他转换层运行它们。
ZLUDA现在似乎正在挣扎,AMD和英特尔都放弃了进一步开发它的机会,但这并不意味着转换不可行。
使用转换层威胁到英伟达在加速计算领域的霸主地位,尤其是在人工智能应用方面,这可能是 Nvidia 决定禁止使用翻译层在其他硬件平台上运行其 CUDA 应用程序背后的动力。
重新编译现有的 CUDA 程序仍然是完全合法的。为了简化这一点,AMD 和 Intel 都有工具将 CUDA 程序分别移植到他们的 ROCm (1) 和 OpenAPI 平台。
随着 AMD、英特尔、Tenstorrent 和其他公司开发更好的硬件,更多的软件开发人员将倾向于为这些平台进行设计,而 Nvidia 的 CUDA 主导地位可能会随着时间的推移而减弱。此外,专门为特定处理器开发和编译的程序将不可避免地比通过翻译层运行的软件运行得更好,这意味着AMD、英特尔、Tenstorrent 和其他公司在与 Nvidia 的竞争中处于更好的地位,前提是如果他们能够让软件开发人员参与进来。GPGPU 仍然是一个重要且竞争激烈的领域。
全部评论