尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

ZLUDA 兼容性清单:未修改 CUDA 应用在 AMD GPU 上的运行边界

ZLUDA 兼容性清单:未修改 CUDA 应用在 AMD GPU 上的运行边界 ZLUDA 兼容性清单未修改 CUDA 应用在 AMD GPU 上的运行边界【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA把libcuda.so换成 ZLUDA 提供的同名库未修改的 CUDA 应用就能在 AMD 显卡上跑起来——听起来很省事但前提是你的应用落在它已覆盖的 API 面内。实测中最常见的翻车点不是cuMemAlloc而是应用依赖 32 位 CUDA、OptiX 或 macOS 后端这类项目方明确不做或已停做的区域。能力全景先看这张表再决定投入模块支持程度关键限制替代路径驱动 API64 位AMD RX 5000✅ 主推路径仅 AMD 桌面/集成 GPUPolaris、Vega 不支持换 RX 5000 及以上硬件32 位 CUDAPhysX 专用有限实现只为 PhysX 裁剪PhysX 重新初始化可能失败用32\zluda.exe启动器而非系统级注入cuBLAS / cuFFT / cuDNN / cuSPARSE 等库有 Rust 重写层算子覆盖面待逐项验证闭源库无逐函数对照表开启应用侧 rocBLASllama.cpp 需GGML_CUDA_FORCE_CUBLAStrueIntel GPU 后端已停做项目方专注 AMD 后端质量提 PR或等后端复活社区推测NVIDIA GPU / macOS不支持NVIDIA 无计划macOS 官方明确几乎不可能无替代换平台OptiX / 硬件光追无计划OptiX 自带 PTX 方言与 host 代码需专职团队改用软件光追或 CPU 路径PyTorch / TensorFlow路线图优先项PyTorch 初步支持预期 2025 Q4TF 随后先跑 llama.cpp 等已验证应用技术拆解版本伪装与属性映射ZLUDA 的拦截层把 CUDA 驱动 API 逐函数转发到 HIP 运行时应用侧不需要改一行代码。版本上报是第一道伪装cuda_types/src/cuda.rs里定义// cuda_types/src/cuda.rs pub const CUDA_VERSION: u32 13000;zluda/src/impl/driver.rs的cuDriverGetVersion直接把这个常量返回给应用// zluda/src/impl/driver.rs pub(crate) fn get_version(version: mut ::core::ffi::c_int) - CUresult { *version cuda_types::cuda::CUDA_VERSION as i32; Ok(()) }这段代码说明应用做CUDA_VERSION 13000之类的能力判断时拿到的不是 NVIDIA 驱动的版本而是 ZLUDA 编译期写死的常量。判断结果与实际能力是否一致取决于 ZLUDA 对相应 API 的真实实现程度应用自行探测不可全信。第二个关键点是设备属性映射。CUDA 的CUdevice_attribute与 HIP 的hipDeviceAttribute_t枚举名不完全对应zluda/src/impl/device.rs用paste宏批量做名字拼接和 match 重写// zluda/src/impl/device.rs macro_rules! remap_attribute { ($attrib:expr { $([ $($word:expr)* ]),*, }, { $($exactWord:expr $hipWord:expr),*, }) { match $attrib { paste::paste! { CUdevice_attribute::[ CU_DEVICE_ATTRIBUTE $(_ $word:upper)* ] } paste::paste! { hipDeviceAttribute_t::[ hipDeviceAttribute $($word:camel)* ] } } // 特殊枚举走精确匹配分支... } }; }这段代码证明属性查询走的是按名字批量映射 特例补丁的路子未被宏覆盖的属性会落到默认分支行为报错或返回 0对应用是透明的——这是排查数值不对类问题的第一现场。更多转发细节见 zluda/src/impl/。环境验证5 步确认可运行GPU 必须是 AMD Radeon RX 5000 系列及更新的桌面/集成卡Polaris、Vega 及服务器卡不在支持列表。装 AMD 新版驱动Adrenalin EditionWindows 下另需安装 HIP SDK提供 rocBLAS 等库。获取最新 pre-release 包README 建议跟最新 pre-release因为迭代很快。WindowsZLUDA_DIR\zluda.exe -- 应用 参数LinuxLD_LIBRARY_PATHZLUDA_DIR:$LD_LIBRARY_PATH 应用ZLUDA_DIR是含libcuda.so的目录。跑不起来就加--zluda-trace收一份 API 跟踪日志按 docs/src/troubleshooting.md 比对。官方在 docs/src/quick_start.md 开头挂了警告当前版本处于重开发阶段很可能还不支持你的应用建议试跑并回报结果。实战对照三类真实负载的实际表现应用/负载运行状态需改什么代价llama.cpp原生速度可跑官方文档结论CMake 加-DGGML_CUDA_ARCHITECTURES86 -DGGML_CUDA_FORCE_CUBLAStrue多架构编译时 80/86/89 至少含一个关 cuBLAS 会掉性能32 位 PhysX 游戏Mirrors Edge、Alice: Madness Returns、Mafia II Classic官方已测可启动Steam 启动项填PATH_TO_ZLUDA\32\zluda.exe -- %command%⚠️ 游戏内改 PhysX 设置可能崩溃或挂起官方 Known IssuesPyTorch未就绪无需现在改初步支持预期 2025 Q4属官方 FAQ 口径macOS 上的任何 CUDA 应用不可用无替代路径官方判定几乎不可能支持 macOS边界与绕行不能做什么OptiX 硬件光追不会支持。根因是 OptiX 用自己的 PTX 方言、独立 host 代码和专属优化需要专职团队才能做。绕行应用切软件光追/CPU 后端无性能代价可谈这是功能级缺失。Intel GPU后端已停做不是 bug。绕行没有。等社区贡献复活后端或换 AMD 卡。32 位 CUDA只实现了 PhysX 所需子集。绕行只用32\zluda.exe启动器方案系统级注入拷nvapi.dll/nvcuda.dll到SysWOW64 设ZLUDA64_PATH官方明确不推荐。PhysX 运行中重新初始化会失败可能崩溃或挂起。绕行游戏内不要切换 PhysX 相关设置项代价是该类游戏部分功能不可用。DLSS技术阻塞已解除新 AMD 驱动支持向 D3D 命令列表入队 HIP kernel但不在路线图上。绕行用 FSR 等替代超分。macOS不支持。绕行无。NVIDIA GPU不在计划内官方原话NVIDIA 用户本来就能用原生 CUDA。演进时间线项目方说过的话近期2025 内已确认PyTorch 初步支持预期 2025 Q4FAQ 原话官方口径TensorFlow 支持紧随 PyTorch 之后官方 FAQ未给具体季度中期官方 Roadmap / 社区推测Intel GPU 后端复活项目方称可以复活欢迎贡献——社区推测无时间表PhysX 32 位完整实现日志收集 groundwork 已完成、有实现方案但不入路线图等外部贡献者——官方定性为可能长期社区推测OpenCL/Vulkan 移植路径FAQ 承认可行但功能会明显缩水丢 FP contraction 控制、rounding mode、内联汇编等且 cuBLAS/cuDNN 类库难以映射——仅作方向参考高频问答Q游戏跑不起来第一步做什么结论先收 trace别猜。原因ZLUDA 是拦截层问题几乎都是应用调了某个未实现的 APItrace 里能直接看到。操作启动器加--zluda-trace有 NVIDIA 卡的话同参数收一份--nvidia-trace做对照。QLinux 和 Windows 的加载方式要分开配吗结论要。原因Windows 走nvcuda.dll同名替换/启动器Linux 走动态库路径。操作Windows 用zluda.exe --Linux 二选一——LD_LIBRARY_PATH前置 ZLUDA 目录推荐或LD_AUDIT指向zluda_ld。Q老版本rollback 前还能要吗结论项目方不响应。原因法律原因FAQ 明确拒绝提供 4 之前的版本。操作只用 4 及之后的 release。QPyTorch 什么时候能用结论2025 Q4 初步支持官方口径。原因PyTorch 是当前最高优先级。操作先跑 llama.cpp 验证管线PyTorch 就绪前别按它做容量规划。Q多架构编译的 llama.cpp 要注意什么结论架构列表里必须含 80、86、89 之一。原因PTX→HIP 编译路径按这几个计算能力做映射。操作-DCMAKE_CUDA_ARCHITECTURES里显式加上。收束适合手头有 AMD RX 5000、负载是已验证的 CUDA 应用llama.cpp/PhysX 游戏的人。行动指令先按第 4 节跑一遍 trace再决定要不要上 PyTorch 场景。【免费下载链接】ZLUDACUDA on non-NVIDIA GPUs项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表