今年可以说是 AIGC 的元年吧,各种 AI 开源框架都冒出来了,不过有时候折腾起来感觉挺心累的,部署起来要么就是不支持这个 GPU ,要么就是不支持那个系统
系统方面,折腾完了 win ,mac 又出问题,搞定了 mac 吧,Linux 又要再折腾下
硬件方面,NVIDA 玩自己的 CUDA ,苹果玩自己的 Metal ,AMD 这方面好像没啥布局(手里的 A 卡瞬间感觉不香了。。。)
这方面纯小白一个,想问下为啥各种 AI 框架为啥好像很难搞类似于通用计算,为啥不能像游戏那样,不依赖于特定 GPU 硬件加速,是个 GPU 就行,虽然可能不同厂商的速度🈶️差别,但也不至于没有用武之地
要是能统一一下标准该多好
1
qrobot 2023-05-12 10:04:29 +08:00 1
你出钱赞助吗?
|
2
optional 2023-05-12 10:06:04 +08:00 via iPhone 1
派你和非洲的经济统一一下。
|
3
opengps 2023-05-12 10:12:55 +08:00 3
要知道所有的规则都是需要先经历一段野蛮生长阶段才能总结出来。刚起步就统一,时机过早。
|
4
jklove123bai 2023-05-12 10:12:58 +08:00 1
搞这个不就是为了未来统一后赚钱?
|
5
kaedeair 2023-05-12 10:13:50 +08:00
因为游戏都是标准接口,已经有规范了,显卡都要支持 dx ,opengl 还有 vulkan ,不支持你照样也玩不了游戏
|
6
artnowben 2023-05-12 10:19:57 +08:00 1
NVIDA 在软件生态上布局十几年了吧,培养了很多 CUDA 程序员,这就是它厉害的地方。
其他厂家,谁能培养这么多自己生态的程序员 |
7
pkoukk 2023-05-12 10:25:21 +08:00 1
为啥不能像游戏那样,不依赖于特定 GPU 硬件加速,是个 GPU 就行
这句话就是错误的,游戏渲染流程大概是 游戏->引擎->驱动->显卡 换 GPU 不怎么影响游戏,是因为显卡厂商做了驱动层,引擎只需要面对驱动层就行 你看看 intel 家出的独显适配问题有多少,如果真的所有游戏引擎严格按照 dx11 或者 dx12 执行,哪还有这种适配问题 显卡驱动是非常非常重要的一环,而且很多游戏是有面向 A 卡或者 N 卡做特别优化的 |
8
dddd1919 2023-05-12 10:28:47 +08:00 1
有竞争才会有进步,只有一个只会有吃💩的体验
|
9
neopenx 2023-05-12 10:28:55 +08:00 1
你要类比也应该类比到 shader 吧。
cuda/metal kernel 本质就是 shader ,你看游戏几十年了,不同 GPU 的 shader 很好统一么 基于 LLVM 可以对 GPU shader 做一个抽象,所以 AI compiler 现在也在干同样的事。 |
10
SilentRhythm 2023-05-12 10:34:34 +08:00 2
问题来了,要制定标准,听你的还是听我的?听你的,我有什么好处。
|
11
zjhzxhz 2023-05-12 10:36:48 +08:00 2
其实你说的这个"计算框架"(确实不能叫计算框架),基本上的是统一的,因为大家只用 CUDA 。
基于 CUDA ,其实有非常多的 Framework (a.k.a. machine learning framework)。比如 TensorFlow ,PyTorch ,或者 JAX 。 但其实计算框架,大家慢慢也趋于统一开始用 PyTorch (至少学界是这样的)。 但是有一家公司是例外——华为🐶 因为它不能购买 NVIDIA 的显卡,所以它有自己的自研芯片和对应的计算框架——mindspore 。 |
12
tyzandhr 2023-05-12 10:39:21 +08:00 via Android
用人用 metal 训练的?
|
13
neopenx 2023-05-12 10:47:53 +08:00
@tyzandhr 去年 WWDC 苹果还真秀了下用雷电 4 连接 4 台 M1 Ultra 做数据并行训练
不过也只有 Ultra 级别的 FP32 算力才能摸到 3060 的屁股 |
14
MeePawn666 2023-05-12 10:50:06 +08:00 via Android
你理解这个问题的方式有点问题。“几乎”可以等价转换为: “都是针对图灵机编程,为啥要有这么多编程语言”。 这里的“编程语言”对应你问题中的框架也就是前端,这里的“图灵机”可以理解为各个厂商对图灵机的“实现”,比如 power9, x86 等,对应的是你这里的 CUDA, ROCM 。 编程语言的前端和后端是解耦的,ai 框架也是一样。Pytorch ,jax 说到底是 Dsl,也支持不同的后端 cuda rocm 等。 至于你说为什么不统一,除了很重要的商业因素之外,还有就是没必要统一,毕竟编程语言也没统一啊……
|
15
toexplore 2023-05-12 10:54:45 +08:00
八仙过海各显神通
|
16
lookStupiToForce 2023-05-12 10:54:59 +08:00 1
AMD 有 HPC 和 ROCm 啊
ROCm 对标 CUDA ,也支持 Tensorflow 和 Pytorch 但你就是能用 A 家相同评级的显卡,跑出 N 家十分之一的成绩,这能咋办 |
17
neopenx 2023-05-12 10:55:37 +08:00
@MeePawn666 这个不仅仅 shader language 的 DSL 不统一问题,各类加速器的都是 ASIC, 都在自家芯片内塞私有硬件和指令集,所以即使有统一的 DSL ,也要根据不同硬件编译 N 个版本的 DSL ,最后搞得 release 啥都能跑的框架二进制有 10GB 以上,谁都不舒服
|
18
Alias4ck 2023-05-12 10:58:00 +08:00
你在问这个问题的时候,有没有想过为啥操作系统没有统一过
|
19
wulili OP @Alias4ck 感觉和这个还是有点区别,操作系统还能换,一套硬件可以换不同的系统,或者通过虚拟机也能基本解决,但 AI 计算这玩意很多时候非得用特定的硬件,没特定的卡就没法玩了
|
20
Xyg12133617 2023-05-12 11:38:03 +08:00
@dddd1919 某度表示不服气
|
21
jKpzPv20NjX56i44 2023-05-12 11:50:43 +08:00
AMD 有 ROCm
|
23
wulili OP @Alias4ck 你没懂我的意思,我说的统一是指不依赖于某种特定硬件,操作系统没有依赖特定硬件吧,不管是 N 卡 A 卡都能装各种操作系统,大家都能玩。帖子的主要意思是想问为啥主流 AI 计算非得特定用 N 卡
|
24
leaflxh 2023-05-12 12:03:28 +08:00
编程语言为啥不能统一一下,感觉大家都各玩各的
各国政体为啥不能统一一下,感觉大家都各玩各的 答案就是百家争鸣,百花齐放,趋同演化 |
25
jack778 2023-05-12 12:16:24 +08:00
为什么各个国家有各个国家的语言,大家都说世界语不就好啦
|
26
jsq2627 2023-05-12 12:17:10 +08:00
这也是为啥出现了 https://onnx.ai/ 的原因
|
27
Alias4ck 2023-05-12 12:18:56 +08:00
@wulili 我觉得你想表达的这种场景是生态导致的,并不是非得用,而是市场造就了,这种不就和弄 ai 为啥要用 python ,其他的语言不行吗,也可以,但是生态有 python 强大吗. 当然你要弄出一个新的可以,除非有足够的吸引力,以及大厂加持,自然就成为主流了啊
|
28
chesha1 2023-05-12 13:16:02 +08:00
只要有商业化的东西,就没什么大一统的,你使用没什么感觉只是因为厂家帮你把适配做好了
游戏也是类似的,你感觉大一统了,其实图形 api 也有 directx opengl vulkan 好几种呢 |
29
rm0gang0rf 2023-05-12 13:24:26 +08:00
炼蛊
|
30
MrGba2z 2023-05-12 13:29:44 +08:00
微信和支付宝就靠你去游说了
|
31
codehz 2023-05-12 13:31:29 +08:00 1
还记得古代 3dfx 吗,它是怎么死的,就是因为捏死专利不开放图形 api (不允许其他厂商支持它的专有 api ),然后被 nvidia 一个 geforce 玩死了
现在 nvidia 的状态也是类似,捏死 cuda ,不让第三方实现( cuda 确实好用) 只可惜以目前现金流状态 nvidia 短时间死不了( |
32
timepast 2023-05-12 13:37:07 +08:00
这问题咋问出来的?
|
33
LaurelHarmon 2023-05-12 13:45:54 +08:00
Linux+NvidiaGPU 这一套早就一统江湖了,十来前就是这样,mac/win 啥的都是玩具,所以想上手玩 Linux+N 卡靠谱。
真正到产品级也轮不到你开发了,有专人优化,直接用户界面给你用就行了,像抖音特效啥的,用户根本无感知底层硬件。 |
34
squarefong17 2023-05-12 14:12:48 +08:00
@wulili 一般 PC 市场上兼容做的好而已,你在 Apple Silicon 的机器上接最新的 N 卡试试?老黄培养了大量 CUDA 程序员,他们写的程序得有 CUDA 才能跑,现在 CUDA 只能在 N 卡上跑,就这么简单。你有办法做一个转换层,让 A 卡支持 CUDA ,A 卡就一样可以跑那些框架了。这就像一堆游戏本来是用的 DX ,linux 上就跑不了这些。但是 V 社做了个 DXVK ,把 DX 的调用转成 Vulkan 的,这样那些 DX 游戏就能在 Linux 上跑了。
|
35
tanghongkai 2023-05-12 14:55:49 +08:00
-> 不依赖于特定 GPU 硬件加速,是个 GPU 就行
现在游戏想开光追也得特定显卡啊 |
36
Syiize 2023-05-12 15:42:35 +08:00 via Android
AMD 的 ROCm 不是对标 cuda 的吗,而且 PyTorch 用在 A 卡上的时候,to_device("cuda")就可以把向量转移到 GPU 里
|
38
yuruizhe 2023-05-12 16:16:35 +08:00
这种大一统的问题,可谓月经贴了
为啥那么多国家、民族说各种语言? 为啥地球上不建立一个统一的国家? 说白了就是利益问题而已 |
39
akira 2023-05-12 17:00:51 +08:00
等最后剩下几家,形成联盟或者垄断, 应该就差不多可以开始考虑统一的事情了
|
40
amosasas 2023-11-09 00:46:35 +08:00
@squarefong17 好像这样老黄就要告苏妈了...
|