华人澳洲中文论坛

热图推荐

    英伟达CUDA垄断位置难保:PyTorch不停拆塔,OpenAI已在偷家

    [复制链接]

    2023-1-20 18:32:03 31 0

    原标题:英伟达CUDA垄断位置难保:PyTorch不停拆塔,OpenAI已在偷家  
    詹士 Alex 发自 凹非寺   
    量子位 | 大众号 QbitAI   
    英伟达的软件护城河正在逐步隐没。  
    跟着 PyTorch反对更多GPU厂商,再加之OpenAI的 Triton搅局,英伟达手中的利器 CUDA 逐步锋铓再也不。   
    上述观念来自Semi Analysis首席剖析师Dylan Patel,相干文章已诱发一波业内关注。  

    1t2hkptima1.jpg

    1t2hkptima1.jpg


    有网友看后评估:  
    英伟达沦落到此种地步,只由于了眼前利益,保持翻新。
        英伟达沦落到此种地步,只由于了眼前利益,保持翻新。  
    Pytorch的作者之一Sasank Chilamkurthy还补刀:  
    当英伟达以前提出要收购Arm时,我就对潜伏的垄断感到十分不安。所以我开始做 任何正一般人都会做的事:让CUDA从的当先AI框架中被除名。
        当英伟达以前提出要收购Arm时,我就对潜伏的垄断感到十分不安。所以我开始做 任何正一般人都会做的事:让CUDA从的当先AI框架中被除名。   

    jciuzhcnk2p.jpg

    jciuzhcnk2p.jpg


    展开全文    上面展开谈一谈Patel提到的这些面前缘故。  
    PyTorch成AI开发框架赢家,将反对更多GPU   
    这里先来简略说说CUDA往日的光辉故事。  
    CUDA是英伟达推出的并行计算框架。  
    CUDA之于英伟达,堪称 历史的转机点,它的泛起,让英伟达在AI芯片畛域疾速腾飞。   
    在CUDA以前,英伟达的GPU只是一个担任在屏幕上绘制图象的“图形处置单元”。  
    而CUDA不只能够调用GPU计算,还能够 调用GPU硬件减速,让GPU具有理解决繁杂计算问题的才能,能够帮忙客户为不同的工作对处置器进行编程。   

    4wh0z1lzf4l.jpg

    4wh0z1lzf4l.jpg


    除了常见的PC机,无人车、机器人、超级计算机、VR头盔等多种抢手的装备都有GPU;而 在很长一段时间内,只要英伟达的GPU,能力疾速处置各种繁杂的AI工作。   

    xnc5iatvf4s.jpg

    xnc5iatvf4s.jpg


    那末风光有限的CUDA,起初怎么就位置不稳了?  
    这还得从AI开发框架之争聊起,尤为是 PyTorch VS TensorFlow。   
    假如把PyTorch这些框架比做 ,那CUDA就是 变速箱——它能够减速机器学习框架的计算进程,当在英伟达GPU上运转PyTorch等时,能够更快地训练、运转深度学习模型。   
    TensorFlow发育早,也是谷歌门下利器,但奈何近两年其势头逐步被PyTorch超出。几大顶会上,PyTorch框架使用的比例也显著下跌:  

    j0qykbxjbcd.jpg

    j0qykbxjbcd.jpg


    图源:The Gradient,几大顶会中专门提到PyTorch的论文占比   
    还有TensorFlow深度使用者现身说法:“当初我改用PyTorch了。”  
    PyTorch能胜出,一个症结要素在于它比TensorFlow更灵敏易用。  
    这一方面得益于PyTorch的eager模式,反对在C++运转环境下修正模型,还能够当即看到每一个步操作的后果。虽然TensorFlow当初也有eager模式,但大少数大型科技公司曾经在环抱着PyTorch开发解决计划。 (扎心了……)  
    另外一方面,虽然用这两者都写Python,但用的PyTorch的温馨度更胜一筹。  
    另外,PyTorch可用的模型更多,生态更丰硕,据统计,在HuggingFace中,85%的大模型都是用PyTorch框架完成的。  
    过来,虽然各大AI开发框架之间打得炽热,但更底层的并行计算架构CUDA可算独霸一方。  
    但时过境迁,在AI框架的角逐中,PyTorch终究赢过此前领跑的TensorFlow,位置临时稳了,而后就开始搞事件。  
    近年PyTorch在拓展反对更多GPU,行将公布的PyTorch2.0首个不乱版也会对其余各家GPU和减速器反对进行完美,包罗AMD、英特尔、特斯拉、谷歌、亚马逊、微软、Meta等等。  
    也就是说,英伟达GPU再也不是阿谁独一了  
    不外这面前其实也还有CUDA本身的问题。  
    内存墙是个问题   
    后面提到,CUDA突起与机器学习浪潮彼此增进,双赢成长,但有个景象值得关注:  
    近年,领头羊英伟达硬件的FLOPS不停进步,但其 内存晋升却非常无限。以2018年训练BERT的V100为例,作为最早进GPU,其在FLOPS上增长一个数量级,但内存减少其实不多。   

    zwtvh3eyjkr.jpg

    zwtvh3eyjkr.jpg


    图源:semianalysis   
    在实际AI模型训练中,跟着模型愈来愈大,内存需要也愈来愈大。  
    好比百度和Meta,在部署出产保举网络时,需求数十TB内存来存储海量的embedding table。  
    放训练及推理中,少量时间实际上并未花在矩阵乘法计算上,而是在等候数据抵达计算资源。  
    那为何不搞更多内存?  
    简而言之, 钞才能缺乏。   

    xqbitug3zdy.jpg

    xqbitug3zdy.jpg


    个别来讲,内存零碎按照数据使用需要,遵照从“又近又快”到“又慢又廉价”的构造支配资源。通常,比来的同享内存池在同一块芯片上,个别由SRAM构成。  
    在机器学习中,一些ASIC试图用一个微小的SRAM来保留模型权重,这类办法遇到动辄100B+的模型权重就不敷了。毕竟,即使是价值约500万美元的晶圆级芯片,也只要40GB的SRAM空间。  
    放英伟达的GPU上,内存就更小了:A100仅40MB,下一代的H100是50MB,要按量产产品价钱算,关于一块芯片每GB的SRAM内存本钱高达100美元。  
    账还没算完。目前来讲,片上SRAM本钱并没随摩尔定律工艺晋升而大幅升高,若采取台积电下一代3nm制程工艺,一样的1GB,反而本钱更高。  
    比拟SRAM,DRAM倒是本钱低得多,但提早高一个数量级,且20十二年来DRAM的本钱也简直没有显著压降。  
    跟着AI持续向前开展,对内存的需要,还会减少,内存墙问题就是这么降生的。  
    目前DRAM已占办事器总本钱的50%。好比英伟达2016年的P100,比起最新的H100,FB16机能晋升46倍,但内存容量只减少了5倍。  

    scbwldxyf31.jpg

    scbwldxyf31.jpg


    NVIDIA H100 Tensor Core GPU   
    另外一个问题也与内存无关,即带宽。  
    计算过程当中,减少内存带宽是经过并行性获取的,为此,英伟达使用了HBM内存 (High Bandwidth Memor),这是一种3D重叠的DRAM层组成的构造,封装更贵,让经费浮夸的使用者们只无能努目。   
    后面提到,PyTorch的一大劣势在于:Eager模式让AI训练推理更灵敏易用。但其内存带宽需要量也非常肥硕。  
    算子融会,即解决上述问题的次要办法。其要义在于“融会”,不将每个两头计算后果写入内存,而是一次传递,计算多个函数,这样就将内存读写质变少。  

    liylzzjfbpx.jpg

    liylzzjfbpx.jpg


    算子融会 图源:horace.io/brrr_intro.html   
    要落地“算子融会”,要编写自定义CUDA内核,要用到C++言语。  
    这时候CUDA的优势就浮现出来了:比起写Python脚本,编写CUDA之于得多人真是难太多了……  
    比拟下,PyTorch 2.0工具就可以大幅升高这个门坎。其内置英伟达和内部库,无需专门学习CUDA,间接用PyTorch就可以减少运算符,对炼丹师们来讲,天然敌对得多。  
    固然,这也致使PyTorch在近年少量减少运算符,一度超过2000个 (手动狗头)。   

    zpp0lbldxmi.jpg

    zpp0lbldxmi.jpg


    2022年末,刚公布的降级款PyTorch2.0更是大举发力,瞄准编译。  
    因添加了一个面向图象履行模型的编译解决计划,该框架在A100上训练机能晋升86%,CPU推感性能也晋升26%。  
    另外,PyTorch 2.0依托PrimTorch技术,将原来2000多个算子缩到250个,让更多非英伟达的后端更容易于拜候;还采取了TorchInductor技术,可为多个减速器和后端自动生成疾速代码。  
    并且PyTorch2.0还能更好反对数据并行、分片、管道并行和张量并行,让散布式训练更丝滑。  
    恰是上述技术,再结合对英伟达以外厂商GPU和减速器的反对,原先CUDA为英伟达构筑的软件城墙就显得没那末遥不可及了。  

    rz2r15yshcq.jpg

    rz2r15yshcq.jpg


    身后还有代替者   
    这边英伟达本身内存晋升速度没跟上,那边还有PyTorch2.0搞事,但还没完——  
    Open AI推出了个“简化版CUDA”: Triton。 (间接偷家)  

    zcu5130bm5y.jpg

    zcu5130bm5y.jpg


    Tirton是种新的言语和编译器。它的操作难度比CUDA低,但机能却可与后者媲美。  
    OpenAI宣称:  
    Triton只有25行代码,就可以在FP16矩阵乘法shang上达到与cuBLAS至关的机能。
        Triton只有25行代码,就可以在FP16矩阵乘法shang上达到与cuBLAS至关的机能。  
    OpenAI的钻研人员曾经使用Triton,生成为了比等同Torch效力高出1倍的内核。  
    虽然Triton目前只正式反对英伟达GPU,但之后这个架构也会反对多家硬件供给商。  
    还有值得一提的是,Triton是开源的,比起闭源的CUDA,其余硬件减速器能间接集成到Triton中,大大增加了为新硬件建设AI编译器栈的时间。  
    不外话说回来,也有人感觉CUDA的垄断位置还远不算被打破。好比PyTorch的另外一位作者、Meta出色工程师Soumith Chintala就感觉:  
    (剖析师Patel写的)这篇文章夸张了理想,CUDA将持续是PyTorch依赖的症结架构。
      Tirton并非第一个 (优化)编译器,目前大少数仍是把留意力放在XLA编译器下面的。
        (剖析师Patel写的)这篇文章夸张了理想,CUDA将持续是PyTorch依赖的症结架构。   
    Tirton并非第一个 (优化)编译器,目前大少数仍是把留意力放在XLA编译器下面的。   

    b4lgcdlzpe4.jpg

    b4lgcdlzpe4.jpg


    他表现,当初尚不分明Tirton是不是会缓缓被大家承受,这还得靠时间来验证。总之,Triton并无对CUDA构成太大要挟。  
    文章作者Patel自己也看到了这条评论,而后回复称:  
    我可没说 (CUDA的垄断位置)曾经没了 (Broken),而是说正在退化 (Breaking)。
      并且目前Triton还只正式反对英伟达GPU (没在别的GPU测试机能),假如XLA在英伟达GPU上的表示不占劣势,那它恐怕不如Triton。
        我可没说 (CUDA的垄断位置)曾经没了 (Broken),而是说正在退化 (Breaking)。   
    并且目前Triton还只正式反对英伟达GPU (没在别的GPU测试机能),假如XLA在英伟达GPU上的表示不占劣势,那它恐怕不如Triton。   

    0zlsjclslnr.jpg

    0zlsjclslnr.jpg


    但Soumith Chintala辩驳道,就算说CUDA的位置正在下滑也不当。由于Tirton要在硬件上推行的话,还有得多危险,还有很长的路要走。  

    k3xd4kajqk3.jpg

    k3xd4kajqk3.jpg


    有网友和这位PyTorch作者站在同一边:  
    我也但愿垄断被打破,但目前CUDA仍是最顶的,没了它,得多人构建的软件和零碎基本玩不转。
        我也但愿垄断被打破,但目前CUDA仍是最顶的,没了它,得多人构建的软件和零碎基本玩不转。  
    那末,你感觉当初CUDA境况如何?  
    —   
    百度钻研院、阿里达摩院、量子位智库  
    年度十大科技讲演  
    总结2022,预见2023。来自百度钻研院、阿里达摩院和量子位智库的年度十大科技讲演均已公布, 点击下方图片便可跳转查看。   
    百度钻研院  
    阿里达摩院  
    量子位智库  
    点这里 ?关注我,记得标星哦~   
    一键三连「分享」、「点赞」和「在看」  
    科技前沿停顿日日相见 ~

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    中级会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题34

    帖子45

    积分208

    图文推荐