ARTICLE DETAIL

资讯详情

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

没有 N 卡也能跑 CUDA 程序?ZLUDA 在 AMD 显卡上完整上手指南

没有 N 卡也能跑 CUDA 程序?ZLUDA 在 AMD 显卡上完整上手指南 没有 N 卡也能跑 CUDA 程序ZLUDA 在 AMD 显卡上完整上手指南【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA在 AMD 显卡上跑 CUDA 程序你大概率会卡死在第一行PyTorch 报No CUDA GPUs are available或者某个依赖 CUDA 的游戏直接拒绝启动。原因很直白——程序只会通过 CUDA 跟 NVIDIA 卡说话而你没有。ZLUDA 干的就是这一件事作为非 NVIDIA GPU 的 CUDA 兼容层让未改动的 CUDA 程序在 AMD 卡上以接近原生的性能跑起来。30 秒看懂 ZLUDA它是怎么顶替 CUDA 的应用程序并不直接跟 GPU 说话而是调用 CUDA 驱动Windows 上是nvcuda.dllLinux 上是libcuda.so。ZLUDA 的做法是在应用加载库的路径里放一套同名替身文件拦截应用发出的所有cu*调用先落到 ZLUDA 手里翻译运行时调用转成 HIP 调用GPU 代码PTX 汇编由 ZLUDA 自带的 PTX 编译器重新编译成 AMD 卡能执行的代码执行计算真正发生在 AMD 卡上性能库一一映射到 ROCm 生态——cuBLAS→rocBLAS、cuDNN→MIOpen、cuFFT→rocFFT。应用以为自己在跟 NVIDIA 卡打交道实际是 AMD 在干活。官方文档在 docs/主运行时在 zluda/src/PTX 编译器在 ptx/想深入可以看源码。安装前先检查三件事支持范围比想象里清晰得多先看表硬件状态AMD Radeon RX 5000 系列及更新含桌面版与集显✅ 支持Polaris、Vega 等更老的消费级 GPU❌ 不支持AMD 服务器级 GPU❌ 不支持Intel GPU曾支持目前已暂停NVIDIA不打算做——N 卡用户有原版 CUDAmacOS不打算做动手前跑三条命令自查lspci | grep -i vga # 显卡型号 uname -m # 系统架构 free -h # 内存余量Windows 用户另外需要两个前提最新的 AMD Adrenalin 驱动以及 HIP SDK选型见下节。Linux 需要装好 AMD 驱动和 ROCm/HIP。安装并跑通Windows / Linux 分支步骤ZLUDA 迭代很快建议直接下载最新的预发布包被标记 stable 的版本更稳开发者可以从源码构建git clone --recursive https://gitcode.com/GitHub_Trending/zl/ZLUDA cd ZLUDA cargo xtask --release # 产物在 target/releaseWindows 分支先给 HIP SDK 做个选择。HIP SDK 选项安装方式稳定性机器学习应用PyTorch 等官方 HIP SDK自动安装器AMD 官方支持❌ 不含 MIOpenML 跑不了Nightly 构建手动解压 设HIP_PATH环境变量无稳定性保证✅ 必需然后不用改任何环境变量用 ZLUDA 的启动器拉起应用即可zluda.exe -- 你的应用 参数 zluda.exe -- cuda_check.exe # 自检每行 OK 即通过游戏场景更省事把截图里这种启动选项填进游戏的启动选项栏路径改成你自己zluda.exe的位置游戏本身不用动。Linux 分支装完依赖后无需额外安装把 ZLUDA 所在目录塞进库搜索路径就行LD_LIBRARY_PATHZLUDA_DIR:$LD_LIBRARY_PATH 你的应用 参数ZLUDA_DIR是包含libcuda.so的目录预发布包里是zluda/子目录源码构建是target/release。跑法同上cuda_check每行OK、括号里指向rocblas.dll、MIOpen.dll之类的底层库说明整条链路通了。跑一个真实任务看两个数字 自检通过只证明库能加载真正能不能用要看实际程序。以常用的本地大模型推理 llama.cpp 为例按 CUDA 8.6 架构 cuBLAS 编译cmake -B build -DGGML_CUDAON -DCMAKE_CUDA_ARCHITECTURES86 -DGGML_CUDA_FORCE_CUBLAStrue跑起来后可以观察两个数字首次启动耗时——第一次调用会现场编译 PTX有编译缓存后第二次明显变快推理吞吐——官方文档给出的口径是 86 架构 cuBLAS 组合下达到 native speed关掉 cuBLAS 则性能明显下降。大型应用游戏、大框架还可以提前把目录里的 GPU 代码全量预编译进缓存避免首启卡顿zluda_precompile.exe 路径 # Windows zluda_precompile 路径 # Linux它会占满所有 CPU 核心做编译换首启不等待。避坑高频问题速查表 现象原因处理应用报找不到 CUDA / 初始化失败ZLUDA 的驱动文件不在搜索路径Windows 用zluda.exe --启动Linux 前置LD_LIBRARY_PATH或把库拷到 exe 同目录Windows 上cuda_check的 cudnn8/9 失败官方 HIP SDK 不含 MIOpen换 Nightly HIP SDKML 应用必须用这个大型应用首启缓慢PTX 首次使用才编译用zluda_precompile预编译进缓存报Unrecognized statement …等 PTX 解析错误项目处于快速开发期个别指令暂未支持用 zluda_trace/ 录制调用日志后提 issuezluda_trace是随项目附带的调用录制层会把应用每次 CUDA 调用的参数和返回码记到文件里连应用实际用的 PTX 也会存盘提 issue 时直接附上用法见 docs/src/troubleshooting.md。选型参考跟其他方案差在哪 ⚖️维度ZLUDA原生 ROCmHIPOpenCL / Vulkan 移植应用代码是否要改不用原版 CUDA 二进制要 hipify 或维护双份代码要移植性能库cuBLAS/cuDNN/cuFFT 映射到 rocBLAS/MIOpen/rocFFT原生 ROCm 全家桶难以映射功能上限低硬件范围AMD 为主Intel 曾支持AMD广成熟度快速迭代、仍在开发中PyTorch 预计 2025 Q4相对完整成熟但表达力受限一句话能改代码ROCm 更稳不能改代码又没有 N 卡ZLUDA 是目前唯一装上就能试的路。边界它适合什么不适合什么适合在 AMD 卡上试用现有 CUDA 软件推理、游戏、工具类学 CUDA 驱动 / PTX 这套栈的运作原理——项目全开源ptx/src/ 和 compiler/ 比任何教程都直接兼容性测试、学习和轻中度计算任务。不适合对性能有稳定要求的生产负载依赖 OptiX 硬件光追的应用——官方判断基本不会支持macOS 场景。展望就一句官方优先级是先把 PyTorch 跑起来预计 2025 Q4再跟上 TensorFlow只要你的卡是 RX 5000 系列或更新值得持续跟进它的预发布版本。【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表