AI芯片需求情况如何?

最佳答案 匿名用户编辑于2024/01/16 14:12

芯片需求爆发式增长。

1. GPU 性能、功能经历长期迭代升级,成为 AI 芯片中应用最广泛的选择

GPU 能够进行并行计算,设计初衷是加速图形渲染。NVIDIA 在 1999 年发布 GeForce 256 图形处理芯片时 首先提出 GPU(Graphic Processing Unit)的概念,并将其定义为“具有集成转换、照明、三角形设置/裁剪和渲 染引擎的单芯片处理器,能够每秒处理至少 1000 万个多边形”。从计算资源占比角度看,CPU 包含大量的控制 单元和缓存单元,实际运算单元占比较小。GPU 则使用大量的运算单元,少量的控制单元和缓存单元。GPU 的 架构使其能够进行规模化并行计算,尤其适合逻辑简单,运算量大的任务。GPU 通过从 CPU 承担一些计算密 集型功能(例如渲染)来提高计算机性能,加快应用程序的处理速度,这也是 GPU 早期的功能定位。

GPU 性能提升与功能丰富逐步满足 AI 运算需要。2010 年 NVIDIA 提出的 Fermi 架构是首个完整的 GPU 计算架构,其中提出的许多新概念沿用至今。Kepler 架构在硬件上拥有了双精度计算单元(FP64),并提出 GPU Direct 技术,绕过 CPU/System Memory,与其他 GPU 直接进行数据交互。Pascal 架构应用了第一代 NVLink。 Volta 架构开始应用 Tensor Core,对 AI 计算加速具有重要意义。简要回顾 NVIDIA GPU 硬件变革历程,工艺、 计算核心数增加等基础特性的升级持续推动性能提升,同时每一代架构所包含的功能特性也在不断丰富,逐渐 更好地适配 AI 运算的需要。

均衡分配资源的前提下,处理低精度的硬件单元数量更多,表现更高的算力性能。GPU 作为加速器得到广 泛应用一定程度上得益于它的通用性,为了在不同精度的数据类型上具有良好的性能,以兼顾 AI、科学计算等 不同场景的需要,英伟达在分配处理不同数据类型的硬件单元时大体上保持均衡。因为低精度数据类型的计算 占用更少的硬件资源,同一款 GPU 中的处理低精度数据类型的硬件单元的数量较多,对应计算能力也较强。以 V100 为例,每个 SM 中 FP32 单元的数量都为 FP64 单元的两倍,最终 V100 的 FP32 算力(15.7 TFLOPS)也近 似为 FP64(7.8 TFLOPS)的两倍,类似的规律也可以在各代架构旗舰 P100、A100 和 H100 中看到。

Tensor Core 持续迭代提升其加速能力。Volta 架构引入 Tensor Core 的改动使 GPU 的 AI 算力有了明显提升, 后续在每一代的架构升级中,Tensor Core 都有比较大的改进,支持的数据类型也逐渐增多。以 A100 到 H100 为例,Tensor Core 由 3.0 迭代至 4.0,H100 在 FP16 Tensor Core 的峰值吞吐量提升至 A100 的 3 倍。同时,H100 Tensor Core 支持新的数据类型 FP8,H100 FP8 Tensor Core 的吞吐量是 A100 FP16 Tensor Core 的 6 倍。

数据访问支配着计算能力利用率。AI 运算涉及到大量数据的存储与处理,根据 Cadence 数据,与一般工作 负载相比,每台 AI 训练服务器需要 6 倍的内存容量。而在过去几十年中,处理器的运行速度随着摩尔定律高速 提升,而 DRAM 的性能提升速度远远慢于处理器速度。目前 DRAM 的性能已经成为了整体计算机性能的一个 重要瓶颈,即所谓阻碍性能提升的“内存墙”。除了性能之外,内存对于能效比的限制也成为一个瓶颈,Cadence 数据显示,在自然语言类 AI 负载中,存储消耗的能量占比达到 82%。

硬件单元的改进与显存升级增强了单张 GPU 算力的释放,然而,随着 Transformer 模型的大规模发展和应 用,模型参数量呈爆炸式增长,GPT-3 参数量达到了 1750 亿,相比 GPT 增长了近 1500 倍,预训练数据量更是 从 5GB 提升到了 45TB。大模型参数量的指数级增长带来的诸多问题使 GPU 集群化运算成为必须: (1)即使最先进的 GPU,也不再可能将模型参数拟合到主内存中。 (2)即使模型可以安装在单个 GPU 中(例如,通过在主机和设备内存之间交换参数),所需的大量计算操 作也可能导致在没有并行化的情况下不切实际地延长训练时间。根据 NVIDIA 数据,在 8 个 V100 GPU 上训练 一个具有 1750 亿个参数的 GPT-3 模型需要 36 年,而在 512 个 V100 GPU 上训练需要 7 个月。

