ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ZLUDA 教程:4 步在 AMD 显卡上跑通 CUDA 程序

ZLUDA 教程:4 步在 AMD 显卡上跑通 CUDA 程序 ZLUDA 教程4 步在 AMD 显卡上跑通 CUDA 程序【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDAZLUDA 是一个 CUDA 兼容层它让你无需改动任何源代码就能在 AMD 等非 NVIDIA 显卡上运行原本写给 CUDA 的程序。这篇文章按能不能用 → 怎么部署 → 怎么验证 → 出问题怎么办的顺序带你从零把它用起来。先说清 ZLUDA 解决什么问题ZLUDA 的思路是替换它以驱动的形式顶替掉系统里原本的 CUDA 库应用程序以为自己还在跟 NVIDIA 驱动打交道实际上所有请求都被接管了。整个翻译过程分三步用大白话说就是拦截程序发出的 CUDA API 调用比如申请显存、启动内核把程序里携带的 PTX 代码编译成目标显卡能执行的指令PTX 是 NVIDIA 的一种中间汇编格式可以理解为 GPU 程序的草稿让真正的 GPU 去执行这些指令并对外模拟 CUDA 8.8 的计算能力。核心驱动 API 的实现在 zluda/src/impl/ 目录下PTX 编译与指令转换的完整实现则在 ptx/ 目录下。如果你想读源码从这两个入口进。能不能用开始部署前先对一遍清单在花时间配置之前先确认你的环境落在支持范围内检查项支持情况需要注意AMD 显卡RX 5000 系列及更新型号含核显Polaris、Vega 等老架构和服务器级显卡暂不支持Intel 显卡曾支持目前暂停团队专注 AMDIntel 后端未来可能恢复操作系统Windows、LinuxmacOS 不支持普通 CUDA 应用大多数可运行接近原生性能具体应用需实测llama.cpp支持按 CUDA 架构 86 编译并开启 cuBLAS 可达接近原生速度PyTorch / TensorFlow规划中PyTorch 是最高优先级TensorFlow 紧随其后一句话判断你有 RX 5000 或更新的 AMD 显卡、系统不是 macOS就可以往下走。ZLUDA 部署步骤从获取到跑起来的 4 步第 1 步拿到 ZLUDA二选一下载预编译包版本迭代很快优先选最新的预发布包团队会不定期把某个版本标记为稳定版。从源码构建先 clone 仓库记得带上--recursive拉取子模块git clone --recursive https://gitcode.com/GitHub_Trending/zl/ZLUDA构建依赖 Git、CMake、Python 3、Rust 编译器、C 编译器Linux 还需要安装 HIP。进入目录后执行cargo xtask --release做 Release 构建耗时较长属正常现象。第 2 步装好显卡驱动和 HIP SDKHIP SDK 是 AMD 的 GPU 编程工具包ZLUDA 靠它把计算真正落到 GPU 上。️Windows先装最新的 AMD 显卡驱动再装 HIP SDK。官方 SDK 安装简单但缺少机器学习支持PyTorch、TensorFlow 跑不了AMD 的 nightly 构建则带机器学习支持适合有这方面需求的场景。Linux安装 ROCm 相关的 HIP 包即可。第 3 步启动你的目标应用Windows推荐用 ZLUDA 自带的启动器一条命令包住目标程序zluda.exe -- 你的程序 程序参数也可以把 ZLUDA 的全部文件包括nvcuda.dll复制到目标程序所在目录让它按原路径加载到假 CUDA 库。Linux通过库搜索路径让系统优先找到 ZLUDA 提供的libcuda.soLD_LIBRARY_PATHZLUDA目录:$LD_LIBRARY_PATH 你的程序 程序参数如果你是通过 Steam 玩游戏在游戏的启动选项里填 ZLUDA 启动器的路径并加上-- %command%效果等价于手动启动第 4 步用 cuda_check 验证环境ZLUDA 附带一个测试程序它会尝试加载全部性能库cuBLAS、cuDNN、cuFFT 等。Windows 下运行zluda.exe -- cuda_check.exe每一行都输出 OK说明兼容层已就绪。应用启动很慢用预编译加速有些大型应用第一次启动时会现场编译所有 GPU 代码慢得让人怀疑卡死。ZLUDA 提供zluda_precompile工具指向一个文件或目录它会提前把里面的 GPU 代码全部编译进缓存。之后再启动应用时就直接命中缓存跳过最耗时的编译环节。命令本身很简单传入路径即可Windows 为zluda_precompile.exe PATHLinux 为zluda_precompile PATH。注意该工具会占满机器所有线程编译的代码量也可能略多于实际应用所需所以适合大型应用小工具没必要用它。ZLUDA 排障指南崩溃和报错先看这三处症状先做什么应用直接启动失败检查 ZLUDA 目录路径是否写对LD_LIBRARY_PATH/ 复制的 dll 位置确认驱动与 HIP SDK 版本匹配能启动但行为异常用 ZLUDA 的日志工具重跑一次定位是哪个 CUDA 调用出的错启动特别慢参考上一节做预编译定位问题时zluda_trace是关键工具它是一个记录员把应用发出的每个 CUDA 调用、参数和返回码都记下来。Windows 下只需在启动参数里加--zluda-trace日志会存到临时目录Linux 下则通过设置库路径和日志目录环境变量实现。游戏场景下把它写进 Steam 启动选项即可日志目录里除了调用记录还会保存程序里的 PTX 源码和编译错误日志——看到类似Unrecognized statement的报错就说明应用用到了 ZLUDA 尚未支持的 PTX 指令这些信息对反馈问题非常有用。完整说明见 docs/src/troubleshooting.md。接下来你现在就能做的两件事打开支持矩阵对一下显卡型号是 RX 5000 或更新的 AMD 卡就按部署 4 步走一遍最后用cuda_check.exe确认每行 OK。想快速看真实效果直接试 llama.cpp按 CUDA 架构 86 编译并开启 cuBLAS它是目前文档中验证过最接近原生速度的应用。【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表