AMD悄悄地资助了一个基于ROCM的插入式CUDA实现:它现在是开源的

2024年 2月 13日 37.3k 0

虽然AMD多年来一直在努力使移植针对NVIDIA的CUDA API的代码库更容易在HIP/ROCM上运行,但这仍然需要开发人员的工作。工具已经得到了改进,比如使用了HIPIFY来帮助自动生成,但它不是任何简单、即时和有保证的解决方案--尤其是在努力实现最佳性能的情况下。在过去的两年里,AMD一直在悄悄地资助一项努力,以带来二进制兼容性,以便许多NVIDIA CUDA应用程序可以在库级别的AMD ROCM堆栈之上运行--这是一种无需改编源代码的临时替代。实际上,对于许多真实世界的工作负载,这是一种最终用户无需任何开发人员干预即可运行支持CUDA的软件的解决方案。下面是关于这个“臭鼬”项目的更多信息,这个项目现在可以作为开源项目,以及我自己为Radeon GPU构建的这个CUDA实现的一些测试和性能基准测试。

几年前你可能还记得 ZLUDA 那是为了 在英特尔显卡上启用CUDA支持.该开源项目旨在提供 英特尔显卡上的插入式CUDA实现 基于Intel oneAPI Level Zero构建。ZLUDA由于私人原因而停产,但事实证明,这背后的开发人员(当时也受雇于英特尔)Andrzej Janik于2022年与AMD签订了合同,以有效地将ZLUDA用于带有HIP/ROCm的AMD GPU。在与AMD签约之前,英特尔正在考虑开发ZLUDA。然而,他们最终拒绝了这个想法,也没有为这个项目提供资金。

Andrzej Janik花了两年时间将ZLUDA带到Radeon图形处理器上,它很管用:许多CUDA软件无需任何修改就可以在HIP/ROCM上运行--或其他进程……只需像往常一样运行二进制文件,同时确保加载了替换为CUDA的ZLUDA库。由于我不知道的原因,AMD今年决定停止资助这一努力,不将其作为任何软件产品发布。但好消息是,有一项条款可以预防这种情况:如果合同结束,Janik可以将工作开源。

Andrzej Janik伸出援手,提供了访问AMD ROCm的新ZLUDA实现,让我可以在今天计划的公开宣布之前对其进行测试和基准测试。我已经测试了几天,这是一个积极的经验:CUDA支持的软件确实运行在ROCM上,没有任何变化。即使是专有的渲染器和类似的工作与此“CUDA的Radeon”的实现。

然而,ZLUDA的实现并不是100%的故障安全,因为NVIDIA OptiX的支持不是完全支持的,而且一些功能,比如软件不使用PTX汇编代码,目前还没有处理。但在很大程度上,这个实现出人意料地能够作为单个开发人员的工作。

对于那些想知道开源代码的人来说,它是在Apache2.0或MIT下双重授权的。Rust的粉丝们会很兴奋地知道Rust编程语言被用于这个Radeon实现。

注意:在我的屏幕截图和过去两年的开发中,通过CUDA公开的RADEON GPU的设备名称只是“Graphics Device”,而不是带有ROCM的实际AMD RADEON图形适配器。其原因是由于CUDA基准自动报告结果和其他可能具有自动遥测功能的软件,为了避免泄露在CUDA下使用Radeon GPU的事实,它被设置为通用的“Graphics Device”字符串。作为今天开源ZLUDA on Radeon代码的一部分,我被告知更改将暴露实际的RADEON图形卡字符串,而不是通用的“Graphics Device”隐藏程序。

相关文章

塑造我成为 CTO 之路的“秘诀”
“人工智能教母”的公司估值达 10 亿美金
教授吐槽:985 高校成高级蓝翔!研究生基本废了,只为房子、票子……
Windows 蓝屏中断提醒开发者:Rust 比 C/C++ 更好
Claude 3.5 Sonnet 在伽利略幻觉指数中名列前茅
上海新增 11 款已完成登记生成式 AI 服务

发布评论