V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wulili
V2EX  ›  程序员

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

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

    今年可以说是 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 计算这玩意很多时候非得用特定的硬件,没特定的卡就没法玩了
    Xyg12133617
        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 强大吗. 当然你要弄出一个新的可以,除非有足够的吸引力,以及大厂加持,自然就成为主流了啊
    chesha1
        28
    chesha1  
       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   ·   实用小工具   ·   851 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 79ms · UTC 21:34 · PVG 05:34 · LAX 13:34 · JFK 16:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.