大模型时代——硬件和框架生态全面Battle

 首先声明,我不是卖卡的,至少截止2023年12月12日我都不是,所以个人认为我能相对公正的描述客观事实,写这个的目的是因为第一篇文章有读者朋友提到了能不能出一期CUDA和非CUDA生态的对比,所以有了这篇文章。

      什么是CUDA就不解释了,各位读者大爷可能比我还了解,至于为什么说CUDA厉害,我相信很多人也会举很多例子,包括但不限于:

主动被动代码

SIMD

Threads,Blocks,Grids

包含了API、C编译器等极其方便的调度体系

利用片内L1 Cache共享数据,使数据不必经过内存-显存的反复传输              shader之间甚至可以互相通信

      其实要想写能写整整一篇,那这些能力是不是别的硬件服务商不具备呢?       

      我们先拿AMD来说事吧,因为纸面数据上据称对LLM优化的MI300X在很多维度已经超过H100了例如:

HBM3管够!

晶体管达到1530亿是目前全球最大的逻辑处理器比H100多700亿

内存达到了192GB,内存带宽为5.2TB/s,虽然H100NVL可以,但是那是两块卡

CPU部分集成了24个ZEN4内核

GPU部分集成了6块使用CDNA3架构的芯片统一内存可降低不同内存间来回复制、同步和转换数据所导致的编程复杂性,采用3D堆叠优于H100的2.5D

      甚至从A100/MI200的时代,AMD就拿算力说过事,可以在他们官网上找到相关的信息


但是销量上的对比我们大抵是知道的,我相信很多读者甚至都没听说过MI这个系列,单提MI200,可能会以为是小米的新手机发布了。

      远古时期不考虑了,AMD算是做GPU比较早的玩家,因为它2006收购了ATI, 但是并没有像Nvidia一样发展GPU在DC里的业务。正是同一年Nvidia推出了CUDA, 吴恩达曾经这样说过,在CUDA出现之前,世界上玩GPU编程的也就一百来人,CUDA推出以后,谁都可以玩GPU编程。

看到DC生意也太能挣钱了,作为重要对手的AMD坐不住了,但是种种原因自家的ROCm在2016年才发布,ROCm具有很多的局限,例如,操作系统长期只能支持Linux,最近才登录Windows,说一个具象化的数据,在Github上,贡献CUDA软件包仓库的开发者超过32600位,而ROCm只有不到600个...

ROCm的其中一个卖点是支持OPENCL,一个开放的硬件计算框架,支持多类型的硬件环境,GPU,DSP.ASIC,FPGA之类的,AMD的官网也把接入OPENCL的能力当做一个重要的攻击点。

下图是OPENCL的框架草图:


       下图是ROCm的框架


但是我们换个角度去看ROCm


     然后再看一下CUDA,是不是有点像,不考虑颜色导致的认知倾斜...


这里给一下两种计算框架的对比


      可以说ROCm就是照着CUDA做一套几乎是想百分之百对标和尽可能兼容的的体系,其中最重要的其实是HIP,HIP可以认为是个山寨版的CUDA接口,几乎兼容所有的CUDA API操作,稍有的不支持的在git上也写的很清楚HIP/docs/markdown/hip_faq.md at roc-1.6.0 · ROCm-Developer-Tools/HIP (github.com)

      归根结底是Git上差不多600倍的开发库数量对比,让ROCm不得不兼容CUDA,而作为一个框架,尽量兼容别的框架的弊端也显而易见,为了迎合只能选择一定的牺牲,这其中会体现在性能上,bug上,以及其他多维度的吃亏,但是也是无奈之举,能用是肯定可用的,但是实际的效果上未必能发挥出本身算力的上限。

      ROCm的开放卖点能支持OPENCL能实现异构数据中心的算力整合,训练推理多供应商服务,难处是因为不同公司的GPU产品对数据精度的标准和计算方法及顺序配置不同,混合使用GPU难免会导致计算精度缺失等问题,直接影响模型训练效果。其实这也很正常在做混合精度和quantized的时候都有可能由于精度进位和取舍导致梯度的消失,影响梯度和权重的更新,更别提不同的硬件厂商了,所以某种程度上说,至少现在的OPENCL跨平台,多少有点伪命题。

      多数一嘴,海光用的也是ROCm。

      再看一下其他友商,Intel怎么样?

Intel目前最强应该是Gaudi2了,其实在深度学习领域,我们没必要纠结到底是GPU还是NPU,对我们的结果是没什么影响的,Gaudi2虽然我拿不到它的具体TFLPs数据,但是从公布的GPT-J Benchmark的数据,基本是符合预期的,比A100高2.5倍,H100比它快1.5倍,正常来讲H100比A100快6倍(sparse矩阵的情况下),所以单就数据来讲是合乎逻辑的。这个性能其实目前来讲已经很够用了,我听到好多读者吐槽,H800 SXM的经常跑不满,其实以他们的 train data和规模用A100就够了,所以在目前大多数现实的环境中A100足够了,那毕竟有几个OPENAI和Claude啊?Gaudi2更是没啥问题。当然因为它够用,所以在国内也被禁了


      Intel对标CUDA的武器是什么?

     不同于老对手AMD,Intel在PK Nvidia的时候表现出前所未有的强硬,他的OneAPI几乎是照搬了标准的OPENCL开发模型,并没有要兼容CUDA的意思,打的牌其实也是兼容多种数据中心硬件。

