GPU 计算是使用图形处理单元 (GPU) 来执行曾经由中央处理器 (CPU) 处理的高度并行的独立计算。
GPU计算的历史
传统上,GPU 一直用于加速计算机图形的内存密集型计算,例如图像渲染和视频解码。这些问题很容易并行化。由于众多的核心和优越的内存带宽,GPU 似乎是图形渲染不可或缺的一部分。
虽然 GPU 驱动的并行计算对于图形渲染至关重要,但它似乎也适用于某些科学计算工作。因此,GPU 计算在 2006 年开始更加快速地发展,变得适用于广泛的通用计算任务。
改进现有GPU指令集,允许更多指令集在单个时钟周期内执行,使GPU计算性能稳步增长。今天,随着摩尔定律放缓,甚至有人说它已经结束,GPU 计算正在保持它的步伐。
CPU 与 GPU:有何区别?
CPU 是面向延迟的,可以快速处理复杂的线性任务,而 GPU 是面向吞吐量的,可以实现巨大的并行化。从架构上讲,CPU 由几个具有大量高速缓存的内核组成,这些内核可以使用顺序串行处理同时处理几个软件线程。相比之下,GPU 由数千个可以同时管理多个线程的较小内核组成。即使 CPU 可以处理相当多的任务,它也不会像 GPU 那样快。GPU 将复杂的问题分解为数千个独立的任务并同时处理它们。
GPU 计算的优势和劣势
GPU 是一种专门的协处理器,它在某些任务上表现出色,而在其他任务上表现不佳。它与 CPU 协同工作,以增加数据吞吐量和应用程序中的并发计算数量。那么 GPU 计算到底有多出色呢?
算术强度
GPU 可以很好地应对高运算强度。如果算法与内存操作的比率至少为 10:1,则该算法是 GPU 加速的良好候选者。如果是这种情况,您的算法可以受益于 GPU 的基本线性代数子例程 (BLAS) 和众多算术逻辑单元 (ALU)。
高度并行
并行计算是一种同时进行许多独立计算的计算类型。大问题通常可以分成较小的部分,然后同时解决。GPU 计算就是为这样工作而设计的。例如,如果可以对数据进行矢量化并调整算法以同时处理一组值,则可以轻松获得 GPU 计算的好处。
足够的 GPU 显存
理想情况下,您的数据批次必须适合 GPU 的本机内存,以便进行无缝处理。虽然有同时使用多个 GPU 或简化系统内存中的数据的变通方法,但有限的 PCIe 带宽可能成为此类场景中的主要性能瓶颈。
足够的存储带宽
在 GPU 计算中,您通常处理大量数据,其中存储带宽至关重要。如今,基于 GPU 的科学计算的瓶颈不再是每秒浮点数 (FLOPS),而是每秒 I/O 操作数 (IOPS)。根据经验,评估系统的全局瓶颈总是一个好主意。如果您发现您的 GPU 加速收益将被存储吞吐量限制所抵消,请首先优化您的存储解决方案。
GPU计算应用
GPU 计算正用于众多现实世界的应用程序。如果没有 GPU 计算,我们今天认为理所当然的许多著名科学和工程领域不会进步得如此之快。
深度学习
深度学习是机器学习的一个子集。它的实现基于人工神经网络。从本质上讲,它模仿大脑,让神经元层并行工作。由于数据表示为一组向量,因此深度学习非常适合 GPU 计算。在配备 GPU 加速器的专用服务器上训练卷积神经网络时,您可以轻松体验高达4 倍的性能提升。最重要的是,每个主要的深度学习框架(如 TensorFlow 和 PyTorch)都已经允许您使用开箱即用的 GPU 计算,而无需更改代码。
药物设计
新药的成功发现在各个方面都很难。在 Covid-19 大流行期间,我们都意识到了这一点。Eroom 定律指出,发现一种新药的成本大约每九年翻一番。现代 GPU 计算旨在改变 Eroom 定律的轨迹。Nvidia 目前正在建造Cambridge-1——英国最强大的超级计算机——致力于医疗保健和药物设计方面的人工智能研究。
地震成像
地震成像用于为石油和天然气行业提供地球地下结构的知识并检测油藏。地震数据处理中使用的算法发展迅速,因此对额外计算能力的需求巨大。例如,使用 GPU 计算时,逆时偏移方法可以加速高达 14 倍。
汽车设计
瞬态和湍流问题的流场计算是高度计算密集型和耗时的。传统技术通常会在基础物理学上妥协并且效率不高。计算流体流动的新范例依赖于 GPU 计算,它可以帮助实现比单个 CPU 的显着加速,甚至高达 100 倍。
天体物理学
GPU 极大地改变了天文学中高性能计算的格局。以 N 体模拟为例,它在数值上近似于一个物体系统的演化,其中每个物体不断地与其他物体相互作用。通过使用 GPU 计算而不是使用高度调优的串行 CPU 实现,您可以将全对 N 体算法加速多达 25 倍。
期权定价
期权定价理论的目标是为交易者提供期权的公允价值,然后将其纳入他们的交易策略。此类模拟中经常使用某种类型的蒙特卡罗算法。与仅使用 CPU 的方法相比,GPU 计算可以帮助您实现单位成本提高 27 倍的性能。
天气预报
近几十年来,天气预报极大地受益于单纯计算能力的指数增长,但这种搭便车即将结束。如今,天气预报由基于广泛 GPU 计算的细粒度并行性驱动。仅这种方法就可以确保天气预报模型速度提高 20 倍。
云中的 GPU 计算
尽管 GPU 计算曾经主要与图形渲染相关联,但它已发展成为许多不同科学和工程领域中高性能计算的主要驱动力。大多数 GPU 计算工作现在都在云端或使用内部 GPU 计算集群完成。在 Cherry Servers,我们提供带有高端 Nvidia GPU 加速器的专用 GPU 服务器。我们的基础设施服务可以按需使用,这使得 GPU 计算变得简单且经济高效。云供应商已使 GPU 计算大众化,使其可供全球的中小型企业使用。如果黄氏定律持续下去,GPU 的性能将每两年翻一番以上,创新将不断萌芽。