摘要
ColorOS 做「异构计算」,背后是对智能硬件趋势的思考。
用装载高通骁龙 845 的旗舰机玩 25 分钟「吃鸡」,手机温度就会上窜 11 度,大部分手机在运行这样的图像密集型游戏时,温度都能到达 40℃以上。长时间玩游戏,彷佛手里捂个「暖宝宝」,还会影响到画面帧率和游戏体验。
对手游党来说,手机「发烧」一直没有什么特效药,面对帧率下降带来的操控不顺滑、有明显卡顿感等现象,市面上存在的不过是一些「扬汤止沸」的办法:调成低像素模式、勤清内存、或者装散热神器物理降温。发热还可忍,如果热到挂机就要坑队友了。
开发者和玩家想在手机上体验细腻的画面,流畅的操作,归根到底都会变成芯片的负荷。
SoC芯片示意图 | 来源:网络
一块小小的手机芯片 SoC(系统级芯片)上整合了 CPU、GPU、DSP(数字信号处理器)、RAM(随机内存)等多个不同模块。游戏运行时所消耗的算力,远远超过看视频、浏览信息流。尤其是图像细节多的游戏,它能够占据手机绝大多数的 CPU、GPU 以及随机内存空间,再加上网络模块的加载带宽,手机芯片就打开了「烧脑」模式。
想真正解决游戏带来的「手机发烧」,还是需要让芯片负载降低。主机玩家追求性能,可以直接外接显卡,增加算力;手机重量体积都严格限制的条件下,大幅度增加计算资源显然不行,只能靠芯片性能优化。
只不过摩尔定律将至极限,在有限面积上增加算力「硬件加码」不再有效,必须想更新的「破题」思路。让软件更有效地利用硬件资源?顺着这个「软硬件结合」的思路,「异构计算」应运而生。从原理上讲,异构计算就是让不同的计算单元去执行最擅长的计算任务,灵活调用计算资源来优化效率。
前不久,在 ODC21 开发者大会上,OPPO 软件事业工程部总裁吴恒刚展示了 ColorOS 中「异构计算」降低游戏功耗的能力:在性能不下降的情况下,游戏功耗能够降低至少 10%,随着功耗降低,画面稳定性也同时提高,低帧占比减少 84%,帧间抖动减少 50% 以上。
ColorOS 为什么要研发「异构计算」?
异构计算带来的效果 | OPPO
「异构计算」这个概念可以追溯到上世纪 80 年代年。而在 2006 年左右,芯片厂商就开始尝试把不同的计算单元整合到一颗芯片上。AMD 把高性能 CPU、GPU 做到一颗芯片上的项目命名为「Fusion」(融聚);英伟达则推出了统一计算框架 CUDA 进入主流市场,让 GPU 也能够进行原来 CPU 擅长的通用计算。
CPU 作为通用计算芯片,擅长处理不同类型的数据,做逻辑判断;而 GPU 擅长做并行同类型计算,吞吐量大。AI 算法发展起来后,既需要密集的矢量运算,又需要复杂的逻辑计算,人们自热会想到让不同的计算模块发挥所长,让硬件为软件的需求服务。除了 GPU+CPU 的计算平台之外,FPGA(现场可编程逻辑门阵列)也随之诞生。FPGA 的特点是能够根据计算任务,自定义配置芯片硬件功能。
从发展过程可以看出,「异构计算」的特点是硬件作为算力资源,主动适配软件需求。简单而言,就是算力资源优化。而当 ColorOS 观察到这一趋势后,就希望通过「异构计算」来服务不同智能终端的开发者,特别是类似游戏类型的重载应用。
软件事业工程部总裁吴恒刚介绍「泛在服务生态」| OPPO
OPPO 技术负责人表示,「我们希望可以建筑一个框架能够帮助游戏,或者是其它比较重载的应用程序,充分有效地利用不同的处理器来完成它们的任务。」ColorOS 提出的异构计算是为了性能功耗优化而设计的系统级方案。以 ODC2021 上展示的效果为例子,当游戏运行过程中,大量的图像处理是运算载荷的重要原因。这些图像处理也分不同类型,有的属于画面本身,有的则是画面上的各种图标。
这时「异构计算」技术就可以将图标的图形处理放到 DSP 处理上,降低 GPU 的负载,让 GPU 能够将算力专注于游戏画面处理,这就带来了前文所说的耗能降低,帧率稳定性提升。
不同的计算模块本身就有不同的特性,适合做不同的事情。GPU 擅长类似统一、大规模数据的计算任务。其内部成百上千个运算内核最好能够在并行时做同样的事。将图标的计算任务剥离后,让其专注处理画面,正好可以发挥 GPU 的所长。「综合提高整个手机的运营效率,从而在比较严格功耗、温控环境下,完成更多的任务。」
除了用户侧的使用感提升,从搭建更好用的生态上考虑,ColorOS 做异构计算也希望能够为开发者屏蔽 OPPO 体系内的不同硬件终端的差异。
在万物互融时代,软件开发者面对的是兼容性各异的硬件,在软件迭代中,为了适应新硬件版本,开发者就需要重写代码。「异构计算」希望能够减轻这方面的负担,在 ColorOS 生态内,增加代码运行的通用性。
未来,ColorOS 还会搭建针对图形图像的开放平台,提供接口,让第一方和第三方程序实现性能功耗优化。游戏仅仅是一个应用例子,其它重载软件中优化图形图像计算分布都可以通过「异构计算」的方案来实现。ColorOS 希望未来面对开发者提出的更多需求,共同探讨。「异构计算」本身也会随之发展,未来还能够实现跨平台之间的算力调用。
异构计算开发者价值 | OPPO
ColorOS 在开发「异构计算」背后,是对虚拟与现实融合趋势的思考。在 ODC2021 大会上,OPPO 提出了希望通过强大的感知交互能力和计算决策能力,围绕人的生活场景和行为习惯,构建以用户为中心的「泛在服务生态」。
通过移动终端的服务演变,就能够理解「泛在服务」的趋势。电脑是第一代移动终端,所有的数字服务开始基于网页开发;手机是第二代移动终端,基于手机 App,人们有了现在的线上线下联动的互联网生活。未来将会怎样演变?很可能是不再以某个硬件终端为中心,而是以人为中心。
这个趋势已经初现端倪,以智能手表为代表的穿戴设备,以智能音箱为代表的居家设备一点点环绕在人们周围。基于此,「万物互联」的概念出现。而万物为什么需要互联?必然是为了服务人。「泛在服务」便可以理解为以人为中心,使人和设备之间的互动更加自然无感、虚拟和现实更加融合、多设备无缝互联互通的舒适体验。
从生态建设角度来看,「异构计算」正是泛在服务生态的算力支撑。
如果要做到「泛在服务」所说的以人为中心,就需要把虚拟和现实之间的融合做到最好,而 AI 渲染和光线追踪技术就是用来提升虚拟画面真实感和趣味性的技术。
基于 AI 渲染技术的 Omoji 虚拟形象,能够让机器捕捉人脸的细微变化,使用户在虚拟世界中用卡通化身照镜子般表达情绪;首次在手机端实现的光线追踪,能够让自然环境中会出现反射、折射、阴影等等效果在手机上实现。这意味着手游玩家也可体验最先进的图像渲染技术。
光线追踪效果(开/关)| OPPO
AI 渲染和光线追踪这样的技术一方面提供更好的视觉体验,同时带来整体计算量增大,功耗增加。所以需要通过「异构计算」来降负载,甚至可以做到多设备之间的算力充分利用。
提出「泛在服务」,OPPO 背后的思考已经超越了手机厂商的视角,而是站在数字化发展的规律来看未来。在新的生态来临之前,OPPO 希望不要被颠覆,这既是居安思危,也是未雨绸缪。在无处不在的服务中,算力也一定是分散的、原子化的。
基于此,「异构计算」作为算力支撑的存在形式会持续发展。同时,AI 渲染和光线追踪技术也是支撑「泛在服务」算力能力的重要技术,并且与「异构计算」密不可分。
Omoji | OPPO
目前 ColorOS 展示了跨硬件的案例只是第一步,未来很可能会出现更多不同形式:跨平台、端边云协同的「异构计算」。这样便能够应对多设备之间的协同运转。
吴恒刚在 ODC2021 上以开车去超市购物为例。这里面涉及找停车位,再在商场里寻找物品,付款、打包回车上几个环节。智能服务能够优化每一个环节,扫描定位系统可以帮忙寻找停车位和货物,电子扫描后不必排队就可以付款,小型机器人能够将货物运到车上。
如果从硬件终端来看,完成这些事,会涉及到车载智能、手机终端、商场传感系统,小型机器人等不同设备。要让这一系列服务围绕人发生,数据传输、运算、算法调动上必须实现兼容。背后的算力资源调配,就需要跨设备,甚至是跨平台的「异构计算」实现。
回到自身定位,ColorOS 希望先在自己的开发生态内实现「异构计算」,联接可以联接的开发者,创造开发条件和环境,更大程度上是一次对「未来计算」的前置思考。
领取专属 10元无门槛券
私享最新 技术干货