诞生|诞生七年的NPU,还有很长的路要走

AI芯片的发展,不仅需要各家厂商的努力,还需要开发者的推动。

诞生|诞生七年的NPU,还有很长的路要走
文章插图
如今许多硬件都被挂上了“智能”的标签,但再智能的处理器都代替不了人脑。
2013年,高通公司提出了“Zeroth”处理器的概念,这款处理器可以模仿类似人脑的认知能力,并实现自我学习的功能。
在高通的设想中,Zeroth的终极目标就是形成标准化的新型处理架构,并且第一次提出了NPU(Neural Processing Unit,神经网络处理器)的概念,这种芯片已经具备了AI芯片的雏形。

诞生|诞生七年的NPU,还有很长的路要走
文章插图
诞生|诞生七年的NPU,还有很长的路要走】2017年,华为海思推出了麒麟970,这款芯片首次内置了独立的NPU。在这之后几乎所有的手机厂商都将AI作为新的亮点,一颗SoC芯片如果没有足够的AI动力,似乎都不能被拿到台面上来。
但距离提出NPU的概念已经过去了七年,AI在手机端的发展似乎并不如人意。

诞生|诞生七年的NPU,还有很长的路要走
文章插图
传统CPU进行累加计算时,效率非常低,但当以英伟达为代表的GPU做类似的计算,效率就会高很多。同样的道理,GPU主要是用来进行图像处理,并没有针对神经网络计算进行特殊优化,这时候使用专业针对神经网络计算的NPU,就可以大大提高计算效率并减少功耗。
假设我们面前有一条没有桥的河,我们应当如何过河?这时候大脑就会涌出各种想法并且比较各种方法的优劣。NPU的工作就类比大脑,在手机中模拟所有可行的方案,并从中挑选一个最优解。有了NPU之后,手机的AI性能就能得到大幅的提升。
从麒麟970的单核NPU、到最新的麒麟9000的2+1三核NPU,华为的AI技术给摄像功能带来的进步肉眼可见,比如取景时的智能场景识别功能,让系统可以快速识别拍摄的物体和场景,并自动做出优化调教。还比如被广大消费者惊叹的“月亮模式”,以及强大的智能防抖功能,都弥补了华为手机在CMOS尺寸以及ISP(图像信号处理)上与其他厂商的差距。

诞生|诞生七年的NPU,还有很长的路要走
文章插图
随后,AI功能逐渐拓展,从手持超级夜景、语音助手、节能优化、智慧识别、识图翻译......越来越多的应用场景都开始运用AI加速运算,这些都得益于NPU的支持。
从硬件层面,NPU可以代替CPU进行处理,让SoC具备了更强的本地AI运算能力(类似于“硬解”)。相比较CPU的“软解”,效率更高、速度更快、功耗也更低。
但即便NPU功能十分强大,如今NPU在手机日常的应用领域还处于初级阶段,它的重要性还远不如CPU、GPU和ISP,属于锦上添花的存在。例如高通骁龙AI Engine引擎之中就没有独立的NPU单元,而联发科在Helio P60/P90引入的NeuroPilot AI技术最早也是通过多个单元协同计算(APU+CPU+GPU)。

诞生|诞生七年的NPU,还有很长的路要走
文章插图
AI芯片只是第一步有了AI芯片的支持,或许能增强手机AI能力,但目前的AI芯片却不能很好地适配所有的软件。
比如,很多直播APP都有实时美颜功能,可以利用降噪、颜色空间转换实现磨皮、滤镜等基础功能,但使用不同的软件可能会造成耗电量过高的异常,这就是软件层面的不适配。
从整个市场上来看,目前AI芯片还处于算法主导到产品主导的过渡期,由于各家AI芯片的设计不同,AI方案架构方面都有不小区别,像寒武纪的“DIANNAO”、谷歌的TPU再到华为的达芬奇架构(NPU),目前AI芯片的设计可谓百花齐放。除此以外,还有单一针对卷积神经网络的ASIC加速器,还有支持简单编程的通用型AI芯片。
虽然各家的AI芯片都开始集成独立的神经网络处理单元,但是在设计上有很大不同。这意味着,在运行机器学习应用方面,几家AI芯片在性能和能耗上有很大差别。因此,第三方开发者是否针对几家的芯片设计进行优化,或只支持某一种设计,会对系统性能产生重大影响。
AI应用需要开发者的努力目前,大多数移动AI芯片在机器学习方面做了较为普适性的优化,而对一些特定的计算方式则没有进行太多优化。并且,开发者在计划从云端到终端的迁移时,还会受制于原本的框架。
因此,当AI应用的开发进入到实际的应用和业务层面,开发者面临着标准不同、API配适、软件优化等很多的难题。
就算开发者开发出同一款AI应用,其兼容性可能会存在很多问题。也就导致开发者必须针对不同厂商的设备进行逐个优化。加之安卓生态比较混乱,移动AI开发者很可能受到更多阻碍。