近来 AI 火红,其中一个推展大势则是将 AI 运算下放到局端(PC、笔电端),甚至是终端,也就是 AI 边缘运算的架构作法,而此作法的可行条件之一,即是需要有一套可加速运算的解决方案。本文将介绍目前相当突出的硬件加速装置 - IntelMovidius 神经运算条(NCS),它仅有 USB 随身碟大小,却具有人工智能加速运算力。

 

 

IntelMovidius 神经运算条(NCS)

NCS 发展背景

Apple 与 Google Android 的争夺战

当年 Steve Jobs 生前说:「Android 是个错误,即便花尽 Apple 的 600 亿美元现金也要纠正这个错误。」此话一出,Apple 对 Android 阵营展开长达数年的专利诉讼战,而 Google 为了护卫 Android 阵营,在 2012 年 5 月用了约 125 亿美元购并 Motorola Mobility 公司,以便取得手机相关技术专利抗衡 Apple,Google 在取得捍卫所需的专利后,于 2014 年将 Motorola Mobility 以 29 亿美元转售给 Lenovo。

 

Google 虽将 Motorola Mobility 卖给 Lenovo,却留下原本属于 MotorolaMobility 的 ATAP(Advanced Technology and Projects)研究团队,成为 Google 本有的 X 研究团队外的另一组研究团队,当时该团队有两项重要研究案:一是模块化智能型手机研究案 Ara,二是行动增强实境技术研究案 Tango。ATAP 后续也有开展其他研究案,例如穿戴式毫米波雷达技术研究案 Soli,或同属终端使用者输入技术的 Jacquard 项目。

 

内容

在此我们只讨论 Tango 项目,该项目透过平板计算机上配置的 2D 画面影像传感器(摄影机)、3D 深度传感器(红外线投射、ToF 影像感测),以及平板计算机内的图像处理器(VPU),就可以边走边感测,描绘出行经路线的空间,包含障碍物、高度、距离等,可用在各种应用,例如室内导览、沉浸式游戏等,后来 Tango 技术也不限于平板计算机,可进一步缩小到智能手机内使用。

 

而在 Tango 项目的平板计算机中,其实用上两颗 Movidius 公司的 Myriad 2 芯片,此即是 VPU。该芯片内已经用硬件电路方式实现类神经网络、人工智能等演算,加速对外界影像的视觉判别,后来该芯片也用于 DJI 的无人机上,好让无人机透过影像辨识,得以避障与降落。

神经运算条内的 Myriad 2 芯片仅有钮扣电池般的大小

 

知名品牌发展人工智能

由于人工智能运算日益重要,2016 年 9 月 Intel 并购了 Movidius 公司,2017 年 12 月 Google 宣布 Tango 项目这个增强实境软件平台即将结束,并由新的增强实境软件平台 ARCore 接手,项目虽结束,但 Google 依然持续运用 Myriad 2 芯片(MA2450)。同为 12 月,Google 发表 AIYVision Kit 的人工智能套件,套件内即有用及 Myriad 2 芯片。

Intel 也看好前端人工智能、类神经网络的运算应用,在买下 Movidius 后于 2017 年推出神经运算条棒 NeuralCompute Stick,简称 NCS(Movidius 被购并前已展示过 NCS 的原型品,因购并案而延后正式发表)。NCS 内用的也是 Myriad 2 芯片,但自成一套系统,并用 USB 接口与其他系统连接,NCS 价格实惠仅 79 美元。除了 USB 版外,Intel 也与台湾合作伙伴研阳(Aaeon)推出 Mini-PCIe 版的 NCS,称为 UP AI Core,费用降至 69 美元。

 

NCS 开发环境

对 NCS 背景有些了解后,接着是着手于实务前的概念。在人工智能的开发上,Intel 提出了一套架构(如下图):一开始先用运算力强悍的计算机来训练模型,再用 NCS 与一般笔电来进行型态化(Profiling)、调整(Tuning)、编译(Compile),最后再用笔电或者简单的单板计算机(例如树莓派)来进行原型品实作(Prototyping)。

 

人工智能开发与应用程序图,包含建模、型态化、微调、编译、原型品等阶段

由于 NCS 需要连接笔电或树莓派,因此对笔电、树莓派的系统环境也有所要求,NCS 需要有安装 Ubuntu 16.04 版的 Linux 操作系统,如果笔电只有 Windows 操作系统,且嫌开机切换成 Linux 比较麻烦,可以用桌面版虚拟化软件(如 VirtualBox)建立一个虚拟图像文件,以虚拟化方式执行 Ubuntu 16.04,也是可行的。

 

 

若为树莓派,则建议使用 RPi 3Model B 以上的规格,而后使用树莓派专用的 DebianLinux 操作系统 Raspbian,且必须是 Debian 开发代号 Stretch 版以上的 Raspbian 才行,Debian Linux 的 Stretch 版是在 2017 年 6 月提出,树莓派的 Stretch 版则在 8 月。

 

连接 NCS 的注意事项

另外要注意的是,Intel 官网建议,连接 NCS 的系统最少要有 1GB 的内存,4GB 的储存空间,以及 USB 2.0 的端口,最好可以是 USB 3.0,以利大量数据传输。由此观之,树莓派的硬件资源与规格仅是勉强合格,但由于树莓派毕竟是创客圈最广泛流行的单板计算机,多数开发工具包仍会尽可能迎合支持树莓派,若期望有好一点的单板计算机,也可以用前述 AAEON 所推出的 Up Square,该单板计算机有 2~8GB 内存,也有 USB 3.0 埠,并支持 Ubuntu Linux。

 

准备好这些后,NCS 可支持的人工智能框架主要有二,一是 Google 提出的 TensorFlow,二是柏克莱分校提出的 Caffe,也兼容 OpenVINO、Andorid 的神经网络(Neural Networks, NN)API。

 

很明显 NCS 无法与 NVDIA 的 TeslaGPU 比拼运算力,尚无法广泛支持各种框架,但 NCS 仅在 1 瓦用电下提供人工智能加速运算,已是难得可贵,毕竟 TeslaGPU 的功耗大多是数十、数百瓦。

 

进一步的开发则需要安装 NC SDK(软件开发工具包)到笔电内,SDK 内提供 mvNCCompile、mvNCProfile、mvNCCheck 等工具,可以转换格式、统计神经网络各层的效能、比较网络推论运算后的结果等,另外也附有范例程序及应用程序编程接口(API),这些均到位后即可开始学习摸索 NCS 了。

作者:陆向阳