NVIDIA 开发 NVLink 技术解决 GPU 集群通信。在硬件端,GPU 之间稳定、高速的通信是实现集群运算 所必须的条件。传统 x86 服务器的互连通道 PCIe 的互连带宽由其代际与结构决定,例如 x16 PCIe 4.0 双向带宽 仅为 64GB/s。除此之外,GPU 之间通过 PCIe 交互还会与总线上的 CPU 操作竞争,甚至进一步占用可用带宽。 NVIDIA 为突破 PCIe 互连的带宽限制,在 P100 上搭载了首项高速 GPU 互连技术 NVLink(一种总线及通讯协 议),GPU 之间无需再通过 PCIe 进行交互。

NVDIA 开发基于 NVLink 的芯片 NVSwitch,作为 GPU 集群数据通信的“枢纽”。NVLink 1.0 技术使用时, 一台服务器中的 8 个 GPU 无法全部实现直接互连。同时,当 GPU 数量增加时,仅依靠 NVLink 技术,需要众 多数量的总线。为解决上述问题,NVIDIA 在 NVLink 2.0 时期发布了 NVSwitch,实现了 NVLink 的全连接。 NVSwitch 是一款 GPU 桥接芯片,可提供所需的 NVLink 交叉网络,在 GPU 之间的通信中发挥“枢纽”作用。 借助于 NVswitch,每颗 GPU 都能以相同的延迟和速度访问其它的 GPU。就程序来看,16 个 GPU 都被视为一 个 GPU,系统效率得到了最大化,大大降低了多 GPU 系统的优化难度。

通过添加更多 NVSwitch 来支持更多 GPU,集群分布式运算得以实现。当训练大型语言模型时,NVLink 网络也可以提供显著的提升。NVSwitch 已成为高性能计算(HPC)和 AI 训练应用中不可或缺的一部分。

2. NPU 通过特殊架构设计对 AI 运算起到加速作用

NPU 在人工智能算法上具有较高的运行效率。为了适应某个特定领域中的常见的应用和算法而设计,通常 称之为“特定域架构(Domain Specific Architecture,DSA)”芯片,NPU(神经网络处理器)属于其中一种,常 被设计用于神经网络运算的加速。以华为手机 SoC 麒麟 970 为例,NPU 对图像识别神经网络的运算起到了显著加速效果,使其图像识别速度明显优于同代竞品的表现。

目前已量产的 NPU 或搭载 NPU 模块的芯片众多,其他知名的芯片包括谷歌 TPU、华为昇腾、特斯拉 FSD、 特斯拉 Dojo 等。各家厂商在计算核心的设计上有其差异,例如谷歌 TPU 的脉动阵列,华为昇腾的达芬奇架构。 以谷歌 TPU 及计算核心结构脉动阵列为例,对比其相较于 CPU、GPU 的区别: CPU 和 GPU 均具有通用性,但以频繁的内存访问导致资源消耗为代价。CPU 和 GPU 都是通用处理器, 可以支持数百万种不同的应用程序和软件。对于 ALU 中的每一次计算,CPU、GPU 都需要访问寄存器或缓存 来读取和存储中间计算结果。由于数据存取的速度往往大大低于数据处理的速度,频繁的内存访问,限制了总 吞吐量并消耗大量能源。 谷歌 TPU 并非通用处理器,而是将其设计为专门用于神经网络工作负载的矩阵处理器。TPU 不能运行文 字处理器、控制火箭引擎或执行银行交易,但它们可以处理神经网络的大量乘法和加法,速度极快,同时消耗 更少的能量,占用更小的物理空间。TPU 内部设计了由乘法器和加法器构成的脉动阵列。在计算时,TPU 将内 存中的参数加载到乘法器和加法器矩阵中,每次乘法执行时,结果将传递给下一个乘法器,同时进行求和。所 以输出将是数据和参数之间所有乘法结果的总和。在整个海量计算和数据传递过程中,完全不需要访问内存。 这就是为什么 TPU 可以在神经网络计算上以低得多的功耗和更小的占用空间实现高计算吞吐量。

