麒麟970真的是当前最强手机AI芯片吗?至少苏黎世联邦理工学院的研究人员是这样认为的。在他们开发的AIBenchmark应用中,搭载麒麟芯片的华为P20Pro的神经网络处理性能第一,比第二名一加6手机(搭载高通骁龙845)的3.4倍还高。这款APP目前已经在GooglePlayStore上线,任何人都可以用来测试自己的手机“是否准备好进入AI时代了”。
高通、华为、联发科有什么共通点?这三家厂商都做加速手机、平板等移动设备中计算机视觉、NLP以及其他机器学习任务的硬件架构。然而其中存在一个问题,即开发者难以判断哪家的芯片对特定平台的算法优化较好。于是来自ETHZurich(苏黎世联邦理工学院)的研究员开发了一个名为AIBenchmark的APP,可用于测试手机上机器学习算法的表现。
不过,目前这款APP只适用于安卓手机。
AIBenchmarkAPP
据国外媒体TechCruch报道,ETHZurich的研究人员开发了一个基准系统来评估用于常见AI任务的众多神经网络架构。他们希望通过这种方式帮助AI研究员、芯片厂商以及安卓开发者,来测试AI模型在不同设备上运行时的表现。
AIBenchmarkAPP运行计算机视觉任务时的测试,图片:KyleWiggers/VentureBeat
当前手机AI性能排行榜
AIBenchmarkAPP能评估智能手机在一系列开源算法中的性能,这些算法执行图像分类、人脸识别、图像超分辨率以及图像增强、分割以及去模糊的任务。AIBenchmark甚至还可以测试无人驾驶汽车中使用的神经网络的性能。研究人员预测,这种神经网络最终可能会运行在与智能手机芯片类似的芯片上。
在手机上打开该APP,它会产生算法输出的可视化效果,并给出一个影响芯片系统和RAM速度的分数。(一般来说,神经网络越大,处理它所需的内存就越多。)
AIBenchmark自己测试并列出了一个排行榜,华为P20Pro以6397的得分高居榜首,第二名得分为1875。
1.华为P20Pro–6397
2.一加6–1875
3.索尼XperiaXZ2–1664
4.三星GalaxyS9+–1494
5.雷蛇RazerPhone–1470
6.三星GalaxyS9–1446
7.一加5T–1440
8.一加5–1416
9.三星GalaxyNote8–1408
10.小米MiMix2–1405
在该工具的官网上,目前排名前15的手机型号。
机器之心小编也下载了AIBenchmark,在平均长达5分钟、所有9项测试结束之后(需耗去4%的电量),我们使用的国行版三星S9手机拿到了1594分,这个分数在高通骁龙845芯片的手机里还算不错,也超过了官方排行榜中该型号手机原来的分数,或许是固件更新的功劳?
搭载麒麟970芯片的华为P20Pro分数达到了4573,不及排行榜上的分数(我们的测试机未更新到最新版本系统)。
我们也测试了搭载骁龙835的“谷歌官方机”Pixel2的跑分:1210。
我们的测试分数,从左至右:华为P20Pro、三星S9、Pixel2。
那么针对这些旗舰机型的对比结果如何呢?Ignatov将团队的初步成果总结为“有趣且荒诞”。
Ignatov称,高通芯片可以加速那些并不兼容所有安卓版本的量化或压缩神经网络。不使用高通骁龙软件开发的典型网络则无法利用其HexagonDSPAI加速芯片,尽管Ignatov注意到如果实现“恰当驱动”,此类网络可以从中受益。
“如果你正在研发一款使用AI能力的app,那么你在骁龙SoC上无法获得任何加速,除非你研发的app只为骁龙处理器服务。”Ignatov称。
另一方面,华为的麒麟芯片性能强大——可以提供近10倍的神经网络加速,但是这与量化的神经网络并不兼容。华为称今年麒麟芯片将支持量化神经网络。(Ignatov注意到华为P20和P20Pro是市面上唯一运行Android8.1Oreo为应用程序提供人工智能加速的手机。)
至于三星的Exynos处理器和联发科的NeuroPilotAI平台,评测结果就有点参差不齐了。
三星自有的处理器只支持Android8.1及以上版本的AI加速,且由于功耗优化和调节(powerthrottling),其性能变化“很大”,有时甚至高达50%。
同时,联发科的芯片组——那些同时支持量化神经网络和普通神经网络的型号,性能稍稍弱于三星和华为的硬件。
“总之,骁龙理论上可以提供优秀的结果,但是缺乏强劲的驱动;华为现在的结果比较突出,且不久的未来可能是最好的;三星目前不支持加速(这种情况可能很快就会改变,因为三星目前正在研发自己的AI芯片),但是CPU很强大;联发科在中端设备上效果较好,但没有什么突破。”Ignatov称。
AIBenchmark是如何测试手机AI性能的
据官网介绍,该benchmark包含9个在手机上运行独立神经网络的计算机视觉任务。这些网络包含大量架构,能让我们评估解决人工智能问题的不同方法的表现和局限性。
任务1:目标识别/分类
神经网络:MobileNet-V1|CPU,NPU,DSP
图像分辨率:224x224px
ImageNet准确率:69.7%。
这是一个非常基础但很强大的神经网络,能够基于一张照片识别1000个不同的对象类别,准确率约为70%。经过量化,其大小可小于5Mb,再加上低耗内存,它可在几乎所有现有智能手机上使用。
任务2:目标识别/分类
神经网络:Inception-V3|CPU,NPU,DSP
图像分辨率:346x346px
ImageNet准确率:78.0%
这是对上一个网络的进一步扩展:更加精确,但代价是规模是原来的4倍,且对计算的要求较高。一个明显的优势是——它可以处理分辨率更高的图像,这意味着更精确的识别和更小目标的检测。
任务3:人脸识别
神经网络:Inception-Resnet-V1|CPU
图像分辨率:512x512px
LFW得分:0.987
这个任务无需过多介绍:根据人脸照片识别出这个人。实现方式如下:对于每个人脸图像,神经网络会对人脸编码并生成一个128维的特征向量,该特征向量不随缩放、移动或旋转而改变。然后在数据库中检索和此向量最匹配的特征向量(以及对应的身份),数据库里包含数亿个此类信息。
任务4:图像去模糊
神经网络:SRCNN9-5-5|CPU,NPU,DSP
图像分辨率:300x300px
Set-5得分(x3):32.75dB
还记得用手机拍出的模糊照片吗?这个任务就是:让图片变得清晰。在最简单的情况下,这种失真是通过对未损坏的图像应用高斯模糊来建模的,然后尝试使用神经网络来恢复它们。在这个任务中,模糊是通过一种最原始、最简单、最轻量级的神经网络SRCNN(只有3个卷积层)去除的。即便如此,它仍然显示出相当令人满意的结果。
任务5:图像超分辨率
神经网络:VGG-19|CPU,NPU,DSP
图像分辨率:192x192px
Set-5得分(x3):33.66dB
你有过缩放照片的经历吗?缩放时是不是会有失真、细节丢失或清晰度下降的问题?这项任务就是让缩放过的照片看起来和原图一样。在本任务中,网络被训练用于完成一项等效的任务:将给定的缩小后图像(如缩小四倍)恢复至原图。此处我们使用一个19层的VGG-19网络。尽管目前来看,该网络的表现并不惊艳,也不能重建高频部分。但它对于绘画仍是理想的解决方案,因为该网络可以让图像变得更加清晰、平滑。
任务6:图像超分辨率
神经网络:SRGAN|仅CPU
Set-5得分(x4):29.40dB
任务同上,但完成方法略有不同:如果我们使用其他神经网络训练我们的神经网络会如何?我们安排两个网络去完成两个不同的任务:网络A尝试解决上面提到的超分辨率问题,网络B观察其结果,尝试找到其中的缺陷并惩罚网络A。听起来是不是很酷?实际上真的很酷,尽管该方法不尽完美,但结果往往非常惊艳。
任务7:语义图像分割
神经网络:ICNet|仅CPU
图像分辨率:384x576px
CityScapes(mIoU):69.5%
有没有想过在手机上运行自动驾驶算法?这没什么不可能,至少你可以完成一大部分任务——根据车载摄像头拍摄的照片检测19类目标(例如,车、行人、路、天空等)。在下图中,你可以看到最近专为低性能设备设计的ICNet网络的像素级分割结果(每个颜色对应每个目标类别)。
任务8:图像增强
神经网络:ResNet-12|CPU,NPU,DSP
图像分辨率:128x192px
DPEDPSNRi-得分:18.11dB
看旧手机上的照片是不是觉得很难受?这个问题可以解决:经过恰当训练的神经网络可以让旧手机(即使是iPhone3GS)上的照片看起来非常好、非常时髦。要做到这一点,网络要观察、学习如何将来自低端设备的照片优化成像用DSLR相机拍出来的一样。当然,这一奇迹有一些明显的缺陷(如:每次换新手机模型都要重新训练网络),但得到的图像看起来非常好,尤其是旧设备上的照片。
任务9:内存极限
图像分辨率:4MP
#参数:69.162
在任务4中我们已经认识了SRCNN,它是最轻便、简单的神经网络之一。但即便如此,在处理高分辨率照片时,它也会让大多数手机“给跪”,因为要处理高清照片,手机至少要有6GB的内存。这项测试的目的是找到你设备的极限,即这个最简易的网络到底能处理多大的图像?
最后,你可以去谷歌商店下载此APP测试下自己手机运行神经网络的能力,不服跑个分?