尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

GPU如何成为AI算力核心:从CUDA生态到张量核心的演进

GPU如何成为AI算力核心:从CUDA生态到张量核心的演进 1. 从“玩具”到“引擎”深度学习硬件的演进史如果你在2012年之前告诉一个计算机科学家未来几年一种原本为游戏和图形渲染设计的硬件会成为推动人工智能革命的基石他大概率会觉得你疯了。但今天这已是行业共识。英伟达的GPU正是这场变革的核心驱动力。回顾这段历史你会发现技术路线的选择往往不是源于顶层设计而是源于一个具体问题的解决以及随之而来的生态爆发。深度学习硬件的过去是一部从“无心插柳”到“开疆拓土”的传奇。故事的关键转折点公认是2012年的ImageNet图像识别大赛。当时多伦多大学的Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton使用了两块英伟达GTX 580 GPU来训练一个名为AlexNet的深度卷积神经网络。这个网络以压倒性优势夺冠将Top-5错误率从26%降低到了15.3%。这不仅仅是算法上的胜利更是计算范式上的胜利。AlexNet的成功清晰地展示了深度神经网络模型对大规模并行计算能力的渴求而GPU的架构恰好满足了这一需求。为什么是GPU这要从CPU和GPU的根本设计差异说起。CPU中央处理器是“通才”它拥有强大的控制单元和缓存擅长处理复杂的、串行的逻辑任务比如操作系统调度、程序分支判断。但它的核心数量有限通常几个到几十个每个核心都力求强大。而GPU图形处理器是“专才”它的设计初衷是为了同时处理屏幕上数百万个像素的渲染计算。这些计算如顶点变换、纹理映射、像素着色彼此高度独立可以并行执行。因此GPU被设计成了拥有成千上万个更简单、更节能的核心流处理器这些核心专注于执行大量、重复的浮点运算。深度神经网络训练的核心操作——矩阵乘法和卷积恰恰是这种高度并行、计算密集型的任务。一次前向传播或反向传播涉及的是整个权重矩阵与输入数据的大规模乘加运算。CPU的少量强大核心处理这种任务时捉襟见肘而GPU的数千个小核心则可以同时开工效率呈数量级提升。AlexNet团队正是看中了这一点利用CUDA英伟达的通用并行计算平台将神经网络的计算映射到了GPU上从而引爆了深度学习的算力革命。在AlexNet之后深度学习研究进入快车道模型规模和数据集大小开始指数级增长。早期的研究者们还在“魔改”游戏显卡比如使用多块Titan系列显卡搭建小型集群。但很快英伟达敏锐地捕捉到了这一新兴市场的巨大潜力开始有针对性地推出面向高性能计算和AI的专用产品线即Tesla系列现已演进为数据中心GPU产品线如A100、H100。这些产品去掉了图形显示输出增强了双精度浮点计算能力配备了更大的显存和更高的显存带宽并支持多卡高速互联技术如NVLink为大规模模型训练铺平了道路。与此同时一个强大的软件生态——CUDA成为了英伟达最深的护城河。CUDA允许开发者使用C/C等语言直接调用GPU进行通用计算。基于CUDA英伟达又推出了深度神经网络加速库cuDNN它针对卷积、池化、归一化等底层操作进行了极致优化。主流的深度学习框架如TensorFlow和PyTorch其底层都深度依赖CUDA和cuDNN。这意味着任何一个研究者或工程师只要使用这些框架就几乎无缝地站到了英伟达的硬件平台上。这种“硬件-软件-生态”的闭环构筑了极高的迁移壁垒也定义了深度学习硬件“现在”的基本格局以英伟达GPU为核心以CUDA生态为基石。2. 当下的算力基石GPU架构与软件栈的深度协同今天当我们谈论“深度学习硬件”时绝大多数场景下指的就是英伟达的数据中心GPU。要理解其强大之处不能只看硬件参数必须深入到其架构设计与软件栈的协同工作中去。以当前主流的Hopper架构如H100和Ampere架构如A100、消费级的RTX 4090为例我们可以拆解几个关键的技术点。2.1 张量核心从通用计算到专用加速这是英伟达GPU针对AI计算最革命性的创新。在Volta架构2017年之前GPU主要依靠CUDA核心进行通用的浮点运算。而从Volta开始英伟达引入了张量核心。张量核心不是通用的处理器它是专门为执行混合精度矩阵乘法和累加运算而设计的硬件单元。其核心操作是D A * B C其中A、B、C、D都是矩阵。它能在单个时钟周期内完成一个4x4矩阵的乘加运算效率远超CUDA核心。更重要的是张量核心支持多种精度模式尤其是TF32和FP8。TF32是英伟达为兼顾精度和性能推出的格式它在进行矩阵乘法时内部以FP32的精度进行计算但读取输入数据时采用更低的位宽从而在不显著损失训练精度的前提下大幅提升吞吐量。而FP8精度则是为推理场景量身定做在诸如大语言模型推理中可以将计算速度和能效提升数倍。这种硬件级的专用化标志着AI计算从“通用硬件跑专用算法”进入了“专用硬件跑专用算法”的新阶段。2.2 高带宽内存与NVLink打破数据搬运的瓶颈深度学习训练不仅是计算密集更是数据密集。巨大的模型参数、激活值、梯度需要在显存中频繁存取。如果内存带宽不足强大的计算核心就会“饿死”等待数据。因此现代AI GPU配备了HBM。HBM通过将内存芯片与GPU核心通过硅中介层垂直堆叠在一起实现了远超传统GDDR内存的带宽。例如H100的HBM3显存带宽可达3TB/s以上。单卡能力总有上限大规模模型训练必须依赖多卡并行。这时卡与卡之间的通信带宽就成为新的瓶颈。传统的PCIe总线带宽最新PCIe 5.0 x16约为128GB/s在多卡协同训练时显得力不从心。英伟达的NVLink技术提供了远超PCIe的卡间直连带宽。例如H100 SXM版本支持多达18条NVLink链路卡间带宽高达900GB/s。这使得多GPU在协同工作时几乎可以视为一个庞大的统一加速器极大地提升了分布式训练的扩展效率。2.3 CUDA生态看不见的“操作系统”硬件再强如果没有易用的软件也只是废铁。英伟达的统治力一半来自CUDA生态。我们可以把它理解成GPU的“操作系统”或“运行时环境”。CUDA Toolkit这是基石包含了编译器、调试器、库和头文件让开发者能够编写直接在GPU上运行的代码。cuDNN深度神经网络原语库对卷积、循环层、归一化层等进行了高度优化。框架开发者直接调用cuDNN的API就能获得接近硬件极限的性能。CUDA Deep Neural Network library这只是软件栈的一部分。更重要的是英伟达围绕AI计算的全流程构建了庞大的库家族用于快速傅里叶变换的cuFFT用于线性代数的cuBLAS用于稀疏矩阵运算的cuSPARSE以及用于多GPU通信的NCCL。这些库共同构成了一个高性能计算的基础软件层。注意很多开发者在配置深度学习环境时遇到的经典错误“某软件或硬件最近有所更改Windows 无法验证此设备所需的驱动程序的数字签名”其根源往往在于GPU驱动、CUDA Toolkit版本与深度学习框架如PyTorch、TensorFlow版本之间的不匹配。例如你用了一个需要CUDA 11.8的PyTorch版本但系统安装的却是CUDA 12.x的驱动或者驱动版本太旧就可能导致这种数字签名验证失败。解决之道是严格按照框架官方文档的版本对应关系进行驱动、CUDA和框架的“三位一体”匹配安装。2.4 框架集成开箱即用的生产力PyTorch和TensorFlow等框架之所以能“一行代码model.to(‘cuda:0’)”就将计算转移到GPU正是因为其底层与CUDA生态的深度集成。以PyTorch为例当你安装torch时可以选择附带特定版本CUDA的预编译包如cu118表示CUDA 11.8。这个包内部已经链接好了对应版本的cuDNN等库。框架的开发者将神经网络的高级操作如一个nn.Conv2d层翻译成一系列对cuDNN等底层库的调用再由这些库生成高度优化的、针对特定GPU架构的机器码。这种层层封装让算法研究者可以完全专注于模型结构设计而无需关心底层硬件指令极大降低了AI研发的门槛。3. 挑战与变局专用AI芯片的崛起与生态博弈尽管英伟达在AI训练领域建立了近乎垄断的地位但挑战从未停止。这些挑战主要来自两个方向一是其硬件架构在特定场景下的局限性二是来自其他厂商的差异化竞争。3.1 能效比与推理场景的挑战GPU作为通用并行计算平台其设计需要兼顾灵活性。张量核心虽然专用但GPU内部仍有大量的CUDA核心、光追核心、调度单元、缓存等为其他任务服务的部件。在纯粹的、大规模的矩阵计算任务上这种“大而全”的设计在能效比上可能并非最优。尤其是在模型推理场景下对低延迟、高吞吐、低成本的要求极高。这就催生了各类专用AI加速芯片。例如谷歌的TPU是这一领域的先驱。TPU完全为神经网络推理和训练设计采用了脉动阵列架构将数据流和计算单元紧密耦合在能效比上表现突出。亚马逊AWS的Inferentia和Trainium芯片则直接针对其云服务优化为客户提供更具成本效益的AI算力选项。这些专用芯片在各自的特定模型和业务负载上往往能提供比同价位GPU更优的性能功耗比。3.2 软件生态的破局尝试开放标准与编译栈硬件差异是表象真正的壁垒是软件生态。挑战者们深知无法在CUDA的生态围墙外另起炉灶。因此近年来出现了一系列试图“翻译”或“兼容”CUDA生态的努力。AMD ROCmAMD的开放软件平台其HIP工具可以将CUDA代码自动移植到AMD GPU上运行。虽然兼容性在不断提升但在库的丰富度、性能优化深度以及框架原生支持上与CUDA仍有差距。对于开发者而言从CUDA迁移到ROCm仍需要一定的学习和调试成本。Intel oneAPI英特尔推出的统一编程模型旨在为CPU、GPU、FPGA等不同硬件提供统一的编程接口。其DPC语言和oneDNN库试图构建一个开放的、跨厂商的加速计算生态。但这同样面临生态迁移的难题。MLIR和AI编译器的兴起这是一个更深层次的技术趋势。传统的做法是框架调用固定的预优化库如cuDNN。而新一代的AI编译器如Google的XLA、Apache TVM、MLIR则采用“计算图优化自动代码生成”的路径。它们将高级的模型描述如PyTorch的TorchScript或ONNX转换成中间表示然后针对任何目标硬件英伟达GPU、AMD GPU、ARM CPU、专用AI芯片进行一系列图优化和自动内核生成。这理论上可以打破硬件与框架的紧耦合让模型能更灵活地部署在不同硬件上。不过要达到或超越手工精心优化的CUDA库性能仍有很长的路要走。3.3 云服务与算力租赁的常态化“GPU租用”已成为中小型团队和研究者的标配。AWS、GCP、Azure、以及国内的阿里云、腾讯云等都提供了丰富的带GPU的虚拟机实例。这降低了AI研发的初始硬件门槛。同时云厂商也在积极推广自家的自研芯片如AWS的Inferentia通过更优的性价比和深度集成的云服务来吸引用户。对于用户而言选择不再仅仅是“买什么显卡”而是“在哪个云上、用什么类型的算力、运行什么工作负载”的综合成本效益分析。4. 未来的方向系统级优化、光计算与神经形态芯片展望未来深度学习硬件的发展将沿着几个关键路径演进其目标不仅是提供更强的算力更是要解决当前架构在能效、灵活性、以及与新算法匹配上的根本性挑战。4.1 超越单卡系统级与数据中心级优化当单卡性能逼近物理极限功耗、散热、芯片面积提升算力的主要途径就转向了系统层面。这不仅仅是把更多GPU用NVLink连起来那么简单它涉及到整个计算节点的重新设计。CPU-GPU异构计算的深度融合未来的趋势是CPU和GPU或其他加速器更紧密地集成甚至通过Chiplet技术封装在同一基板上实现超高的互联带宽和低延迟。AMD的Instinct MI300ACPUGPU已经迈出了这一步。这种设计可以极大减少数据在CPU内存和GPU显存之间搬运的开销对于数据预处理与训练计算重叠的场景尤其有利。内存与存储层级革新模型参数动辄千亿、万亿远超单卡显存容量。因此分层存储和虚拟化内存技术变得至关重要。例如将高频访问的参数放在HBM中将低频访问的参数放在容量更大的GPU共享显存甚至高速SSD上通过硬件和软件协同管理数据调度。英伟达的Grace Hopper超级芯片通过NVLink-C2C将Grace CPU与Hopper GPU紧密耦合CPU提供超大容量的LPDDR5x内存可作为GPU的“扩展显存”这就是系统级思维的体现。光互联与可组合基础设施在数据中心尺度成千上万的加速器如何高效互联传统电信号互联的损耗和功耗随着距离增加而急剧上升。硅光技术被认为是下一代数据中心互联的答案。利用光进行芯片间、机架间的数据传输可以实现超高带宽、超低延迟和更低功耗。未来计算、存储、网络资源可能不再是固定的服务器形态而是通过高速光网络“按需组合”成适合特定AI工作负载的临时系统。4.2 面向下一代AI算法的硬件当前的硬件主要优化了基于Transformer架构的大模型训练和推理。但AI算法本身在快速演进。稀疏化与动态计算模型剪枝、稀疏注意力机制等可以显著减少计算量但当前的硬件包括张量核心对不规则稀疏计算的支持效率不高。未来的硬件需要更原生地支持稀疏矩阵运算在指令集和内存访问模式上进行革新。混合精度与数值格式探索除了FP16、BF16、FP8研究界还在探索更激进的数值格式如1-bit量化、三元权重等。这需要硬件提供更灵活的可编程计算单元能够高效执行非标准位宽的算术运算。支持新型架构如果下一代主导AI的架构不再是Transformer而是某种全新的、对硬件提出不同需求的计算模式例如更复杂的递归、更动态的图结构那么硬件也必须随之进化。可重构计算如FPGA或更通用的数据流架构可能会重新获得关注。4.3 前沿探索光计算与神经形态芯片这是两个更为长远的、颠覆性的方向。光计算利用光子代替电子进行运算。理论上光计算具有超高速、低功耗、并行性极高的潜力特别适合做矩阵乘法这类线性运算。目前实验室阶段的光子芯片已经可以演示小规模的线性计算但要实现完整的、可编程的、与电子系统紧密集成的光计算系统面临材料、集成度、非线性激活函数实现等诸多工程挑战。神经形态计算受生物大脑启发设计脉冲神经网络硬件。这类芯片如Intel的Loihi使用“脉冲”而非连续值进行通信和计算并且将记忆和计算在物理上融合存算一体在理论上对某些特定任务如实时感知、模式识别能效比极高。然而如何为SNN设计高效的训练算法以及如何与现有的深度学习软件生态对接是巨大的挑战。4.4 软件定义的硬件与敏捷开发未来硬件的灵活性将变得和峰值算力一样重要。通过Chiplet技术和高级封装可以像搭积木一样将不同工艺、不同功能的计算芯粒如通用计算芯粒、专用AI加速芯粒、高带宽内存芯粒集成在一起快速定制出针对不同市场自动驾驶、科学计算、推荐系统的芯片。同时硬件描述语言和高级综合工具的发展使得硬件开发周期缩短更能跟上快速迭代的算法需求。软件和硬件的协同设计将成为常态编译器在优化代码时甚至能感知到底层硬件的细微架构特征并生成与之完美匹配的指令。从我个人的观察来看深度学习硬件的未来绝不会是某一条技术路径的独奏而是一场多层次、多路径的协奏。在可见的未来英伟达凭借其强大的生态和持续的系统级创新仍将在训练和通用AI加速领域保持领先。但在推理、边缘计算、特定垂直领域专用芯片和开放生态将占据越来越多的份额。对于开发者和研究者而言这意味着我们需要更深入地理解从算法到硬件的整个栈在享受高层框架便利性的同时也要对底层的计算、内存、通信瓶颈有清晰的认知这样才能在纷繁的硬件选择中找到最适合自己任务的那把“利器”。最终硬件的发展会继续降低AI创新的门槛让更智能的算法在更强大的引擎上解决更复杂的问题。
返回列表