速度与力量:GPU和CPU在AI世界中的完美配合
©作者|Zhongmei
来源|神州问学
引言
在现代计算设备中共同发挥作用的两个核心组件是 CPU(中央处理单元)和 GPU(图形处理单元)。两者的分工合作对于执行各种任务和提供卓越性能至关重要,所以了解CPU 和 GPU的角色、关键差异,探索他们协同工作的方式,对于任何希望优化计算性能的人来说也是必不可少的。无论你是技术爱好者、游戏玩家、数据科学家还是普通用户,掌握这些组件的知识可以帮助你在选择满足特定需求的设备时做出明智的决定。
什么是 CPU?
CPU(Central Processing Unit),中央处理单元,通常被称为计算机的“大脑”。它负责执行指令和进行系统运行所必需的计算。CPU 包括控制单元、算术逻辑单元(ALU)和缓存内存等各种组件:控制单元(control unit):从计算机内存中检索指令并解码,确定 CPU 需要执行的操作、算术逻辑单元(Arithmetic Logic Unit, ALU):本质上是计算机“大脑中的大脑”,ALU 接收输入数据并遵循指令产生输出。主要功能包括算术运算、逻辑运算和移位运算、缓存内存(cache memory):存储频繁访问的数据,允许更快的检索和改善整体性能。
CPU 通过遵循存储在内存中的一组指令来操作,这些指令通常被称为程序。它获取指令,解码指令,执行必要的操作,并将结果存回内存。这一过程不断重复,使 CPU 能够按顺序执行程序。CPU 的处理能力由CPU的主频(Clock Speed)、核数( the number of cores)、缓存大小(cache size )和架构(architecture)等因素。其中,CPU的主频,即CPU内核工作的时钟频率,指的是 CPU 在给定时间框架内能执行多少计算,通常以吉赫(GHz)为单位测量。核心是 CPU 内的独立处理单元,更多的核心允许并行处理,使 CPU 能够同时处理多个任务。
一言以蔽之,CPU 的主要角色是处理需要复杂计算和快速决策的通用任务。它执行与操作系统操作、软件应用和管理各种硬件组件相关的指令。运行程序、执行数学计算、处理系统请求和管理内存分配等任务都是 CPU 的责任。没有 CPU,计算机将无法执行任何任务或处理数据。
图1. CPU的组成结构
什么是 GPU?
GPU(Graphics Processing Unit),或称图形处理单元,是一种专门设计用于处理和加速图像、视频和动画渲染的专用电子电路。最初为满足图形密集型应用的需求而开发,但现在GPU 已经发展成为能够以惊人的速度和效率处理复杂计算的强大处理器。
与专注于通用计算任务的 CPU 不同,GPU 特别优化用于并行处理。它由数千个较小的处理核心组成,每个核心能够同时执行多个操作。这种并行架构使 GPU 能够并行执行大量计算,使其在涉及大型数据集和高计算需求的任务中非常高效。GPU 强大的计算能力和架构使其成为适用于图形渲染之外任务的理想选择。它越来越多地被用于机器学习、科学模拟、加密货币挖矿和视频编码等领域。这些应用极大地受益于 GPU 同时进行数千次计算的能力,显著减少了处理时间。
GPU 的另一个关键特性是其专用内存,称为 VRAM(视频随机存取内存)。这种高速内存使 GPU 能够快速存储和访问图形数据,实现平滑的图形渲染和减少延迟。GPU 上的 VRAM 量决定了其处理大型纹理、复杂场景和高分辨率显示的能力。随着游戏的兴起和对逼真视觉效果的需求不断增长,GPU 已成为现代游戏系统不可或缺的一部分。它处理渲染纹理、阴影和反射等任务,确保游戏过程流畅和图形沉浸。在游戏中,GPU 与 CPU 紧密合作,提供无缝的游戏体验,CPU 处理物理模拟和 AI 计算等任务。
总之,GPU 是一种专门设计用于加速图形渲染和执行高度并行计算任务的专用处理器。其架构设计、大量处理核心和专用内存使其成为涉及复杂计算和图形密集型应用任务的不可或缺的组件。GPU 的多功能性和可扩展性导致其在各个领域得到采用,彻底改变了对高性能计算有需求的行业。
图2. GPU的组成结构
CPU 与 GPU 的主要区别
虽然 CPU 和 GPU 都是计算系统的重要组件,但在架构、功能以及擅长执行的任务类型方面存在明显的区别。CPU 和 GPU 之间的一个主要区别在于它们的架构设计。CPU 通常由少量核心组成,这些核心擅长以单线程方式执行顺序任务。这些核心针对需要高单线程性能的任务进行了优化,如操作系统操作、软件应用和通用计算。与之形成对比的是,GPU 拥有数千个更小、更专业的核心。这种并行架构使 GPU 能够同时处理大量计算,使其在处理高度并行任务时异常高效。第二个关键区别是每个单元使用的内存类型。CPU 通常使用具有低容量的快速缓存内存来存储频繁访问的数据。这种缓存内存有助于减少延迟并提高总体性能。相比之下,GPU 使用具有更大容量的专用视频内存(VRAM),以容纳渲染详细图像和视频所需的大量图形数据。
同时,时钟速度是 CPU 和 GPU 之间另一个显著的区别。由于 CPU 关注顺序任务和单线程性能,通常以更高的时钟速度运行。相比之下,GPU 的时钟速度较低,但通过拥有更多的核心来弥补这一点。这使得 GPU 在并行处理方面取得了重大进展,尽管时钟速度相对较低,也能够有效地处理计算任务。在功耗方面,与 GPU 相比,CPU 往往更耗电。CPU 设计用于处理包括耗能程序在内的广泛任务,因此需要更高的功率。另一方面,GPU 优化了并行计算,可以更有效地执行,并且功耗更低。
在发展历程方面,CPU从1971年起步,标志着微处理器的诞生,到今天的高度复杂和先进的设计,一直围绕着提高性能、降低功耗和体积、以及增加功能性展开。最初是简单的4位和8位处理器。随后技术进展至更复杂的8位处理器,例如Intel 8080,指令系统也更为完善。进入1980年代,技术转向16位和32位微处理器,这一时期内,处理器能力显著提升,能够支持多任务和多用户操作。到了1990年代中期,奔腾系列的推出,特别是Pentium处理器,首次引入了超标量指令流水结构,乱序执行和分支预测技术,极大地增强了处理器的性能。自2005年以来,处理器技术继续朝着更多核心和更高的并行度发展,如Intel的酷睿和AMD的锐龙系列,同时加入了虚拟化和远程管理等先进功能,以适应不断增长的计算需求和操作系统的复杂性。
图3. CPU的发展历程
GPU的出现则略晚于CPU,而且这些异于CPU的特征使得其从简单的图形渲染工具演变为今天的复杂并行计算设备,凸显了技术进步的重大里程碑。最初,GPU主要用于加速电脑游戏中的图形处理,但随着技术的进步,它们的功能已经扩展到支持复杂的3D图形处理和视频渲染。2000年代初,GPU开始在3D游戏和专业图形设计中发挥更大的作用,其性能和功能的增强推动了视觉效果和渲染技术的快速发展。到了2000年代中期,随着CUDA和OpenCL等并行计算框架的引入,GPU的应用领域从纯粹的图形处理扩展到了科学计算和工程仿真,标志着其进入通用计算的新时代。2010年代,GPU在深度学习和人工智能领域的应用爆炸性增长,它们的高并行处理能力使得训练复杂的神经网络成为可能,极大地加速了AI技术的发展和应用。近年来,GPU还开始支持实时光线追踪和更多AI驱动的功能,为游戏和专业图形提供了前所未有的真实感和效率。GPU的发展正是反映了计算需求的演变和技术创新的动态性,不断推动着计算边界的扩展和新应用领域的开拓。
图4. GPU发展历程
CPU和GPU协作的好处
CPU和GPU在计算系统中的协作能够带来很多好处,通过利用每个单元的独特优势,就可以提供高执行效率的同时,保证卓越的计算能力,提高计算机系统的整体性能。GPU最初用在PC和移动端上运行绘图运算工作的微处理器,与CPU集成以集成显卡(核显)的形态发挥功能。NVIDIA于2007年率先推出独立GPU(独显),使其作为“协处理器”在PC和服务器端负责加速计算,承接CPU计算密集部分的工作负载,同时由CPU继续运行其余程序代码。
CPU和GPU协作的一个主要优点是能够处理多样化的工作负载。CPU擅长处理通用任务,如运行软件应用、管理系统资源和执行复杂计算。而GPU擅长并行处理,非常适合图形渲染、机器学习算法和科学模拟。通过分工合作,确保不同类型的任务被委派给合适的单元,就可以最大化效率和整体性能。比如,游戏或视频领域就极大受益于CPU和GPU的协作。CPU凭借其强大的单线程性能,处理物理模拟、AI计算和管理游戏逻辑等任务。同时,GPU专注于渲染高质量图形,确保流畅的动画、逼真的光照效果和沉浸式视觉体验。这种协作既可以保证游戏体验的流畅,又可以确保游戏的视觉质量
CPU和GPU协作的另一个好处在于能效。CPU一般来说,因为擅长处理广泛的任务,是功率消耗大的单元。如果将并行任务转移到GPU,减少了CPU的工作负载,就降低了功率消耗。GPU针对并行处理进行了优化,在消耗相对较少的功率的同时提供了优异的计算性能。所以,CPU和GPU的协作有助于更有效地使用能源,在高性能计算环境中实现了总体能源的节省。
模型训练过程中的分工
一个人工智能模型的训练通常包括以下步骤:
1. 数据预处理:在自然语言处理(NLP)中,数据预处理,又可称数据清洗,是指将原始文本数据转换成适合机器学习模型处理的格式的过程。包括去除无关字符(Data cleaning)、文本规范化 (Text normalization)、分词(Tokenization)、去除停用词(Stopword Removal)、词干提取(Stemming)、词形还原(Lemmatization)等等一系列准备工作。这些操作通常是顺序的,得益于CPU的通用性,由CPU负责加载和预处理训练数据的任务。
2. 模型算法定义:机器学习算法是 AI 系统用来执行任务的一套规则或流程,最常见的用途是发现新的数据洞察或模式,或者从一组给定输入变量中预测输出值。Transformer 就可以被认为是一种算法,因为Transformer 这种架构描述了如何执行自注意力计算、如何结合输入数据、如何通过神经网络层传递数据等等,这个意义上的 “算法” 是描述深度神经网络在前向传播和反向传播期间所采取的计算步骤。在训练过程中,CPU和GPU都参与定义AI模型的架构。CPU执行负责定义模型结构、连接层和超参数配置的代码。GPU则负责训练过程中执行前向和后向传播所需的计算。
3. 神经网络的训练:神经网络中的两个核心过程是前向传播(Forward Propagation)和反向传播(Backpropagation)。简单来说,通过前向传播,模型可以将输入数据转换为输出结果;通过反向传播,我们比较模型预测结果和真实标签之间的差异,计算模型的梯度信息并更新模型的参数。这两个过程相互配合,实现了神经网络的训练和优化。其中:
● 前向传播和反向传播的梯度计算过程都涉及矩阵乘法和元素级操作,高度可并行化,顺理成章的由GPU来负责。
● 反向传播中计算梯度后,使用梯度下降等优化算法更新模型参数的过程,则需要CPU管理整体优化过程,GPU执行参数更新所需的并行计算。
4. 整体系统管理:在整个训练期间,CPU负责处理内存资源的管理,确保高效的数据访问和存储。监督主内存(RAM)与GPU内存(VRAM)之间的数据传输,以提供必要的输入和检索输出。
总的来说,在AI模型训练中,CPU处理顺序操作、数据预处理和整体系统管理,而GPU负责并行计算、矩阵操作,并通过大规模并行化加速训练。
未来展望
随着AI大模型的火爆,全球迎来高性能计算设施的大规模新建潮和升级潮,以 CPU 为计算核心的高性能计算1.0时代正在快速远去,以 CPU+GPU 为计算核心的高性能计算2.0已全面到来。对于AI模型训练来说,对算力的需求通常都是百卡、千卡甚至万卡集群,对于卡间通信的传输效率要求也很高。显卡巨头NVIDIA有一种名为高速通信接口技术,叫做Nvlink,用于连接多个图形处理器(GPU)或与 CPU 之间。Nvlink 的设计目的是提供比传统的 PCI Express 连接更高的数据传输速率,从而允许更快的数据共享和更低的通信延迟。而且,NVIDIA 随着不同的 GPU 世代推出了多个版本的 Nvlink,以支持不同级别的带宽需求和连接需求。但是,目前国内的自研芯片厂商好像还没有类似功能的技术,国产研发仍需努力。
高性能计算在气象预测、地质勘探、新药研发、新材料研发、人工智能等众多应用领域发挥至关重要的价值,高性能计算技术的演进,引领着整个计算机科学技术的未来走向。未来几年,高性能计算技术将在全球呈现四个方面的发展趋势:
1. 系统架构方面,高算集群、量子计算、云计算和边缘计算的“四算融合”也将成为高性能计算 3.0 演进的新方向:一方面,传统高性能计算集群正在融入云原生技术如Web服务和容器化,提升算力服务的可接触性和效率。比如,芬兰LUMI集群和IBM的Vela集群,以及已经开始利用云计算的分布式特性来提升AI训练的规模和效率的Google。同时,高性能计算集群与量子计算机的融合已经成为行业共识,全球已有超过 20 家机构推出量子计算云服务,从整机公司如 IBM,发展到云服务商如亚马逊云,再到科研院所如北京量子院。同时,高算力需求的应用越来越广泛地出现在到手机、终端、边缘计算节点等嵌入式设备,比如自动驾驶和机器人。为获得实时决策以及更高的信息安全环境,将部分数据处理、模型训练以及推理等工作,从数据中心/云平台迁移至云边协同架构下,是必要的技术路径。
2. 关键硬件方面,计算芯片将迎来多元化发展:一方面是芯片技术的多元化,包括微软、Meta在内的科技强厂都在推动自研CPU和AI加速芯片的发展。除了传统的x86架构,其他如ARM和RISC-V架构也在高性能计算领域获得应用,例如:位于葡萄牙的集群 Deucalion 将采用与日本富岳集群相同的 ARM 架构高性能芯片 A64FX;算能科技日前向山东大学交付国内首台RISC-V服务器集群,该集群拥有48颗RISC-V高性能芯片SG042。这些都显示了芯片技术的广泛多样性和实际应用的拓展。另一方面是存算一体技术的探索,传统芯片均采用冯诺依曼计算架构,改架构的“内存墙”问题随着算力的不断提升而越发明显,逐渐成为芯片性能进一步突破的瓶颈。于是业界纷纷通过集成存储和计算功能来提升芯片性能,同时降低功耗,这就是存算一体技术思路。当下比较多的路线是 HBM 和 LPDDR 等近存计算(Near-Memory Computing)技术以及神经形态计算(Neuromophic Computing)。
3. 软件应用方面,云原生技术将带来高算服务的普及,同时科学计算模拟应用将大量增加:一方面,从国内外云服务商发布的进展来看,云平台容器服务将加快对高性能计算服务的支持,并进一步兼容CUDA、ROCm、oneAPI 等并行计算软件平台,为用户提供高度自动化的高性能计算工作环境,大大提高研发和实验效率。高性能计算算力潜能将被进一步被释放。另一方面,科学计算模拟的需求将更加强烈,更多的科学计算模拟会基于高性能计算服务开展:从微观粒子模拟、到血流和癌细胞模拟、再到核聚变模拟、以及气象和地理空间模拟等等。针对科学计算的性能优化,使得科研团队的生产力迅速提高,科学研究将迎来快速进步的新形势。
4. 可持续计算方面,业界将更多的关注计算的效能,并加速高能效计算技术的研发与探索:高性能计算的能耗是惊人的,以TOP500 排名第一的Frontier 高算集群为例,其算力可达 1.6EFlop/s,功率可达 20 兆瓦,相当于近 1万户家庭用电水平。据统计,数据中心的耗电量约占全球耗电量的1%,我国 2020 年占比是2.7%。虽然当前尚无准确的数据中心能耗预测,但急剧增加的人工智能大模型训练等高耗能计算应用,势必会使这个数字继续增加。可持续计算通常指在设计、建造和使用计算机技术(包括硬件、系统、软件)的过程中,力求实现最大的能源效率和对环境影响的最小化。提高计算能效的途径主要有三个:更高能效的计算软硬件、更先进的冷却技术、以及更合理的计算供需匹配。