近日,Google发布了其下一代Pixel2手机,该手机的卖点是强大的Google Assistant人工智能助手,以及惊艳的拍照能力。最初,人们津津乐道的是Pixel2使用单摄像头结合强大的机器视觉算法就能完成传统双摄像头才能实现的动态模糊功能。近日在Google的官方博客上,又公开了Pixel2中使用的一颗专用图像处理协处理器,即ImageProcessing Unit (IPU)。这是Google在用于服务器的TPU之后,推出的第二颗芯片,只是这次针对的是移动端。我们认为,IPU的发布一方面彰显了在摩尔定律遇到瓶颈的今天,异构计算正在渐渐成为主流;另一方面,则彰显了互联网厂商为了营造自身的生态而制造相应的硬件作为入口的决心,为此不惜花大代价制造专用芯片。
IPU初探:真的仅仅是加速拍照吗?
根据Google官方博客的爆料,这块IPU拥有八块定制的专用IPU核心,最高运算速度可达3TOPS。除此之外,IPU还可以使用LPDDR4接口以及PCIe接口与主处理器或内存交换数据。另外,它还搭配了一块ARM A53核作为控制单元。
Google为这块芯片的定位首先是加速HDR+。HDR即高动态范围摄影。大家知道,一般RGB图像为多个颜色通道进行了数字编码,而数字编码的动态范围是有限的。一旦超出了这个动态范围(即光照的对比度过强),就会出现失真(如下图上半部分所示)。当代计算机视觉解决这个问题的办法就是HDR,通过减少全局对比度(动态范围)但是保留局部对比度的方法,可以在保留细节的同时避免动态范围过大的问题(下图右下角)。HDR是目前手机和数码相机的标准功能,但是需要大量计算,因此在拍摄选择HDR模式之后,会需要一定时间的处理才能完成HDR运算。而Google的IPU正能加速HDR运算,因此可以减少HDR处理时间。
夜景拍摄不使用(上)和使用HDR(下)效果对比
在现有的手机中,HDR是图像处理的重要部分,不过加速HDR真的需要一块专用芯片吗? Pixel2为了加速HDR专门开了一块芯片,其野心显然不止于优化日常拍照留念。 其真正的目的在于人工智能应用。Pixel2中的人工智能机器视觉应用,几乎一定会使用摄像头拍摄的画面作为输入,来执行从图像中提取信息的任务。例如,GoogleLens可以识别图像中的物体,并且从网上搜索相应信息。然而,如果这样的特性只能使用在静态图像中,那么其用途就被大大限制了。为了能把类似的功能使用在动态视频中实现实时识别,则需要视频在送进人工智能算法之前需要进行包括HDR在内的一系列预处理才行,否则会大大影响人工智能算法的准确率:如上左图,图像未经过HDR处理前一片漆黑,根本无法识别其中有什么。于是,为了实现实时视频人工智能识别(以及其他图像相关应用如直播中的美肤),必须配有高速HDR处理能力,这或许也是Google开发IPU以加速HDR处理速度背后的野心。
Google Lens配合IPU可实现实时物体识别
除此之外,根据Google博客,IPU还有能够加速机器学习应用。可见,目前IPU对于HDR加速只是Google“以AI为中心”智能设备蓝图中的冰山一角,未来还有更大的目标等着慢慢浮出水面。
异构计算已成趋势
从技术角度看,Google在Pixel2中集成IPU是异构计算成为趋势的又一个力证。异构计算出现的主要原因是半导体摩尔定律在特征尺寸到达纳米数量级后因为物理(量子效应)和经济(研发新制程太贵)原因遇到瓶颈。在过去,绝大多数应用都会执行在支持通用编程语言的处理器上,如果处理器目前无法流畅执行也没关系,等一年工艺制程更新了新出的处理器就能带动了。然而,在摩尔定律接近瓶颈的今天,不能再期待下一代通用处理器能实现很大的性能进步。因此,为了能高效执行特定应用,为了应用(以及专用领域编程语言)特别优化的异构协处理器就变得越来越流行。当执行特定应用时,主处理器把相关运算分配给专用协处理器执行,从而实现高效执行。
Google是异构计算的积极践行者,之前发布的两代TPU就堪称使用异构计算加速机器学习应用的经典之作。这次公布的IPU也是异构计算的典型例子,IPU支持加速的编程语言包括Halide和TensorFlow,其中Halide是为了机器视觉硬件执行效率进行过仔细优化的编程语言,可以轻松写出各种并行执行结构,在高性能机器视觉领域得到了大量应用。TensroFlow则是目前最著名的深度学习框架之一。因此,IPU异构计算主要加速的就是机器视觉以及机器学习领域的计算。
除了Google之外,其他公司也在异构计算的路上探索。例如,Microsoft在HoloLens上也设计了两代加速AR计算的协处理器HPU。其他半导体厂商,如华为海思和苹果则选择了集成度较高的路线,并没有在手机系统中加一块新的芯片而是在原有的SoC中集成加速人工智能运算的IP模块执行异构计算。然而,毋庸置疑的是,标准化SoC一统天下的时代即将过去,系统越来越多样化的异构计算则成为新潮流。
互联网巨头为营造生态进军芯片行业
从商业角度看,我们观察到一个有趣的现象就是互联网/软件行业巨头纷纷进入硬件甚至芯片行业。在GoogleIPU之前,Microsoft就已经推出了用与HoloLens的HPU,而在未来或许会有更多互联网巨头进入芯片这个领域。这些公司的根本目的是为了营造自己的生态,包括硬件入口,运行在硬件上的软件应用,以及在软件应用中的增值服务。在这三部分中,最终帮助公司盈利的是服务,因此硬件上可以不惜成本,但是务必要做到能流畅运行应用。这也是为什么Google愿意花钱养一支团队做芯片,并且敢于在手机系统中生生加入一块新的协处理器——在传统逻辑中,手机成本非常关键,要是想靠手机赚钱根本不会有空间给你加入一块新的芯片;然而Google根本没指望靠Pixel系列手机赚钱,它想做的只是让大家能流畅体验自己的AI服务,成为自己AI生态的重要入口。
在未来,会有更多的互联网巨头入局芯片。这从另一方面也给目前被几大传统巨头垄断的芯片行业带来了一股新风,也会给行业带来更多价值。让我们拭目以待!