一个名为CUDA-for-AMD-Windows的开源项目正在尝试削弱英伟达CUDA生态的独占性。根据科技媒体Tom’s Hardware于9月14日发布的信息,该项目已在AMD Radeon RX 9060 XT显卡上演示运行部分CUDA库,并在未修改CUDA库的前提下完成了端到端的强化学习网络训练。
CUDA是英伟达的通用GPU加速计算平台,提供编译器、运行时、调试器、性能分析工具以及可直接调用的GPU加速库。由于CUDA与英伟达GPU深度绑定,并形成了覆盖开发平台、加速库、工具链和开发者生态的完整体系,业界普遍将其视为英伟达的核心竞争壁垒。长期以来,非英伟达GPU若要运行依赖CUDA的应用,通常需要较高的迁移成本或功能妥协。
该项目由开发者Speedstu发布,本质上是一套可复现的PowerShell自动化配置方案。其技术路径结合了ZLUDA翻译层与AMD原生HIP/ROCm,在Windows操作系统上为依赖CUDA的软件提供翻译入口。配置脚本会首先识别GPU架构,随后下载固定版本的ZLUDA v6-preview.69,并尝试将CUDA调用映射到Windows系统中已安装的ROCm数学库。
在兼容范围方面,开发者已实现对CUDA驱动程序API的拦截,cuBLAS、cuSPARSE和cuFFT等核心库也可映射至AMD对应组件。这意味着部分仅面向英伟达CUDA开发的应用,能够在Windows环境的AMD显卡上尝试运行。在概念验证项目中,开发者使用Radeon RX 9060 XT,在未修改CUDA库的情况下完成了220万参数PPO强化学习网络的端到端训练。
项目文档同时公布了Radeon RX 9060 XT的A/B测试数据,对比了官方上游路径与回收自定义覆盖路径的性能表现。官方上游路径使用官方ZLUDA与AMD HIP SDK 6.4,其整体中位吞吐为13278.46 SPS,平均吞吐为13172.49 SPS。回收自定义覆盖路径的整体中位吞吐为12875.80 SPS,平均吞吐为12649.83 SPS。SPS指每秒步数(steps per second)。
具体来看,恢复的自定义路径相较公开上游路径,总体SPS中位数下降3.03%,平均值下降3.97%。数据采集SPS中位数下降6.23%,数据消耗SPS中位数下降2.15%。推理时间中位数从0.5863秒增至0.6293秒,增幅7.33%;PPO学习时间中位数从3.2076秒增至3.2958秒,增幅2.75%。整体而言,加入旧版定制ZLUDA组件的配置在吞吐量上均低于标准可公开获得的配置,且推理与训练耗时更长。
该项目的意义在于验证了一条技术路径的可行性,而非提供生产级替代方案。ZLUDA作为翻译层,其原理是将CUDA调用转换为可在AMD硬件上执行的指令,但翻译过程不可避免地引入性能开销。从测试数据看,3%至4%的整体吞吐损失在部分场景下可以接受,但数据采集环节超过6%的下降,以及推理时间超过7%的延长,对于延迟敏感型任务可能构成实际障碍。
从行业视角看,CUDA生态的锁定效应不仅来自技术层面,更来自开发者习惯、库的丰富度以及长期积累的优化经验。开源社区此前已有多轮尝试,包括ZLUDA项目本身、AMD的HIP移植工具等,但均未对CUDA的主导地位构成实质性威胁。CUDA-for-AMD-Windows的差异化在于其自动化配置降低了尝试门槛,使不具备深度移植能力的开发者也能在AMD显卡上运行部分CUDA应用。
需要指出的是,该项目目前仍处于早期阶段,兼容范围限于部分CUDA库,且性能表现与原生CUDA环境存在差距。对于企业用户而言,是否采用此类方案取决于具体工作负载对性能损失的容忍度,以及迁移成本与硬件采购成本之间的权衡。在英伟达GPU供应持续紧张的背景下,这类开源尝试为算力多元化提供了一种技术上的可能性,但其从概念验证走向生产部署,仍需在稳定性、兼容性和性能优化方面完成大量工作。
该文观点仅代表作者本人,企服科学平台仅提供信息存储空间服务。