论文地址:https://arxiv.org/pdf/1910.06663v1.pdf
AI Benchmark 官网:http://ai-benchmark.com/index.html
过去两年,移动 AI 加速器的性能一直在快速提升,每出现一代新的系统级芯片(Soc),性能就会提升近两倍。当前的第四代移动 NPU 性能已经接近不久前英伟达推出的 CUDA 兼容显卡性能,并且加之以移动深度学习框架性能的提升,第四代 NPU 甚至可以在移动设备端上运行复杂和深度 AI 模型。
在本文中,来自苏黎世联邦理工学院、谷歌研究院和华为、高通、三星、联发科、紫光展锐等多家移动端芯片厂商的研究者评估并对比了高通、海思、三星、联发科和紫光展锐为 AI 推理提供硬件加速的芯片组的性能结果。此外,他们还探讨了安卓 ML pipeline 近来的变化,概述了深度学习模型在移动端设备上的部署情况。
下图 1 展示了多款 AI 加速芯片的性能数据。从图中可以大致看出,麒麟 990(5G 版)的 AI 性能已经达到高通骁龙 855+的三倍,性能甚至接近常见云服务 GPU 英伟达 Tesla K80 的四分之三。
图 1:移动端 AI 加速器的性能演变。
AI Benchmark 的官方网站还给出了多款移动设备的 AI 基准测试结果:华为 Mate 30 Pro 5G 版以 76206 的得分高居 AI 性能排行榜首,排名前五均为华为或子品牌荣耀手机,如 Honor 20s 等。而且,除了排在第六位的华硕 ROG Phone II,其他移动端设备的 AI 得分均低于 30000。读者还可以根据官网提供的方式下载app,测试自己的手机AI跑分。
移动设备 AI 性能排行榜。
智能手机上的深度学习
在之前的论文中,研究者中已经描述了 2018 年 9 月以前的深度学习移动端生态系统状态。过去一年出现的变化符合人们的预期。谷歌已经完全舍弃了 TensorFlow Mobile 框架,转而支持 TensorFlow Lite,后者的 CPU 后端呈现显著提升,并且支持很多新的功能选项。但是,TFLite 依然缺少一些重要的深度学习算子,尤其是用于诸多 NLP 模型的算子。所以,TensorFlow Mobile 框架依然适用于复杂的架构。不支持的模型最近也新增了一个功能选项,即使用包含标准 TensorFlow 算子(尚未添加到 TFLite)的 TensorFlow Lite 插件。即便如此,该插件的大小(40MB)甚至大于 TensorFlow Mobile 库的大小(20MB)。
论文链接:https://arxiv.org/pdf/1810.01109.pdf
虽然去年提出的一些 TensorFlow Lite 问题在当前版本中得到了解决,但研究者依然建议谨慎使用。此外,安卓深度学习生态系统的另外两项重要变化是引入了 TensorFlow Lite delegates 和神经网络 API 1.2,有关细节请参见论文。
AI Benchmark 3.0
AI Benchmark 应用于 2018 年 5 月首次推出,目的是测试不同移动端设备上的 AI 性能。AI Benchmark 第一版(1.0.0)包含大量的典型 AI 任务和深度学习架构,并且测试相应 AI 模型的执行时间和内存消耗。
第 3 版 AI Benchmark 包含一个新的模块化架构和很多重大更新。测试任务数量由 11 项增加至了 21 项,如准确性检查、新任务和网络、PRO 模式和更新后的评分系统。
图 10:PRO 模式下的测试选项和结果。
深度学习测试
实际的 AI Benchmark 版本(3.0.2)包含 11 个测试选项和 21 种测试。这些测试中运行的网络展示了当前可以部署到智能手机上的最流行和常用的深度学习架构。
下表 1 总结了基准测试中所有深度学习架构的细节:
AI Benchmark 的网络输出可视图如下图 8 所示:
图 8:深度学习测试中向用户展示的样例结果可视图。
评分系统
AI Benchmark 主要集中在以下几项测试类别的性能,包括 int-8、浮点-16、 浮点-32、并行、CPU(int-8 和浮点-16/32)、内存和模型初始化时间。版本 3.0.0 到 3.0.2 之间的评分系统是相同的。各测试类别的贡献如下图所示:
每个测试类别的得分被计算为该类别测试结果的几何平均数。计算得出的 L1 误差用于惩罚运行 NNAPI(应用指数 1.5 的指数罚函数)网络的执行时间。内存测试结果对最总分数具有惩罚贡献,如下图 9 所示。每种测试的归一化系数基于当前 SoC(高通骁龙 855、麒麟 980、三星猎户座 9820 和联发科 Helio P90)的最佳结果进行计算。
图 9:测试结束后的 Benchmark 结果。
Benchmark 结果
在过去的一年里,移动 AI 加速器的性能显著提高,研究者决定将台式机中用于训练/运行深度学习模型的 CPU 和 GPU 也加入比较。这可以帮助我们了解移动 AI 芯片的发展程度,也可以帮助开发者评估模型在智能手机和台式机上运行时间的差别。在这一部分,研究者展示了在 2 万多个移动设备上得到的基准测试量化结果,详细讨论了这些芯片在浮点或量化模型中提供的硬件加速。在移动 SoC 上得到的浮点和量化推理结果见表 2 和表 3。有关智能手机的结果见表 4.
浮点性能
2019 年 9 月末,浮点性能最好的公开结果来自麒麟 970。在过去的一年里,移动芯片的性能得到了显著提升:即使不考虑几种软件优化,浮点执行的速度也提高了超过 7.5 倍(见下表 2)。去年秋天发布的骁龙 855、海思麒麟 980、联发科 Helio P90 和猎户座 9820 大大优化了浮点模型的推理时间,已经接近了几款英特尔 8 核 CPU(如英特尔酷睿 i7-7700K / i7-4790K)和英伟达入门级 GPU 的性能,而今夏发布的几款第四代 AI 加速器(Unisoc Tiger T710、麒麟 810、990)性能再攀新高。
麒麟 990 已经接近 GeForce GTX 950(英伟达 2015 年推出的一款中端台式机显卡)的性能,而且已经显著超越英特尔的一款旗舰芯片——酷睿 i7-9700K CPU(Coffee Lake 系列)。这是移动设备的一个重要里程碑,意味着即使不做任何特殊的修改,它们也可以提供足以支撑许多标准深度学习模型运行的性能。虽然这在简单的图像分类网络上可能并不明显,但对于非常消耗算力的几个图像、视频处理模型而言,这一提升举足轻重。
比较基于 GPU 和 NPU 方法得到的结果是一个有趣的话题。在第三代深度学习加速器(骁龙 855、海思麒麟 980、联发科 Helio P90 和猎户座 9820)中,它们的性能相差无几,但带有超频 Adreno 640 的骁龙 855Plus 要比其他芯片的性能高出 10-15%。然而,目前还不清楚这种情况是否会持续下去:为了达到第四代 NPU 的性能水平,GPU 的 AI 推理速度需要提升 2-3 倍。如果不对微架构做出重大调整,这一提升将很难实现,整个显卡工作流程也会受到影响。因此,所有主流的芯片制造商似乎都将在下一代 SoC 中转向专用的神经处理单元。
使用中端(如 Mali-G72 / G52、Adreno 610 / 612)或老一代 GPU(如 Mali-T880)来加速深度学习推理无法得到理想结果。入门级 GPU 甚至会得到更坏的结果,因为它们本身存在额外的计算限制。然而,我们应该注意到,在推理功耗方面,GPU 只有 CPU 的 1/2 到 1/4。因此,就整体能源效率而言,GPU 可能仍然占有优势。
表 2:在移动 SoC 上得到的浮点网络推理时间。
最后要说的一点是默认 Arm NN OpenCL 驱动程序的性能。不幸的是,它们无法释放 Mali GPU 的全部潜能。因此,与拥有类似 GFLOPS 性能的 GPU 相比,前者有着非典型的高推理时间。如果使用定制供应商的实现版本,它们可以在许多深度学习架构上实现 10 倍的速度提升。例如,如果使用三星自己的 OpenCL 驱动,搭载 MaliG76 MP12 的猎户座 9820 的总体性能可以从 6% 提高到 26%。
量化性能
在今年的量化推理性能排名(如下表 3)中,Hexagon 赋能的高通骁龙 855+芯片以及只有单 NPU 的 Unisoc Tiger T710 排名前两位,海思麒麟 990 屈居第三。其中,前两名芯片在所有 int-8 测试中的结果几乎相同,并且速度稍快于(15-20%)其后的麒麟 990、联发科 Helio P90 和标准骁龙 855。据高通宣称,Hexagon 690 DSP 的性能几乎是上一代 Hexagon 685 的两倍。目前,Hexagon 685 以及之后的 Hexagon 686 和 688 出现在高通的终端芯片组上。
由于移动端 GPU 主要设计用于浮点计算,因此利用它们加速量化 AI 模型在很多情况下的效率都不是很高。其中,具有 Mali-G76 MP12 显卡和三星定制 OpenCL 驱动程序的 Exynos 9825 获得了最佳结果,其整体性能与 Hexagon 685 DSP(在高通骁龙 710 中)相当。值的注意的是,这两个芯片的推理结果高度依赖于运行模式。具有 Mali-G72 MP3 GPU 的 Exynos 的中端 SoC 的性能低于高通骁龙 835 芯片组的 CPU,其性能与具有 Mali-T880 MP12 显卡的 Exynos 8890 相当。最近推出的移动端 SoC 可以观察出 CPU 之间更大的性能差异。所以,在中低端移动设备上利用 GPU 来进行量化推理或许仅在获取更高的功率效率上是合理的。
表 3:为 int-8 模型提供硬件加速的移动端 SoC 上获得的量化网络推理时间。
表 4:部分安卓手机的 Benchmark 结果,完整版见:http://ai-benchmark.com/ranking
进一步探讨
移动 AI 硬件的巨大进步是有目共睹的,和第二代 NPU(例如和 Snapdragon 845 和 Kirin 970 SoC 的 NPU)相比,浮点计算速度提升了 7.5 倍,量化推理速度提升了 3.5 倍,从而给智能手机带来更强大的 AI 功能。过去一年间所有旗舰款的 SoC 与入门级支持 CUDA 的台式机 GPU 及高端 GPU 相比,性能表现持平或者更佳。第四代 AI 芯片展现出了颇为理想的结果,这就意味着接下来的两三年里,所有中高端芯片组会有足够的实力去运行学界和业界的绝大多数标准深度学习模型。相应地,这也会促使更多面向移动设备的 AI 项目成为机器学习模型部署的主要平台。
谈到智能手机运行 AI 算法所需的软件堆栈,这种进步与其说是革命性的,不如说是进化中的。目前只有一个深度学习库——TensorFlow Lite,能实现高级功能和易用性,同时又拥有人数众多的开发者社区。也就是说,这个新版本中的严重错误数量使其暂时还不能应用到任何商业化项目或者非标准 AI 模型当中去。最新的 TensorFlow Lite 也许能够用于解决现有问题,还允许 SoC 供应商为 NNAPI 驱动提供 AI 加速器。强烈建议研究人员像 TFLite 一样去设计自己的 AI engines,对于所有使用 TensorFlow 的开发者来说,这是一种最简单易行的方法,同时也可以将当前的 TFLite GPU 和 GPU 后端做个直接对比。研究者希望明年能够发布更多解决方案和移动库,让智能手机部署深度学习模型这件事变得更加普及广泛。
与此前一样,研究者打算定期发布 benchmark 报告,来展示 AI 加速器在移动端设备的实际状态、机器学习领域的变化以及 benchmark 所作出的相应调整变化。AI Benchmark 的最新结果及实际测试情况每个月都会在项目网站上更新。另外,如果遇到技术问题或是其他问题,可以随时联系本文的前两位作者。