NPU 已经在 AI 运算加速领域获得了广泛应用。在数据中心获得大规模应用的 NPU 案例即 TPU,已被谷歌 用于构建数据中心的超级计算机,执行特定神经网络的训练任务。在用户端,手机、汽车、智能安防摄像头等 设备开始搭载 AI 计算功能,通常是利用训练好的神经网络模型执行图像处理等工作,此时 NPU 通用性差的劣 势被缩小,高算力、高能耗比的优势被放大,因而得到了广泛的应用。在终端设备中,NPU 常以模块的形式包 含在 SoC 内部,对 AI 运算进行加速,例如特斯拉自动驾驶芯片 FSD 均包含 NPU。

3.训练/推理、云/边分别对 AI 芯片提出不同要求,未来推理端的算力需求将远超训练端

AI 技术在实际应用中包括两个环节:训练(Training)和推理(Inference)。训练是指通过大数据训练出一个复 杂的神经网络模型,使其能够适应特定的功能。训练需要较高的计算性能、能够处理海量数据、具有一定的通 用性。推理是指利用训练好的神经网络模型进行运算,利用输入的新数据来一次性获得正确结论的过程。

根据所承担任务的不同,AI 芯片可以分为训练 AI 芯片和推理 AI 芯片: (1)训练芯片:用于构建神经网络模型,需要高算力和一定的通用性。 (2)推理芯片:利用神经网络模型进行推理预测,注重综合指标,单位能耗算力、时延、成本等都要考虑。 根据 AI 芯片部署的位置,可以分为云端 AI 芯片和边缘端 AI 芯片: (1)云端:即数据中心,关注算力、扩展能力、兼容性。云端部署的 AI 芯片包括训练芯片和推理芯片。 (2)边缘端:即手机、安防摄像头等领域,关注综合性能,要求低功耗、低延时、低成本。边缘端部署的 AI 芯片以实现推理功能为主。 云端推理占比逐步提升,AI 落地应用数量增加。根据 IDC 数据,随着人工智能进入大规模落地应用的关键 时期,2022 年在云端部署的算力里,推理占算力已经达到了 58.5%,训练占算力只有 41.5%,预计到 2026 年, 推理占到 62.2%,训练占 37.8%。云端推理占比逐步提升说明,AI 落地应用数量正在不断增加,人工智能模型 将逐步进入广泛投产模式。

带宽、互连速率的限制,使云端超大规模的模型推理选择 A100、H100 更优,而非 T4、A10 等推理卡。以 GPT-3 为例,OpenAI 数据显示 GPT-3 模型 1750 亿参数对应超过 350GB 的 GPU 显存需求。假设参数规模与所 需显存呈线性关系,且推理的中间参数量按 1 倍估算,则 1 万亿参数规模的大模型推理需要约 4000GB 显存, 则需要 50 张 A100(80GB)或者 167 张 A10(24GB)。集群中的 GPU 数量越多意味着更复杂的互连要求,而 且 A10 无法应用 NVLink 和 NVSwitch 技术,大量 A10 组成的集群仅依靠 PCIe 通信,互连带宽相比 A100 等显 卡的劣势明显,进而可能导致模型推理的时效性不佳。

经测算,AI 大模型在训练端和推理端都将产生巨量的算力/AI 芯片需求。如果未来大模型广泛商用落地, 推理端的算力/AI 芯片的需求量将明显高于训练端。 大模型云端训练对算力的需求测算: 测算原理:从模型的(1)参数规模入手,根据(2)训练大模型所需的 Token 数量和(3)每 Token 训练成 本与模型参数量的关系估算总算力需求,再考虑(4)单张 GPU 算力和(5)GPU 集群的算力利用率推导得出 GPU 总需求。 (1)参数规模:过去几年,大模型的参数量呈指数上升,GPT-3 模型参数量已达到 1750 亿。GPT-4 具有 多模态能力,其参数量相比 GPT-3 会更大。我们在测算中假设 2023 年多模态大模型的平均参数量达到 10000 亿个,之后每年保持 20%的增速;普通大模型的平均参数量达到 2000 亿个,之后每年保持 20%的增速。 (2)训练大模型所需的 Token 数量:参数规模在千亿量级的自然语言大模型 GPT-3、Jurassic-1、Gopher、 MT-NLG,训练所需的 Token 数量在千亿量级,而一些多模态大模型在训练过程中所需 Token 数据量也跟随参 数量增长而增长,我们在测算中假设多模态大模型训练所需 Token 数量达到万亿级别,并且 Token 数量与模型 参数规模保持线性增长关系。

