AI 计算框架为啥不能统一一下,感觉大家都各玩各的 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
wulili
V2EX    程序员

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

  •  
  •   wulili 2023-05-12 09:53:09 +08:00 4837 次点击
    这是一个创建于 891 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    40 条回复    2023-11-09 00:46:35 +08:00
    qrobot
        1
    qrobot  
       2023-05-12 10:04:29 +08:00   1
    你出钱赞助吗?
    optional
        2
    optional  
       2023-05-12 10:06:04 +08:00 via iPhone   1
    派你和非洲的经济统一一下。
    opengps
        3
    opengps  
       2023-05-12 10:12:55 +08:00   3
    要知道所有的规则都是需要先经历一段野蛮生长阶段才能总结出来。刚起步就统一,时机过早。
    jklove123bai
        4
    jklove123bai  
       2023-05-12 10:12:58 +08:00   1
    搞这个不就是为了未来统一后赚钱?
    kaedeair
        5
    kaedeair  
       2023-05-12 10:13:50 +08:00
    因为游戏都是标准接口,已经有规范了,显卡都要支持 dx ,opengl 还有 vulkan ,不支持你照样也玩不了游戏
    artnowben
        6
    artnowben  
       2023-05-12 10:19:57 +08:00   1
    NVIDA 在软件生态上布局十几年了吧,培养了很多 CUDA 程序员,这就是它厉害的地方。
    其他厂家,谁能培养这么多自己生态的程序员
    pkoukk
        7
    pkoukk  
       2023-05-12 10:25:21 +08:00   1
    为啥不能像游戏那样,不依赖于特定 GPU 硬件加速,是个 GPU 就行
    这句话就是错误的,游戏渲染流程大概是 游戏->引擎->驱动->显卡
    换 GPU 不怎么影响游戏,是因为显卡厂商做了驱动层,引擎只需要面对驱动层就行
    你看看 intel 家出的独显适配问题有多少,如果真的所有游戏引擎严格按照 dx11 或者 dx12 执行,哪还有这种适配问题
    显卡驱动是非常非常重要的一环,而且很多游戏是有面向 A 卡或者 N 卡做特别优化的
    dddd1919
        8
    dddd1919  
       2023-05-12 10:28:47 +08:00   1
    有竞争才会有进步,只有一个只会有吃的体验
    neopenx
        9
    neopenx  
       2023-05-12 10:28:55 +08:00   1
    你要类比也应该类比到 shader 吧。
    cuda/metal kernel 本质就是 shader ,你看游戏几十年了,不同 GPU 的 shader 很好统一么
    基于 LLVM 可以对 GPU shader 做一个抽象,所以 AI compiler 现在也在干同样的事。
    SilentRhythm
        10
    SilentRhythm  
       2023-05-12 10:34:34 +08:00   2
    问题来了,要制定标准,听你的还是听我的?听你的,我有什么好处。
    zjhzxhz
        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 。
    tyzandhr
        12
    tyzandhr  
       2023-05-12 10:39:21 +08:00 via Android
    用人用 metal 训练的?
    neopenx
        13
    neopenx  
       2023-05-12 10:47:53 +08:00
    @tyzandhr 去年 WWDC 苹果还真秀了下用雷电 4 连接 4 台 M1 Ultra 做数据并行训练
    不过也只有 Ultra 级别的 FP32 算力才能摸到 3060 的屁股
    MeePawn666
        14
    MeePawn666  
       2023-05-12 10:50:06 +08:00 via Android
    你理解这个问题的方式有点问题。“几乎”可以等价转换为: “都是针对图灵机编程,为啥要有这么多编程语言”。 这里的“编程语言”对应你问题中的框架也就是前端,这里的“图灵机”可以理解为各个厂商对图灵机的“实现”,比如 power9, x86 等,对应的是你这里的 CUDA, ROCM 。 编程语言的前端和后端是解耦的,ai 框架也是一样。Pytorch ,jax 说到底是 Dsl,也支持不同的后端 cuda rocm 等。 至于你说为什么不统一,除了很重要的商业因素之外,还有就是没必要统一,毕竟编程语言也没统一啊……
    toexplore
        15
    toexplore  
       2023-05-12 10:54:45 +08:00
    八仙过海各显神通
    lookStupiToForce
        16
    lookStupiToForce  
       2023-05-12 10:54:59 +08:00   1
    AMD 有 HPC 和 ROCm 啊
    ROCm 对标 CUDA ,也支持 Tensorflow 和 Pytorch
    但你就是能用 A 家相同评级的显卡,跑出 N 家十分之一的成绩,这能咋办
    neopenx
        17
    neopenx  
       2023-05-12 10:55:37 +08:00
    @MeePawn666 这个不仅仅 shader language 的 DSL 不统一问题,各类加速器的都是 ASIC, 都在自家芯片内塞私有硬件和指令集,所以即使有统一的 DSL ,也要根据不同硬件编译 N 个版本的 DSL ,最后搞得 release 啥都能跑的框架二进制有 10GB 以上,谁都不舒服
    Alias4ck
        18
    Alias4ck  
       2023-05-12 10:58:00 +08:00
    你在问这个问题的时候,有没有想过为啥操作系统没有统一过
    wulili
        19
    wulili  
    OP
       2023-05-12 11:16:39 +08:00
    @Alias4ck 感觉和这个还是有点区别,操作系统还能换,一套硬件可以换不同的系统,或者通过虚拟机也能基本解决,但 AI 计算这玩意很多时候非得用特定的硬件,没特定的卡就没法玩了
    Xyg1213317
        20
    Xyg12133617  
       2023-05-12 11:38:03 +08:00
    @dddd1919 某度表示不服气
    jKpzPv20NjX56i44
        21
    jKpzPv20NjX56i44  
       2023-05-12 11:50:43 +08:00
    AMD 有 ROCm
    Alias4ck
        22
    Alias4ck  
       2023-05-12 11:54:36 +08:00
    @wulili 你这话不就自相矛盾了吗,特定的硬件不就说明它实际上在某些方面是一统的吗了,我怀疑你是引战贴
    wulili
        23
    wulili  
    OP
       2023-05-12 12:02:35 +08:00
    @Alias4ck 你没懂我的意思,我说的统一是指不依赖于某种特定硬件,操作系统没有依赖特定硬件吧,不管是 N 卡 A 卡都能装各种操作系统,大家都能玩。帖子的主要意思是想问为啥主流 AI 计算非得特定用 N 卡
    leaflxh
        24
    leaflxh  
       2023-05-12 12:03:28 +08:00
    编程语言为啥不能统一一下,感觉大家都各玩各的
    各国政体为啥不能统一一下,感觉大家都各玩各的

    答案就是百家争鸣,百花齐放,趋同演化
    jack778
        25
    jack778  
       2023-05-12 12:16:24 +08:00
    为什么各个国家有各个国家的语言,大家都说世界语不就好啦
    jsq2627
        26
    jsq2627  
       2023-05-12 12:17:10 +08:00
    这也是为啥出现了 https://onnx.ai/ 的原因
    Alias4ck
        27
    Alias4ck  
       2023-05-12 12:18:56 +08:00
    @wulili 我觉得你想表达的这种场景是生态导致的,并不是非得用,而是市场造就了,这种不就和弄 ai 为啥要用 python ,其他的语言不行吗,也可以,但是生态有 python 强大吗. 当然你要弄出一个新的可以,除非有足够的吸引力,以及大厂加持,自然就成为主流了啊
    FlashEcho
        28
    FlashEcho  
       2023-05-12 13:16:02 +08:00
    只要有商业化的东西,就没什么大一统的,你使用没什么感觉只是因为厂家帮你把适配做好了

    游戏也是类似的,你感觉大一统了,其实图形 api 也有 directx opengl vulkan 好几种呢
    rm0gang0rf
        29
    rm0gang0rf  
       2023-05-12 13:24:26 +08:00
    炼蛊
    MrGba2z
        30
    MrGba2z  
       2023-05-12 13:29:44 +08:00
    微信和支付宝就靠你去游说了
    codehz
        31
    codehz  
       2023-05-12 13:31:29 +08:00   1
    还记得古代 3dfx 吗,它是怎么死的,就是因为捏死专利不开放图形 api (不允许其他厂商支持它的专有 api ),然后被 nvidia 一个 geforce 玩死了
    现在 nvidia 的状态也是类似,捏死 cuda ,不让第三方实现( cuda 确实好用)
    只可惜以目前现金流状态 nvidia 短时间死不了(
    timepast
        32
    timepast  
       2023-05-12 13:37:07 +08:00
    这问题咋问出来的?
    LaurelHarmon
        33
    LaurelHarmon  
       2023-05-12 13:45:54 +08:00
    Linux+NvidiaGPU 这一套早就一统江湖了,十来前就是这样,mac/win 啥的都是玩具,所以想上手玩 Linux+N 卡靠谱。
    真正到产品级也轮不到你开发了,有专人优化,直接用户界面给你用就行了,像抖音特效啥的,用户根本无感知底层硬件。
    squarefong17
        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 上跑了。
    tanghongkai
        35
    tanghongkai  
       2023-05-12 14:55:49 +08:00
    -> 不依赖于特定 GPU 硬件加速,是个 GPU 就行

    现在游戏想开光追也得特定显卡啊
    Syiize
        36
    Syiize  
       2023-05-12 15:42:35 +08:00 via Android
    AMD 的 ROCm 不是对标 cuda 的吗,而且 PyTorch 用在 A 卡上的时候,to_device("cuda")就可以把向量转移到 GPU 里
    Syiize
        37
    Syiize  
       2023-05-12 15:43:02 +08:00 via Android
    @Syiize 倒是 tensorflow 一直不支持 A 卡
    yuruizhe
        38
    yuruizhe  
       2023-05-12 16:16:35 +08:00
    这种大一统的问题,可谓月经贴了
    为啥那么多国家、民族说各种语言?
    为啥地球上不建立一个统一的国家?
    说白了就是利益问题而已
    akira
        39
    akira  
       2023-05-12 17:00:51 +08:00
    等最后剩下几家,形成联盟或者垄断, 应该就差不多可以开始考虑统一的事情了
    amosasas
        40
    amosasas  
       2023-11-09 00:46:35 +08:00
    @squarefong17 好像这样老黄就要告苏妈了...
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2739 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 14:07 PVG 22:07 LAX 07:07 JFK 10:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86