众所周知,随着人工智能和机器学习的迅猛发展,智能应用如雨后春笋般地不断涌现出来。然而,传统冯·诺依曼架构的 CPU 在面对日益复杂的深度学习模型时,性能瓶颈日益凸显。摩尔定律的放缓更是加剧了这一问题。为了满足人工智能应用对算力的爆炸性需求,人民开始积极探索新的计算架构。
而与此同时,GPU(图形处理器)凭借其高度并行的架构,在图形渲染和并行计算方面展现出卓越性能,成为加速深度学习的首选。TPU(张量处理器)则由谷歌专门为机器学习任务设计,在张量运算方面具有显著优势。这些新型处理器通过异构计算的方式,与CPU协同工作,构建了更强大的计算平台。
一、GPU 是什么 ?
GPU,即“图形处理单元”, 是一种专门设计用于处理图形渲染的电子电路,其核心优势在于高度并行的计算架构。
传统上,GPU 主要用于加速计算机图形的生成和显示,例如在游戏、视频编辑等领域。然而,随着深度学习等人工智能技术的兴起,GPU 的并行计算能力使其成为了加速 AI 训练和推理的理想选择。
通常而言,与传统 CPU 的串行处理方式不同,GPU(图形处理器)拥有数千个高度并行的核心,能够将复杂的计算任务分解成无数个小任务,并同时进行处理。这种高度并行的架构使得 GPU在处理图形渲染、机器学习(ML)、视频编辑、游戏应用程序、计算机视觉、比特币等加密货币的挖矿以及生成人工智能等需要大量计算的任务场景时表现出色。
尤其是,在深度学习领域,GPU 的地位更是无可替代。 深度学习模型通常涉及大量的矩阵运算,而 GPU 的并行计算能力恰好可以加速这些运算。此外,GPU还 支持混合精度计算,即同时处理单精度和半精度浮点数,进一步提升了计算效率。这种加速效果使得训练大型神经网络成为可能,推动了深度学习在图像识别、自然语言处理、语音识别等领域的快速发展。
二、GPU 与 CPU 是如何协同工作的 ?
CPU(中央处理单元)和 GPU(图形处理单元)是现代计算系统中两个互补的重要组成部分,两者通过分工协作,发挥各自的优势,从而极大提高了应用程序的数据吞吐量和并发计算能力。
GPU 最初被设计用于生成计算机图形和视频游戏的视觉效果,以满足日益增长的图形渲染需求。自2010年代初开始,由于 GPU 强大的并行计算能力,其应用范围逐渐扩展到需要大规模数据并行处理的领域,如科学计算、人工智能等,从而加速了这些领域的计算过程。
1. CPU:通用计算的引擎
CPU 擅长处理各种通用计算任务,例如操作系统管理、应用程序执行、数据处理等。它具有高度灵活的指令集,可以执行复杂的逻辑操作。由于其串行处理的特性,CPU在处理顺序执行的任务时效率较高。
2. GPU:并行计算的加速器
GPU最初设计用于渲染图形,其核心特点是高度并行的计算架构。它包含数千个流处理器,能够同时执行大量的简单指令。这种并行处理能力使得 GPU 在处理需要大量重复计算的任务时具有显著优势,例如矩阵运算、图像处理等。
3. CPU 与 GPU 的协同工作
其实,在整个计算机生态体系中,CPU 和 GPU在系统中分工合作,相辅相成。具体可参考如下:
(1)CPU 负责整体控制: CPU 负责操作系统管理、应用程序调度、内存管理等任务,并协调 GPU 的运行。
(2)GPU 负责加速计算: GPU 将计算密集型任务,如深度学习模型的训练、图像渲染等,卸载到 GPU上执行,从而加速应用程序的运行速度。
(3)异构计算: 现代计算系统采用了异构计算的架构,将 CPU 和 GPU 结合起来,以发挥各自的优势。
接下来,我们来了解一下 CPU 与 GPU 设备生产厂商,具体可参考如下所示:
三、GPU 是如何工作的 ?
现代 GPU 通常采用大规模并行架构设计,包含数以千计的小型处理核心。每个处理核心都拥有自己的寄存器和共享内存块,用于存储数据和程序指令。GPU 本身还配备了一定容量的板载内存(称为“Device Memory”或显存),用于存储大量运算数据及中间结果。
通常而言,不同 GPU 的具体工作方式会有所不同,取决于其设计用途、制造商、芯片架构以及协调 GPU 运行的软件和编程框架。例如,英伟达公司开发的 CUDA(Compute Unified Device Architecture)并行计算平台,专门为开发人员提供了一套工具和 API,使他们能够充分利用 GPU 的并行计算能力,针对广泛的通用并行计算应用进行 GPU 加速。
根据与主机系统的集成方式不同,GPU可以分为独立显卡 GPU(离散 GPU)和集成 GPU(iGPU)两大类:
1. 离散 GPU
离散 GPU 是一种独立的专用芯片,主要用于图形渲染、科学计算、机器学习等密集型并行计算任务。离散 GPU 通常安装在插入主板的独立显卡上。除了用于图形渲染外,现代离散 GPU 也广泛应用于深度学习训练、科学模拟等领域,用作通用并行加速器。
2. 集成 GPU
相对比于离散 GPU,集成 GPU 则是将 GPU 核心与 CPU 集成在同一个芯片组(SoC)上的设计。最初的 iGPU 主要应用于普通桌面计算和低端游戏,如英特尔酷睿和赛扬系列处理器的集成显卡。近年来,随着移动设备的飞速发展,ARM 等公司也推出了将 CPU 和 GPU 高度集成到单芯片 SoC 中的产品,广泛应用于智能手机、平板电脑等移动设备。
除了物理 GPU 之外,虚拟 GPU(vGPU)也逐渐兴起。vGPU 是基于软件虚拟化技术实现的 GPU,可在云服务器实例上与其他虚拟 GPU 共享底层物理 GPU 资源。用户可灵活地调配和使用 vGPU 资源,而无需关注底层硬件的具体情况,极大简化了 GPU 加速计算的部署和管理。
无论是离散 GPU、集成 GPU 还是虚拟 GPU,三者都为现代计算系统提供了强大的并行计算加速能力,显著提升了图形渲染、科学计算、人工智能等领域的性能表现,推动了各个行业的技术创新和发展。
四、GPU 是 Video Card (显卡)吗 ?
GPU(图形处理单元)和显卡这两个名词虽然常常交替使用,但在实际的计算场景中,两者并不是完全等同的概念。二者之间存在着细微但重要的区别:
显卡(Video Card)也被称为“独立显卡”或“显卡板(Graphics Card)”,是一种可拆卸的扩展板,需要插入计算机主板上的专用插槽(如 PCI-E 插槽)才能使用。显卡本身是一个独立的硬件单元,包含了 GPU 芯片作为其核心组件,同时还集成了视频内存(VRAM)、视频输出接口(HDMI、DisplayPort 等)、辅助电源接口、散热模组等多个部件。
而 GPU(Graphics Processing Unit)则是指显卡上的图形处理芯片本身,是实现图形渲染和并行计算的关键硬件。GPU 芯片通常采用高度并行的多核心设计,能够同时执行海量的数据运算,以提供强大的图形渲染和通用计算能力。
除了集成在独立显卡之上,GPU 也可以直接内置在计算机主板芯片组中,或者与 CPU 集成在同一个芯片组(SoC)上,形成集成显卡(Integrated Graphics)的设计。这种设计常见于笔记本电脑、平板电脑和低功耗桌面系统中,以获得合理的图形性能和节能表现。
因此,总的来说,GPU 是实现图形渲染和通用并行计算的核心硬件,而显卡则是将 GPU 和其他必需部件集成在一起的扩展板形式。独立显卡通常拥有更强大的 GPU 和更多视频内存,能够提供卓越的图形性能和计算加速能力,适用于高端游戏、工作站、专业绘图等领域。而集成显卡则在成本、尺寸和功耗方面具有优势,更适合日常办公和媒体娱乐等基本需求。
从本质上来讲,两者在硬件架构和定位上存在差异,但都是现代计算系统中不可或缺的关键组成部分,共同推动着图形图像处理和并行计算技术的飞速发展。
五、为什么需要 GPU 以及应用场景有哪些 ?
GPU(图形处理单元)之所以被广泛需求和应用,主要是源于其独特的高度并行计算架构,能够显著提升许多数据密集型应用的计算性能。以下是需要 GPU 及其典型应用场景:
1. 专业可视化
GPU 不仅在娱乐领域发挥作用,还在专业应用中表现突出。例如,在 CAD(计算机辅助设计)绘图、视频编辑、产品演示与交互、医疗成像和地震成像中,GPU 为处理和渲染复杂的图形提供了强大的计算能力。这些应用程序通常需要处理大量数据和复杂的图像处理任务,GPU 的并行处理能力使其成为这些任务的理想选择。此外,随着 WebGL 等浏览器技术的发展,基于浏览器的应用程序现在也可以利用 GPU 的强大性能,提供高效的在线图形渲染和互动体验。
2. 机器学习领域
在机器学习(ML)领域,GPU 的作用日益显著。训练复杂的机器学习模型通常需要大量的计算能力,而 GPU 凭借其并行处理架构,可以显著加速这一过程。对于那些在本地硬件上训练模型的人来说,这可能需要数天甚至数周的时间,而借助云端 GPU 资源,模型训练可以在数小时内完成。这种高效的计算能力,使得 GPU 成为深度学习和神经网络训练的标准工具。
3. 区块链场景
在区块链技术中,GPU 同样扮演着关键角色。尤其是在使用工作量证明(Proof of Work, PoW)算法的加密货币中,GPU 通常是进行复杂哈希运算的首选硬件。虽然特定于应用的集成电路(ASIC)正在成为 GPU 的替代品,但 GPU 仍然是许多加密货币矿工的首选,特别是在需要更高灵活性的场合。尽管股权证明(Proof of Stake, PoS)等区块链算法正在崛起,并减少了对大量计算资源的需求,但工作量证明的使用仍然广泛存在于行业中。
4. 模拟技术
在高端模拟领域,GPU 的应用极为广泛。包括分子动力学、天气预报、天体物理学等领域的模拟应用,都是通过 GPU 来实现复杂计算的。GPU 凭借其强大的并行计算能力,能够快速处理和模拟大规模的物理系统。此外,在汽车和大型车辆的设计中,涉及流体动力学等复杂模拟的应用也依赖于 GPU 的强大计算能力,以进行精确的建模和仿真,帮助工程师优化设计并减少物理测试的需求。
当然,除了上述领域外,GPU 在其他的场景中应用也是蛮广泛的,尤其是随着人工智能技术的蓬勃发展,越来越多基于 AI 技术的业务场景都需要 GPU 为其赋能,加速业务落地。