又双叒叕有公司想打破Nvidia垄断?这回让CUDA代码直接编译运行于AMD GPU

科技   2024-07-19 12:55   新加坡  

AMD一直在努力弥合由Nvidia的CUDA主导地位所造成的差距,特别是在针对PyTorch等AI项目方面。同时,众多工具也纷纷加入这一行列,共同挑战Nvidia的权威地位。

AMD开发了开源的HIP(https://github.com/ROCm/HIPIFY),这是一种C++运行时API和内核语言,使开发人员能够从单个源代码为AMD和Nvidia GPU创建可移植的应用程序。)虽然HIP不是CUDA,但它基于AMD的ROCm,相当于Nvidia的CUDA。此外,AMD还提供了HIPIFY翻译工具,该工具将CUDA源代码转换为AMD HIP,使其能够在AMD GPU上运行。

HIPIFY是一个源代码到源代码的编译器,它提供HIP等效的API调用来代替CUDA API调用。如果不存在等效的调用,HIPIFY就无法翻译代码。一旦翻译或用HIP API编写,代码就可以针对AMD或Nvidia硬件。

另一种方法是开源的 ZLUDA 项目(https://github.com/vosen/ZLUDA),该项目可以在 AMD GPU 上运行未经修改的二进制 CUDA 应用程序,并具有接近原生的性能。虽然仍处于 alpha 阶段,但 ZLUDA 已被证实可以与各种原生 CUDA 应用程序(如 LAMMPS、NAMD 和 OpenFOAM)一起使用。虽然 AMD 直到最近才悄悄资助 ZLUDA,但该项目在最近更新代码库后继续取得进展。

虽然AMD HIP和HIPIFY是有效且开放的解决方案,但开发人员通常更喜欢直接进行源代码编译。从实际角度来看,使用单个CUDA或HIP代码库比同时管理两者更可取。尽管HIP同时面向AMD和Nvidia硬件,但大量Nvidia GPU代码已经并将继续使用CUDA编写。

SCALE工具链使CUDA能在AMD GPU上运行

据Phoronix报道,英国公司Spectral Compute开发的新型CUDA-to-AMD GPU编译器现已上市。SCALE GPGPU(通用GPU)编译器允许CUDA应用程序在AMD GPU上本地编译,而无需CUDA软件,可在现有的CUDA开发路径中运行。对更多GPU供应商和CUDA API的支持正在开发中。

SCALE于七年前开始,是CUDA的“无尘室”实现,利用一些开源的LLVM组件,无需修改即可在AMD GPU上本地编译CUDA源代码。SCALE编译器采用未经修改的CUDA代码,直接生成二进制文件,可以使用AMD ROCm库在AMD GPU上运行。它甚至可以处理依赖于NVPTX汇编语言的CUDA程序。从本质上讲,SCALE是英伟达的nvcc编译器的直接替代品,并包含一个“模仿”英伟达CUDA工具链的运行时,允许现有的构建工具和脚本(如CMake)无缝运行。

Spectral Compute通过编译开源CUDA项目并针对包测试套件进行验证,从而验证了SCALE。以下项目目前是夜间自动测试的一部分:Blender、Llama-cpp、XGBoost、FAISS、GOMC、STDGPU、Hashcat和Nvidia Thrust。SCALE在RDNA2和RDNA3 GPU上进行了测试,在RDNA1上进行了基本测试,而Vega支持仍在进行中。

Spectral Compute正在努力支持AMD的GFX900(Vega 10,GCN 5.0),并可能针对其他GPGPU。

根据Spectral Compute的说法,SCALE相对于其他交叉编译或仿真方法的主要优势在于:

  • 直接编译:SCALE允许使用广泛流行的CUDA语言编写的程序直接编译为AMD GPU。

  • 兼容性:SCALE旨在与Nvidia CUDA完全兼容,允许用户在不牺牲性能的情况下维护单个代码库,以支持多个GPU供应商。  

  • 语言扩展:SCALE的语言是Nvidia CUDA的超集,提供了一些可选的语言扩展,使希望摆脱nvcc的用户更容易、更高效地编写GPU代码。  

  • 未来发展:SCALE是一项正在进行的工作,计划解决任何缺失的API,以防止其无法完全运行。


对于高性能计算(HPC)而言,AMD CUDA编译器的出现前景令人兴奋。英伟达和AMD硬件之间可移植性的提高将为终端用户提供更多的硬件选择。由于英伟达控制着CUDA API且没有标准委员会,因此英伟达生态系统以外的工具将需要跟踪未来的API更改。

虽然SCALE不是开源的,但文档表明,基于Linux的系统可以免费获得其版本(无论是.deb包还是tarball)。由于SCALE是新的,因此还没有任何与HIPIFY或ZLUDA进行性能比较的基准测试。希望Phoronix能够将其基准测试专业知识应用于这个新工具,帮助跨越CUDA护城河并扩大城堡围墙。

GPUS开发者
在这里,你可以及时了解NVIDIA GPU的行业资讯、最新进展、应用场景和各项功能。还有一些工具、技巧和教程,帮助你利用GPU打造未来的科技。参与GPU世界举办的精彩活动,体验人工智能的未来生活。
 最新文章