作者邱陆陆

原Movidius CEO Remi El-Ouazzane:深度了解终端视觉处理器VPU

Movidius Myriad VPU 是一块小到没地方写「Intel Inside」的芯片。而生产它的 Movidius 这家公司,在英特尔的「AI 全家桶」里也一直不是最抢眼的那个。它没有 Altera 和 Mobileye 的天价收购光环,也不像 Nervana 时常作为母公司的 AI「门面担当」出现在公众视野里。但是,这家创立于爱尔兰的公司拥有出货量在百万级别的芯片产品:视觉处理器 VPU,也是靠着这唯一一款产品,Movidius 承担起了英特尔「从云到端」的 AI 解决方案之中极为重要的一环:高效、低能耗的终端运算。

五月,Intel 在旧金山举办了第一届 AI 开发者大会 AIDevCon,Movidius 也在现场秀了秀肌肉。在现场对原 Movidius CEO,现英特尔新科技事业部副总裁 Remi El-Ouazzane 进行了专访、同时英特尔 Movidius 事业组市场负责人 Jack Dashwood 就现场展示的处理异构的 AI 及视觉工作流的 VPU 为我们进行了介绍。以下为采访与现场展示实录: 


机器之心:VPU 由哪些核心模块组成?

Remi:VPU 是视觉处理单元(Vision Processing Unit)的缩写,是我们发明的一种从用于视觉场景中提取语义信息的硬件。VPU 中有三个组成部分,分别是:

  • 可编程的超长指令字数字信号处理器(VLIW DSP)

  • 固定功能的计算机视觉加速器,以及

  • 深度学习加速器。


而 DSP、CV 加速器、DL 加速器这三个部分共享一个通用存储结构,其具有多端口、高吞吐量的特性。

这样的设计旨在优化运行在终端的计算机视觉以及机器学习应用的数据流,从而能够以极低的能耗达到相当高的性能水平。最新版本的 VPU 型号是 Myriad X,它的效率高达每秒钟 1 万亿次运算(1TOPS)。


机器之心:VPU 主要对何种数据进行处理?能够完成哪些任务?

Remi:VPU 是为视觉任务高度定制化的芯片。其处理的输入主要有两种类型,分别是来自传感器的实时图像数据,和预先录制好的视频或图像数据。只要是与这两类数据相关的任务,VPU 都有涉猎。从成像、编码等信号处理任务,到图像的形变与形变矫正、深度信息处理(stereo depth)等经典计算机视觉任务,再到提取语义的深度学习任务,均有涉及。因此,VPU 是一个专门用于图像任务的,处理信号处理计算机视觉深度学习交差点的异构复杂结构。


机器之心:VPU 的设计逻辑是什么?

Remi:VPU 中的几乎所有架构设计都是为了同一个目标:优化数据流。这是因为在当前的终端计算,尤其是深度学习计算中,用于数据传输的能量消耗是用于计算的 10 倍乃至更多。

如今是一个全新的体系架构时代,如今的工作任务如果部署在通用架构上会需要巨量的内存,因此这意味着当市场体量足够大吼,专用的芯片开始有发展空间。

要使性能最大化并将功耗降至最低,唯一的方法就是最大程度增加数据的本地性,或者说最大限度地减少外部内存访问次数。任何需要离开芯片进入内存的操作相比于片上操作都要支付成倍的能量成本。

如果你去看 Intel Nervana 设计的永远训练的神经网络处理器(NNP),你会发现逻辑完全相同,也是最大化片上数据的利用,只不过它们需要处理的数据集规模更大。


机器之心:具体如何实现这一目标呢?

Remi:举个例子,我们在设深度学习加速器的时候,详细地研究了非常多种不同的神经网络,ResNet50、SSD、Inception 的各个版本等等。我们尝试去理解,当我们部署这些神经网络时,如何以最大化数据本地性为原则对其进行拆分。

