ZLUDA 6 发布:在非 NVIDIA GPU 上运行未经修改的 CUDA 应用程序

ZLUDA 6 发布:在非 NVIDIA GPU 上运行未经修改的 CUDA 应用程序

ZLUDA 6 通过将 CUDA 调用转换为其他 API,允许未经修改的 CUDA 应用程序在非 NVIDIA GPU 上运行。此版本标志着兼容性的重大进展,特别是扩展了对旧版游戏物理引擎和专业 3D 渲染软件的支持。

PhysX Pre-Alpha 支持

ZLUDA 现在包含了对 32 位 PhysX 的 pre-alpha 支持(通过 PR #651),使 AMD GPU 用户能够运行依赖于 NVIDIA 专有物理引擎的老旧游戏。这可以实现更高的帧率并激活此前仅限于 NVIDIA 硬件的视觉效果——例如碎片和火焰。

虽然此功能处于 pre-alpha 阶段,但存在以下限制:

  • 流体模拟可能会出现故障。
  • 将 ZLUDA 加载到 Steam 游戏中的方法目前并非最优。
  • 完全集成到预览版本中尚需等待 PR 的合并。

Blender 和纹理支持

ZLUDA 已经实现了基础的纹理支持(PR #625)。虽然目前的实现仅限于少数使用场景,但足以让 Blender 在 ZLUDA 上运行。这一扩展确保了 Blender 和 PhysX 都可以利用必要的纹理相关 CUDA 调用,从而在非 NVIDIA 硬件上运行。

Windows 兼容性改进

Windows 支持已升级,变得更加用户友好,解决了 Linux 和 Windows 安装之间的历史差距。主要的改进在于 ZLUDA 处理性能库(如 cuBLAScuDNN)的方式。

关键更新包括:

  • 自动化库加载zluda.exe 加载器现在会自动处理性能库,不再需要用户手动传递标志。
  • 改进的错误报告:ZLUDA 现在会在缺少必要库时明确通知用户,并提供安装说明(PR #612)。

机器学习 (ML) 增强

ZLUDA 收到了一系列持续的更新,以提高 PyTorch 兼容性和通用的 ML 性能。这些更新是由用户提交的 trace 驱动的,包括:

  • 新指令:通过 PRs #599, #605, #607, #609, #642, #644, 和 #629 添加。
  • 编译器 Bug 修复:在 PRs #583, #588, #585, #596, #610, #601, 和 #603 中解决。
  • 性能库优化:在 PRs #587, #615, #619, #620, #621, 和 #624 中得到改进。

项目状态与开发方向

ZLUDA 不再接受商业资助,已回归为个人侧边项目。因此,开发路线图已从商业可行性转向了主导开发者认为有趣的特性,这解释了近期对 PhysX、纹理和 Windows 易用性的关注。更新发布的频率可能会低于每季度一次,尽管开发仍在继续。

Sources