没有 N 卡也能跑 CUDA:ZLUDA 在 Intel / AMD 显卡上运行的完整指南
2026/9/12 11:56:34 网站建设 项目流程

没有 N 卡也能跑 CUDA:ZLUDA 在 Intel / AMD 显卡上运行的完整指南

【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA

ZLUDA 是一个 CUDA 兼容层,能让未经修改的 CUDA 应用程序直接在 Intel 或 AMD 显卡上运行,无需重新编译,也不需要 N 卡。它当前覆盖 CUDA 8.8 的计算能力,支持 Windows 和 Linux 两个平台,适合手头只有 A 卡或 Intel Arc 显卡、但仍想运行 PyTorch、TensorFlow 等 CUDA 程序的人。

先确认你的显卡能不能用

动手安装之前,先查一下自己的显卡架构。ZLUDA 支持的范围如下:

显卡架构支持情况
AMD RX 5000 系列RDNA支持(桌面与核显)
AMD RX 6000 系列RDNA2支持(桌面与笔记本)
AMD RX 7000 系列RDNA3支持
Intel Arc A380 / A750 / A770 等Intel Arc支持(详见下文说明)
AMD RX 400 / RX 500 系列Polaris不支持
AMD Vega 系列Vega不支持
服务器级专业计算卡不支持

Polaris、Vega 这类老架构与近年的桌面显卡差距较大,短期内不在支持计划内。Intel 显卡此前有可用后端,官方文档目前的状态是"暂不维护、可能恢复",如果你用的是 Intel Arc,建议先翻一遍 docs/ 里的 FAQ 再决定。

系统与驱动版本的最低要求可以参考这张表:

平台最低驱动/运行时推荐版本覆盖范围
Windows 10 / 11Adrenalin Edition 23.10.1(另需 HIP SDK)Adrenalin 24.3.1CUDA 8.8 基础功能
Ubuntu 22.04ROCm 5.4.3ROCm 6.0.0CUDA 8.8 完整计算能力
CentOS 8ROCm 5.6.0ROCm 5.7.1同左

Windows 上把文件放对位置

整个过程分三步:装驱动和 HIP SDK、摆放 ZLUDA 文件、选择启动方式。

第 1 步:准备驱动。AMD 显卡安装 Adrenalin Edition 23.10.1 或更新版本,Intel Arc 使用 Intel 官方最新驱动。此外无论哪家显卡,Windows 上还需要 HIP SDK,官方版本装起来简单但代码较旧,需要 ML 功能(PyTorch、TensorFlow)时建议装带 ML 支持的版本,具体取舍见 hip_sdk.md。

第 2 步:放置文件。把 ZLUDA 的nvcuda.dllzluda_ld.dll复制到你的应用程序能加载 CUDA 库的路径下,通常就是.exe所在的目录。如果用的是zluda_with.exe之类的启动器,也可以把它们放在 ZLUDA 目录里统一管理。

第 3 步:启动应用。推荐方式是用 ZLUDA 自带的启动器包一层:

zluda.exe -- 你的程序.exe 程序参数

如果你的程序来自 Steam,可以在游戏属性的"启动选项"里填同样的内容,让每次启动都走 ZLUDA:

Linux 下配置 ROCm 和库路径

Linux 侧的依赖是 ROCm 而非 HIP SDK,步骤同样不多:

第 1 步:装 ROCm 运行时。以 Ubuntu 为例,一条命令安装开发库与运行时:

sudo apt install rocm-dev rocm-libs hip-runtime-amd

第 2 步:设置库路径。把 ZLUDA 所在目录(内含它提供的libcuda.so)加进LD_LIBRARY_PATH,让动态链接器优先找到 ZLUDA 的库:

export LD_LIBRARY_PATH="/path/to/zluda:$LD_LIBRARY_PATH"

也可以改用LD_AUDIT指向 ZLUDA 目录下的zluda_ld,效果类似,官方文档两种都给了说明。

第 3 步:直接运行。路径配置好之后,用平时的方式启动你的 CUDA 程序即可,不需要额外参数。

跑通之后怎么确认装好了

最直接的验证方式是用 ZLUDA 自带的cuda_check小工具,它会依次加载并初始化各性能库,输出逐行的 OK 状态:

zluda.exe -- cuda_check.exe

看到 cuBLAS、cuDNN、cuFFT 等条目全部显示 OK,就说明兼容层工作正常。平时运行程序时,日志里出现带[ZLUDA]标识的行,也说明应用确实走到了 ZLUDA。

遇到问题时,先对照下面这张表自查:

现象可能原因处理办法
提示驱动版本不足(driver version is insufficient)GPU 驱动或 HIP SDK 版本过低升级到推荐版本后重启系统
提示 libcuda.so not foundZLUDA 目录不在库搜索路径里重新配置LD_LIBRARY_PATH,确认 ZLUDA 目录名无误
程序找不到 GPU 或设备识别异常显卡架构不在支持列表内lspci | grep VGA确认显卡型号,对照上文支持列表
首次启动明显变慢PTX 内核在首次运行时实时编译参见 precompiling.md 做预编译
应用中途失败、不知卡在哪一步兼容层某次调用未覆盖按 troubleshooting.md 开启 zluda_trace 抓日志定位

原理一句话版

ZLUDA 的工作方式是"顶替":应用照常加载libcuda.so/nvcuda.dll,但拿到的是 ZLUDA 提供的同名库,所有 CUDA 调用都在这一层被拦截;程序里的 PTX 内核代码由 ZLUDA 自己的编译器转译成目标 GPU 可执行的指令,cuBLAS、cuDNN 这类性能库则被映射到 HIP/ROCm 的对应实现上。对应用来说,这一切是透明的,所以程序本身一行都不用改。

相关资源

  • 官方文档:docs/(快速上手、HIP SDK 安装、FAQ 都在里面)
  • 核心实现源码:zluda/src/
  • PTX 翻译层的测试用例:ptx/test/
  • 兼容层入口与驱动模拟实现:zluda/src/impl/

代码与文档迭代很快,建议关注仓库的最新版本而不是某个固定 tag。跑通cuda_check并确认全部 OK 之后,再把你实际要用的程序跑一遍,重点观察日志里是否有[ZLUDA]错误条目——这一步能尽早暴露兼容性问题。

【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询