我们使用非常多技术来做到这一点:例如是否可以优化网络的位分辨率(是 FP32、INT16 还是 INT8),是否可以对网络进行剪枝(pruning)。是否可以利用其稀疏特性,来减少 0 的传递。


机器之心:有人说,当下的深度学习的模型结构仍处于剧烈变化时期,很可能现在常用的计算类型、优化方式两年后就不适用了,因此对于设计特定结构的 ASIC 来说,为时尚早。Movidius 如何避免这一问题呢?

Remi: 首先,对于从数据中心到终端设备的各种应用来说,越靠近设备端,对可编程性的需求就越弱。这是因为设备端的操作需要高度优化而数据中心端的任务则有商榷余地和其他优化方法。

如今,我们的很多部署都紧靠 Xeon(英特尔的服务器系列 Xeon),一台或多态 VPU 紧靠一台 Xeon 设备。这就是我们的「保险策略」:一旦出现了需要可编程性的任务,就利用 Xeon 实现。

同时,VPU 本身也具有一定的可编码性:其上的 DSP 部分是完全可编码的,可以用于完成各类任务。例如,在 Myriad 2(Myriad X 的上一代芯片)上,并没有一个专门加速神经网络的部分,所有的神经网络计算就是在 dsp 部分加速的。因此这是我们预防模型大规模变动的第二重「保险」。


机器之心:VPU 主要被用于哪些市场?

Remi:安全监控(Security Surveillance)是体量最大,也是增长最快的一个市场,安全监控占据了公司超过 50% 的业务。VPU 被用于安防相机以及联网摄像头中,也被用于终端服务器中。这部分业务的数量众多也是因为安全监控市场本身就是一个体量极为庞大的市场,我认为今天的 AI 领域有三个巨大的市场,分别是安全监控、自动驾驶和移动设备,其他市场相比之下都要小得多。

其次是智能零售。智能零售中也用到了大量的终端服务器:在零售店中,你可以部署多台摄像机,其中一些具有一定的计算能力,另一些只是单纯地记录并传输影像,但是所有的摄像机都与部署在店内的服务器相连,服务器能够利用多种数据进行快速的动态分析,比如顾客的年龄分布,客流情况、移动模式等等。终端服务器不同于部署在数据中心的服务器,大多是针对特定的事件和任务,例如视频分类和视频评分,进行定制的,因此效率更高而能耗更小。

工业也是一个有趣的市场,VPU 越来越多地被用于工业中的机器自动化。它可以在生产线的传送带上进行缺陷检测,也可以测量包裹尺寸以进行卡车装箱。

以上是 Movidius 的业务中占比最大的三个市场。


机器之心:除此之外,您还对哪些市场有兴趣?哪些方向代表了 VPU 五年后的愿景呢?

Remi:从市场的角度来讲,我相信 VPU 会增加非常多新的应用场景,例如医疗健康和机器人

我相信在专业医疗领域会爆发一场革命,而 Movidius 也会参与其中,例如,我们正在于一家便携式超声设备公司合作,降低超声波仪器的成本。但是同时,由于并不是所有医生都具有超声波影像阅读能力,我们也需要机器学习来帮助医生使用其检查结果。除此之外,机器人领域也会有很多变化。很多机器人公司漫长的研发周期都已接近尾声,在未来五年内,除了之前提到的工业机器人之外,消费机器人也会有更多的表现。

从技术的角度来讲,本地训练是最让我兴奋的一环。强化学习等技术正在逐渐容许设备在本地进行调整,这会对终端算力提出更大的要求。


机器之心:除了芯片和针对学界的神经计算棒(NCS)之外,Movidius 还有_其他产品线吗?

Remi:我们还有内含 Myriad 2 或 Myriad X 的开发者工具包。它是一块包含 VPU 在内的开发板,包含摄像头,各种输入输出接口。客户可以利用开发板进行研发和测试,然后在研发完成后,再接入自己的工具包、传感器等。不过开发板并不直接进行「零售」,我们直接向需要开发 VPU 相关设备的公司销售这一产品。


