本文来自微信公众号“半导体行业观察”。
如今,人工智能的硬件和软件应用已经发展成为专为优化人工智能和神经网络操作而设计的。其中包括神经处理单元(NPU),它们在加速人工智能任务方面的能力通常与图形处理单元(GPU)相媲美。NPU是一种越来越常见的硬件,专为以最快的速度执行尖端人工智能/机器学习任务而设计。但它们有何不同?
让我们简要探索一下NPU和GPU,比较它们的差异,并检查各自的优点和缺点。
什么是NPU?
NPU代表神经处理单元。NPU是一种专用硬件,旨在优化与人工智能和神经网络相关的任务的性能。
这可能让NPU听起来像是属于研究实验室和军事基地的东西,但尽管NPU是一项相对较新的发明,但它却越来越普遍。很快,您就会开始在台式机和笔记本电脑中看到NPU,大多数现代智能手机都将NPU集成到其主CPU中,包括过去几年的iPhone、Google Pixel和三星Galaxy机型。
神经处理单元有助于支持(顾名思义)神经引擎和网络算法,它们用于自动驾驶和自然语言处理(NLP)等非常先进的环境,以及手机上的面部识别、语音识别和图像处理等常规应用。
什么是GPU?
GPU代表图形处理单元。GPU最初是为视频游戏和多媒体应用程序中的图形渲染而开发的,其用途已发生了重大变化,现在已用于许多需要并行处理来管理复杂计算的不同应用程序中。
GPU的独特优势在于它们能够快速高效地同时执行数千个小任务。这使得它们特别擅长处理需要同时进行许多计算的复杂任务,例如渲染图形、模拟物理,甚至训练神经网络。
NPU与GPU:差异
从架构上讲,NPU比GPU更适合并行处理。与GPU相比,NPU具有更多数量的小型处理单元。NPU还可以结合专门的内存层次结构和数据流优化,使处理深度学习工作负载特别高效。与NPU相比,GPU拥有更多功能更强大的核心。从历史上看,这些核心通过并行处理用于各种计算任务,但NPU专为神经网络算法而设计。
NPU特别擅长处理短小且重复的任务。NPU被整合到现代计算系统中,可以减轻GPU处理神经网络固有矩阵运算的负担,让GPU处理渲染任务或通用计算。
与GPU相比,NPU在依赖密集型深度学习计算的任务方面表现出色。NLP、语音识别和计算机视觉是NPU相对于GPU表现出色的几个例子。与NPU相比,GPU具有更多的通用架构,在处理大规模语言模型或边缘计算应用方面可能难以与NPU竞争。
NPU与GPU:性能
相比之下,NPU和GPU之间最大的性能差异在于效率和电池寿命。由于NPU是专为神经网络操作而设计的,因此它们在以相当的速度执行与GPU相同的过程时所需的功率要小得多。
这种比较更多的是针对神经网络的当前复杂性和应用,而不是两种硬件之间的架构差异。NPU在架构上针对AI/ML工作负载进行了优化,并且在处理深度学习推理和训练等最复杂的工作负载方面超越了GPU。
NPU中用于矩阵乘法和激活函数的专用硬件意味着它们在实时语言翻译、自动驾驶汽车中的图像识别和医疗应用中的图像分析等任务中比GPU具有更优异的性能和效率。
实施问题和存储需求
在企业级,NPU可以集成到现有的基础设施和数据处理管道中。NPU可以与数据中心内的CPU、GPU和其他加速器一起部署,以实现AI任务的最大计算能力。然而,当所有AI/ML处理元素都纳入企业数据中心运营时,可能会出现数据访问和存储的危险。
经过完全优化的NPU和GPU可以处理AI/ML工作负载,能够以极高的速度处理数据,而传统存储系统可能难以跟上,从而导致数据检索和处理中出现潜在瓶颈。
在应用中,NPU不会规定特定的存储空间——但是,以最高效率运行它们依赖于它们对大量数据集的极快访问。处理AI/ML工作负载的NPU通常需要大量数据来训练和推断准确的模型,以及极快地对数据进行排序、访问、更改和存储的能力。企业级解决方案包括闪存和整体管理的存储基础设施。
总而言之,NPU是专门为执行神经网络操作而设计和构建的,这使得它们特别有效地处理与AI/ML操作相关的小型重复任务。
从表面上看,GPU听起来很相似:设计用于同时执行小操作的硬件组件。然而,由于NPU针对矩阵乘法和激活函数等任务进行了优化,因此在神经工作负载方面具有明显优势。这使得NPU在处理深度学习计算方面优于GPU,尤其是在效率和速度方面。