Re: [闲聊]AMD显卡可以跑CUDA程式,那就不必特地买N

楼主: wuyiulin (龙破坏剑士-巴斯达布雷达)   2024-03-02 09:05:22
各位早安,
这里是礼拜六早上的 R&D。
※ 引述 《amduser (重返荣耀)》 之铭言:
:  
: 之前新闻
: https://news.mydrivers.com/1/963/963717.htm
:  
: NVIDIA CUDA通过多年耕耘,铸就了牢不可破的生态壁垒,外人各种尝试都无法进入,包
: 括AMD ROCm开发平台,但其实也不是没有办法。
: 开发者Andrzej Janik就凭借一己之力,借助Intel oneAPI,开发了CUDA兼容方案“ZLUDA
: ”,能够在Intel硬件上原生运行CUDA应用,后来就被停了
: 之后在AMD的支持下,ZLUDA重启了该项目,能够让AMD显卡原生运行CUDA应用,不需要任
: 何转移,也不需要调整代码。
: 唯一要做的,就是用ZLUDA库替代CUDA。
: 虽然它不能保证每一款CUDA应用都跑起来,但已经是以一个巨大的突破。
: 非常可惜,AMD支持这一项目做了两年,也给停了——不知道是不是受到了NVIDIA的压力
: 。
: 幸运的是,ZLUDA项目并未彻底消散,已经免费开源,感兴趣有能力的开发者都可以使用
: ,而且确认可以在AMD ROCm平台上无缝运行CUDA应用。
: 比如说,可以将CUDA作为Blender 4.0或者V-Ray的渲染API,尤其是Blender本来就有
: Radeon HIP计算渲染器,如今跑在ZLUDA上速度还会更快。
: Andrzej Janik也在继续研究ZLUDA,其中一个目标就是要让AMD显卡运行NVIDIA DLSS。
: 内部测试表明,对比OpenCL方案,其性能大部分时候都更好,最多可以领先超过75%,但
: 因为还在开发之中,部分时候效率反而更低。
:  
: 大家都知道NVIDIA最喜欢搞特规G-SYNC、DLSS、CUDA、闭源软件一大堆不开放给其他家用
: ,现在ZLUDA可以让AMD显卡跑CUDA程式,那以后就不必特地买N卡了,应该以后会有人拿
: AMD显卡来搞AI了吧!
:  
: https://github.com/vosen/ZLUDA
:  
ZLUDA 这东西我研究过一阵子,
当然不是现在这个 Fork,
而是三年前那个版本。
平台使用 Ubuntu 22.04 64bit
我研究后发现 ZLUDA 的运作原理是这样:
ZLUDA 会去模拟一套 CUDA API,
然后内部再自己实现功能。
这代表什么呢?
假设你有一套程式支援 CUDA 8 好了,
现在 CUDA 要更新变成 CUDA 9 囉!
N 家能在历史版本里面找到 旧版CUDA来套,
那你程式就能顺利跑了。
如果你用 ZLUDA ,
之前的问题就是他只支援某特定版本 CUDA,
还没有 Released 他是 depend 哪一版?
ZLUDA 是照某板的 API 下去写的!
所以你想支援机器学习框架?
(e.g. TensorFlow, PyTorch)
那要先找到这个是用哪版 CUDA,
找到后还要确定这版的框架你装得起来。
个人是认为这难度:
https://i.imgur.com/OBzSNCH.gif
除去框架,
实测能够用 ZLUDA 跑起来的 CUDA 程式:
Geekbench 5
也尝试过从底层像是 Numba 重写算法
拿去 Benchmark performance 。
一样遇到 Numba 卡版本问题。
退一万步说 ZLUDA 可能有用,
但是老黄一版更他就会死翘翘,
而且死很久。
开源的东西都这样,苏妈也不是做慈善的。
既然主流的框架(e.g. PyTorch)
都有支援 ROCm,干嘛出大钱搞 ZLUDA?
结论:
ZLUDA 要真正可以商用,
就是要有人花钱去帮每一版 CUDA 写 API,
然后拿出一张表对标版本支援才有用。
现在商用想逃离 NV 还是推 OpenCL 解决方案,
以上。
作者: supereva (eva)   2024-05-14 10:31:00
只能吸引你 不能吸引人才所以没人这样开

Links booklink

Contact Us: admin [ a t ] ucptt.com