Hacker News 中文摘要

RSS订阅

在非NVIDIA硬件上运行CUDA的替代方案 -- Alternative(s) to run CUDA on non-Nvidia hardware

文章摘要

Spectral Compute公司试图打破NVIDIA CUDA的垄断,让CUDA软件能在非NVIDIA的GPU上运行。文章探讨了这一技术能否成功,以及它对高性能计算和AI行业可能带来的影响。

文章总结

好的,这是根据您提供的文章内容,使用中文重新陈述的主要信息,已保留关键细节并删减了与主题无关的内容。


标题:Spectral Compute 旨在“解放”CUDA,它能成功吗?

英伟达(Nvidia)因其GPU的巨大成功而主要被视为一家硬件公司,但其CUDA编程语言也使其成为软件领域的一股强大力量,该语言已成为AI和高性能计算(HPC)开发者的事实标准。现在,一群来自Spectral Compute的CUDA专家正试图将CUDA语言从英伟达的硬件中“解放”出来,允许用户在其他芯片上运行他们的CUDA代码。

Spectral Compute成立于2018年,由四位工程师共同创立。他们因对CUDA代码被硬件锁定的现状感到不满,并受够了英伟达GPU的高昂成本以及替代编译器的糟糕性能,决定自行开发解决方案。他们开发了一款名为SCALE的产品,该产品利用CLang和LLVM编译器技术,可作为英伟达CUDA编译器NVCC的直接替代品。SCALE最初的目标是AMD GPU,但现在其目标已扩展至其他AI加速器。该公司也支持英伟达GPU,其理论是英伟达为了销售更多硬件,在软件性能优化方面有所保留。

Spectral的增长负责人Giulio Malitesta表示,CUDA是HPC领域的事实标准,约占HPC代码总量的80%。他认为应该接受这一事实,并作为编译器工程师努力使其在非英伟达平台上也能运行,同时也在英伟达GPU上提升其性能。

市场上已有其他编译器能让CUDA代码在其他硬件上运行,例如AMD的HIPIFY、英特尔的SYCLomatic以及曾由AMD支持的ZLUDA。但这些工具各有缺点:HIPIFY忽略了关键的PTX(英伟达汇编语言);SYCLomatic只能迁移约90%的代码,剩余10%需要手动处理;ZLUDA则作为中间件层运行,损害了性能。此外,一些非英伟达CUDA编译器还面临法律问题。

Malitesta声称,Spectral Compute的SCALE能够超越这些编译器的平庸性能,让CUDA充分利用底层硬件。该公司发布的基准测试显示,在AMD GPU上,使用SCALE比使用HIPIFY将CUDA代码转换到AMD的ROCm环境,性能提升近6倍。Spectral通过采用“洁净室”方式,基于先进的编译器框架进行重新实现,从而达到了这样的性能水平。他们采用CPU领域的行业标准方法,并将其应用于GPU。

Spectral总部位于伦敦,去年筹集了600万美元。该公司目前正在支持尚未命名的第三方AI加速器,并致力于一些专有的新型编译器优化,据称将为在英伟达GPU上运行CUDA的客户带来重大升级。本月晚些时候,他们预计将发布对PyTorch的支持。公司员工表示,他们的工作对CUDA社区有益,英伟达最终也理解这是件好事。今年6月,Spectral加入了英伟达的“Inception”计划。

Spectral的学术解决方案和业务发展负责人Ruben van Dongen表示,他们与英伟达和AMD都保持着良好关系,并希望与整个行业成为朋友,保持真正的中立。

Spectral已支持核心CUDA产品,但还有数百个专门的CUDA库(如cuDNN、cuTENSOR、cuDF)需要支持,公司正在积极努力。SCALE仅发布约两年,但公司发展迅速,目前约有30名员工。Spectral向商业公司出售SCALE的访问权限,并向学术机构和非营利组织免费提供编译器工具包。SCALE甚至已在橡树岭国家实验室的百亿亿次超级计算机Frontier上运行。

随着HPC社区应对AI热潮和GPU计算普及带来的变化,值得思考所有可能的路径。英伟达是一家卓越的公司,推动了GPU制造和并行软件开发的进步,并因此成为全球首家市值达5万亿美元的公司。英伟达无疑希望将所有AI成果保留在自己手中,但这未必符合HPC和AI客户乃至整个计算生态系统的最佳利益。从这个角度来看,Spectral正在为整个行业做一件好事。令人惊讶的是,像Spectral这样在CUDA护城河上架桥的公司并不多。

评论总结

根据评论内容,总结如下:

主要观点与论据:

  1. CUDA替代方案存在局限性:多数替代方案仅关注CUDA C++,忽略了CUDA生态的真正价值(评论1,pjmlp)。许多替代项目“高开低走”,最终陷入停滞(评论5,luciana1u:“bold launch, works for 3 operations, then a Discord server where the last message is 'any updates?' from 2024”)。

  2. 支持在非NVIDIA硬件上运行CUDA:CUDA接口设计合理、文档完善且经过长期验证,应直接实现相同接口而非另起炉灶(评论6,woctordho:“What we need is not to invent another interface... but to implement the same interface”)。ROCm、MooreThread等正在此方向努力。

  3. 替代方案的实际需求有限:除超大规模云服务商和特殊用途外,普通用户更倾向即插即用的CUDA,替代方案缺乏显著优势(评论10,u1hcw9nx:“Neocloud customers just want plug-and-play CUDA... Alternatives give no significant benefits”)。

  4. 其他技术路径:有观点认为应直接使用Vulkan或SPIR-V(评论3,DiabloD3),或转向Triton(评论8,dachworker)。也有评论关注专用芯片(如Cerebras)和Tenstorrent的SRAM缓存方案(评论11、12)。

平衡性说明:评论中既有对CUDA替代方案的质疑(评论5、10、14),也有对非NVIDIA硬件运行CUDA的支持(评论6、7),以及探索其他技术路径的建议(评论3、8、12)。整体呈现“替代方案存在但未成主流”的共识。