英伟达禁止CUDA转译,影响有限,但事儿不小

据国外媒体报道,安装CUDA 11.6及更新版本包含的最终用户许可协议(EULA)中新增了一条警告信息:“您不能逆向工程、反编译或反汇编使用此SDK生成的任何结果,并在非英伟达平台上进行转译。”
新闻资讯 英伟达
2024-03-14 09:04:06  |   作者:航标  |   来源:航标IT精选

英伟达禁止CUDA转译,影响有限,但事儿不小

据国外媒体报道,安装CUDA 11.6及更新版本包含的最终用户许可协议(EULA)中新增了一条警告信息:“您不能逆向工程、反编译或反汇编使用此SDK生成的任何结果,并在非英伟达平台上进行转译。”
新闻资讯 英伟达
2024-03-14 09:04:06
作者:航标
来源:航标IT精选

近日,关于英伟达禁止用转译层在其他GPU上跑CUDA软件的消息引起了广泛关注。据国外媒体报道,安装CUDA 11.6及更新版本包含的最终用户许可协议(EULA)中新增了一条警告信息:“您不能逆向工程、反编译或反汇编使用此SDK生成的任何结果,并在非英伟达平台上进行转译。”

3331.png

最初人们对此的解读是“英伟达要禁止在非英伟达硬件上运行基于CUDA的软件”,引来一片惊呼。不过有专业人士指出,暂时不必惊慌。英伟达其实早在2021年网上发布的最终用户许可协议中就有这个警告信息,其真正想限制的是类似ZLUDA直接进行二进制转译运行CUDA代码的方式,也并非专门针对中国厂商。

尽管此时看起来不如当初所想影响那么大,但我们也不能认为警报完全解除。业内专家呼吁,中国AI硬件厂商应该提高警惕,AI产业的竞争最终一定是生态的竞争。美国正竭力打压我国的人工智能技术,要突破,国产AI芯片厂商需尽早布局自主的软件生态,谨防受制于人。

CUDA,英伟达的护城河

毫无疑问,在生成式AI浪潮的推动下,英伟达成为当下炙手可热的明星企业。在过去的2023年,英伟达的股价上涨了240%,今年以来又增长了近40%,市值突破2万亿美元,直逼微软、苹果。

英伟达能有今天风光,除了有AI风口助力之外,还在于它有两大支柱:其一是不断创新的GPU产品,从过去的A100到今天的H100、H200和即将推出的B100、X200等,一直领跑市场。另一大支柱就是CUDA生态,CUDA帮助英伟达筑起了一道护城河,为英伟达站在了AI产业链条的顶端保驾护航。CUDA对英伟达的意义正如x86生态至于x86芯片,让Arm多年来市场份额始终无法突破。

CUDA是Compute Unified Device Architecture的缩写,即统一计算设备架构。CUDA平台不是单单指软件或者硬件,而是建立在英伟达GPU上的整个生态体系。这个体系的基石就是CUDA编程框架,它让开发者可以借此面向GPU上编写和运行通用程序。在 CUDA 之前,英伟达的 GPU 仅仅是一个负责在屏幕上绘制图像的图形处理器,也就是单纯意义的显卡。要使用显卡的算力需要调用底层的API,编程非常复杂。有了 CUDA 后,开发人员可以像调用CPU一样通过编程调用GPU的算力。从此,GPU也成为一种通用的算力卡,可以使用图像加速卡去做通用计算,比如科学计算、AI 深度学习等。

英伟达从 2006 年开始推出CUDA。当时的英伟达日子并不好过,但英伟达还是持续投入进行CUDA 的开发,并把所有芯片都纳入 CUDA 的架构里,前后投资超过100 亿美元。多年的投入之后,CUDA慢慢在各个行业生根开花,等到AI大爆发时帮助英伟达一下子站到了产业之巅。

