TA的每日心情 | 擦汗 6 天前 |
---|
签到天数: 111 天 [LV.6]常住居民II
三级逆天
- 积分
- 81528
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
[paragraph]
神经网络和机器学习是今年移动处理器方面两个最重要的流行词。华为海思麒麟970、谷歌Pixel 2手机的成像处理单元和苹果A11仿生,都配置有专门的神经网络/机器学习硬件解决方案。
由于华为、谷歌和苹果都在宣扬基于硬件的神经处理器或引擎,外界会认为机器学习要求专门的硬件,实际上并非如此。神经网络能运行在任何类型的处理器上,例如微处理器、CPU(中央处理器)、GPU(图形处理器)和数字信号处理器。能运行矩阵乘法应用的处理器,就能运行某种类型的神经网络。问题不是处理器能否运行神经网络和机器学习,而是它们运行的速度和效率。
我们来回忆一下台式机处理器没有集成浮点单元的时代。英特尔386和486CPU均有两种版本,一个版本集成有浮点单元,一个版本没有。这里的浮点数指的是“实数”,包括有理数、分数和所有无理数。许多类型的计算要求使用实数。计算比例、画圆、货币转换或处理3D图形,这些任务都会用到实数。当时,如果PCCPU没有集成浮点单元,相关的计算就需要由软件来完成。但与硬件浮点单元相比,软件执行实数运算的速度要慢得多。
30年后的今天,所有通用CPU都集成有硬件浮点单元,甚至一些微处理器(例如Cortex-M4和M7内核)。在神经处理单元方面,我们面临相似的情况。不需要神经处理单元就能运行神经网络,甚至能高效地运行神经网络。但华为等公司提出,实时运行人工智能应用需要神经处理单元。
训练和推理之间的差别
神经网络是机器学习中用来“教授”计算机区别不同事务的数种不同技术之一。这里的“事物”可以是照片、语音词汇、动物的声音等。神经网络由一系列“神经元”组成,“神经元”能接收输入信号,然后根据输入信号强度及其阈值在网络中进一步传递信号。
一个简单的例子是判断数个灯中的一个是否开启的神经网络。每个灯的状态被输入到神经网络中,其结果要么是0(所有灯都没有开启)或1(至少有1个灯处于开启状态)。当然,没有神经网络这一问题也能得到解决,但这一问题表明了一个非常简单的使用场景。这里的问题是,神经网络如何“知道”何时输出为0、何时输出为1?没有规则或程序告诉神经网络我们尝试实现的逻辑结果。
Android Authority表示,使神经网络正确运转的途径是对它进行训练。一系列输入和预期的结果被注入网络,然后对多个阈值进行略微调整,提高出现期望结果的可能性。针对所有输入重复这一过程。一旦训练完成,即使输入是以前没有出现过的,网络也会生成恰当的输出。这听起来简单,但实际上却可能非常复杂,尤其是对于语音或图像等复杂的输入。
一旦训练完成,网络基本上就由一系列节点、连接和这些节点的阈值组成。在网络训练期间,其状态是动态的。一旦训练完成,其状态就变成静态的了,可以部署在数以百万计的设备中,并用来进行推理。
推理阶段比训练阶段容易,这也是神经处理单元的用武之地。
快速和高效地推理
一旦完成对神经网络的训练,使用它进行分类和识别就只是通过网络运行输入并使用输出。“运行”部分就是矩阵乘法和点积运算。由于这些只是数学运算,可以在CPU、GPU或数字信号处理器上运行。华为的工作就是设计一个能加载静态神经网络模型的引擎,并利用它对输入进行运算。由于神经处理单元属于硬件,因此它能以高速、低能耗方式完成处理任务。事实上,神经处理单元能实时地处理智能手机相机拍摄的“直播”视频。
神经处理单元
麒麟970具有强大的处理能力,它集成有8个CPU内核和12个GPU内核,以及用于处理其他媒体和连接技术的电路。麒麟970集成有55亿个晶体管。神经处理单元(包括其SRAM)隐身其中,它有多大呢?据华为称,神经处理单元有约1.5亿个晶体管组成,不足整个芯片中晶体管数量的3%。
两个原因使得其大小非常重要。首先,它没有大幅增加麒麟芯片整体尺寸(和成本),很显然,它也是会带来成本的,但与CPU和GPU不是一个级别,这意味着不仅旗舰手机可以配置集成有神经处理单元的片上系统,中档手机也行。未来5年,它可能会对片上系统的设计产生很大影响。
其次,它节能。神经处理单元并非是电老虎,不会影响到电池续航时间。把推理过程由CPU转移到专用电路,是一种漂亮的硬件解决方案,有助于降低能耗。
Android Authority称,神经处理单元尺寸小的原因之一是,它只完成推理部分,不完成训练部分。据华为称,在对新神经网络进行训练时需要用到GPU。
结论
如果华为向第三方开发者开放其神经处理单元,会带来无穷的可能性。想象一下,使用图像、声音和语音识别的应用,相关处理工作都能在本地完成,再也不需要互联网连接和云。一项旅游功能可以直接在相机应用中识别出本地的地标性建筑,应用可以识别出食物,向用户提供食物包含的卡路里信息,或提醒用户注意过敏。
也许有一天,就像浮点单元成为CPU的标配那样,神经处理单元也会成为片上系统标配。 |
|