大模型ASIC发展路线及趋势总结

大模型ASIC发展路线及趋势总结

最佳答案 匿名用户编辑于2024/04/25 14:05

想了解更多相关内容,可以下载报告《电子行业专题报告:AI算力的ASIC之路,从以太坊矿机说起》查看,以下内容都是根据该报告总结的,仅供参考。

1.初步专用化:GPU 亦是 ASIC

从历史来看,我们通过剖析 GPU 的结构和其与 CPU 的区别,不难发现,GPU 也是某种 意义上的 ASIC,过去的数据处理任务,通常是单条复杂指令或逻辑运算,但随着图像处 理需求的出现,计算过程中往往开始包含大量并行的简单计算,而 CPU 由于核心数量有 限,虽然单核能够处理较为复杂的指令,但面对大量简单计算时,运算时间长的缺点逐 渐暴露。所以正如前文所说,CPU 作为人类最通用的芯片,带领人类进入并探索了图像 时代,紧接着,面对海量释放的 AI 需求,GPU 作为“图像 ASIC”横空出世,满足了海 量的图像处理需求。

进一步探究 GPU 的发展历程,我们会发现芯片趋势的第二部分,如果说 CPU 到 GPU 是 我们提到的“通久必专”,那么 GPU 本身的发展历史则是“专久必通”的最好诠释。在 并行计算早期,算法大多数是由简单的加减乘除构成,因此通过在 GPU 芯片内部署大量 的小核来并行计算这些简单算法。但后来,随着并行计算,或者说图像处理需求慢慢衍 生出图像识别、光线追踪、机器视觉等等新功能和与之对应的以“卷积计算”为代表的 新算法,GPU 本身也从专用芯片,变成了面向并行计算模式或者海量图像需求的“通用 芯片”。 其中最有意义的事件,也奠定了英伟达如今领先地位的是 Tensor Core 的发明与问世。 英伟达在 2017 年 5 月发布的 Volta 架构中引入了第一代 Tensor Core,为混合精度矩阵 乘法提供了突破性的性能,与上一代 Pascal 相比,用于训练的峰值性能提升了高达 12 倍,用于推理的峰值 TFLOPS 性能提升了高达 6倍。这项关键功能使Volta 提供了比 Pascal 高 3 倍的训练和推理性能。

Tensor Core 又名张量计算核心,简单理解,便是专门用来计算矩阵乘法的一块大核,其 具体结构为一个由乘法器和加法器共同构成的立方体。立方体的主要部分为乘法器,最 底部一层则为加法器,根据矩阵乘法公式,加法器将上方乘法器的运算结果进行累加, 从而快速得出矩阵乘法的结果,这一特殊结构,使得过去有多个小核经过漫长计算才能 得到的矩阵乘法结果,优化了许多。

Tensor Core 的问世,也标志着 GPU 的重心正式从图像训练转向深度学习,通过良好契 合矩阵乘法的计算核形式,实现对于卷积或 Transformer 的性能提升。此外,凭借 CUDA 生态和无数开发者、使用者的努力,人类历史上的科学计算领域,除了大模型之外,如 量子物理、药理学计算、流体物理等等,均得到了英伟达 GPU 的算力支持,至此,英伟 达凭借大小核心的架构,与 CUDA 生态,成为了图像、科学计算领域的“通用芯片”之 王。

进一步专用化:以谷歌 TPU 为例

前文提到,随着大模型训练需求的跃升,Transformer 算法快速风靡,而海量的需求叠加 相对固定的算法,则是 ASIC 发展的最好土壤。而谷歌 TPU,则是率先崭露头角的第一 块实际用于大模型训练的芯片结构。 谷歌 TPU,原理脱胎于脉动整列取数法,脉动整列(Systolic Array)的概念最早在 1982 年被提出,是一种快速将数据读取至矩阵运算单元的方法,由于当时矩阵运算需求极小, 并且仍是 CPU 为主,并未受到重视。从 2016 年开始,谷歌开始在其训练芯片 TPU 上重 新引入脉冲阵列概念,经过三年开发,于 2019 年形成成熟产品,首次通过脉冲阵列读 取形式,开辟了除英伟达 CU+TU 体系外的全新矩阵运算架构。但同时,脉冲阵列由于 其特殊的数据填充方式,导致了运算启动速度较慢、处理单元利用率不足等问题。

