首页news 正文
目录

初创公司硬刚英伟达:在 AMD 卡上模拟 CUDA,原版程序直接编译运行

news2024-10-25 02:057480
AMD 显卡也能运行原版 CUDA 程序,无需进行任何修改!一家英国初创公司推出了面向AMD显卡的CUDA程序编译工具,而且还可以免费商用。发布后,这款工具引起了广泛关注,甚至在 HackerNews 热榜上登顶。这一工具名为SCALE,被定位为通用GPU编程工具包。截至目前,已有包括大型框架llama-cpp在内共9个程序通过测试并正常运行。SCALE 与...

AMD 显卡也能运行原版 CUDA 程序,无需进行任何修改!

一家英国初创公司推出了面向AMD显卡的CUDA程序编译工具,而且还可以免费商用。

发布后,这款工具引起了广泛关注,甚至在 HackerNews 热榜上登顶。

这一工具名为SCALE,被定位为通用GPU编程工具包。

截至目前,已有包括大型框架llama-cpp在内共9个程序通过测试并正常运行。

SCALE 与其他实现方式有所不同,它直接模拟CUDA工具包的安装,无需将代码转换为其他语言即可进行源到源编译。

这使得SCALE能够支持内联PTX等英伟达专用中间语言。

让AMD支持CUDA,无需转换

官网介绍显示,SCALE主要由三部分组成——兼容nvcc编译器、CUDA运行时和驱动API的AMD实现,以及ROCm库。

在这些组成部分中,编译器可以直接将用CUDA专用语言编写的程序(包括nvcc、内联PTX等)编译为可在AMD GPU上运行的二进制代码。

ROCm库则提供“CUDA-X”API,在处理cuBLAS和cuSOLVER等库时,SCALE均采用这种方式。

SCALE的关键创新在于它可以直接接受CUDA程序,无需移植至其他语言,同时兼容nvcc和clang等多种编译方式,现有的构建工具和脚本(如cmake)也能正常使用。

官方表示,SCALE实现了对CUDA的完全兼容,使开发者无需为不同GPU平台单独编写代码。

这与AMD推出的HIP有很大不同,因为HIP通过某种方式对CUDA代码进行重写,可能无法正确识别复杂的宏,并且不支持内联PTX等专用语言。

SCALE的作者甚至认为,HIP无法解决CUDA的兼容性问题。

另外,SCALE语言是CUDA的超集,提供一些可选的语言扩展,使希望摆脱nvcc的开发者能更轻松、高效地编写GPU代码。

作者表示,希望未来开发者可以一次编写代码,就能在不同硬件平台上运行,目前正在通过弥合CUDA编程语言和其他硬件供应商之间的兼容差距来实现这一目标。

目前,SCALE对各种AMD GPU系列的支持情况如下:

  • 已支持:gfx1030(RX6000系列)和 gfx1100(RX7000系列)

  • “似乎有效”:gfx1010(RX5000系列)和 gfx1101

  • 正在适配:gfx900(RX Vega系列)

此外,作者还测试了几个CUDA开源项目,并成功地利用SCALE运行了9个CUDA应用程序。

然而,由于SCALE是一个全新的项目,因此作者为该工具准备了一系列教程,涵盖从安装到编译的方方面面,并提供了各种示例程序。

每个教程的关键步骤都含有相关代码示例,甚至包括如何确定GPU型号,极为细致。

如果用户在使用过程中遇到问题,作者还提供了常见故障的排除方法,同时还开设了Discord论坛,方便用户直接与开发团队交流。

这家推出SCALE的初创公司名为Spectral Compute,成立于2018年,总部位于英国,自称对CPU和GPU架构有深入的了解,旨在帮助开发者更有效地利用算力资源。

网友:挑战英伟达的领导地位?

有网友认为,如果SCALE能够如其宣传的那样有效,将对英伟达构筑的领先地位构成挑战,让AMD直接与之竞争。

然而,现在下定论还为时过早,因为SCALE官方也承认与原版CUDA相比仍存在一些缺陷。

开发者明确表示,尽管SCALE支持大部分CUDA API和功能,但仍有一些API和功能不被支持,只是官方尚未给出具体列表。

另一位与SCALE团队交流过的网友表示,至今SCALE仍无法操控TensorCore,这意味着AMD无法在其上运行FlashAttention加速框架。

此外,由于N卡上配备有强大的矩阵乘法单元,即使SCALE编译能运行,AMD卡上的性能可能仍无法与N卡匹敌。

一些网友认为,AMD无法与英伟达竞争的原因在于其不愿将投资用于提升GPU在机器学习性能上的表现,而不仅仅是依赖CUDA的优势。

即便能够高效运行,AMD显卡是否真的经济实惠且易获取,仍是一个待解决的问题。

还有一些网友认为,技术是否能够运行不是最大的问题,法律问题背后也需要面对。

关于这个问题目前也在引发广泛讨论,尚未有明确结论。

一些人认为,与ZLUDA(另一种在AMD上运行CUDA程序的方式)类似,SCALE也存在法律疑点,可能会引发英伟达的诉讼。

具体来说,根据英伟达的最终用户许可协议(EULA)条款,CUDA SDK仅允许开发在N卡上运行的应用程序,这可能会阻止类似SCALE这样的兼容性实现。

不过,也有网友表示,SCALE没有使用英伟达的SDK,因此不存在SDK使用协议的问题。

无论是技术问题还是法律问题,对这款新工具的讨论仍在继续。

至于该工具是否好用,现在需要开发者用实际行动来评判。

参考链接:

  • [1]https://docs.scale-lang.com/

  • [2]https://news.ycombinator.com/item?id=40970560

本文来自微信公众号:量子位(ID:QbitAI),作者:克雷西

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考。

标签精读

扫描二维码推送至手机访问。

本文转载自互联网,如有侵权,联系删除。

本文链接:https://xiezilouchuzuwang.cn/news/3861.html

您暂未设置收款码

请在主题配置——文章设置里上传

扫描二维码手机访问

文章目录