NPU与GPU有何不同?深度解析AI硬件之争
NPU与GPU有何不同?深度解析AI硬件之争
随着2024年被业界誉为“AI PC元年”,各大笔记本电脑厂商纷纷推出搭载NPU的全新AI PC,而在介绍产品性能时,“NPU”一词频频被提及。但NPU和我们所熟知的GPU之间的区别究竟是什么?本文将为您详细解析NPU与GPU的区别,并分析它们各自的优势和不足。
NPU是什么?
NPU是神经网络处理单元(Neural Processing Unit)的缩写,这是一种用于提升人工智能和神经网络相关任务性能的专用硬件组件。
乍听之下,NPUs可能会被误认为是仅限于科研实验室或军事基地的高科技产品,但实际上,虽然NPUs是一项较新的技术,但它们正变得越来越常见。不久之后,我们就能在台式机和笔记本电脑中见到NPUs的身影。目前,大多数现代智能手机,如近几年的iPhone、Google Pixel和三星Galaxy,都已经在其主CPU中集成了NPUs。
这张幻灯片来自2013年高通的SoC(System-on-a-Chip)展示会,而“NPU”这一术语直到十年后才开始受到广泛关注。
NPU支持神经网络引擎和网络算法,这些算法不仅可用于已高度成熟的应用场景,比如自动驾驶(autonomous driving)和自然语言处理(NLP),也应用于人脸识别、语音识别和图像处理等日常生活场景。
GPU是什么?
GPU是图形处理单元(Graphics Processing Unit)的缩写。最初是为电子游戏和多媒体应用程序中的图形渲染场景而设计开发的,但现在GPU的用途已经被大大扩展,被广泛应用于各种需要并行处理复杂计算的应用场景。
GPU的独特优势在于能够快速高效地并行处理数千个小任务,非常适合处理需要大量并行计算的复杂任务,比如图形渲染(rendering graphics)、物理模拟(simulating physics),甚至训练神经网络(training neural networks)。
NPU与GPU的架构差异
从硬件架构上看,NPU比GPU更适合进行并行计算。NPU拥有更多的小型处理单元(smaller processing units),与GPU相比,还配备有专门的内存体系结构(memory hierarchies)和数据流优化策略(data flow optimizations),使得它们对深度学习任务的处理特别高效。相比之下,GPU具有更多的多功能内核(versatile cores),这些内核通常可并行处理多种计算任务,但NPU对神经网络算法进行了针对性的优化设计。
NPU特别擅长处理短期且重复性的任务。集成到现代计算机系统中后,NPU可以减轻GPU处理神经网络时固有矩阵运算的负担,使GPU能够专注于图形渲染或通用计算任务。
与GPU相比,NPU在密集型深度学习计算任务中表现更佳。自然语言处理(NLP)、语音识别和计算机视觉等应用场景均是NPU相对于GPU表现更佳的领域。GPU的架构更为通用,但在处理大语言模型或边缘计算应用时可能难以与NPU相匹敌。
NPU与GPU的性能差异
将它们直接进行比较时,NPU与GPU最大的性能差异体现在功耗和移动设备的电池续航时间上。由于NPU是专门为神经网络操作而设计的,因此NPU能够以与GPU相近的处理速度完成同样的计算任务,但是消耗的电量要少得多。
NPU和GPU在处理神经网络任务时表现出的不同性能,主要是因为神经网络本身的特点和应用需求,而不是简单地归因于这两种硬件架构上的不同。NPU在硬件架构上针对AI/ML计算任务进行了优化,因此在处理最复杂的计算任务(如深度学习模型的推理和训练)时超越GPU。
NPU内置的专门用于矩阵乘法(matrix multiplications)和激活函数(activation functions)的硬件,使得在实时语言翻译、自动驾驶汽车图像识别以及医疗图像分析等任务中,NPU在性能和效率上均优于GPU。
如何集成?数据存储方面的需求如何?
在企业层面,NPU可以融入现有的基础设施和数据处理流程。NPU可与CPU、GPU及其他计算加速硬件共同部署于数据中心,共同为AI任务提供强大的算力。然而,当所有AI/ML计算任务都被整合到企业数据中心中时,可能会出现数据访问和数据存储等方面的问题。
经过全面优化的NPU和GPU在处理AI/ML计算任务时可以以极快的速度处理数据,以至于传统的存储系统可能难以跟上,从而导致数据检索和处理出现潜在瓶颈(potential bottlenecks)。
在实际应用中,NPU并不需要特定的数据存储基础设施——然而,要以峰值效率运行NPU,则必须让它们能够极其快速地访问庞大的数据集。NPU在执行AI/ML任务时,需要大量数据来训练模型,并对新数据进行准确预测,同时要求快速的数据排序、分类、访问、修改和存储能力。企业级的解决方案通常是采用闪存存储(flash storage)和全托管的存储基础设施(holistically managed storage infrastructures)。
简而言之,NPU是专门为执行神经网络操作而设计和构建的,因此在处理与AI/ML操作相关的小型重复性任务时特别有效。
乍一看,GPU与NPU很相似:都是为同时执行小型操作而设计的硬件组件。然而,由于NPU对矩阵乘法和激活函数这样的任务进行了针对性的优化,因此在神经网络的计算任务方面具有明显优势。这使得NPU在处理深度学习计算任务方面优于GPU,尤其是在功耗和处理速度方面。