AI计算中的FP16和INT8,竟然和AI跑分有关_华为
作者:admin浏览数:2020-05-29 16:10:18
端侧AI技术的不断发展,智能手机的“智慧”也在不断增加,AI拍照、AI语音识别等玩法正在朝着多元化和实用性的方向高速发展,AI已成为智能手机的标配。
图:华为P40系列的全新精彩瞬间功能
为了给手机厂商及消费者提供科学判断AI性能方式,很多AI研究机构、跑分软件都推出了AI跑分,然而各平台完全不同的AI跑分结果难倒了吃瓜群众们,为什么测试结果南辕北辙?到底谁更权威?今天我们从AI计算的两种常用数据格式FP16、INT8入手,分析AI跑分和AI体验背后的玄机。
AI计算中的两种数据格式——FP16和INT8
近期,华为麒麟官方发布了有关FP16和INT8的科普介绍,非常浅显易懂。总结来说,FP16和INT8同为端侧AI计算深度学习模型中的常用数据格式,在不同的AI应用中具有独特优势。
什么是FP16呢?在计算机语言中,FP32表示单精度浮点数,相应的FP16就是半精度浮点数。与FP32相比,FP16的访存消耗仅为1/2,也因此FP16是更适合在移动终端侧进行AI计算的数据格式。
相比INT8,FP16浮点计算在终端侧的体验优势非常明显,尤其在需要更高精度图像处理的场景,能够实现更高精度的“抠图”。如今,AI拍照、AI视频等已经成为人们记录生活的智慧助手,高精度带来的高成像效果就显得尤为重要。比如在灯光熠熠的城市夜晚,明暗差更高,这种情况下如果使用INT8计算,位宽不足会导致量化噪声,让画面变“糊”。FP16则能够更好的发挥优势,无论是高亮部分还是暗角部分都能呈现丰富的细节。
华为手机能够长期占据权威摄影榜DXO榜单,就与FP16有很大关系。基于FP16的华为AI-RAW图像处理算法,麒麟990 5G实现像素级处理,让手机在细节增强、色彩、曝光、伪像等方面都呈现出了更出色的图像质量。另外FP16在AI拍照的新玩法上也有更多的探索价值,比如华为最近推出的AI背景路人消除功能,这一功能就需要更加精准的人像识别才能够实现,此外AI人像留色、AI卡路里识别等也是基于FP16实现的。
但值得注意的是,INT8和FP16之间并不是非此即彼的关系。INT8是一种定点计算方式,代表整数运算,一般是由浮点运算量化而来。在二进制中一个“0”或者“1”为一bit,INT8则意味着用8bit来表示一个数字。因此,虽然INT8比FP16精度低,但是数据量小、能耗低,计算速度相对更快,更符合端侧运算的特点。因此,客观来讲FP16与INT8没有完全的优劣之分,只不过在不同的场景有不同的需求。
从芯构建差异化体验优势,跑分只是顺带
2017年麒麟970首次在SoC中加入专门用于AI计算的单元NPU,引领端侧AI计算的开端。但只要多了解华为近些年的手机发展方向就能看出,麒麟芯片的AI布局不仅早,而且还非常准确。
如今,端侧AI发展至今已经有4年时间,各大芯片厂商也都在AI计算力上有所跟进。但玩法最为丰富的还是麒麟,比如今年小米和三星先后推出的“人像留色”功能,早在搭载麒麟980的华为Mate20系列就已经支持了。今年最新的华为P40系列支持AI精彩瞬间、AI路人移除、AI动作捕捉、AI笑脸捕捉等玩法,再次走在AI影像玩法的最前沿,让其他厂商难以追赶。从细节处以小见大,麒麟芯片不仅用自研达芬奇架构NPU实现了高居榜首的AI分数,同时也始终将芯片能力与体验升级结合,真正用AI让手机变得更智慧,构建差异化竞争力。
相对来说,高通虽然也用擅长定点计算(INT8)的DSP实现了较高的AI性能,但FP16的计算只能交给GPU完成,又因为GPU本身还要兼顾其他工作,真正落实到体验上的性能反而不多。
最后我们回到开篇的疑问,为什么不同跑分平台之间的AI跑分不同?本质上还是因为各个芯片平台AI计算方式的侧重不同,就像田径运动员和体操运动员无法同台竞争一样,跑分平台也无法跑出合理的结果。如果选机过程中实在非常关注跑分,可以参考苏黎世理工学院推出的ETH-AI benchmark或者中国电信的AI报告的结果,这两个平台背靠专业机构,测试维度相对更完善。不过跑分终究只是参考,实际体验才是最重要的。关于AI计算的解读,你看明白了吗?
热门评论