前文提到,英伟达的 TensorCore 架构,通过乘法器与加法器的 3D 堆叠,实现了超高的 矩阵运算效率,但是在任何 TensorCore 结构的单元计算的过程中,决定运算效率,或者 说是峰值算力的,一方面是 TensorCore 的大小,即能运行“NxN”的矩阵,N 越大, TensorCore 的运算能力越强。另一方面,决定 TensorCore 运算效率的则是需要运算的 数字被装填进入 TensorCore 的时间,“取数时间”与“矩阵大小”共同构成了 GPU 运算 能力的基石。 通过英伟达的芯片结构图,我们不难发现,以 A100 为例,每一个 TensorCore(TU), 会搭配 16 个 INT32 核心,16 个 FP32 核心,8 个 FP64 核心,这些核心又称为 CU(计 算单元)。在取数的过程中,每一个 Cycle 内,以 INT32 精度为例,每一个 INT32 ALU 可以给相对应的 TU 灌入 1 个数,则 16 个 ALU,一个 cycle 可以给 TU 内灌入 16 个数。

在这里我们先重温一下矩阵乘法公式,从而得出一个矩阵乘法中,需要给 TU 中灌入多 少数字,以一个 16x16 的举证乘法为例,需要往 TU 内灌入 2*16^3 次数,则在 16 个 INT32 的 ALU 努力下,需要 512 个 cycle 将 TU 填满然后再进行运算。

而脉冲阵列,则完全抛弃了由 CU 给 TU 供应数字的模式,而是直接将两个矩阵用类似于 “推”的方法,装载进入 TU 中进行运算。我们用一个 16x16 的矩阵乘法为例,来探寻 一下,填满整个 TU 需要多少 cycle。 假设有一个 A 矩阵,一个 B 矩阵,则 TU 核心就是要计算的乘法矩阵。我们先根据矩阵 的乘法公式,把 B 矩阵的数字调换一下顺序,使得其在推动的过程,符合矩阵乘法公式。 第一个 cycle,我们将 A 的第一行与 B 的第一列往 TU 内“推”一下,这时候可以看到 TU 的(1,1)格内同时被填入了 a11 与 b11 两个数字,这时 TU 内的乘法器会把两个数 字相乘并将结果放入加法器内。

第二个 cycle,我们将 A 的第一行与 B 的第一列再往 TU 内推一下,同时也会把 A 的第二 行与 B 的第二列往 TU 内推动一格,此时 TU 内的(1,1)格内的数字换成了 A12 与 B21 两个数字,而原有的 TU 内(1,1)格的数字则被推动,分别进入 T(2,1)与 T(1,2), 同时,这三个 TU 内的格子分别进行一次乘法计算,然后把结果放入加法器中。 如此循环往复至第 16 个 cycle,此时 A 的第一行与 B 的第一列已经完全被推入了 TU 内, 则 TU 的(1,1)格内已经完成了 16 次乘法运算,并且数据已经完全被存储进加法器中, 这个循环内,加法器运算一次,得出 AxB 的结果矩阵的(1,1)格内的值。 第 17 个循环,此时被推入 TU 内(1,1)格的数据,已经来自于新的两个矩阵,而 TU 的 (1,2)和 TU 的(2,1)也将在这个 cycle 内完成相应的 16 次乘法与求和,在下一个 cycle 内,这两个格子也将被用于新的两个矩阵的运算。

