最佳日常交易
最佳日常交易

关于Androidbob体育提现bob哪个彩靠谱权威的链接可能会使我们赢得佣金。学到更多。

Kirin 970的NPU是什么?- 加里解释说

华为的Kirin 970有一个新组件,称为神经处理单元NPU。听起来很喜欢,但是它是什么,它如何工作?
经过
2017年12月22日

神经网络(NN)和机器学习(ML)是本年度移动处理中最大的两个流行语。华为的Hisilicon基林970, 这图像处理单元(IPU)在Google Pixel 2和Apple的A11 Bionic中,所有这些都为NN/ML提供了专用的硬件解决方案。

由于华为,Google和Apple都在吹捧基于硬件的神经处理器或引擎,所以您可能会认为机器学习需要专用的硬件。不是。神经网络几乎可以在任何类型的处理器上运行,从微处理器到CPU,GPU和DSP。任何可以执行矩阵乘法的处理器都可以运行某种类型的神经网络。问题不是处理器是否可以利用NN和ML,而是可以采用多么速度和效率。

让我带您回到一个不起眼的台式电脑不包括浮点单元(FPU)的时间。Intel 386和486处理器有两种口味,具有FPU,没有FPU。浮点I基本上是指“实数”,包括理性数字(7,-2或42),分数(1/2、4/3或3/5)和所有非理性数字(PI或两个方形的平方根)。许多类型的计算需要实数。计算百分比,绘制圆,货币转换或3D图形,所有这些都需要浮点数。在当天,如果您拥有没有FPU的PC,则在软件中执行相关计算,但是它们比硬件FPU中执行的计算要慢得多。

问题不是处理器是否可以利用NN和ML,而是可以做到多快,以及有效的效率。

快进了30年,所有通用CPU都包含硬件浮点单元,甚至包括一些微处理器(例如一些皮层M4和M7内核)。现在,我们与NPU处于类似情况。您不需要NPU即可使用神经网络,甚至不需要有效地使用它们。但是,像华为这样的公司在实时处理方面需要NPU的需求令人信服。

训练和推理之间的差异

神经网络是机器学习中“教”计算机以区分事物的几种不同技术之一。“东西”可能是照片,一个口语,动物噪音,等等。神经网络是一组“神经元”(节点),该集合接收输入信号,然后根据输入的强度及其阈值进一步传播信号。

一个简单的示例是一个NN检测是否打开了几个灯之一。每盏灯的状态都发送到网络,结果为零(如果所有灯都关闭),或一个(如果打开一个或多个灯)。当然,没有神经网络,这是可能的,但它说明了一个非常简单的用例。这里的问题是NN如何“知道”何时输出零以及何时输出一个?没有规则或编程告诉NN我们要实现的逻辑结果。

使NN正确行为的方法是训练它。一组输入被馈入网络,以及预期的结果。然后对各种阈值进行稍微调整,以使所需的结果更有可能。对于“培训数据”中的所有输入,重复此步骤。一旦训练,即使以前没有看到输入,网络也应产生适当的输出。听起来很简单,但可能非常复杂,尤其是在语音或图像之类的复杂输入中。

一旦训练了网络,它基本上就是一组节点,连接和这些节点的阈值。在训练网络时,其状态是动态的。训练完成后,它将成为一个静态模型,然后可以在数百万个设备中实现并用于推理(即用于对以前看不见的输入的分类和识别)。

推理阶段比训练阶段更容易,这是使用NPU的地方。

快速有效的推断

一旦拥有训练有素的神经网络,将其用于分类和识别只是通过网络运行输入和使用输出的一种情况。“运行”部分是关于矩阵乘法和点产品操作。由于这些实际上只是数学,因此可以在CPU,GPU或DSP上运行。但是,华为所做的是设计一个可以加载静态神经网络模型并将其运行到输入的引擎。由于NPU是硬件,因此可以快速和有效地做到这一点。实际上,NPU可以实时从智能手机的相机中处理“实时”视频,根据任务的不同,每秒17至33帧。

推理阶段比训练阶段更容易,这是使用NPU的地方。

NPU

Kirin 970是一家电力公司。它具有8个CPU核心和12个GPU核心,以及用于媒体处理和连通性的所有其他正常铃铛和哨声。基林970总共有55亿晶体管。神经处理单元,包括其自己的SRAM,都隐藏在其中。但是它有多大?根据华为的说法,NPU占用了约1.5亿晶体管。这不到整个芯片的3%。

它的大小很重要,原因有两个。首先,它不会大大增加基林SOC的整体规模(和成本)。显然,它具有与之相关的成本,但没有CPU或GPU的水平。这意味着向SOC添加NPU不仅对于旗舰店的人,而且对于中端手机是可能的。在未来5年内,它可能会对SOC设计产生深远的影响。

其次,它是电力效率的。这不是巨大的饥饿处理核心,它会杀死电池寿命。相反,它是一种整洁的硬件解决方案,可以通过将推理处理从CPU移开并进入专用电路来节省功率。

NPU很小的原因之一是因为它仅执行推理部分,而不是培训。根据华为的说法,在培训新的NN时,您需要使用GPU。

包起来

如果华为可以让第三方应用程序开发人员使用其NPU,那么可能性是无限的。想象一下使用图像,声音和语音识别的应用程序,所有在本地处理(没有互联网连接或“云”)以增强和增强我们的应用程序。想想一个旅游功能,该功能直接从相机应用程序中指出当地地标,或者可以识别您的食物并提供有关卡路里计数或警告您过敏的应用程序。

您如何看待,NPU最终会像浮点单元成为CPU的标准一样,最终成为SOC的标准?在下面的评论中让我知道。