编程模型


内存模型


      据说现在OneAPI在数据中心的场景里已经可以兼容绝大多数NV的卡,但是如文章前几段提到的,兼容和可实现,可部署,可运营之间还有很长一段路要走。

     此外,Intel在CPU上的对半导体行业的贡献要远高于GPU/NPU和FPGA这些, 所以自然在CPU对AI的支持上,Intel也是不遑多让。我之前的文章写过在深度学习领域,CPU天生对多并行支持的能力不具备和GPU/NPU,包括把dsp改成矩阵计算单元的FPGA这些计算载体PK的本钱,但是这些从Intel开放了AMX之后大有改变。

     什么是AMX?

     拿一个矩阵乘法举例子


      在没有AMX之前,我们比如用AVX来做SIMD增加一次算力操作的performance,它的能力取决于K值(如下图),目前最大的AVX512, 它的K值是32,也就是说,如果拿最大的K,然后按BF16算,一次计算cycle,一个物理core能有128个OPS


     那么AMX是如何处理这个问题的呢


     为了防止大家看不下去,推导过程省略,直接说结论,在一个物理核的一个运算周期里,可以实现1024个OPS,整整比原来的AVX高了小10倍。比如我们在这里代入一个常规的64 core服务器,boost到3.0Ghz,可以实现192TFLOPs的 BF16算力,这么说有点枯燥,打个比方相当于0.6块A100的训练算力了!当然在你决定用CPU来进行BF16的training之前,虽然CPU领域,你可以不用考虑CUDA,但是影响的因素还有很多,价格,生态(torch本来就有CPU版本的,但是对AMX的支持还在强化中),各种其他库的支持之类的。

     此外,所谓卡脖子系列操作似乎没有对CPU的版本做过硬性限制,所以某种程度上,如果合理,Intel其实可以考虑从这个领域突围,最起码在int8推理上,结合ONNX和Open-VINO等模型优化方式,先抢占一些市场。

还有一个国内最大的玩家Huawei,对于大多数人民群众来讲,Huawei是卖手机的,但是对于做这个行业的大伙来说,那肯定不是。

      其实910NPU和910生态, 个人认为在这波里做的操作, 非常强劲。本身它在计算领域和chips上就有多年的积累,加上拜登1万1千多公里外的助攻,短期看Huawei应该是这次乱战里最大的赢家。

先上一张老图:


     纸面数据看,算力其实和A100很接近了(A800没降算力,降的是NVlink的bandwidth,和FP64的算力),显存差点,另外HBM3良品率低,NV都缺货,这块对后面920可能是个隐患,此外,我不是特别理解为啥FP32能超出那么多,不过也无所谓,现代深度学习领域里,尤其是大语言模型里,基本常用上的精度就BF16(基本等同FP16的算力)和INT8。  

我线下和一些用过昇腾产品的老同事聊过对这个卡的感受,大家都表达了正向的反馈,是真正的正向反馈,不是遥遥领先那种

 。在多轮训练和推理的测试里,大家反馈基本能达到A100 九成左右的实力,尤其在一定规模的集群里,虽然在大规模集群中差距会一定程度上被放大,但是这个已经是非常大的进步了,尤其在这个对抗的时间点,我个人是十分看好他们的生意机会的。

那么Huawei的计算框架是什么?


     上图是Huawei产品系列用的计算框架CANN。通过官方给的软件架构来看,CANN并不是和AMD,Intel一样从兼容其他的卡作为卖点,而是还是就自己的生态来进行运营,也没有看到它有兼容CUDA生态的意思。

     此外Huawei运营着自己的深度学习框架MindSpore,对标TensorFlow和Pytorch。 如果标准的pytorch代码,MindSpore支持一键迁移百分之80以上的代码,采用MindSpore对昇腾的计算计算集群进行训练推理,会更有效率(MindSpore是也支持GPU和CUDA的)。Huawei也是加入了Torch基金会,并成了国内第一个白金会员,也看得出它要摆脱掉CUDA体系,自己做完整生态的决心,其实这一步是十分不容易的,因为对比现有深度学习框架和体系,Huawei系某种程度上连ROCm都无法比较,但是感谢拜登的助攻,这波之后,也许CANN有机会真做起来,至少是在国内,而大量数据表明,这波大模型混战最大的两个市场也就是美国和中国。


      临时接了一个同事感兴趣的话题,从我个人对这行业的理解写了这篇文章,大家有不同意见欢迎讨论,包括砸挂,我也虚心接受。也欢迎有感兴趣的话题约稿,后续我可能会写一些算法上的东西,也希望各位读者大爷们耐着性子多给转发点赞,谢谢!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容