因此,在连续推入数据的情况下,通过脉冲阵列,将一个 16x16 的矩阵数据完全导入 TU,仅仅需要 16 个 cycle,其从架构层面实现了对英伟达通过 FPU 与 ALU 填单个数 字进 TU 的超越,在同等制程下和 TU 规模下,其潜力上限更高。 但由于脉动阵列的一些特性,其在拥有优异的“取数能力”时,也不可避免的会出现一 些劣势。第一,GPU 遇到的数据往往不是连续的,在数据中断然后重新填入的过程中, 脉冲阵列架构的 TU 内,部分运算单元会处于空转的状态,从而降低了芯片性能的整体 利用率。 第二,脉动阵列在前几个 cycle 内,推入的数字较少,因此在数据中断后再次启动时, 效率较慢,我们可以形象的理解为“启动慢,极速高”。 第三,由于脉动阵列需要 CPU 直接把矩阵输入至 TU 的 DFF 内,因此需要把程序语言转 换成矩阵,对于编译器的开发要求极高,这也是限制了脉冲矩阵发展的最主要因素。

但随着谷歌对于 TPU 的不断更新,最新版本已经迭代到了 TPU V5e,同时持续的软件投 入叠加业内稀疏数据预处理能力的加强,TPU 路线已然成为了全球 Transformer 或是矩 阵乘法的主流设计思路,也是英伟达最大的挑战者之一。 在了解完了原理之后,我们再来看一下 TPU 的架构图,从 V1 到 V4 的更新,我们也可 以看出 ASIC 芯片的进化思路,英伟达的迭代思路类似,但后续的迭代空间有望更大。 从 TPUV1 到 TPU V2 的变化最为显著,第一,往 MXU 内填充数据的存储由 DDR 变为 HBM,第二则是增加了多卡互联的模块,这一层级的架构,对应上述的原理,主要为了 优化往 MXU 内灌数的速度和流程。

第三,TPUV2 将 V1 的超大矩阵乘法器一分为二,降低了部分算力的空载时间,同时也 降低了编译器的难度(这部分可以看出,ASIC 时代,软件会成为瓶颈)。

TPU V2 基本定型了后续的架构,V3、V4 的更新则类似于 Wafer-Scaling 和制程提升的 结果,更高的制程、更大的芯片面积,换来了单芯片上更多的 MXU(矩阵乘法)核心。 以 TPU V4 来看,单块芯片包含两个 Tensor core,共计 8 个 MXU,是 V2 的 4 倍。

总结来看,TPU 的横空出世,基本奠定了大模型 ASIC 的开发方向,即舍弃 NV 架构中用 于进行简单加减乘除计算的小核,单独保留 Tensor Core 进行矩阵乘法运算,在提高芯片效率的同时,也保证了一定的灵活性。TPU 由于缺少小核,无法对训练过程中所遇到 的带 0 数据进行提前处理,因此当下更多的被业界认为是一块针对“稀疏数据处理能力” 弱化、同时强化了“矩阵乘法能力”的 ASIC,并没有针对特定模型做极致定制化,也并 非大模型 ASIC 的终局。

极致专用化:以 Groq 为例

上节我们提到,以 TPU 为代表的芯片,由于需要兼顾训练、不同算法等需求,并没有做 到极致面向推理或者是极致“ASIC”化,同一个芯片中单个 MXU 之间并没有很高效的 互动,因此在保留了通用性的同时,也降低了计算效率。 我们来看当下较为领先的“推理 ASIC”亦或是“LLM 专用 ASIC”Groq,Groq 由谷歌 TPU 团队成员创立,在经过了几年的默默发展后,最终在 2024 年 2 月一鸣惊人,运行 在 Groq 平台上的 Meta Llama 2 模型,实现了领先的推理速度,将大模型的推理速度带 到了 500 Token/s,而 GPT-4 的输出速度则在 40 Token/s。

