February 22, 2024

AMD也能支持CUDA?并且实现了75%的性能提升

在过去两年中,AMD悄然资助了一项在其ROCm技术栈(Radeon Open Compute Platform)上实现NVIDIA CUDA应用程序二进制兼容性的项目,使得CUDA软件能够无需修改源代码即可在AMD Radeon GPU上运行。该项目,名为ZLUDA,原先开发目的是为英特尔显卡提供CUDA支持。2022年,ZLUDA的主要开发者Andrzej Janik被AMD雇佣,目的是将他的项目调整以适配Radeon GPU上的HIP/ROCm环境。Janik投入了两年时间,成功地为AMD平台引入了CUDA支持功能,允许多种实际的CUDA工作负载能够在无需任何修改的情况下运行。

尽管AMD出于某些未公开的原因决定不将此技术商业化,但在资助结束后依照协议将其开源。Phoronix网站对AMD的ZLUDA实现进行了一些基准测试。测试结果表明,通过简单替换为ZLUDA库,专有CUDA渲染器和软件能够在Radeon GPU上即插即用。例如,在CUDA优化的Blender 4.0渲染测试中,AMD Radeon GPU的性能比原生ROCm/HIP支持快了大约10-20%,这一性能提升根据具体场景而异。虽然这只是一个个人项目,其稳定性表现出乎意料地良好。然而,项目仍有一些局限性,比如尚未完全支持OptiX和PTX汇编代码。

尽管存在局限,测试结果非常令人欣喜。与Geekbench的通用OpenCL运行时相比,CUDA优化的二进制文件显示出高达75%的性能提升。有了ZLUDA库对API进行转换,未经修改的CUDA二进制文件现在能够直接在ROCm和Radeon GPU上运行。值得注意的是,ZLUDA项目当前针对的是AMD ROCm 5.7版本,而非最新的6.x系列。AMD是否会继续投资于这种简化CUDA软件移植的方法仍然未知,但如今的开源项目开启了任何人贡献并提高兼容性的可能。

目前尚不清楚ZLUDA是否能够在AMD的高端GPU,如MI300X系列中稳定运行。若ZLUDA能够成功在这样的高性能GPU上实现稳定运行,这将对AMD在与NVIDIA在人工智能芯片领域的竞争中带来显著优势。特别是在当前NVIDIA H100芯片供不应求的情况下,MI300系列能够成为市场上的一大补充。

ZLUDA实现CUDA应用程序在AMD GPU上的兼容性,为开发者提供了更多的硬件选择,尤其是在需要大量并行处理能力的AI和机器学习应用领域。这种兼容性能够使得原本专为NVIDIA CUDA架构设计的应用无缝迁移到AMD的平台上,从而减少了开发者在不同硬件平台间迁移和优化应用时的工作量。

如果AMD能够解决ZLUDA在MI300X等高性能GPU上的稳定性问题,那么这将为AMD打开一扇窗口,使其能够更有效地进入并占据AI硬件市场的一席之地。这不仅会增强AMD的市场竞争力,还可能改变目前由NVIDIA主导的AI芯片市场格局。此外,对于广大的AI应用开发者而言,更多的硬件选择和更高的应用程序兼容性将促进技术创新,加速AI技术的发展和应用。

因此,ZLUDA项目及其在新一代AMD GPU上的应用和优化,不仅对AMD公司本身,对整个AI和机器学习领域的硬件生态系统都具有重要意义。这需要AMD继续投资于技术开发和社区合作,以确保ZLUDA能够充分利用其GPU架构的潜力,为AI应用提供更加强大和灵活的计算支持。

0 comments:

VxWorks

Blog Archive