ZLUDA

7个月前发布 267 00

ZLUDA 是一个用于非英伟达GPU 的 CUDA 替代品。ZLUDA 允许在非英伟达 GPU 上运行未经修改的 CUDA 应用程序,并具有接近原生的性能。ZLUDA 支持 AMD Radeon RX 5000 系列及更新的 GPU(包括桌面和集成显卡)。

所在地:
美国
收录时间:
2025-07-05
其他站点:

如果你关注非英伟达 GPU 上运行 CUDA 应用的可能性,那你一定听说过 ZLUDA。它是一个开源项目,旨在让 AMD Radeon RX 5000 系列及更新的 GPU(包括桌面和集成显卡)能够运行未经修改的 CUDA 应用程序,并实现接近原生的性能。

本季度,ZLUDA 在多个方面取得了重要进展。以下是我们为你整理的重点更新内容:

团队规模翻倍:欢迎 Violet 加入开发团队

ZLUDA 的全职开发团队人数已从一人扩充至两人。新成员 Violet 加入不到一个月,就已在多个关键模块上做出重要贡献。

她主要参与了 llm.c 测试项目 的推进工作,后续我们会详细介绍这部分成果。

解决 AMD 驱动中的关键回归问题:comgr ABI 断裂

GPU 运行时系统(如 CUDA、ROCm/HIP、ZLUDA 和 OpenCL)都需要在运行时动态编译 GPU 代码,以支持向前兼容性。

ZLUDA 使用的是 ROCm 提供的 comgr 编译器支持库。然而,随着 ROCm/HIP 6.4 版本的发布,comgr 引入了一个微妙但影响深远的 ABI 断裂:amd_comgr_do_action 函数中操作类型的整数值被重新排序。

这导致 ZLUDA 在调用 comgr 时可能误将“编译”请求识别为“链接”,从而引发静默失败,尤其是在 Windows 平台上更为严重。

该问题已在 PR #364 和 #366 中修复。如果你使用的项目依赖 ROCm/HIP,并且在使用 ROCm 6.4 或 Adrenalin 25.5.1 时遇到意外失败,这可能是根本原因。

向位精确执行迈进:提升指令模拟精度

ZLUDA 的核心目标是在非 NVIDIA GPU 上运行未经修改的 CUDA 二进制文件。这意味着我们必须尽可能准确地模拟每条 GPU 指令的行为。

为了验证这一点,我们引入了一套基于 PTX 的测试机制。这套测试覆盖了大量指令及其修饰符组合,并与原始 NVIDIA CUDA 的输出进行对比。

