加速AI计算
随着 AI 大模型的发展,如何加速计算成了行业想要突破的重点领域。大模型的蓬勃发展让 AI 芯片成为了热门话题。为了更好地支持 AI 大模型,如何提高 AI 芯片性能也成为了产业关注的话题。
本文引用地址:http://www.amcfsurvey.com/article/202311/452538.htm在谈论 AI 芯片性能的时候,首先想到的一个指标就是算力即每秒操作数,通常用 TOPS(Tera Operations Per Second)来表示,例如 NVIDIA 的 H100INT8 Tensor Core 可以达到 3958TOPS。
AI 芯片的算力固然重要,但也并不能了解芯片的能效,尤其是对于边缘端芯片,低功耗是一个刚需指标。因此,通常使用单位功率下的每秒操作数来衡量芯片的能效,常用单位为 TOPS/W。以英伟达 Orin 举例,200 TOPS 算力下,功耗 45W 的话,能效为 200TOPS/45W=4.44TOPS/W。
再展开了解,除了每秒操作数和能效,AI 芯片的性能的衡量还和时延、功耗、芯片成本/面积、吞吐量、可扩展性、灵活性和适用性和热管理等。既然 AI 芯片的衡量指标有这么多,那么想要提升芯片的表现也就需要从改善这些方面下手。
AI 芯片知多少
在探讨如何提升 AI 芯片性能之前,先来了解一下几个 AI 芯片的指标的影响因素。
1. 时延
时延通常与 AI 神经网络处理的数据大小(包括 Batch size)有关。反映的是 AI 芯片的实时性能,主要适用于客户端应用。
2. 功耗
在云端、边缘和终端,功耗都是十分重要的指标。功耗包括芯片中计算单元的功率消耗,也包括片上存储和片外存储的功率消耗。
3. 芯片成本/面积
裸片面积对成本有直接影响,每片晶圆上产出的合格芯片越多,单个芯片的成本就越低。相同的设计,芯片面积大小取决于所用的工艺技术节点,节点越小,面积就越小。这也就解释了为什么行业一直在追求更先进节点。
4 吞吐量
单位时间内能够处理的数据量。对于视频应用来说,通常用分辨率和 FPS(Frames Per Second,也就是帧率)来表示,大的吞吐量能够保证视频画面的连续性。提高吞吐量的方法包括:提高时钟频率、增加处理单元数量、提高处理单元的利用率等。
5. 可扩展性
可扩展性表示是否可以通过扩展处理单元及存储器来提高计算性能,Scale up 指对单个 AI 芯片的架构,通过添加更多的处理单元,核数和存储器来提升芯片整体性能。Scale out 指是由多个 AI 芯片构成的系统,通过添加更多 AI 芯片来提升系统的整体性能。(性能包括:运算能力,还有存储能力和数据传输能力等)以英伟达 H100 为例,这款 GPU 包括多个规格,这也让算力范围实现了 26 teraFLOPS~3958 TOPS*的不同表现。
6. 灵活性和适用性
灵活性和适用性决定了相同的设计是否可以应用在不同的领域,以及芯片是否可以运行不同的深度学习模型,这一指标可能设计许多软件层面的工作。
7. 热管理
随着单位面积中的晶体管数量不断增加,芯片工作时的问题急剧升高,需要有较好的热管理方案。常见的散热方法为风扇散热,谷歌的 TPUv3 则用到了最新的液体冷却技术。如一款 AI 芯片算力相当高,但功耗也同样很高,经常一过热就要导致自动降频这样的 AI 芯片也很难说是一款优秀的 AI 芯片。
AI 芯片的限制
提到 AI 芯片的限制,就不得不提到「冯·诺依曼瓶颈」,而这个词已经不再那么陌生。
在传统冯·诺伊曼体系结构中,数据从处理单元外的存储器提取,处理完之后再写回存储器。在 AI 芯片实现中,由于访问存储器的速度无法跟上运算部件消耗数据的速度,再增加运算部件也无法得到充分利用,即形成所谓的冯·诺伊曼「瓶颈」,或「内存墙」问题,是长期困扰计算机体系结构的难题。
这也就引出一个提高 AI 性能的路径,即支持高效的数据访问。例如利用高速缓存 (Cache) 等层次化存储技术尽量缓解运算和存储的速度差异。
AI 芯片中需要存储和处理的数据量远远大于之前常见的应用。大部分针对 AI,特别是加速神经网络处理而提出的硬件架构创新都是在和冯·诺伊曼的瓶颈做斗争。
在架构层面可以减少访问存储器的数量,比如减少神经网络的存储需求、 数据压缩和以运算换存储等 ;也可以降低访问存储器的代价,尽量拉近存储设备和运算单元的「距离」,甚至直接在存储设备中进行运算。
从 AI 芯片设计的角度来说,要达到较好的性能和能效,最好是对架构级、算法级和电路级三个层面进行跨层设计,以实现对各种指标的总体权衡。
使用领先的工艺节点是过去的重要途径,但由于基础物理原理限制和经济的原因,持续提高集成密度将变得越来越困难。目前,CMOS 器件的横向尺寸接近几纳米,层厚度只有几个原子层,这会导致显著的电流泄漏,降低工艺尺寸缩小的效果。此外,这些纳米级晶体管的能量消耗非常高,很难实现密集封装。
因为工艺的提升空间有限,是否有其他角度的解决方案能突破 AI 芯片的技术瓶颈。
两种解决方法
1. 类脑芯片
在计算架构和器件层面,类脑芯片是一个不错的思路。神经元和大脑突触的能量消耗比最先进的 CMOS 器件还低几个数量级。IBM 的 Neuromorphic 的终极理念是把记忆和运算建立在高维连接上,而不是器件上;当然最终也降低了运算功耗。许多人工智能算法在其程序中模拟神经网络。他们使用并行处理来识别图像中的对象和语音中的单词。
近期,IBM 推出了一款新的类脑芯片 NorthPole「北极」,北极模糊了计算和存储之间的界限,IBM 研究院的 Dharmendra Modha 表示,「在单个内核级别,NorthPole 显示为接近计算的内存,而在芯片外部,在输入输出级别,它显示为活动内存。这使得 NorthPole 易于集成到系统中,并显著降低了主机上的负载。」
英特尔也推出了 Loihi 神经形态计算处理机器。应用脑研究联合首席执行官、滑铁卢大学教授克里斯·埃利亚史密斯 (Chris Eliasmith) 是使用这项新技术的几位研究人员之一。他表示 「使用 Loihi 芯片,我们已经能够证明运行实时应用程序时的功耗降低了 109 倍。 深度学习 与 GPU 相比,功耗降低了 5 倍……更好的是,当我们将网络扩展 50 倍时,Loihi 可以保持实时性能结果,并且仅使用 30% 的电量,而物联网硬件使用的电量增加了 500%,并且不再是实时的。」
2. 存算一体
近年来,可以存储模拟数值的非易失性存储器发展迅猛,它可以同时具有存储和处理数据能力,可以破解传统计算体系结构的一些基本限制,有望实现类脑突触功能。(某种意义上存算一体就是实现类脑计算的方式。)
目前比较流行的存内计算范式是——利用存内计算加速 VMM(Vector-Matrix Multiplication)或 GEMM(General Matrix Multiplication)运算。
基于忆阻器内存高速访问、断电后仍可保存数据的特性,可以实现内存+硬盘二合一,解决数据的大量移动,从而进一步实现了完全在芯片上进行学习任务。忆阻存内计算范式则被认为是有望解决该问题的候选方案之一。以机器学习为代表的软计算应用方向已经在忆阻阵列上得到了广泛的验证,包括神经网络、数据聚类和回归等诸多领域。同时,以科学计算和图像处理为代表的硬计算也成功在忆阻阵列上实现,并在降低功耗和时间复杂度等方面取得了很大突破。究其根本,这些应用的发展都得益于忆阻阵列能够以很高的并行性执行并行矩阵向量乘法操作,并消除了大量的数据移动任务。然而,忆阻存内计算仍面临着从底层硬件到系统设计各个层面的不可忽视的挑战。
2023 年 10 月,清华大学集成电路学院教授吴华强、副教授高滨基于存算一体计算范式,研制出全球首款全系统集成、支持高效片上学习(机器学习能在硬件端直接完成)的忆阻器存算一体芯片。相同任务下,该款芯片实现片上学习的能耗仅为先进工艺下专用集成电路系统的 3%,展现出卓越的能效优势,具有满足人工智能时代高算力需求的应用潜力。相关成果可应用于手机等智能终端设备,还可以应用于边缘计算场景,比如汽车、机器人等。
存算一体已经成为多个存储芯片厂商的主要研究方向。
3. 加速不同组件之间的数据传输速度
另一个问题是要解决,设备之间的内存鸿沟:包括内存容量、内存带宽和 I/O 延迟等问题。
过去服务器内的芯片连接通常是用 PCIe 完成的,从性能和软件的角度来看,使用 PCIe,不同设备之间通信的开销相对较高。此外,连接多台服务器通常意味着使用以太网或 InfiniBand,这些通信方法存在着相同的问题,具有高延迟和低带宽。
2018 年,IBM 和 Nvidia 带来了解决 PCIe 与 NVLink 缺陷的解决方案,应用在当时世界上最快的超级计算机 Summit 上。AMD 在 Frontier 超级计算机中也有类似的专有解决方案,名为 Infinity Fabric。之后,英特尔制定了自己的标准,并于 2019 年将其专有规范作为 CXL1.0 捐赠给了新成立的 CXL 联盟。该标准得到了半导体行业大多数买家的支持。
CXL 是一种开放式行业标准互连,可在主机处理器与加速器、内存缓冲区和智能 I/O 设备等设备之间提供高带宽、低延迟连接,从而满足高性能异构计算的要求,并且其维护 CPU 内存空间和连接设备内存之间的一致性。CXL 优势主要体现在极高兼容性和内存一致性两方面上。基于业界大多数参与者的支持,CXL 使向异构计算的过渡成为可能。
CXL 联盟已经确定了将采用新互连的三类主要设备:
智能网卡等加速器通常缺少本地内存。通过 CXL,这些设备可以与主机处理器的 DDR 内存进行通信。
GPU、ASIC 和 FPGA 都配备了 DDR 或 HBM 内存,并且可以使用 CXL 使主机处理器的内存在本地可供加速器使用,并使加速器的内存在本地可供 CPU 使用。它们还位于同一个缓存一致域中,有助于提升异构工作负载。
可以通过 CXL 连接内存设备,为主机处理器提供额外的带宽和容量。内存的类型独立于主机的主内存。
不同于存内计算,CXL 则是处理器厂商的主要攻克方向。
在加速 AI 计算的硬件之路,不同公司都在探索新的方法。哪些尝试会带来跨时代的改变?我们拭目以待。
评论