核心观点:英伟达CUDA新条款针对ZLUDA等转译软件和相关行为进行限制。我们认为国际主流厂商以及国产算力主力厂商均不依赖ZLUDA,该条款对于国际其他算力方案以及国产算力的实际发展实质影响有限。我们认为国产算力趋势不会改变,且海光/昇腾的生态优势仍然持续,建议关注海光产业链(海光信息/中科曙光)与昇腾产业链。
▍事项:英伟达禁止CUDA转换。根据英伟达CUDA官方文档的信息,英伟达在CUDA的新许可条款规定:不得对CUDA程序进行逆向工程/反编译/反汇编,以将CUDA开发的程序转译到其他非英伟达的硬件平台上运行。(原文:You may not reverse engineer, decompile ordisassemble any portion of the output generated using SDK elements for thepurpose of translating such output artifacts to target a non-NVIDIA platform.)该条款主要指向ZLUDA软件。
▍问答1:到底什么叫兼容CUDA?功能上的兼容,而不是CUDA程序直接不经修改无缝运行。①参考我们2023年11月13日发布的报告《计算机行业“构筑中国科技基石”系列报告27—GPU框架:从ROCm、Pytorch看生态壁垒》,目前国内外主流算力芯片厂商普遍采用自行构建的代码和软件架构,实现与CUDA一致的功能即可,而并非是无需任何软件调整、直接无缝运行CUDA程序。②目前虽然各家都试图兼容CUDA,但具体措施都是将CUDA程序预先完整翻译成自家程序,然后再利用自家的卡,运行翻译过来的自家程序。这方面的典型比如AMD的HIP/ROCm以及海光的生态、昇腾的CANN生态、寒武纪的生态,都是如此,需要将CUDA程序转化成自家的程序,再运行。
▍问答2:新条款到底限制了什么?限制的是ZLUDA,而不是各家官方的软件方案。ZLUDA是主要构建在AMD/Intel生态基础上的一个软件,但并非各家官方软件的一部分。ZLUDA的功能是,将已经编译好的CUDA程序进行实时二进制转译,让AMD/Intel的硬件能够实时运行CUDA程序,而不用预先把整个CUDA源代码程序进行翻译再运行。
▍问答3:限制ZLUDA,对各家公司的影响?我们认为实际影响有限。限制了ZLUDA,各家的官方程序还是可以正常使用的,只是并非实时二进制翻译,而是源代码翻译后运行。除了AMD/Intel以外,国内诸多较大的算力芯片公司,其官方软件生态也大多不涉及ZLUDA(例如昇腾等,底层指令并不是AMD/Intel的指令,ZLUDA无法在昇腾生态运行),所以可以认为影响有限。
▍问答4:如果影响有限,为什么要限制ZLUDA,ZLUDA的实际客户群体是谁?我们认为核心是为保护CUDA生态。①ZLUDA和ROCm,对于CUDA生态的影响分别如何?可以类比,如果说采用AMD ROCm源代码翻译运行,相当于把整本书完整地进行英译中再阅读,那么采用ZLUDA的方式,就类似于同声传译。②现实中也有与ZLUDA发挥类似功能或作用的案例,根据各公司官网,比如苹果的Rosetta工具,可以把x86程序直接实时转译成苹果可运行的程序,稍早的Windows on ARM也有从x86到ARM的转译工具,龙芯也有通过二进制转译运行CS/植物大战僵尸/Photoshop的案例。③如果苹果失去了Rosetta,那么对于x86生态的侵蚀将会放缓,苹果的普通个人用户使用会有一定的不便,会有些x86程序无法使用。ZLUDA与Rosetta的功能很类似,但区别在于,使用CUDA的人群以研究人员/开发者为主,使用AMD官方的Hipify翻译源代码并无太多不便,对于国内海光/昇腾也类似,所以限制ZLUDA实际影响有限。④我们认为使用ZLUDA的以个人用户为主,这类用户使用ZLUDA会更方便,例如需要用AMD GPU在Windows下使用Stable Diffusion绘图,那么对该用户来讲,ZLUDA是能够降低一定使用壁垒的。
▍问答5:未来有没有可能更进一步限制AMD官方的Hipify工具?我们认为难度较大。①Hipify工具原理并不复杂,分为两种,第一种是一个Perl脚本(可以理解为较为简单的几百行程序代码),第二种则是Clang编译器(把“CUDA代码”编译“成AMD HIP/ROCm代码”)。要限制Hipify,基本上等于要限制Clang,因为目前尚未有规定不能把CUDA转化成等效的程序。而禁止Clang难度较高,因为英伟达自身的NVCC编译器也是基于Clang构建的,且Clang也是全球主流编译器之一。②另外,国内外各家算力芯片公司也都有类似Hipify的软件,实现的是同样的功能,把CUDA翻译成自家的程序。如果限制Hipify,则理论上这些同样功能的软件也要限制,否则有可能达不到限制的效果。而限制所有同样功能的软件,执行难度较大。
▍问答6:如果真限制了Hipify,有何影响?我们认为至少AI领域影响有限。据我们了解,现如今开发者大多数情况下可以直接使用Pytorch来构建AI程序,而Pytorch对CUDA的依赖度正在降低。如果AI程序是用Pytorch构建的,那么Pytorch就可以原生支持在AMD的硬件和软件生态上运行。所以,若真有可能限制了Hipify,那么也依旧可以使用AMD硬件运行AI。
▍风险因素:国产GPU厂商竞争加剧的风险;供应链可持续性的风险;软件生态适配不及预期的风险;国产芯片客户接受度不及预期的风险;地缘政治风险加剧。
▍投资策略。我们认为英伟达此次新条款对于国产算力实际影响有限,算力国产化的趋势仍然没有发生变化。此外,我们认为国产算力当中,海光/昇腾生态优势格局有望持续。根据我们2023年11月13日发布的报告《计算机行业“构筑中国科技基石”系列报告27—GPU框架:从ROCm、Pytorch看生态壁垒》,国内外主流算力芯片大多有自有生态,并不依赖于ZLUDA,因此影响有限。国内海光有基于ROCm的自主生态,能够持续借助国内外开源社区力量;昇腾自建基于CANN的生态,在AI领域都能够以较低成本实现CUDA的替代,但并不需要类似ZLUDA的实时转译工具,实际影响有限。综上所述,我们认为在AI计算领域,海光+昇腾生态优势仍然持续,建议关注海光信息产业链(海光信息、中科曙光)与昇腾产业链。