为何一张 14NM 的芯片,能够在推理端打败昂贵的 4NM 制程 H100 呢?这其实就是极致 ASIC 化的必然结果。我们从 Groq 芯片的架构图中可以看出,除了舍弃掉小核,只保留 了矩阵乘法核与向量乘法核外,Groq 还创新性的引入了 sRAM 作为核与核之间互相传递 数据的工具,这样 MXU 就无需频繁与外界的存储进行互动,可以搭建出一条由“矩阵核、 向量核、SRAM”三者共同组成的数据处理“流水线”,从而完美契合推理过程,即用先 前推理出的 Token 代入模型,得到下一个 Token 的过程。

但我们需要注意的是,由于 Groq 的芯片架构定型于四年前,以现在的视角来看,依旧 有不少遗憾,第一,sRAM 的容量较小,导致需要更多的 groq 显卡才能完整容纳大模型, 第二,由于四年前依旧是 CNN 卷积计算占据主流,因此 Groq 有部分面积给了相对没有 必要的向量计算核。

Groq 的成功已经向我们展示了未来推理 ASIC 的广阔空间,即在 MXU 堆叠的基础上,通 过 sRAM、DDR7 等等高速存储进行桥接,使得 MXU 之间能够进行高速率的数据传输, 使得推理结果流水线式加工,而不需要像英伟达架构一般,每次推理都需要去 HBM 中 访问一次先前的 Token,降低了数据交互密度,使得无论是访存 IO,亦或是网络 IO 都不再成为瓶颈。

2. 主要技术趋势总结:Wafer-Scaling+近存计算构建数据流水线

我们先来总结一下大模型 ASIC 发展的道路,核心还是围绕聚焦“矩阵核”,舍弃多余部 分来进行,从英伟达 GPU 到 TPU,初步实现了这一步,通过舍弃外围小核,采用全新的 填充模式,获得了更高性价比的训练算力。第二部则是串联“矩阵核”,使得数据的处理 更加流水线化,这一步也是目前芯片设计趋势中的“Streaming Processing”概念,进一 步降低与外界的数据互动,实现超低延迟的推理,从 TPU 到 Groq,就是此种思路。 往后来看,ASIC 的发展也将聚焦于两个方向,第一个方向为“Wafer-Scaling”,以 Sam Altman 投资的 cerebras 为例,即扩大单个芯片面积,实现在单个芯片内装在更多的 MXU, 也即是矩阵计算核心。这样单次运算能够处理的数据量就更大,是最简单和直接的升级 路线。第二个方向即为“近存计算”,Groq 给我们具体展示了这一路线,MXU 将数据运 算后直接转移给相邻的 sRAM,由于传输距离短,叠加 sRAM 天生的高带宽,从而实现 了绕过 HBM 的流水线式加工,我们认为这种通过近计算单元的高速存储,来实现计算单 元之间高速沟通的模式,将会是大模型 ASIC 发展的另一主要方向。

参考报告

电子行业专题报告:AI算力的ASIC之路,从以太坊矿机说起.pdf

电子行业专题报告:AI算力的ASIC之路,从以太坊矿机说起。近期关于AI算力的GPU与ASIC路线讨论渐多,从推理角度看,ASIC在成本端优势明显,而GPU在通用性及生态上更胜一筹。若干年前,以太坊矿机也经历了从GPU到ASIC的迭代,从算力发展角度给我们诸多启发。天下芯片,通久必专,专久必通。回望芯片发展历史,从CPU,到图像与深度学习时代大放异彩的GPU,再到矿机ASIC的异军突起。芯片发展一直遵循着上述规律。某类需求的爆发,推动通用芯片中的某一功能独立并形成ASIC,来更好的满足需求。通用芯片发现需求,专用芯片满足需求,这就是半导体行业面对人类需求时的解决之道,归根结底,客户的需求决定一...

查看详情
相关报告
我来回答