受到计算能力和功耗的制约,“终端深度学习”(deep learning on edge) 目前境地比较尴尬,抽空调研了深度学习现在常用几种计算平台,尤其是嵌入式端的计算平台:
- GPU服务器/工作站
- Intel NCS
- NVIDIA Nano
- Raspberry Pi
- 麒麟970芯片
- 谷歌TPU、加速棒
按照深度学习部署终端的不同,主要分为:模型训练、云端推理和设备端推理。云端推理往往可以根据需求配置足的计算资源,适合一些复杂且实时性较低的场景。而设备端的推理往往针对实时性要求高,计算简单的场景,设备端对设备的体积,成本和功耗往往要求也较高,导致设备端推理的性能普遍较差,所以现在设备端的计算芯片急需提升。
1、GPU服务器/工作站
市场上用于深度学习训练计算机大致情况如下:(1)服务器/工作站(支持2、4、8块GPU架构):普遍存在噪音大,维护成本高,另外数据存储带宽、延迟、容量也不尽如意。(2)分布式集群架构:性能强大,但是开发成本太高(太贵),是大多数科研单位及个人无法承受。(3)大部分GPU服务器/工作站:重点都放在GPU卡数量上。GPU的核心思想在于数据的并行操作,数据并行的原理很简单,CPU主要负责梯度平均和参数更新,而-GPU1和-GPU2-主要负责训练子模型(model replica),模型之间具有一定的独立性。
然而,机器硬件配置还需要整体均衡,不同的学习框架更需要不同GPU卡去适配。现阶段受限于嵌入式终端CPU和内存资源有限,一般需要在服务器端训练并压缩模型大小,主要就是量化操作,压缩内存。量化操作的主要思想采用等价的8位整数操作代替32位的浮点数操作,替换的操作包括:卷积操作、矩阵相乘、激活函数、池化操作等。量化节点的输入、输出为浮点数,但是内部运算会通过量化计算转换为8位整数(范围为0到255)的运算。
参考资料:
- https://www.jianshu.com/p/243b93871869
- http://www.360doc.com/content/17/1226/18/7669533_716503395.shtml
- https://blog.csdn.net/mergerly/article/details/83753056
2、计算棒
2017年,英特尔收购了Movidius公司,一家位于爱尔兰的深度学习公司,随后推出了Neural Compute Stick(神经计算棒,简称 NCS)。和显卡、FPGA(现场可编程门阵列)等高功率、高性能设备不同,计算棒更偏向神经网络的“推理”(inferencing)。低功耗是 NCS 的最大优势,在不增加耗电的前提下解放主机处理器,赋予深度学习能力。NCS 内置 Movidius 自行设计研发的 Myriad 2 VPU(视觉处理单元),Myriad 专门为计算机视觉进行优化,可以用于 3D 扫描建模、室内导航、360°全景视频等更前沿的计算机视觉用途。
NCS 2使用USB3.0接口,体积为72.5 mm x 27 mm x 14 mm,支持Ubuntu 16.04.3 LTS (64 bit)、CentOS 7.4 (64 bit)及Windows(64 bit)系统,支持TensorFlow、Caffe开发框架。NCS 2的性能比之前的Movidius计算棒有了极大的提升,其中图像分类性能高出约5倍,物体检测性能则高出约4倍,京东售价749RMB。
计算棒可以自动将经过训练的基于 Caffe 的卷积神经网络 (CNN) 转换为嵌入式神经网络,经优化可用于板载 Myriad-2 VPU。行业标准和定制设计的神经网络的逐层性能指标可以在低功率下有效调谐,用于提供最佳的现实世界性能。验证脚本允许开发人员将设备上优化型号的精确度与原始基于计算机的型号进行比较。Movidius 神经计算棒可作为一个分离式神经网络加速器,通过为现有的计算平台添加专门的深度学习推理功能,用于提高性能和电源效率。
参考资料:https://www.eeboard.com/shop/?c=products&a=view&id=4984
3、英伟达Nano
在GTC 2019上,NVIDIA推出人工智能计算机Jetson Nano,外观小巧玲珑如同树莓派,但性能却非常强大,可以提供高达472 GFLOPS的浮点运算能力,而且耗电量仅为5W。NVIDIA发布了很多种物联网主板,其中NVIDIA Jetson Nano是最新的主板。该主板作为开发工具包提供了物联网解决方案在设计原型时所需的所有输入和连接。
- NVIDIA Jetson Nano Developer Kit的核心配置:
- CPU:四核ARM Cortex-A57 MPCore处理器
- GPU:NVIDIA Maxwell w / 128 NVIDIA CUDA核心
- 内存:4 GB 64位LPDDR4
- 显卡:HDMI和DisplayPort输出
- USB:4个USB 3端口
- I / O:I2C,SPI,UART以及与Raspberry Pi兼容的GPIO接头。
- 售价:99美元
为了方便大家开发软件程序,JetPack SDK中新增了CUDA-X平台,包含40多个加速库,用于深度学习、计算机视觉、计算机图形和多媒体处理的加速库。此外还包含最新版本的CUDA、cuDNN、TensorRT和完整版桌面Linux操作系统。
参考资料:https://blog.csdn.net/qqqzmy/article/details/96729609
4、树莓派 4
Raspberry Pi(树莓派)是一种非常棒的小型计算机与物联网开发主板。它不仅是一个低功耗的物联网设备,而且还是一个很好的原型设计工具,还可用于构建物联网网关设备。
- Raspberry Pi 4 B包含:
- 处理器:CPU升级为四核Cortex-A72(ARM v8)64位SoC @ 1.5 Ghz。
- 内存:LPDDR4-2400 SDRAM提供1GB、2GB及4GB RAM等多个型号。
- 双4K显卡:2个微型HDMI端口,都可以输出4K视频,甚至配置双显示器。
- 2个USB 3和2个USB 2端口:拥有2个USB 3端口,可以更高速地连接到外围设备;此外还有2个USB 2端口。
- USB-C电源:电路板的电源连接器从micro-USB升级到USB-C连接器。
- I / O:40-pin GPIO接头(支持I2C,SPI和UART)。
- 售价:35 美元
Raspberry Pi 4有一个较新的ARM Cortex-A72 CPU,而NVIDIA Jetson Nano则采用了略旧的ARM Cortex-A57。
5、麒麟970
麒麟970芯片是华为海思推出的一款采用了台积电10nm工艺的新一代芯片,是全球首款内置独立NPU(神经网络单元)的智能手机AI计算平台。华为的新款芯片麒麟970,为推出的旗舰机型Mate 10和其他高端手机提供更快的处理速度和更低的功耗。
HiHope Hikey 970基于华为海思麒麟970,采用了台积电10nm工艺,拥有4核Cortex-A73@2.36GHz和4核Cortex-A53@1.8GHz,12核的Mali-G72。麒麟970是全球首款内置独立NPU(神经网络单元)的移动AI计算平台。HiHope Hikey 970拥有6GB的LPDDR4 和 64GB UFS。外围部分拥有支持4K高清的HDMI 2.0a接口,2个USB3.0接口,2个USB Type-C接口,1个千兆网口,支持CAN V2.0B协议,可以运行AOSP、Ubuntu、Debian等系统。
京东售价: hikey970开发板 深度学习开发板标配版2599RMB
参考资料:
- 华为开发者联盟:http://developer.huawei.com/consumer/cn/devservice/develop/huaweiHiAI/Foundation
- https://blog.csdn.net/qqqzmy/article/details/80986585
6、谷歌TPU 加速棒
6.1 Edge TPU 是由谷歌公司设计并制造的小型 ASIC,能够以低功耗水平提高出色的 ML 推理性能。以良好的功率表现执行 MobileNet v2 等最先进的移动视觉模型,且 fps 可达 100 以上,这意味着它将快速 ML 推理能力引入到嵌入式 AI 设备。
Edge TPU开发板规格:
- CPU:NXP i.MX 8M SOC(四核Cortex-A53,Cortex-M4F)
- GPU:GC7000 Lite图形处理器
- ML加速器:Google Edge TPU
- RAM:1GB LPDDR4
- Flash:8GB eMMC
- 无线:Wi-Fi 2x2 MIMO(802.11b/g/n/ac 2.4/5GHz);蓝牙4.1
- 外形尺寸:40mm*48mm
- 支持操作系统:Debian Linux,Android Things
- 支持深度学习框架:TensorFlow Lite
- 售价150美元
6.2 Coral USB 加速棒是一款插入式 USB 记忆棒,能够为现有 Linux 系统提供强大的 ML 推理功能。通过 USB 3.0 接口连接 Edge TPU,设备即可快速对本地 AI 应用程序进行原型设计。类似因特尔的计算棒Movidius 棒,但是Movidius 棒在与采用 ARM 芯片的计算设备对接时(例如 Raspberry Pi)存在不少早期兼容问题,而 Cora 加速棒能够与 Raspberry Pi 良好配合。Coral 同样适用于 Debian Linux 系统支持的任何 64 位 ARM 或 x86 平台,其利用 32 位 ARM Cortex-M0+ 微处理器构建而成,运行主频为 32 MHz,配备 16 KB 闪存与 2 KB 内存。Coral 开发单片的售价为 149.99 美元,而 USB 加速棒的价格则为 74.99 美元
谷歌真牛叉,手握TF,藐视群雄。
参考资料:https://www.cirmall.com/articles/382592/p2
7、部分对比
调研结果发现,现阶段开发者使用GPU的嵌入式设备较多,学生使用树莓派较多,这应当与技术支持和开发资料丰富程度相关,毕竟很多深度学习的计算产品一出来适配问题较多,技术支持和资料往往较少。