目前,我们已经在 ZLUDA 上成功运行这套测试套件,并修复了其中发现的一些编译器问题(详见 PR #379)。虽然尚未完成全部指令的测试,但在一些复杂指令(如 cvt)上,我们已经实现了位精确执行。

GitHub 自动化构建上线:无需手动编译即可体验最新版本

自 PR #358 起,我们已在 GitHub 上启用自动化构建流程。这意味着开发者和用户可以更方便地获取最新版本的 ZLUDA,而无需手动编译源码。

目前这一功能仍在完善中,未来我们计划将这些构建包发布到 GitHub 页面的“预发布”区域,以提高可访问性和可见性。

日志记录能力增强:更全面捕捉 CUDA 调用行为

调试任何运行在 ZLUDA 上的 CUDA 应用程序,第一步就是完整记录其所有 CUDA API 调用行为。新版日志系统在这方面有了显著提升。

通过 PR #372 的合并,我们现在可以记录此前无法捕获的中间层交互信息。例如:

  • cuBLAS 如何使用 cuBLASLt
  • cuDNN 如何调用 Driver API

这对调试和功能扩展至关重要。

PhysX 支持小步推进:32 位日志收集开启新篇章

社区成员 @Groowy 开始尝试收集 32 位 PhysX 的 CUDA 调用日志,这是迈向支持 PhysX 的第一步。这一过程发现了 ZLUDA 中若干潜在问题(详见 Issue #374),其中部分还可能影响 64 位应用。

虽然完整的 PhysX 支持仍需社区进一步贡献,但这项工作已被纳入官方路线图。

llm.c 实现重大进展:从 0 到 552 次调用突破

为了验证 ZLUDA 的实际可用性,我们选择了 llm.c 中的 test_gpt2fp32cu 测试作为切入点。该项目虽小,但首次使用了完整的 CUDA 运行时和 cuBLAS 性能库。

Violet 在短时间内提交了多个 PR(#377, #380, ..., #394),使 ZLUDA 能够运行到第 552 次 CUDA 调用(此前在第一次调用即失败)。目前 44 个函数中已有 16 个实现。

这一进展不仅推动了 llm.c 的运行,也为后续支持 PyTorch 等大型项目打下了坚实基础。

数据统计

相关导航

MinerU

MinerU

MinerU是一款功能强大、操作简单的文档解析工具。它不仅支持多种格式和导入方式,还能精准提取复杂元素,适用于多种场景。无论是学术研究、数据分析还是日常办公,MinerU都能为你带来流畅、准确的解析体验。在科研、学习和工作中,处理复杂文档格式一直是一个让人头疼的问题。无论是科技文献中的公式、表格,还是多语言扫描版PDF,传统工具往往难以满足高效、精准的解析需求。而今天要介绍的 MinerU,正是一款专为解决这些问题而生的免费文档解析神器。它不仅能精准提取复杂元素,还支持多种格式一键转换,适用于从机器学习到大模型语料生产的多种场景。 全格式兼容,轻松导入 MinerU 的一大亮点是其强大的格式兼容性。无论你的文档是 PDF、Word、PPT 还是图片,MinerU 都能轻松应对。通过简单的拖拽、截图或批量上传,你就可以快速将文件导入工具中,无需繁琐的操作。 支持格式:PDF、Word、PPT、图片等主流文档类型。 操作便捷:拖拽、截图、批量上传,一键完成导入。 智能识别:自动检测扫描版PDF和乱码PDF,并启用OCR功能,支持84种语言的检测与识别。 复杂元素精准提取 对于科技文献、学术论文等包含复杂排版的文档,MinerU 表现尤为出色。它能够精准定位并提取图表、公式等复杂元素,确保内容完整且语义连贯。 精准定位:自动识别文档中的图表、公式、表格等复杂元素,并进行精准提取。 结构保留:输出结果保留原文档的标题、段落、列表等结构,确保逻辑清晰。 多模态解析:支持图像描述、表格标题、脚注等内容的提取,适配多种使用场景。 多场景极速输出 MinerU 不仅擅长解析文档,还提供了丰富的输出格式选择,满足不同场景的需求。无论是用于机器学习训练、大模型语料生产,还是构建 RAG(检索增强生成)系统,MinerU 都能提供高效的解决方案。 多种输出格式: Markdown:适合多模态与NLP任务。 JSON:按阅读顺序排序,便于后续处理。 LaTeX:自动识别并转换公式,极大提升科研效率。 HTML:自动转换表格,方便网页展示。 可视化支持:提供 layout 可视化、span 可视化等功能,便于高效确认输出效果与质检。 技术亮点与性能优化 MinerU 在技术层面同样表现出色,兼顾了易用性与性能优化: 跨平台支持:兼容 Windows、Linux 和 Mac 平台,满足不同用户的设备需求。 硬件加速:支持纯 CPU 环境运行,同时可选 GPU(CUDA)、NPU(CANN)、MPS 加速,显著提升处理速度。 高精度 OCR:针对扫描版PDF和乱码文档,MinerU 内置高精度OCR功能,支持84种语言的检测与识别。 主要功能一览 MinerU 的核心功能覆盖了文档解析的方方面面,帮助用户高效完成复杂的文档处理任务: 删除冗余元素:自动移除页眉、页脚、脚注、页码等内容,确保输出文本语义连贯。 阅读顺序优化:输出符合人类阅读习惯的文本,无论是单栏、多栏还是复杂排版都能轻松应对。 公式与表格转换: 自动识别并转换公式为 LaTeX 格式。 自动识别并转换表格为 HTML 格式。 多语言支持:OCR 功能支持84种语言,满足国际化需求。 灵活输出:支持多种格式输出(Markdown、JSON、LaTeX、HTML 等),适配多种应用场景。 适用场景广泛 MinerU 的设计初衷是为了服务于科研和技术发展,但它的应用范围远不止于此。以下是一些典型的应用场景: 机器学习与大模型训练:将大量文档转化为高质量的训练数据,助力模型语料生产。 RAG 系统构建:为检索增强生成系统提供结构化数据支持。 学术研究:快速解析科技文献,提取关键信息,提升科研效率。 企业办公:批量处理合同、报告等文档,节省人工整理时间。 为什么选择 MinerU? 相比其他文档解析工具,MinerU 的优势在于其全面性和精准性。它不仅能够处理各种复杂文档,还能根据用户需求输出多样化的结果。更重要的是,MinerU 完全免费,且持续优化以解决科技文献中的符号转化问题,为大模型时代的技术进步贡献力量。

暂无评论

none
暂无评论...