CUDA的一个重要价值就是其中的大量库,它为AI应用的开发提供了很大便利。比如,CUDA中有一系列高性能函数库,包括用于线性计算的cuBLAS、用于稀疏矩阵计算的cuSPARSE、用于傅立叶变换的cuFFT、用于数值求解的cuSOLVER等。这些函数库发展至今已经历经了十余年的打磨,其优化几乎已经做到了极致。同样,其中的大量标准数学函数集合也是经过行业验证的,非常准确、高效。借助CUDA,这些多年的知识可以轻松为开发者所用,大大减轻了开发者的压力,加快了开发进度。

CUDA的另一个价值表现是生态的丰富。CUDA处于行业领导者地位,面向CUDA的工具非常齐全,比如,AI涉及大量数据的处理,如训练数据的迁移、转换等,CUDA平台上都有对应的工具可以轻松实现。同时,大量AI框架也会优先面向CUDA开发,如人工智能社区就有大量基于CUDA开发的代码库。这是其他AI芯片无法比拟的优势,给开发者带来极大便利,也提高了用户的粘性。

另外,CUDA还有一套高性能编译系统,CUDA编译器能结合硬件将CUDA代码编译成非常高效的底层指令,确保硬件性能的充分发挥。

业内“苦”CUDA已久

CUDA的成功加上不断推陈出新的产品,帮助英伟达几乎垄断了AI市场,市场占有率高达90%以上,比如有些软件(如CG软件和一些AI框架)只支持英伟达卡,这也给其他AI芯片厂商带来了很大压力,即使是英特尔、AMD这样的芯片巨头也不例外。可以说,CUDA越成功,其他AI芯片突破也就越难。

为了应对CUDA对市场的垄断,由苹果、 AMD、Intel、英伟达、高通、IBM 的团队合作于 2008年推出了 OpenCL 标准,各公司采用统一的 API,但各自完成实现方式。只是当年GPU 的算力价值还没有被充分认知,OpenCL更多地考虑了多核 CPU 计算,对高层的科学计算库等支持则相对有限,最后没有得到广泛普及。后来英特尔和AMD转而打造各自计算框架,英特尔推出了OneAPI,AMD推出了ROCm。其中AMD的ROCm由于产品得力,在市场上也形成了一定影响力。

作为后来者,ROCm也要解决函数库覆盖率、AI框架支持度的问题,解决办法之一就是兼容CUDA。ROCm兼容CUDA主要通过HIP函数库来实现。具体来说,是通过Hipify工具将CUDA代码转化为等价的HIP代码,再经过ROCm编辑器编译,然后在AMD的硬件上运行。当然,这种办法编译出来的程序可能无法充分发挥芯片的硬件性能。

类似的,中国的AI芯片厂商同样也设法兼容CUDA。比如摩尔线程,其思路也和AMD相似。其推出的MUSA是摩尔线程自主研发、拥有全部知识产权GPU计算统一系统架构。同时,摩尔线程还有开发工具MUSIFY可以把CUDA代码移植到MUSA计算平台上,进行编译,最终运行在摩尔线程全功能GPU上。

不过,业内人士认为英伟达的警告并不针对AMD、摩尔线程这种CUDA代码转码的移植方式,摩尔线程也公开发布声明称不受英伟达警告的影响。

英伟达真正指向的可能类似ZLUDA这类软件。ZLUDA是一种开源软件,于2020年首次发布,最初是作为英特尔GPU上CUDA的替代品,在开源社区引起了广泛关注。ZLUDA采用了一种封装技术,让CUDA代码无需做任何工作,就可以在AMD和英特尔的显卡上运行。相比ROCm等兼容是源代码翻译后运行,ZLUDA是一种实时的二进制翻译,这才是英伟达此次要禁止的。

总体上说,目前,中国的AI芯片厂商乃至全球市场上大多的芯片厂商普遍采用的都是类似AMD的Hipify软件的方式来兼容CUDA生态。如果英伟达要限制Hipify就会有很大一批的软件要波及,这个执行难度不小,可能性不太大,从这个角度说这个禁令影响面有限。

不过,这件事也提醒中国硬件厂商,兼容CUDA只是权益之计,加快自有、自主生态建设才是终极解决之道。在当下地缘政治风险加剧的背景,加速算力国产化是必然的趋势,生态建设显得非常重要和急迫。