今天小编分享的科技经验:国产替代狂奔,中国版英伟达何时现身?,欢迎阅读。
导语:在国产 GPU 突围的道路上,部分厂商已经走出了自己的路。但鉴于硬體、生态等各方面的差距,这样必定是一条充满荆棘的长路。
最近,风头正盛的英伟达在算力领網域又下一城。
在最新的最新 MLPerf 训练基准测试中,英伟达的 H100 仅用 11 分钟就训练完了 GPT-3。
并且还在所有的八项测试中都创下了新纪录。
可以说,这是一款专为 AI、HPC 和数据分析而设计的 " 性能怪兽 "。
凭借着 4nm 制程、800 亿个晶体管、18432 个 CUDA 核心,以及专用的 Transformer 引擎,H100 将大模型训练速度提高了 6 倍。
同时,H100 还支持 NVLink Switch 系统,可以实现单节点内和节点间的全方位 GPU 通信,从而支持百亿亿级(Exascale)的工作负载。
这也是其能在 MLPerf 8 项基准测试中横扫其他竞争者的重要原因。
在算力愈发重要的 AIGC 时代,任何能提高模型训练、机器学习的硬體技术,都成了各大 AI 企业垂涎欲滴的产物。
然而,目前在 GPU 领網域,大部分国内企业,仍然只能仰赖英伟达一家的技术。
在国内算力愈发捉襟见肘,以及国际风云变幻的敏感时刻,国内的 GPU 厂商,能否奋力追赶,解决这一 " 卡脖子 " 难题,以至于成为下一个 " 英伟达 " 呢?
种子选手的秘密
在目前国内一票 GPU 的 " 种子选手 " 中,一家名叫壁仞科技的企业引起了人们的注意。
原因很简单,那就是其产品 BR100 不仅创下了全球算力纪录,并且宣称其峰值算力达到了英伟达 A100 的 3 倍,甚至还能对标没发售的 H100。
然而,稍微了解过国内芯片行业的人都知道,在芯片领網域,国内的炒作太多了,徒有其表的例子也太多了。
那么,做出这个 " 媲美英伟达 "GPU 的企业,究竟是什么来头?其自主研发的 BR100,是否真的像其宣传的那样出色?
要回答这个问题,我们不妨先看看壁仞科技的创始班底,技术背景究竟如何。
作为一家通用智能芯片设计研发商的壁仞科技,成立于 2019 年,团队由国内外芯片和云计算领網域的专家和研发人员组成。
其创始人张旭博士,不仅拥有清华大学和斯坦福大学的博士学位,还曾是英伟达的高级架构师,负责 Volta 架构的设计和开发。
除此之外, 团队其他成员的技术身份,也颇为亮眼。
李新荣,联席 CEO,曾任 AMD 全球副总裁、中国研发中心总经理,负责 AMD 大中华区的研发建设和管理工作。
洪洲,CTO,曾在 NVIDIA、S3、华为等工作操刀 GPU 工程项目,拥有超过 30 年的 GPU 领網域经验。
焦国方,軟體生态环境主要负责人,曾在高通领导和产品研发了 5 代 Adreno 移动 GPU 系统架构。
这样的团队背景,决定了壁仞科技的技术底色。
依据之前在英伟达、AMD、高通、商汤科技等知名企业的研发经验和技术积累,壁仞科技研发了自主原创的芯片架构——壁立仞。
壁立仞架构基于 SIMT(单指令多线程)模型,针对 AI 场景进行了专用的优化和定制。
其最大的特点,就是可以将多个小芯片拼成一个大芯片,每个小芯片只做一部分功能,然后通过高速互连组合成一个大芯片。
这样可以提高芯片的良率和可靠性,同时降低成本和功耗,实现更强大的算力和扩展性。
这就是壁仞科技所谓的Chiplet的设计理念。
这种技术的难点在于如何保证芯片之间的高速通信和协作,同时避免信号干扰和功耗过高。
因此,如何设计合适的芯片分割和组合方案,使得每个芯片都能发挥最大的效能,同时减少电磁干扰和热耗散,就成了 Chiplet 能否成功的关键。
对此,壁仞科技使用了两种关键的技术2.5DCoWoS 和 BLink,来攻克这一难关。
简单地说,2.5D CoWoS 技术是一种把多个芯片堆叠在一起的技术,它利用了一个硅基板作为中介层,缩短了芯片之间的距离,从而提高了信号的传输速度和质量。
而 BLink 则在中介层上,建立了一个专用的接口,它可以让多个芯片之间直接传输数据,而不需要经过其他的电路或芯片,从而减少了延迟和功耗。
然而,尽管 2.5D CoWoS、BLink 这些技术,让壁仞科技打造出了算力更强的 BR100,但这些技术,目前在国际上并不罕见,其他 GPU 厂商也有过类似的设计。
例如,Nvidia 的 A100 和 H100 GPU 都采用了 CoWoS 技术,把 GPU 芯片和 HBM 内存堆叠在一起,提高了内存带宽和计算性能。而 Nvidia 还开发了自己的 NVLink 接口,类似于 BLink 接口,可以让多个 GPU 之间高速互联。
此外,AMD 也有自己的 Infinity Fabric 接口,可以实现类似的功能。
那既然这是一种 " 大家都能用 " 的技术,那壁仞科技怎么就做到让 BR100 算力达到 A100 三倍的呢?而英伟达真就会坐视着自己被超越了?
其实,这样的结果,是二者在不同数据格式下的表现所致。
具体来说,BR100 的巨大算力,更多是在矩阵 FP32 数据格式下的表现。
一般来说,数据格式占用的位数越多,它的范围和精度就越高,但是也会消耗更多的空间和电力。
而矩阵 FP32 其实就是一种特殊的 FP32 数据格式,它只用了 19 位来存储一个浮点数,这样做的目的是为了让矩阵 FP32 能够兼容 Tensor Core 这种专门用于加速矩阵乘法的硬體单元。
矩阵乘法是深度学习中最常见和最重要的计算操作之一,所以使用矩阵 FP32 可以大幅提升深度学习的性能。
但是,矩阵 FP32 也有一个缺点,就是它的精度比向量 FP32 低,也就是说它能表示的浮点数的范围和细节程度比向量 FP32 小。
这样就会导致一些误差和损失,在某些情况下可能会影响模型的质量和效果。
因此,矩阵 FP32 和英伟达 A100 的向量 FP32 并不等价,因为矩阵 FP32 只适用于矩阵乘法这种特定的计算操作,并不能代表 GPU 的整体性能。
生态之痛
除了技术方面的较量外,軟體生态上的壁垒,也是国产 GPU 无法忽视的一道屏障。
从某种程度上说,这样的壁垒比某些具体技术的难点,更难以攻克。
在 GPU 领網域,业界流传着一种说法:"CUDA 是 Nvidia 最深的护城河 "。
这是因为,早在十几年前,在业内大部分人都认为 GPU 只能处理图形相关的计算时,英伟达就已经意识到了 GPU 在 AI 领網域的潜力和价值,并开始了相应的布局,在 2006 年推出了通用并行计算架构 CUDA。
在 CUDA 问世前,人们在进行各种计算任务时,用的都是 CPU,而非 GPU。
然而,CPU 虽然具有很强的 " 通用性 ",可以处理各种计算,但是它的速度不够快,而且核心数量有限。
而相较之下,只能处理图形计算的 GPU,不仅速度很快快,而且有很多很多的核心。
通过 CUDA,在进行 AI 计算时,人们可以将神经元之间的计算分配到 GPU 的不同核心上,并行地进行运算。这样就大大提高了神经网络的训练和推理的速度、效果。
英伟达看到了 CUDA 的巨大潜力,于是不断地完善和优化 CUDA 的技术和生态。
例如让 CUDA 支持 C、C++、Fortran、Python 等多种编程语言,或是提供了针对不同领網域和应用优化的库和工具,比如影像处理库、深度学习库、自动驾驶库等等。
这样的优化,为开发者提供了极大的便利,使其不用再学习新的编程语言,或是从头开始编写代码。
于是,越来越多的人用惯了,用舒服了,CUDA 的生态就这么被搭建起来了。
诚然,在 CUDA 构建自身生态壁垒的过程中,也不是没有遇到过竞争者,但最后这些对手都一一成为了 " 陪跑者 "。
例如,苹果公司和 Khronos Group 在 2009 年推出的 OpenCL,也有过想成为行业标准的想法,让人们可以用不同厂商的 CPU、GPU、来做异构计算。
然而,OpenCL 没有 CUDA 那么高效和灵活,需要更多的编程技巧和优化工作,这就加大了开发者的负担。
而英伟达的老对手 AMD,也想要提供一个通用并行计算平台,并推出了相应的产品 ROCm,它跟 CUDA 的架构非常类似,甚至有一个工具叫 hipify,可以把 CUDA 代码转换成 ROCm 代码。
但是 ROCm 只能用在 AMD 的 GPU 上,而且只支持几款显卡。
于是,综合对比下来,更多的开发者还是选择了 " 通用性 "、" 易用性 " 都更胜一筹的 CUDA。
如今,在軟體生态方面,壁仞科技也推出了自主研发的 BIRENSUPA 軟體平台,试图通过 " 无缝运行 " 的方式,让开发者无需修改代码,就可以在 BR100 系列产品上运行原本基于 CUDA 的应用。
这样,习惯了使用 CUDA 的用户,如果转而使用 BR100 系列产品,可以获得更高的计算性能和更低的功耗成本。
然而,这样的思路,却面临着几大挑战,而其中之一,就是 BR100 系列产品在通用计算生态上的支持。
BIRENSUPA 軟體平台
因为,壁仞科技为了提高 BR100 系列产品在 AI 计算方面的性能和能效,也对流处理器进行了一些优化和定制,比如说使用 BF16 替代 FP16 作为主要的数据格式,以及增加了一些针对 AI 的硬體指令和功能。
这样,BR100 就可能牺牲了部分通用计算能力,导致其在一些非 AI 的应用场景和领網域上表现不佳或者不兼容。
而这也是为什么,BR100 的主要应用场景,大多是复旦大学、清华大学这类高校的人工智能计算和高性能计算项目。
除此之外,BR100 系列产品,在算力利用率上也存在着风险。
虽然,BR100 的架构是通用的,如果如果壁仞科技愿意,也同样可以将其用于通用类的计算。
但因为 BR100 的内部算力带宽已经明显超过 PCIe 和 HBM2e 的带宽,所以绝大部分数据可能都要在 GPU 内流转。
这就意味着,虽然 BR100 的算力很强大,它的数据来源和输出通道,都不够快,不能及时地给它送来或者拿走数据。
而如果一个軟體生态主要支持通用处理, 它的 GPU 芯片往往就需要有足够高的外部带宽,来获取各种类型的数据。
这是因为,不同类型的应用,往往对带宽的需求和敏感度都不同。一些大型的应用,可能需要更高的带宽,才能更好地计算。
最后,也是最具风险的一点,就是虽然壁仞科技宣称,BR100 要无缝地支持 CUDA 生态,但 CUDA 不是一个开源生态,英伟达在其中埋下了大量专利壁垒。
如果壁仞科技真的打算撬动这块壁垒,则很可能受到英伟达的在专利上的反击。
综上所述,虽然目前在国产 GPU 突围的道路上,部分厂商已经走出了自己的路,但鉴于硬體、生态等各方面的差距,这样的道路,必定是一条充满荆棘的长路。