作者 | Pure Storage
编译 | 岳扬
如今,人工智能领域的软硬件很多都是专门为人工智能及神经网络操作的优化而定制的。这其中就包括神经网络处理单元(NPU),大家通常会将这种硬件与图形处理器(GPU)进行对比,因为两者都能加快人工智能任务的处理速度。NPU 这种硬件已经越来越常见了,它们专门为高效完成AI/ML任务而设计。但它们之间究竟有何不同呢?
接下来,我们将简要探讨 NPU 和 GPU 的区别,并考察、分析每种处理器的优势和不足。
01 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),也应用于人脸识别、语音识别和图像处理等日常生活场景。
02 GPU 是什么?
GPU 是图形处理单元(Graphics Processing Unit)的缩写。最初是为电子游戏和多媒体应用程序中的图形渲染场景而设计开发的,但现在 GPU 的用途已经被大大扩展,被广泛应用于各种需要并行处理复杂计算的应用场景。
GPU 的独特优势在于能够快速高效地并行处理数千个小任务,非常适合处理需要大量并行计算的复杂任务,比如图形渲染(rendering graphics)、物理模拟(simulating physics),甚至训练神经网络(training neural networks)。
03 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 相匹敌。
04 NPU 与 GPU 的性能差异
将它们直接进行比较时,NPU 与 GPU 最大的性能差异体现在功耗和移动设备的电池续航时间上。由于 NPU 是专门为神经网络操作而设计的,因此 NPU 能够以与 GPU 相近的处理速度完成同样的计算任务,但是消耗的电量要少得多。
NPU 和 GPU 在处理神经网络任务时表现出的不同性能,主要是因为神经网络本身的特点和应用需求,而不是简单地归因于这两种硬件架构上的不同。NPU 在硬件架构上针对 AI/ML 计算任务进行了优化,因此在处理最复杂的计算任务(如深度学习模型的推理和训练)时超越 GPU。
NPU内置的专门用于矩阵乘法(matrix multiplications)和激活函数(activation functions)的硬件,使得在实时语言翻译、自动驾驶汽车