为什么会说看得更清和AI-NPU也有关系呢?从人们直观感受的角度出发,“看得清”很好理解,比如在夜间我们想要把东西看得比较清楚,但传统摄像头拍摄出的图片往往会出现过曝、色彩细节被淹没的现象,同时走动的人和远处的建筑物周围会布满噪点。那么,在类似这种情况下,如何才能更好地实现“看得清”呢?事实上,视觉芯片要“看得清”离不开的正是AI-NPU大算力的支撑。
图|夜间视频效果对比图
以智慧城市为例,我们已经使用500万像素的摄像头在做智能分析。传统的视频画质的改善使用的是传统的ISP技术,在暗光的场景下,会有大量的噪声,使用AI-ISP可以解决此问题,在暗光场景下依然可以给出清晰的画面,但是使用AI-ISP的技术,就必须用AI算法全分辨率、全帧率地对视频进行处理,而不能采用投机取巧的缩小分辨率或者跳帧的方式进行,因为人眼对于画质的闪烁非常敏感。而500万像素的视频码流,要做到全分辨率、全帧率的处理,就会对NPU的算力提出非常高的要求。
在智能分析的场景中,比如车辆检测和车牌识别的应用,目前常见的是采用500万的摄像头来录制30fps帧率的视频,然后每3/5帧做一次检测,在做检测的时候分辨率降到720P的方法,对于在视频画面中远处的车牌就会识别不出来,对于高速行驶的车辆就可能会漏检,解决方法也是尽量采用全分辨率、更高帧率检测的方式进行处理,而这种做法对NPU的算力同样提出了非常高的要求。
此外,如同前面提到的,除了看得清之外,我们还需要看得懂,所谓看得懂就是要做智能分析,要做智能分析也需要AI-NPU大算力的支撑,我们可以从两个角度来看这个问题。
首先,我们知道AI本身是一个提高效率的工具,它最终还是要落入到场景里面去,这也就是早期的AI+和最近的+AI的概念。那么,当AI落到行业里面去时,它能做些什么事情呢?事实上,AI能做的事情很多,比如可以把一些行业的专家系统用神经网络的方式做一些替代,这就相当于我们要把这样一个“专家”装到我们的AI芯片里,这个专家系统要足够聪明,对应的就是一个比较聪明或者比较大的网络,网络比较大就相当于脑容量比较大,它能够维持存储更多的权重值,这就会对NPU算力提出很高的要求。
其次,从部署的角度来看,目前我们模型的训练大都是在大算力的Server上跑出来的,而部署是在算力有限的端侧设备上,只有将模型或算法的计算量降到端侧能跑起来的程度,才能在应用侧更好的落地。因此需要模型压缩的过程,而模型压缩对技术人员的技术要求很高。如果我们端侧的算力比较高,其实这个过程是可以缩短的。这类似于做嵌入式软件开发的过程,早期受限于算力瓶颈,为了能够跑更多的功能,我们需要非常认真地来压榨硬件的性能,所以用汇编来写程序,但如果算力比较高,我们就可以用C语言来做开发。换言之,用一部分算力来换取开发效率的提升、AI落地的加速是可行的,但这种做法又反过来提高了对NPU算力的要求。
以上,我们分析了AI视觉感知芯片公司为什么要开发高性能大算力NPU的驱动力,但要真正实现大算力的芯片开发难度是非常大的。
众所周知,算力是NPU性能的重要指标,然而很多早期AI芯片的算力其实是标称值,真正使用时并不能达到标称的性能。比如号称1T的算力,结果实际跑下来发现只能用到200G或者是3~400G的水平。所以,大家现在使用更加实用的FPS/W或FPS/$作为衡量先进算法在计算平台上运行效率的评价指标。
图|AI-NPU的设计难点和驱动力
在自动驾驶领域,2017年特斯拉发布FSD芯片时,马斯克用FSD和此前在特斯拉上应用的英伟达DrivePX2相比,表示:“从算力的角度来看,FSD是DrivePX2的3倍,但在执行自动驾驶任务时,其FPS是后者的21倍。”