AI 计算框架为啥不能统一一下,感觉大家都各玩各的

2023-05-12 09:53:09 +08:00
 wulili

今年可以说是 AIGC 的元年吧,各种 AI 开源框架都冒出来了,不过有时候折腾起来感觉挺心累的,部署起来要么就是不支持这个 GPU ,要么就是不支持那个系统

系统方面,折腾完了 win ,mac 又出问题,搞定了 mac 吧,Linux 又要再折腾下

硬件方面,NVIDA 玩自己的 CUDA ,苹果玩自己的 Metal ,AMD 这方面好像没啥布局(手里的 A 卡瞬间感觉不香了。。。)

这方面纯小白一个,想问下为啥各种 AI 框架为啥好像很难搞类似于通用计算,为啥不能像游戏那样,不依赖于特定 GPU 硬件加速,是个 GPU 就行,虽然可能不同厂商的速度🈶️差别,但也不至于没有用武之地

要是能统一一下标准该多好

4328 次点击
所在节点    程序员
40 条回复
qrobot
2023-05-12 10:04:29 +08:00
你出钱赞助吗?
optional
2023-05-12 10:06:04 +08:00
派你和非洲的经济统一一下。
opengps
2023-05-12 10:12:55 +08:00
要知道所有的规则都是需要先经历一段野蛮生长阶段才能总结出来。刚起步就统一,时机过早。
jklove123bai
2023-05-12 10:12:58 +08:00
搞这个不就是为了未来统一后赚钱?
kaedeair
2023-05-12 10:13:50 +08:00
因为游戏都是标准接口,已经有规范了,显卡都要支持 dx ,opengl 还有 vulkan ,不支持你照样也玩不了游戏
artnowben
2023-05-12 10:19:57 +08:00
NVIDA 在软件生态上布局十几年了吧,培养了很多 CUDA 程序员,这就是它厉害的地方。
其他厂家,谁能培养这么多自己生态的程序员
pkoukk
2023-05-12 10:25:21 +08:00
为啥不能像游戏那样,不依赖于特定 GPU 硬件加速,是个 GPU 就行
这句话就是错误的,游戏渲染流程大概是 游戏->引擎->驱动->显卡
换 GPU 不怎么影响游戏,是因为显卡厂商做了驱动层,引擎只需要面对驱动层就行
你看看 intel 家出的独显适配问题有多少,如果真的所有游戏引擎严格按照 dx11 或者 dx12 执行,哪还有这种适配问题
显卡驱动是非常非常重要的一环,而且很多游戏是有面向 A 卡或者 N 卡做特别优化的
dddd1919
2023-05-12 10:28:47 +08:00
有竞争才会有进步,只有一个只会有吃💩的体验
neopenx
2023-05-12 10:28:55 +08:00
你要类比也应该类比到 shader 吧。
cuda/metal kernel 本质就是 shader ,你看游戏几十年了,不同 GPU 的 shader 很好统一么
基于 LLVM 可以对 GPU shader 做一个抽象,所以 AI compiler 现在也在干同样的事。
SilentRhythm
2023-05-12 10:34:34 +08:00
问题来了,要制定标准,听你的还是听我的?听你的,我有什么好处。
zjhzxhz
2023-05-12 10:36:48 +08:00
其实你说的这个"计算框架"(确实不能叫计算框架),基本上的是统一的,因为大家只用 CUDA 。
基于 CUDA ,其实有非常多的 Framework (a.k.a. machine learning framework)。比如 TensorFlow ,PyTorch ,或者 JAX 。

但其实计算框架,大家慢慢也趋于统一开始用 PyTorch (至少学界是这样的)。
但是有一家公司是例外——华为🐶 因为它不能购买 NVIDIA 的显卡,所以它有自己的自研芯片和对应的计算框架——mindspore 。
tyzandhr
2023-05-12 10:39:21 +08:00
用人用 metal 训练的?
neopenx
2023-05-12 10:47:53 +08:00
@tyzandhr 去年 WWDC 苹果还真秀了下用雷电 4 连接 4 台 M1 Ultra 做数据并行训练
不过也只有 Ultra 级别的 FP32 算力才能摸到 3060 的屁股
MeePawn666
2023-05-12 10:50:06 +08:00
你理解这个问题的方式有点问题。“几乎”可以等价转换为: “都是针对图灵机编程,为啥要有这么多编程语言”。 这里的“编程语言”对应你问题中的框架也就是前端,这里的“图灵机”可以理解为各个厂商对图灵机的“实现”,比如 power9, x86 等,对应的是你这里的 CUDA, ROCM 。 编程语言的前端和后端是解耦的,ai 框架也是一样。Pytorch ,jax 说到底是 Dsl,也支持不同的后端 cuda rocm 等。 至于你说为什么不统一,除了很重要的商业因素之外,还有就是没必要统一,毕竟编程语言也没统一啊……
toexplore
2023-05-12 10:54:45 +08:00
八仙过海各显神通
lookStupiToForce
2023-05-12 10:54:59 +08:00
AMD 有 HPC 和 ROCm 啊
ROCm 对标 CUDA ,也支持 Tensorflow 和 Pytorch
但你就是能用 A 家相同评级的显卡,跑出 N 家十分之一的成绩,这能咋办
neopenx
2023-05-12 10:55:37 +08:00
@MeePawn666 这个不仅仅 shader language 的 DSL 不统一问题,各类加速器的都是 ASIC, 都在自家芯片内塞私有硬件和指令集,所以即使有统一的 DSL ,也要根据不同硬件编译 N 个版本的 DSL ,最后搞得 release 啥都能跑的框架二进制有 10GB 以上,谁都不舒服
Alias4ck
2023-05-12 10:58:00 +08:00
你在问这个问题的时候,有没有想过为啥操作系统没有统一过
wulili
2023-05-12 11:16:39 +08:00
@Alias4ck 感觉和这个还是有点区别,操作系统还能换,一套硬件可以换不同的系统,或者通过虚拟机也能基本解决,但 AI 计算这玩意很多时候非得用特定的硬件,没特定的卡就没法玩了
Xyg12133617
2023-05-12 11:38:03 +08:00
@dddd1919 某度表示不服气

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/939393

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX