CUDA应用只能在NVIDIA显卡上跑,这件事被一个叫「CUDA for AMD on Windows」的项目正面挑战了。它的目标很直接:在Windows环境下,让AMD制GPU执行原本为CUDA编写的应用程序。
项目地址挂在GitHub上,作者是Speedstu。实现路径不是重写应用,而是搭一层兼容环境——用ZLUDA做CUDA兼容层,再叠上AMD自家的ROCm/HIP栈,拼出一个可复现的Windows CUDA兼容环境。
![]()
它到底怎么把CUDA调用接过去的
![]()
整个链路可以理解成一条逐层翻译的管道。最上层是面向CUDA的Windows应用,往下交给ZLUDA,ZLUDA负责对接cuBLAS、cuSPARSE、cuFFT这些CUDA库的兼容实现,再往下落到rocBLAS、hipBLASLt、rocSPARSE和HIP,最终由AMD GPU执行。
换句话说,应用以为自己在跟CUDA说话,中间那层替它把话翻译成了AMD能听懂的语言。这条链路里每一环都是现成组件,项目做的是把它们串起来并保证可复现。
目前只在一张卡上验证过
项目明确标注,验证对象是AMD Radeon RX 9060 XT,其他AMD制GPU只能算「兼容候选」,不在已验证范围内。这个边界划得很清楚,没有把话说满。
验证时使用的软件版本如下:
- ZLUDA v6-preview.69(官方发布版)
- AMD HIP SDK 6.4
- LibTorch 2.3.0 + cu118
- nvcuda、cuBLAS、cuBLASLt、cuSPARSE、cuFFT(通过cuda_check检测)
安装流程分两步。先装AMD侧的前置条件:最新的AMD GPU驱动,以及对应Windows的AMD HIP SDK,具体版本取决于GPU架构。然后从官方GitHub克隆仓库,执行install.ps1脚本。
限制清单比功能清单更长
![]()
项目自己列出的限制事项值得逐条看清楚,因为它决定了这东西现在能干什么、不能干什么。
- 被认可为完全验证过的项目参考只有RX 9060 XT / gfx1200
- ZLUDA不是完整的CUDA实现
- cuda_check结果为「合格」也不代表正确性有保证
- Windows上只公开了ROCm生态整体中极小一部分功能
- cuDNN / MIOpen在已验证的稳定版HIP SDK路径上不可用
- NCCL、TensorRT、不受支持的PTX、部分自定义CUDA扩展可能无法运行
这几条里,cuDNN不可用和NCCL可能跑不起来,直接关系到深度学习训练和推理场景能不能落地。ZLUDA本身不是完整CUDA实现这一点,也意味着兼容性天花板是客观存在的。
值得注意的是,cuda_check通过不等于结果正确——这句话是项目方自己写下的,等于提前把预期压到了合理区间。
这件事的意义在哪
从项目定位看,它想解决的是AMD制GPU的可用范围问题,以及和CUDA生态的衔接问题。Windows平台上CUDA应用存量巨大,如果这层兼容环境能稳定跑起来,AMD显卡在这类场景里就多了一条路。
但就当前状态而言,它更像一个边界清晰的实验性方案:一张卡验证过,一条链路串通了,限制清单列得明明白白。对手里正好有RX 9060 XT、又想试试CUDA应用的开发者来说,这是个可以动手验证的起点;对其他AMD显卡用户,它暂时还只是「候选」。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.