拓冰建站拓冰建站
首页 / 资讯中心 / 正文

ZLUDA 入门:在 AMD GPU 上跑通未经修改的 CUDA 应用(附环境自检与排错清单)

ZLUDA 入门在 AMD GPU 上跑通未经修改的 CUDA 应用附环境自检与排错清单【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA手上只有 AMD 显卡却需要跑为 NVIDIA 编译的 CUDA 应用比如 CUDA 版 llama.cppZLUDA 就是为此设计的它是 CUDA 在非 NVIDIA GPU 上的 drop-in 替换运行时拦截 CUDA API 调用再由自带的 PTX 编译器把内核代码编译到目标 GPU 上执行。项目定位与适用场景ZLUDA 用 Rust 实现了一套完整的 CUDA 驱动替代层对外提供libcuda.so/nvcuda.dll接口内部通过自研 PTX 编译器把内核代码编译到目标架构并借助 HIP/ROCm 落地执行。在 AMD GPU 上运行 CUDA 版 llama.cpp验证 CUDA 程序在 NVIDIA 之外硬件的兼容性用 trace 工具录制 CUDA API 调用序列预编译内核代码缩短应用首次启动时间环境自检清单检查项最低要求推荐操作系统Windows 或主流 Linux 发行版macOS 不支持—GPUAMD Radeon RX 5000 系列RDNA2及更新的桌面/核显RX 6000 系列及以上GPU 驱动较新版本 AMD 显卡驱动Adrenalin Edition发布前最新的驱动版本HIP/ROCmWindows官方 HIP SDKLinuxROCm HIPNightly HIP SDK含 MIOpenML 场景必需编译依赖仅源码构建Git、CMake、Python 3、较新版本 Rust、C 编译器另装 Ninja注意两点Polaris、Vega 等老架构与服务器级 GPU 不支持Intel GPU 目前不在支持范围内项目当前聚焦 AMD 后端。驱动或 SDK 版本不满足时到 AMD 官方下载页获取最新的显卡驱动与 HIP SDK。安装实录分步Step 1获取 ZLUDA优先从 Releases 页下载最近的预编译包项目迭代快会定期把某个 pre-release 标记为 stable。也可以源码构建注意必须带--recursive拉取子模块git clone --recursive https://gitcode.com/GitHub_Trending/zl/ZLUDA进入目录后执行cargo xtask --releaseRelease或cargo xtaskDebug耗时较长产物在target/release/。Step 2安装驱动与 HIP SDKWindows先装 AMD 显卡驱动再装 HIP SDK。跑 PyTorch/TensorFlow 等 ML 应用需要 nightly HIP SDK下载therock-dist-windows-gfxGPUARCH...tar.gz解压把HIP_PATH环境变量指向解压目录其bin子目录里需有rocblas.dll等文件GPUARCH可用包内hipInfo.exe查询。Linux按 ROCm 官方说明安装 HIP 即可。Step 3运行应用Windows推荐启动器方式ZLUDA_DIRECTORY\zluda.exe -- 应用程序 参数也可以把 ZLUDA 全部文件含nvcuda.dll复制到应用加载 CUDA 的路径通常是 exe 所在目录。Linux推荐LD_LIBRARY_PATHZLUDA_DIRECTORY:$LD_LIBRARY_PATH 应用程序 参数替代方式为LD_AUDITZLUDA_DIRECTORY/zluda_ld:$LD_AUDIT前缀。ZLUDA_DIRECTORY指预编译包中libcuda.so所在目录源码构建则为target/release。上图为实际用法之一在 Steam 启动项里填zluda.exe -- %command%即可让游戏以 ZLUDA 驱动启动。验证与高频排错验证方式运行 ZLUDA 自带的cuda_checkWindows 下zluda.exe -- cuda_check.exeLinux 下用上面的LD_LIBRARY_PATH方式运行cuda_check。输出中nvcuda、cublas13、cudnn9等条目均为OK并附底层 HIP 库路径即环境就绪。Qcuda_check报cudnn8/cudnn9加载失败A官方 HIP SDK 不含 MIOpen属已知限制。改用 nightly HIP SDK 并正确设置HIP_PATH后重跑cuda_check确认。Q应用能启动但内核执行失败提示某条 PTX 指令不被识别A当前版本仍在快速迭代中PTX 编译器未覆盖全部指令。先用 trace 录制调用序列定位问题指令zluda.exe --zluda-trace -- 应用程序日志目录Windows 在%TEMP%\zludaLinux 设ZLUDA_LOG_DIR如/tmp/zluda目录内含log.txt与module_*.ptx。Q大型应用首次启动很慢内核现场 JIT 编译A先用zluda_precompile PATH扫描并预编译目录下的 GPU 代码写入缓存它占满所有线程但也可能编译多余代码效果因应用而异。进阶技巧与调优参数llama.cpp 建议以-DGGML_CUDAON -DCMAKE_CUDA_ARCHITECTURES86 -DGGML_CUDA_FORCE_CUBLAStrue编译可获得接近原生的速度多架构编译时须包含 80/86/89 之一关闭 cuBLAS 会明显降速。预编译用zluda_precompile PATHWindows 为zluda_precompile.exe路径可以是目录或单个文件。录制日志时 Linux 同时设置ZLUDA_CUDA_LIBZLUDA_DIRECTORY/libcuda.so否则 trace 会落到 NVIDIA 驱动而非 ZLUDA。若cuda_check显示的 HIP 库路径与你的HIP_PATH不一致说明应用提前从其他路径加载了同名库ZLUDA 会复用已加载的那个——检查应用目录下的库文件。ZLUDA 处于重度开发期部分应用可能跑不通跑前先试最新 pre-release不行再用 trace 记录后反馈。资源入口快速开始源码构建说明HIP SDK 安装trace 与排错预编译缓解慢启动llama.cpp 编译参数项目更新频繁建议持续关注 Releases 页的版本标记再决定使用哪个预编译包。【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门