ZLUDA 让 AMD 显卡直接跑 CUDA 应用
【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA
装完 PyTorch 一直提示驱动对不上号?ZLUDA 是个兼容层(简单说就是站在 CUDA 驱动和真实显卡之间翻译指令的一层软件),让没改过一行的 CUDA 应用能在 AMD 显卡上跑起来,原理就是把 CUDA 指令翻译成 AMD 显卡能听懂的语言。
🧩 ZLUDA 的原理一句话,和它做不到的事
ZLUDA 提供的是模仿libcuda.so(Linux)/nvcuda.dll(Windows)的驱动替身,应用一调 CUDA,就被它拦下来,翻译成 HIP(AMD 编程模型里和 CUDA 对应的东西)再到显卡上执行。对应用来说它就是个"假 NVIDIA 驱动",应用完全不知道自己跑在 AMD 卡上。
代价也在这:只支持 RDNA 架构起的桌面 AMD 卡,OptiX 硬件光追基本没戏,macOS 完全不支持。硬件支持清单:
- ✅ RX 5000 系列(RDNA)
- ✅ RX 6000 系列(RDNA2)
- ✅ RX 7000 系列(RDNA3)
- ❌ Polaris / Vega 等老消费卡
- ❌ 服务器级 GPU
- ❌ Intel GPU
- ❌ macOS
⚙️ 动手前:先确认这三点
先确认这三点再往下走,否则后面白折腾。
驱动和运行时版本
| 平台 | 最低要求 | 推荐 |
|---|---|---|
| Windows 10/11 | 较新的 AMD Adrenalin 驱动 + 官方 HIP SDK | HIP SDK nightly 构建(兼容 ML 框架) |
| Linux(Ubuntu 22.04 起) | 带 HIP 运行时的 ROCm | ROCm 最新稳定版 |
官方 Windows HIP SDK 不含 MIOpen,自测时 cudnn8/9 会报失败;要跑机器学习框架就选 nightly 构建。
目录结构
无论下 release 包还是自己编译,最终你会拿到这样一个目录:
zluda/ ├── libcuda.so / nvcuda.dll # 核心驱动替身 ├── zluda.exe # Windows 启动器 ├── cuda_check.exe # 环境自检 └── trace/ # API 日志工具整个目录放到一个固定位置,路径记好,后面所有命令都指向它。
环境变量
Linux 一行搞定:
export LD_LIBRARY_PATH="/path/to/zluda:$LD_LIBRARY_PATH"Windows 走zluda.exe启动器就不需要设变量;自己拷文件的话,直接丢进应用 exe 所在目录就行。
🚀 AMD 显卡跑 CUDA 的两条路
下面按 Windows 和 Linux 各给一条最短路径,挑你系统那条看就行。
路径 A:Windows 上 5 分钟跑起来
- 下最新 release 包(官方推荐最新的 pre-release),或克隆源码
git clone https://gitcode.com/GitHub_Trending/zl/ZLUDA - 把包里的
zluda目录放到任意位置,比如C:\zluda - 用启动器拉起应用:
C:\zluda\zluda.exe -- .\your_app.exe --your-args- Steam 游戏则在启动选项里填
C:\zluda\zluda.exe -- %command%,效果一样:
先跑zluda.exe -- cuda_check.exe自检,每行都输出OK、括号里是 HIP SDK 库路径,就说明成功。
路径 B:终端里三行命令搞定(Linux)
- 拿到代码或 release 包:
git clone https://gitcode.com/GitHub_Trending/zl/ZLUDA - 用一次性环境变量启动:
LD_LIBRARY_PATH="$HOME/zluda:$LD_LIBRARY_PATH" ./your_app --your-args- 应用自带加载器导致环境变量不生效时,换 audit 模式:
LD_AUDIT="$HOME/zluda/zluda_ld:$LD_AUDIT" ./your_app
程序正常出结果、日志里没有libcuda.so not found,就说明成功。
🛠️ 跑不动?对照这张表
报错基本集中在这几种,先对号入座:
| 你看到的报错 | 大概率原因 | 一条命令解决 |
|---|---|---|
libcuda.so not found | ZLUDA 目录不在库搜索路径里 | LD_LIBRARY_PATH="$HOME/zluda:$LD_LIBRARY_PATH" ./your_app |
HIP SDK not found或找不到 hip64.dll | Windows 没装 HIP SDK 或路径没设 | 安装 HIP SDK,把HIP_PATH指向它的根目录 |
| 第一次启动特别慢 | PTX(GPU 中间汇编)首次运行现场编译 | 按 docs/ 里的预编译方法批量预热 |
Unrecognized statement ... | 该条 PTX 指令暂不支持 | zluda.exe --zluda-trace -- your_app.exe抓日志去报 issue |
需要抓日志时,Steam 的启动选项长这样:
如果都不是,去 issue 区搜一下报错原文,大概率有人踩过。
🔍 往深了看:ZLUDA 源码与文档
- docs/src/ 官方文档
- zluda/src/ 核心驱动实现
- ptx/test/ PTX 测试集
PyTorch 支持是当前第一优先级,官方说首批支持预计 2025 年四季度。
装好之后,拿你手头那个跑不动的 CUDA 项目试一下,跑不动就用 zluda-trace 抓个日志贴到 issue 区。主分支更新很频繁,遇到版本不兼容先看最新 pre-release 的说明。
【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考