从文生文到文生图,再到文生视频……如今,生成式AI已经成为提高企业生产效率,加速业务创新的核心技术,而这项技术的背后,离不开CPU、GPU、NPU等计算芯片的强力支撑。
在《解读AI通用计算芯片:GPU训练CPU推理,用最优的成本降低AI算力支出》这篇文章中,笔者简单介绍了CPU与GPU芯片的不同之处。除了这两种通用芯片之外,NPU与AI计算过程中扮演着重要的角色。那么,作为同样拥有大量计算单元的并行计算芯片,GPU与NPU又有何不同之处呢?本文将简单介绍。
什么是 GPU?
GPU(Graphics Processing Unit,图形处理器)是一种专门设计用于处理图形和图像计算任务的计算硬件,用于加速图像/视频处理和渲染等图形任务,例如在电脑游戏中,就需要高性能的GPU进行实时的图像渲染。
最初,GPU是为提高计算机图形的渲染速度而开发的,但随着技术的发展,它们已经扩展到更广泛的计算领域,尤其是在需要大规模并行处理能力的场景中。例如,在生成式AI计算过程中,GPU常用于训练大型神经网络。目前很多科技公司使用 Nvidia 的企业级 H-100 GPU 来训练他们的大型语言模型 (LLM)。
什么是NPU?
NPU是一种用于加速神经网络操作的专用处理器,具有并行处理能力(能够同时执行多个操作),并且通过硬件架构优化,它们可以有效地执行推理和训练等 AI 和 ML 任务,包括AI和机器学习(ML)计算任务,例如面部识别,甚至训练 AI 系统等。
通过针对不同任务需求的特定硬件优化,NPU拥有更高的性能,同时由于能耗较低,能够实现更高的能效比,这也是NPU相较于CPU、GPU等通用处理器最大的优势之一。
GPU的主要特点及其优势
1)强大的并行计算性能。GPU拥有成千上万个浮点运算单元,这些计算核心可以同时处理多个计算任务,这使得GPU在处理并行计算任务时比传统的CPU(中央处理器)更加高效,更加适合进行大规模并行计算。例如,在深度学习和其他机器学习算法中,GPU发挥着关键作用,因为这些算法需要处理大量的矩阵运算,GPU的并行处理能力可以显著加速这些运算。
2)通用性。作为通用计算处理器,GPU不仅能够用于图形渲染,而且它所拥有的并行处理能力也更适用于广泛的计算密集型任务。这也是目前AI训练过程中广泛采用GPU的根本原因之一。
除此之外,通过技术如CUDA(Compute Unified Device Architecture,由NVIDIA开发)和OpenCL(Open Computing Language),GPU可以用于执行通用计算任务,即所谓的GPGPU(General-Purpose computing on Graphics Processing Units)。
3)灵活性:GPU可以执行各种算法和任务,不仅限于神经网络,还包括物理模拟、科学计算等。以英伟达GPU为例,自2007年以来,英伟达(NVIDIA) GPU软件已经涵盖了人工智能的各个方面,从高级功能到高级应用。CUDA编程语言和cuDNN-X深度学习库为开发人员构建软件提供了基础,例如NVIDIA NeMo。它使用户能够创建、配置和推理自己的生成式人工智能模型。其中许多元素都可作为开源软件提供,这对软件开发人员来说是必不可少的。
4)扩展性:人工智能模型的复杂性以每年10倍的速度增长。前沿大型语言模型(LLM)GPT-4包含超过一万亿个参数,其数学密度令人瞩目。GPU系统通过有效地协作巧妙地应对了这一挑战。它们轻松扩展到超级计算级别,利用快速的NVLink互连和强大的Quantum InfiniBand网络。
GPU的这些特性使它们成为处理需要大量计算资源任务的理想选择,从而在多个领域内推动了技术的快速发展。
NPU的主要特点及其优势
1)专用性:NPU是专门为执行神经网络和深度学习算法而设计的处理器。
2)能效比:由于NPU的架构优化了并行运算和数据流,因此通常在处理神经网络任务时具有更高的能效比。
3)计算效率:NPU在进行矩阵运算和卷积运算时表现出高效率,这些运算是深度学习中的核心操作。
GPU与NPU的主要应用领域的差异
GPU和NPU的性能都是根据处理器每秒可以执行多少万亿次操作来衡量,通常用每秒万亿次(或万亿次)操作数(TOPS)表示。例如,高通骁龙 X Elite 芯片拥有高达45 TOPS(仅来自 NPU),而NVIDIA GeForce RTX 4090 GPU拥有超过1300 TOPS。
此外,GPU可以是独立形态存在的(独立于CPU)或集成的(内置于CPU中),目前大部分NPU已集成到 CPU 中。例如,Apple 的A系列和M系列处理器在CPU中内置了NPU(所谓的 Apple 神经引擎)。当然,仍旧有一些独立的NPU产品存在,比如Raspberry Pi。
考虑到两者之间存在着较大的性能差异,因此应用场景也有着较大的不同之处:
GPU:
机器学习训练:GPU在训练大型神经网络模型时非常有用,尤其是在需要大量计算资源的情况下。
科学计算和模拟:用于复杂的物理模拟和科学计算任务。
图形渲染:用于视频游戏、电影制作和其他图形密集型应用。
NPU:
深度学习推理(Inference):在生产环境中快速执行预训练模型的预测。
深度学习训练(Training):在某些特定的情况下,例如场景对于能效比要求极高(边缘计算场景下),NPU也可以用于模型训练。
语音和图像识别:处理与语音和图像相关的AI任务,例如人脸识别等应用场景。
总结:
GPU由于拥有更高的性能,因此在需要广泛并行处理能力的任务中表现出色;NPU在执行深度学习和AI相关任务时更为高效,且具备更好的能耗比。因此,NPU和GPU各有优势,它们在处理不同类型的任务时表现出不同的性能特点。随着人工智能和机器学习技术的不断发展,这两种处理器都在不断地演进和改进,以满足日益增长的计算需求。