首页 游戏天地文章正文

重大进展!攻克CUDA护城河又进一步!

游戏天地 2025年07月04日 14:31 1 admin

据 Phoronix 报道,ZLUDA 是一款 CUDA 转换层,去年险些停运,后被某匿名方救助。本周,该项目公布了最新进展,提及过去一个季度在技术上取得的稳步进步以及团队的扩充情况。该项目持续提升自身能力,旨在让非英伟达显卡也能运行 CUDA 工作负载,目前其重心更多放在人工智能领域,而非其他方面。不过,团队已开始着手支持 32 位 PhysX,这是实现与基于 CUDA 的旧款游戏兼容的必要条件。

对 ZLUDA 项目而言,或许最重要的一点是,其开发团队已从 1 名全职开发者扩充至 2 名。据最新消息,第二名开发者名为维奥莱特(Violet),加入尚不足一个月,却已带来了重要改进,尤其是通过 llm.c 项目推进了对大型语言模型(LLM)工作负载的支持。

重大进展!攻克CUDA护城河又进一步!

32 位 PhysX

一位名为 @Groowy 的社区贡献者开启了 ZLUDA 支持 32 位 PhysX 的初步工作,他收集了详细的 CUDA 日志,很快发现了若干漏洞。由于其中部分问题可能也会影响 64 位 CUDA 的功能,修复这些漏洞已被纳入官方路线图。然而,要完全实现对 32 位 PhysX 的支持,仍需开源贡献者提供进一步的帮助。

与LLM.c 的兼容性

ZLUDA 的开发者们正在开展一个名为 llm.c 的测试项目,这是一个小型示例程序,尝试借助 CUDA 运行 GPT-2 模型。尽管该测试规模不大,但意义重大,因为这是 ZLUDA 首次尝试同时处理常规 CUDA 函数和 cuBLAS(快速数学运算库)等特殊库。

该测试程序会对 CUDA 函数进行 8186 次单独调用,涉及 44 个不同的 API。起初,ZLUDA 在第一次调用时就会立即崩溃。多亏维奥莱特贡献的多项更新,如今它能成功执行到第 552 次调用才失败。团队已经完成了 44 个所需函数中 16 个的支持工作,离成功运行整个测试又近了一步。一旦该测试成功,将有助于 ZLUDA 在未来支持像 PyTorch 这样更大型的软件。

提升ZLUDA 的准确性

ZLUDA 的核心目标是让标准 CUDA 程序能在非英伟达显卡上运行,且尽可能与英伟达硬件的表现保持一致。这意味着每条指令的结果要么与英伟达硬件完全一致(精确到最后一位),要么在严格的数值公差范围内。在进行重大代码重置之前,旧版本的 ZLUDA 往往会为了追求其他方面而牺牲准确性,比如忽略某些指令修饰符或无法保持全精度。

当前版本在这方面已取得重大改进。为确保准确性,ZLUDA 运行 PTX “全面扫描” 测试 —— 这是一种利用英伟达的中间 GPU 语言进行的系统性检查,旨在确认所有指令和修饰符组合在各种输入情况下都能产生正确结果,这一方法此前从未被使用过。通过这些检查,发现了若干编译器缺陷,随后均已得到解决。ZLUDA 承认,并非所有指令都已完成这种严格的验证,但强调部分最复杂的情况(如 cvt 指令)现已确认达到位级精度。

完善日志功能

要让任何基于 CUDA 的软件在 ZLUDA 上运行 —— 无论是游戏、3D 应用程序还是机器学习框架,其基础是获取程序与 CUDA 交互的日志,其中包括跟踪直接的 API 调用、CUDA 运行时(或驱动程序)未公开的部分,以及任何专用性能库的使用情况。

在最近的更新中,ZLUDA 的日志系统得到了显著升级。新的实现方式能捕捉到更多以往无法监测到的活动,包括内部行为的详细轨迹,例如 cuBLAS 如何依赖 cuBLASLt,以及 cuDNN 如何与底层驱动 API 交互。

运行时编译器兼容性

现代 GPU 框架,如 CUDA、ROCm/HIP、ZLUDA 和 OpenCL,都需要在应用程序运行时动态编译设备代码,以确保旧款 GPU 程序无需修改原始代码,就能在新一代硬件上正确编译和执行。

在 AMD 的 ROCm/HIP 生态系统中,这种即时编译依赖于 comgr 库(全称为 ROCm-CompilerSupport),这是一个功能丰富的小型库,可处理编译、链接和反汇编等任务,在 Linux 和 Windows 系统上均能使用。

ROCm/HIP 6.4 版本发生了一次重大的应用程序二进制接口(ABI)变更:代表操作的数字代码在新的 v3 ABI 中进行了重新排列。这导致 ZLUDA 意外调用了错误的操作 —— 例如,本应编译却尝试链接,从而引发错误。在 Windows 系统上,情况更为糟糕,该库声称是 2.9 版本,内部却使用 v3 ABI,导致行为混乱。最近,ZLUDA 团队已解决了这些问题。

发表评论

泰日号Copyright Your WebSite.Some Rights Reserved. 网站地图 备案号:川ICP备66666666号 Z-BlogPHP强力驱动