前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >又双叒叕有公司想打破Nvidia垄断?这回让CUDA代码直接编译运行于AMD GPU

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

原创
作者头像
GPUS Lady
发布2024-07-19 13:14:05
2190
发布2024-07-19 13:14:05
举报
文章被收录于专栏:GPUS开发者
图片
图片

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

GPUS开发者

,赞119

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

HIPIFY是一个源代码到源代码的编译器((https://github.com/ROCm/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护城河并扩大城堡围墙。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档