机器之心:能否介绍一下近期公开的 OpenVino 框架以及进行了很大改进的 ngraph 框架?

Remi:OpenVino 是一个针对图像相关应用的部署的软件框架。它进行两种操作:一,针对不同的英特尔计算硬件优化模型;二,将模型编译到目标芯片上。举个例子,如果我用 TensorFlow 在 PC 上训练了我的识别模型,然后要分别部署到英特尔的 CPU、FPGA 和 VPU 上。在 OpenVino 的帮助下,我不用手工调整模型以适应每一种硬件,OpenVino 会自动实现这个过程。

但 OpenVino 不参与训练周期,训练仍然是 ngraph 的领域。ngraph 主要旨在让开发人员可以自由地利用任何硬件训练自己的神经网络并进行推理,从数据中心到终端算力,训练可以发生在任何地方。

另外,ngraph 是 100% 以深度学习为中心的框架,而 OpenVino 则关注视觉这个垂直领域,它关注很多属于视觉领域但并非深度学习的过程,例如成像。

在展台区,Movidius 展示了如何将四项不同的 AI 与视觉任务流畅地部署在一块 Movidius Myriad X VPU 上。据 Jack Dashwood 介绍,四个任务分别是来自普通摄像头的实时数字成像(ISP),来自两个最高可达 180Hz 的 720p 摄像头的深度视觉(stereo depth)加速,基于经典视觉模型的特征跟踪(feature tracking)和基于深度学习的目标检测。

而同时、多任务是 VPU 最重要的一项能力。例如,VPU 在大疆 Spark 中承担了大部分的成像任务和视觉任务:包括从专业级别的 CMOS 传感器和航拍镜头中获取信号并生成高质量的图像输出等图像处理任务,以及人脸识别、手势识别、对象跟踪与检测、发现障碍时的警告与避障等计算机视觉任务。在大疆与子公司睿炽联合开发的玩具无人机 Tello 内,VPU 更是唯一的计算芯片。 

图:左为大疆 Spark,右为睿炽 Tello

产业英特尔硬件微处理器物联网计算机视觉
1
相关数据
神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

计算机视觉技术
Computer Vision

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

无人机技术
Drones

无人机(Uncrewed vehicle、Unmanned vehicle、Drone)或称无人载具是一种无搭载人员的载具。通常使用遥控、导引或自动驾驶来控制。可在科学研究、军事、休闲娱乐用途上使用。

人脸识别技术
Facial recognition

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。

工业机器人技术
Industrial robot

工业机器人是面向工业加工制造的可自动控制,多用途,需有三轴及以上可编程的固定或可移动机械手。其系统中包括带有执行机构的机械手以及示教控制器。 它可以依靠自身控制能力来执行预设的轨迹及动作。典型应用包括焊接,刷漆,组装,采集和放置等工作。工业机器人完成工作具有高效性,持久性和准确性。目前常用的工业机器人包括关节机器人,SCARA机器人,并联机器人和直角坐标机器人等。

图像处理技术
Image processing

图像处理是指对图像进行分析、加工、和处理,使其满足视觉、心理或其他要求的技术。 图像处理是信号处理在图像领域上的一个应用。 目前大多数的图像均是以数字形式存储,因而图像处理很多情况下指数字图像处理。

逻辑技术
Logic

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

机器学习技术
Machine Learning

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

自动驾驶技术
self-driving

从 20 世纪 80 年代首次成功演示以来(Dickmanns & Mysliwetz (1992); Dickmanns & Graefe (1988); Thorpe et al. (1988)),自动驾驶汽车领域已经取得了巨大进展。尽管有了这些进展,但在任意复杂环境中实现完全自动驾驶导航仍被认为还需要数十年的发展。原因有两个:首先,在复杂的动态环境中运行的自动驾驶系统需要人工智能归纳不可预测的情境,从而进行实时推论。第二,信息性决策需要准确的感知,目前大部分已有的计算机视觉系统有一定的错误率,这是自动驾驶导航所无法接受的。

