新的“SCALE”软件允许为 AMD GPU 原生编译 CUDA 应用程序

时间:2024-07-17 07:39:45

虽然已经有各种努力,如HIPIFY来帮助将CUDA源代码转换为AMD GPU的可移植C++代码,然后是之前AMD资助的ZLUDA,允许CUDA二进制文件通过CUDA库的直接替代品在AMD GPU上运行,但有一个新的竞争者:SCALE。SCALE现在作为GPGPU工具链公开,允许CUDA程序在AMD图形处理器上本地运行。

SCALE由英国公司Spectral Compute制作了七年。SCALE 是 CUDA 的“洁净室”实现,它利用了一些开源 LLVM 组件,同时形成了一个解决方案,无需修改即可为 AMD GPU 本地编译 CUDA 源代码——与仅通过转译为另一种“可移植”语言或其他手动开发人员步骤来协助代码翻译的替代项目相比,这是一个很大的优势。

SCALE GPGPU Programming Language

https://scale-lang.com/

Announcing the SCALE BETA

https://scale-lang.com/posts/2024-07-12-release-announcement

SCALE按原样采用CUDA程序,甚至可以处理依赖在线NVPTX程序集的CUDA程序。SCALE 编译器也是 NVIDIA 的 nvcc 编译器的直接替代品,并且具有“模拟”NVIDIA CUDA 工具包的运行时。

SCALE 已成功通过 Blender、Llama-cpp、XGboost、FAISS、GOMC、STDGPU、Hashcat 甚至 NVIDIA Thrust 等软件的测试。Spectral Compute 一直在 RDNA2 和 RDNA3 GPU 上测试 SCALE,并在 RDNA1 上进行基本测试,而对 Vega 的支持仍在进行中。

在这里插入图片描述
从本质上讲,SCALE 是一个兼容 nvcc 的编译器,可以编译 AMD GPU 的 CUDA 代码、AMD GPU 的 CUDA 运行时和驱动程序 API 的实现,以及与 AMD 的 ROCm 库接口的开源包装库。

例如,虽然 ZLUDA 是由 AMD 悄悄资助的,但 Spectral Compute 告诉我,他们自 2017 年以来一直通过咨询业务为这一开发提供资金。SCALE唯一直接的缺点是它本身不是开源软件,但至少有一个免费版许可证可供用户使用。

那些希望了解更多关于在 AMD GPU 上编译和运行 CUDA 代码的非常有前途的 SCALE 工作的人可以在 scale-lang.com 上看到公告。如果您想试用 SCALE,请直接查看文档。它与 ROCm 6 兼容,我期待在时间允许的情况下尝试基准测试。