在去年于旧金山召开的 Google Next 大会上,Injong Rhee 通过主题演讲披露了谷歌公司的两款全新硬件产品:一款开发单片,外加一款 USB 加速棒。作为这两款产品的核心,谷歌的 Edge TPU 扮演着关键角色——这款专用 ASIC 旨在将机器学习推理能力引入边缘设备。
在近一年之后,两款产品以“Coral”的名号推出了“Beta 测试版”,且目前已经可供感兴趣的朋友购买。另外,这两款新硬件还将在本周晚些时候通过 TensorFlow Dev 峰会正式亮相。
Coral(beta 版)开发单片。
“Edge TPU 是由谷歌公司设计并制造的小型 ASIC,能够以低功耗水平提高出色的 ML 推理性能。例如,其能够以良好的功率表现执行 MobileNet v2 等最先进的移动视觉模型,且 fps 可达 100 以上。这意味着你将能够在符合节能与隐私保护要求的前提下,将快速 ML 推理能力引入自己的嵌入式 AI 设备。”
机器学习的开发主要分两个阶段完成。第一步,我们需要在快速且强大的机器或设备集群上利用大量样本数据进行训练,而后将训练完成的网络部署至负责解释实际数据的应用程序当中。这一部署阶段,或者称“推理”阶段,正是 Edge TPU 以及两款新硬件的表现舞台。由于能够在更靠近数据的“边缘”位置运行这些训练完成的网络,开发人员终于可以在智能设备上实现“智能”,而非始终依赖于云端。如此一来,他们将能够构建起无需联网即可实现机器学习功能的智能产品。
Coral USB 加速棒Coral(beta 版)USB 加速棒。
Coral USB 加速棒是一款插入式 USB 记忆棒,能够为现有 Linux 系统提供强大的 ML 推理功能。通过 USB 3.0 接口连接 Edge TPU,设备即可快速对本地 AI 应用程序进行原型设计。
正如一年半之前英特尔公司发布的 Movidius 神经计算棒一样,Coral USB 加速棒同样将谷歌的定制化 ASIC 设计成易拿易用的棒状外形,这看起来与普通 U 盘非常相似。然而,把二者放在一起,就能看出明显的区别。首先,Coral 棒要小得多;之所以刻意关注体积,是因为此前已经有不少用户抱怨英特尔 Movidius 棒太大,插上之后会挡住邻近接口并导致其它设备无法接入。
Coral USB 加速棒(图左)与第一代英特尔神经计算棒(图右)。
之所以能够成功瘦身,部分原因在于 Coral USB 加速棒采用了可同时实时数据传输与电源供给的 USB 3.0 Typer-C 接口。然而,如果你的笔记本电脑上没有 USB-C 接口,Coral 也支持直接将 USB-C 接入 USB-A 接口。
Coral USB 加速棒,仍然可以看到 AIY Projects 的标记。
另外,Movidius 棒在与采用 ARM 芯片的计算设备对接时(例如 Raspberry Pi)存在不少早期兼容问题。好在 Cora 加速棒能够与 Raspberry Pi 良好配合,当然只能实现 USB 2.0 的传输速度。事实上,Coral 同样适用于 Debian Linux 系统支持的任何 64 位 ARM 或 x86 平台。
Coral 加速棒利用 32 位 ARM Cortex-M0+ 微处理器构建而成,其运行主频为 32 MHz,仅配备 16 KB 闪存与 2 KB 内存——这就是棒内 Edge TPU 所拥有的全部资源支持。有趣的是,产品参数表显示该 USB 加速棒在运行时应用需要消耗 500 mA 电量。
Coral 开发单片Coral(beta 版)开发单片,正面(图上)与背面(图下)。
Coral 开发单片是一款单片机,其中配备有可拆卸的系统模组(简称 SOM),包含 SOC、eMMC、无线电与谷歌 Edge TPU。它非常适合那些需要快速实现 ML 推理功能的物联网设备及其它嵌入式系统。 Coral 开发单片运行 Debian Linux 系统,其中包含一个拥有外设连接口的基板;此外,其还具备 USB 2.0/3.0 接口、DSI 显示接口、MIPI-CSI 摄像头接口、千兆以太网接口、3.5 毫米音频插孔、用于立体声扬声器的 2.54 毫米 4 针终端、全尺寸 HDMI 2.0a 接口,两个数字 PDM 麦克风外加“与 Raspberry Pi 类似的”40 针 GPIO 接头。
基板上的连接接口。
连接到基板上的是一个可拆卸的 40 x 48 毫米系统模组(简称 SoM),其中央为一块 NXP i.MX 8M 处理器以及 Edge TPU 本体。该 SoM 具有加密协处理器、板载 Wi-Fi 并支持蓝牙 4.1,外加 1G LPDDR4 内存与 8GB eMMC。更多细节配置信息,请参阅该单片的产品参数表。
Coral 开发单片,以及摄像头模块。
与能够开箱即用的 USB 加速棒不同,这款开发单片明显只是 SoM 单片的一种示例性方案。谷歌公司计划未来“批量”推出这类 SoM 单片,允许用户自行组装并利用单片之间的连接器实现 PCB 硬件定制,最终将其集成至各类商业产品当中。
作为产品开发工具,这款单片适用于那些希望在原型物联网设备及其嵌入式系统中快速引入机器学习推理能力的硬件开发人员。
Coral 摄像头(图左)与 Coral(beta 版)开发单片。
另外,谷歌还提供与这款开发单片配套的摄像头。此摄像头采用 500 万像素(2582 x 1933 像素)Omnivision OV5645 传感器,并可接入开发单片的 MIPI-CSI 连接器中。摄像头的焦距为 2.5 毫米,定焦范围从 10 厘米到无限远,视野为 84 度。
相关软件开发单片与 USB 加速棒皆以谷歌 TPU 软件堆栈为基础。各模型的开发环境为 TensorFlow Lite,而非 TensorFlow。开发完成后,这些模型将由 Web 编译器处理以运行在 Edge TPU 之上。此外,谷歌亦提供一些预编译模型供用户选择。
就目前的 beta 测试版来看,Edge TPU 编译器仍然存在一些限制。不过相信在 Coral 项目结束为期一个月的 beta 测试之后,相信这些限制都将被撤销。
利用 Web 编译器,谷歌公司以一种巧妙的方式解决了英特尔 Movidius 硬件面临的一大难题——具体来讲,英特尔的方案需要另一台基于 x86 的开发设备对模型进行编译,否则其根本无法运行在 Raspberry Pi(采用 ARM 基板)等加速器硬件之上。
与使用桌面或者嵌入式 CPU 的硬件方案相比,Edge TPU 的模型推理性能应该明显更强。大约一个月之前,我们在 Geekbench 网站上发现了一段来自“Google Coral”这一神秘设备的性能参数,当时很多人认为这可能是一款即将推出的 Android 新手机。 利用 ImageNet 数据库当中模型输入大小为 244 x 244 的 1000 个类(其中只有 Inception v4 比较特殊,输入大小为 299 x 299)进行模型推理性能比较。 当然,与 CPU 比较可能说明不了什么真正的问题。最值得关注的,还是 Coral 硬件真正投放市场之后,其与其它定制化加速器之间的性能较量——例如去年年底刚刚发布的新一代 Movidius 神经计算棒。请放心,我们将持续追踪小 Coral 们的最新表现。
上市时间Coral 开发单片的售价为 149.99 美元,而 USB 加速棒的价格则为 74.99 美元。虽然谷歌公司的官方网站要求感兴趣的朋友“……致电 Mouser 并提交部件编号进行订购”,但在 Mouser 网页中可以看到单片与加速棒都已经正式上架。加速棒产品页面提到宝贝有货而且随时可以发出,开发单片的页面则指出工厂交货时间为“17 周”。不过千万别被骗了,根据我们的可靠消息来源,这里提到的“已无存货”或者关于新产品的其它交货问题,都将在……下个礼拜得到解决。因此,如果大家马上订购,应该很快就能拿到这些惹人喜爱的小东东。
另外,同样以 Edge TPU 为基础的 PCI-e 加速卡也在开发当中,谷歌公司还计划单独提供 Coral 开发单片上使用的 40 x 48 毫米系统模组(简称 SoM),且支持批量订购。然而,这两款产品的上市时间都是“……今年晚些时候”,因此目前 PCI-e 卡和 SoM 暂时没戏。总之,如果大家想要尽快体验 Edge TPU 的威力,那么 USB 加速棒加 Raspberry Pi 才是最便捷的组合。