信号处理技术
Signal processing

信号处理涉及到信号的分析、合成和修改。信号被宽泛地定义为传递“关于某种现象的行为或属性的信息(如声音、图像和生物测量)”的函数。例如,信号处理技术用于提高信号传输的保真度、存储效率和主观质量,并在测量信号中强调或检测感兴趣的组件。我们熟悉的语音、图像都可以看做是一种信号形式。因此,对于语音、图像的增强、降噪、识别等等操作本质上都是信号处理。

剪枝技术
Pruning

剪枝顾名思义,就是删去一些不重要的节点,来减小计算或搜索的复杂度。剪枝在很多算法中都有很好的应用,如:决策树,神经网络,搜索算法,数据库的设计等。在决策树和神经网络中,剪枝可以有效缓解过拟合问题并减小计算复杂度;在搜索算法中,可以减小搜索范围,提高搜索效率。

强化学习技术
Reinforcement learning

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

机器人技术
Robotics

机器人学(Robotics)研究的是「机器人的设计、制造、运作和应用,以及控制它们的计算机系统、传感反馈和信息处理」 [25] 。 机器人可以分成两大类:固定机器人和移动机器人。固定机器人通常被用于工业生产(比如用于装配线)。常见的移动机器人应用有货运机器人、空中机器人和自动载具。机器人需要不同部件和系统的协作才能实现最优的作业。其中在硬件上包含传感器、反应器和控制器;另外还有能够实现感知能力的软件,比如定位、地图测绘和目标识别。之前章节中提及的技术都可以在机器人上得到应用和集成,这也是人工智能领域最早的终极目标之一。

深度学习技术
Deep learning

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。 近年来监督式深度学习方法(以反馈算法训练CNN、LSTM等)获得了空前的成功,而基于半监督或非监督式的方法(如DBM、DBN、stacked autoencoder)虽然在深度学习兴起阶段起到了重要的启蒙作用,但仍处在研究阶段并已获得不错的进展。在未来,非监督式学习将是深度学习的重要研究方向,因为人和动物的学习大多是非监督式的,我们通过观察来发现世界的构造,而不是被提前告知所有物体的名字。 至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

数字信号处理技术
Digital signal processing

数字信号处理(digital signal processing),简称DSP,是指用数学和数字计算来解决问题。 大学里,数字信号处理常指用数字表示和解决问题的理论和技巧;而DSP也是数字信号处理器(digital signal processor)的简称,是一种可编程计算机芯片,常指用数字表示和解决问题的技术和芯片。

张量技术
Tensor

张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 维空间内,有 个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。称为该张量的秩或阶(与矩阵的秩和阶均无关系)。 在数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、矢量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。工程上最重要的例子可能就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。

TensorFlow技术
TensorFlow

TensorFlow是一个开源软件库,用于各种感知和语言理解任务的机器学习。目前被50个团队用于研究和生产许多Google商业产品,如语音识别、Gmail、Google 相册和搜索,其中许多产品曾使用过其前任软件DistBelief。

邱陆陆
邱陆陆

机器之心编辑

推荐文章
想击败英伟达?可能得十家以上不同垂直领域的深鉴科技,这就是AI芯片的「行情」| 人物对话想击败英伟达?可能得十家以上不同垂直领域的深鉴科技,这就是AI芯片的「行情」| 人物对话
微胖微胖
2
布局移动端芯片,英特尔收购计算机视觉公司 Movidius布局移动端芯片,英特尔收购计算机视觉公司 Movidius
李亚洲李亚洲
剖析用于深度学习的硬件:GPU、FPGA、ASIC和DSP剖析用于深度学习的硬件:GPU、FPGA、ASIC和DSP
吴攀吴攀
返回顶部