不同于传统观点认为的那样,“人工智能就一定需要高性能的 GPU、TPU、FPGA 等硬件平台,一定需要高速的网络带宽”,边缘计算解决方案正成为新时代人工智能的主力军。
贸泽电子联合与非主办的第 4 期明星开发板就来聊聊为边缘计算而生的英特尔的神经计算棒 2 代,简称 NCS2。其作用很简单,就是加速 AI 计算,尤其是人工智能中的边缘计算,从本质上来说它就是一个边缘计算的载体。
NCS 2 外观
NCS 2 采用全铝合金外壳,整个产品精致小巧,尺寸差不多比两根手指小,外观设计也花了一番心思,有助于提高散热。NCS 2 采用 USB 3.0 Type-A 接口,能直接插在电脑上即可使用,或许这就是最简单的边缘计算解决方案?
Myriad X
NCS2 加速深度学习推理主要依赖于内部的视觉处理单元 Myriad X。这里有必要提一下,深度学习的细分领域非常多,而 Myriad X 主要的特点是针对深度学习中的图像和视频的处理。
Myriad X VPU 内部架构:
- 神经计算引擎:借助这款适用于深度神经网络的片上加速器,Myriad X 可以实现每秒超过 1 万亿次运算的 DNN 推理性能。因此可以在不牺牲功耗或准确性的情况下在边缘实时运行深度神经网络。
- 2.5 MB 的同质化片上内存:允许最高 450 GB/ 秒的内部带宽,通过最小化片外数据传输来尽可能减少延迟并降低功耗。
- 16 个可编程的 128 位 VLIW 矢量处理器:针对计算机视觉工作负载进行了优化,灵活地运行多个并行的成像和视觉应用程序。
- 多种高优先级的外设功能支持:比如最多可在 Myriad X 上直接连接 8 个高清分辨率 RGB 摄像头,支持高达每秒 7 亿像素图像信号处理吞吐量,支持 4K/60 Hz 帧率的编码。
如果单看 Myriad X,你对它的性能提升没多少概念,那么对比 1 代的 Myriad 2,这种优势更加明显。可以参考以下这张表:
- 计算能力提升到了 4 万亿次,计算性能是 1 代的 4 倍;
- 增加到 16 个矢量处理器;
- 新增了神经计算引擎;
- 片上存储和带宽更大;
- 支持了 LPDDR4;
- 支持 4K 60Hz 的 M/JPEG 编码或者 4K 30Hz 的 H.264/H.265 编码;
- 接口方面也增加了 PCIe3.0,增加到 16 Lanes 的 MIP 接口;
当然啦,这些参数在目前看来,很多 CPU、GPU 都可以做到,但是你不能忽略一个参数,那就是功耗,Myriad X 的优势在于能实现这些功能的前提下保持了较低的功耗,相比能够提供同等效果的 GPU,Myriad X 的功耗最少降低了十几倍。
总之,我们可以预见,在 Myriad X 加持下的 NCS2,其特色很明显:
1、 高能效比,将机器视觉应用推向极致
2、 在边缘运行,不依赖云计算连接
3、 采用 USB 接口,方便的支持各种深度学习的原型开发
所以,对于目前市面上火爆的需要有较强图像 / 视频处理能力且需要电池供电的应用,如服务型机器人、无人机、AR/VR 等设备,基于 Myriad X 的 NCS2 优势明显。
OpenVINO 工具包
NCS 2 该如何开发?英特尔官方的回答是:OpenVINO 工具包。OpenVINO 工具基于卷积神经网络,可以快速部署模拟人类视觉的应用程序和解决方案,可在英特尔硬件上扩展计算机视觉工作负载,从而最大限度地提高性能。
如上图所示,这是 OpenVINO 工具包的一些工具,主要分为 3 个部分:
- 右上角是传统的电脑视觉库,包含英特尔优化过的 OpenCV、OpenVX 及范例,可以在推论过程中,有需要用到前处理及后处理器的时候,用来加速运算;
- 右下角是其它工具集以及库,如英特尔的 Media SDK,通过 GPU 来加速 decode;应用 OpenCL 让应用程序在不同平台上运作,及 FPGA 相关的插件(彩蛋);及运行时所需要的环境;
- 而左边这部分就是 OpenVINO 深度学习推论的核心,也就是我们简称的 DLDT。在 DLDT 中包含两个功能的组件:MO 以及 IE,还有使用 C++和 python 所做的不同范例;OpenVINO 除了支持深度学习中一些预先公开好的模型外,也提供英特尔自行训练的模型,针对各种不同的应用,如行为、表情以及物件侦测等等。
目前 OpenVINO 支持包括 win10、Linux、Raspbian、Mac OS,基本上涵盖了主流的几个操作系统,因此友好性还是不错,可以说是英特尔建立 AI 生态的大功臣。
环境配置
NCS 2 与 OpenVINO 工具包的组合可谓是如虎添翼,但是要真正使用起来,环境搭建的基本步骤还是免不了:
1. 下载 OpenVINO 工具包,最新版本 2021.1。
2. 解压压缩包,然后到目标文件夹下执行安装,可以安装 GUI 版本或者纯命令版本。
3. 安装额外的依赖的软件包
4. 设置环境变量
5. 配置模型优化器
6. 配置神经计算棒 USB 驱动程序
按照教程下来就可以把基本环境搭建起来。
NCS 2 实测:对比英特尔 CPU
本次主要测试 3 个 demo:
1、将推理引擎与经过预先训练的模型结合使用,用于执行车辆检测,车辆属性和车牌识别的任务。(对比英特尔 CPU)
2、Benchmark,推理性能测试;(对比英特尔 CPU)
3、基于摄像头的实时识别功能。(NCS2)
(想知道测试结果谁胜谁负?欢迎观看视频)
总的来说,NCS 2 在某些特定的边缘计算领域还是非常强大的,其本身的优势也在于开发和优化 AI 离线应用,因此,如果你有一些想法,想要用 Myriad X 做些什么,那不妨可以先上贸泽电子官网购买一个 NCS2 实际体验一番,毕竟 NCS2 配合上英特尔的 OpenVINO 工具包对于开发 AI 加速的应用还是非常友好的,哪怕你只是初学者!