(3)每 Token 训练成本与模型参数量的关系:参考 OpenAI 发布的论文《Scaling Laws for Neural Language Models》中的分析,每个 token 的训练成本通常约为 6N,其中 N 是 LLM 的参数数量,我们在测算中遵循这一 关系。具体原理如下,神经网络的训练过程包括前向传播和反向传播两个过程,其中大致包括四个步骤: 1. 做一个单次的推理操作,得到输出 y,例如输入猫的图片得到输出 0.986。 2. 求到输出 y 与真实的目标输出 Y(假定设置的目标输出 Y=1)之间的差值,例如得到输出与目标真实 值的差值为 0.014。 3. 将输出差值回溯,计算差值关于每个参数的梯度关系。 4. 根据输出差值和梯度修正每个神经元的参数,实现神经网络的参数更新,促使输出逼近目标真实值。 因而在一个参数量为 N 的神经网络中,一次输入带来训练过程的整体运算量大致为 6N,其中 2N 为前向传播过程,4N 为反向传播过程。

(4)单张 GPU 算力:因为在训练大模型时,主要依赖可实现的混合精度 FP16/FP32 FLOPS,即 FP16 Tensor Core 的算力,我们在测算中选取 A100 SXM 和 H100 SXM 对应的算力 312 TFLOPS 和 990 TFLOPS 作为参数。 (5)GPU 集群的算力利用率:参考 Google Research 发布的论文《PaLM: Scaling Language Modeling with Pathways》中的分析,我们在测算中假设算力利用率约为 30%。

大模型云端推理对算力的需求测算:在云端推理场景下,我们分别从云端推理所需算力和云端模型部署所 需显存两个维度分别进行测算。 算力角度的测算原理:基于前文对参数规模、模型数量等数据的假设,根据(1)大模型日活用户人数、(2) 每人平均查询 Token 数量、(3)每 Token 推理成本与模型参数量的关系估算推理端总算力需求,再考虑(4)单 张 GPU 算力和 GPU 集群的算力利用率推导得出 GPU 总需求。 (1)大模型日活用户人数:根据 Similarweb 统计数据,2023 年 1 月 ChatGPT 的日活用户数达到 1300 万。 我们在测算中假设 2023 年多模态大模型的平均日活量达到 2000 万,普通大模型的平均日活量达到 1000 万,之 后每年保持快速增长。 (2)每人平均查询 Token 数量:根据 OpenAI 数据,平均每 1000 个 Token 对应 750 个单词,我们在测算 中假设每位用户平均查询的 Token 数量维持在 1000 个。 (3)每 Token 推理成本与模型参数量的关系:参考 OpenAI 发布的论文《Scaling Laws for Neural LanguageModels》中的分析,每个 token 的推理成本通常约为 2N,其中 N 是 LLM 的参数数量,我们在测算中遵循这一 关系。 (4)单张 GPU 算力:由于测算中的大模型参数量级分别在千亿量级和万亿量级,考虑带宽容量和集群计 算中的带宽限制,我们在测算中假设采用 H100 或 A100 作为云端推理卡。

根据所有假设及可以得到,从云端推理所需算力角度测算,2023 年-2027 年,全球大模型云端推理的峰值 算力需求量的年复合增长率为 113%。 显存角度测算原理:首先,目前 SK Hynix 已开发出业界首款 12 层 24GB HBM3,考虑到一张 GPU 板卡面 积有限,限制了计算核心周围可布置的 HBM 数量,因此未来一段时间内,GPU 显存容量的提升空间较小。其 次,推理最主要的需求是时效性,为了满足时效性,模型所需要的存储空间需要放到显存内。综合 GPU 板卡 HBM 容量有限和推理端模型需放置在 GPU 显存中这两个条件,我们从模型推理端运行所需显存入手,先预估 推理端运行一个大模型所需显存容量(1),再假设业务场景中大模型的峰值访问量,并以此得到总体的显存需 求(2),最终得到算力/AI 芯片的需求。 (1)运行一个模型所需显存:以 1750 亿参数的 GPT-3 模型为例,OpenAI 数据显示参数存储需要 350GB 空间。假设推理计算中间产生的参数按照一倍计算,因此推理至少需要 700GB 显存空间,即部署一个模型需要 9 张 80GB 显存版本的 A100。 (2)业务场景部署模型量及所需显存:假设该模型能够同时处理的并发任务数量为 100,即 9 张 A100 80GB 处理 100 用户同时并发访问。业务场景部署以搜索引擎为例,假设最高并发访问人数为 2000 万,则需要 2000 万/100*9=180 万张 A100 80GB。