V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wulili
V2EX  ›  程序员

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

  •  
  •   wulili · 321 天前 · 4022 次点击
    这是一个创建于 321 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    但其实计算框架,大家慢慢也趋于统一开始用 PyTorch (至少学界是这样的)。
    但是有一家公司是例外——华为🐶 因为它不能购买 NVIDIA 的显卡,所以它有自己的自研芯片和对应的计算框架——mindspore 。
    tyzandhr
        12
    tyzandhr  
       321 天前 via Android
    用人用 metal 训练的?
    neopenx
        13
    neopenx  
       321 天前
    @tyzandhr 去年 WWDC 苹果还真秀了下用雷电 4 连接 4 台 M1 Ultra 做数据并行训练
    不过也只有 Ultra 级别的 FP32 算力才能摸到 3060 的屁股
    MeePawn666
        14
    MeePawn666  
       321 天前 via Android
    你理解这个问题的方式有点问题。“几乎”可以等价转换为: “都是针对图灵机编程,为啥要有这么多编程语言”。 这里的“编程语言”对应你问题中的框架也就是前端,这里的“图灵机”可以理解为各个厂商对图灵机的“实现”,比如 power9, x86 等,对应的是你这里的 CUDA, ROCM 。 编程语言的前端和后端是解耦的,ai 框架也是一样。Pytorch ,jax 说到底是 Dsl,也支持不同的后端 cuda rocm 等。 至于你说为什么不统一,除了很重要的商业因素之外,还有就是没必要统一,毕竟编程语言也没统一啊……
    toexplore
        15
    toexplore  
       321 天前
    八仙过海各显神通
    lookStupiToForce
        16
    lookStupiToForce  
       321 天前   ❤️ 1
    AMD 有 HPC 和 ROCm 啊
    ROCm 对标 CUDA ,也支持 Tensorflow 和 Pytorch
    但你就是能用 A 家相同评级的显卡,跑出 N 家十分之一的成绩,这能咋办
    neopenx
        17
    neopenx  
       321 天前
    @MeePawn666 这个不仅仅 shader language 的 DSL 不统一问题,各类加速器的都是 ASIC, 都在自家芯片内塞私有硬件和指令集,所以即使有统一的 DSL ,也要根据不同硬件编译 N 个版本的 DSL ,最后搞得 release 啥都能跑的框架二进制有 10GB 以上,谁都不舒服
    Alias4ck
        18
    Alias4ck  
       321 天前
    你在问这个问题的时候,有没有想过为啥操作系统没有统一过
    wulili
        19
    wulili  
    OP
       321 天前
    @Alias4ck 感觉和这个还是有点区别,操作系统还能换,一套硬件可以换不同的系统,或者通过虚拟机也能基本解决,但 AI 计算这玩意很多时候非得用特定的硬件,没特定的卡就没法玩了
    Xyg12133617
        20
    Xyg12133617  
       321 天前
    @dddd1919 某度表示不服气
    qwerzl
        21
    qwerzl  
       321 天前
    AMD 有 ROCm
    Alias4ck
        22
    Alias4ck  
       321 天前
    @wulili 你这话不就自相矛盾了吗,特定的硬件不就说明它实际上在某些方面是一统的吗了,我怀疑你是引战贴
    wulili
        23
    wulili  
    OP
       321 天前
    @Alias4ck 你没懂我的意思,我说的统一是指不依赖于某种特定硬件,操作系统没有依赖特定硬件吧,不管是 N 卡 A 卡都能装各种操作系统,大家都能玩。帖子的主要意思是想问为啥主流 AI 计算非得特定用 N 卡
    leaflxh
        24
    leaflxh  
       321 天前
    编程语言为啥不能统一一下,感觉大家都各玩各的
    各国政体为啥不能统一一下,感觉大家都各玩各的

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

    游戏也是类似的,你感觉大一统了,其实图形 api 也有 directx opengl vulkan 好几种呢
    rm0gang0rf
        29
    rm0gang0rf  
       321 天前
    炼蛊
    MrGba2z
        30
    MrGba2z  
       321 天前
    微信和支付宝就靠你去游说了
    codehz
        31
    codehz  
       321 天前   ❤️ 1
    还记得古代 3dfx 吗,它是怎么死的,就是因为捏死专利不开放图形 api (不允许其他厂商支持它的专有 api ),然后被 nvidia 一个 geforce 玩死了
    现在 nvidia 的状态也是类似,捏死 cuda ,不让第三方实现( cuda 确实好用)
    只可惜以目前现金流状态 nvidia 短时间死不了(
    timepast
        32
    timepast  
       321 天前
    这问题咋问出来的?
    LaurelHarmon
        33
    LaurelHarmon  
       321 天前
    Linux+NvidiaGPU 这一套早就一统江湖了,十来前就是这样,mac/win 啥的都是玩具,所以想上手玩 Linux+N 卡靠谱。
    真正到产品级也轮不到你开发了,有专人优化,直接用户界面给你用就行了,像抖音特效啥的,用户根本无感知底层硬件。
    squarefong17
        34
    squarefong17  
       321 天前
    @wulili 一般 PC 市场上兼容做的好而已,你在 Apple Silicon 的机器上接最新的 N 卡试试?老黄培养了大量 CUDA 程序员,他们写的程序得有 CUDA 才能跑,现在 CUDA 只能在 N 卡上跑,就这么简单。你有办法做一个转换层,让 A 卡支持 CUDA ,A 卡就一样可以跑那些框架了。这就像一堆游戏本来是用的 DX ,linux 上就跑不了这些。但是 V 社做了个 DXVK ,把 DX 的调用转成 Vulkan 的,这样那些 DX 游戏就能在 Linux 上跑了。
    tanghongkai
        35
    tanghongkai  
       321 天前
    -> 不依赖于特定 GPU 硬件加速,是个 GPU 就行

    现在游戏想开光追也得特定显卡啊
    Syiize
        36
    Syiize  
       321 天前 via Android
    AMD 的 ROCm 不是对标 cuda 的吗,而且 PyTorch 用在 A 卡上的时候,to_device("cuda")就可以把向量转移到 GPU 里
    Syiize
        37
    Syiize  
       321 天前 via Android
    @Syiize 倒是 tensorflow 一直不支持 A 卡
    yuruizhe
        38
    yuruizhe  
       321 天前
    这种大一统的问题,可谓月经贴了
    为啥那么多国家、民族说各种语言?
    为啥地球上不建立一个统一的国家?
    说白了就是利益问题而已
    akira
        39
    akira  
       321 天前
    等最后剩下几家,形成联盟或者垄断, 应该就差不多可以开始考虑统一的事情了
    amosasas
        40
    amosasas  
       141 天前
    @squarefong17 好像这样老黄就要告苏妈了...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3762 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 00:15 · PVG 08:15 · LAX 17:15 · JFK 20:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.