msm8960

前言:优化差有多要命?3A大作告诉您
说到最近游戏圈子里的热门话题,刚刚在全平台上线的某“国产3A大作”显然绝对值得一提 。一方面来说,靠着“抽卡化单机游戏”的设计,以及投入几十万元都难以实现全角色满状态的高氪金程度,使得其成功证明了自己的确没有抄袭隔壁任天堂的良心大作,在“原创程度”上值得肯定 。

msm8960


但另一方面来说,作为一款官方号称花了一亿美元开发的大作,这款话题游戏又有着甚至连低成本页游都足以在其面前自傲的贴图质量(比如某知名的水果摊),以及无论手机配置多高、价格多贵、散热效果多好,都只能达到30帧的流畅度体验(安卓版本) 。
说实在的,我们三易生活并不是专业的游戏媒体,因此也不想去追究一款本应备受期待的国产大作,到底为什么会搞成现在这个样子 。但从我们自身所进行的简单测试结果来看,“它”在顶级旗舰手机上帧率不足的原因,似乎并不能简单的归结为游戏体积过大,或者含有主机移植内容这么简单 。
msm8960


这是我们手头的某台绝对够旗舰的安卓机皇,自带的性能监测结果
因为哪怕是在并不复杂的场景中,我们三易生活手头这台旗舰机型自带的性能监视器也明明白白的显示,GPU已然不堪重负,但CPU却几乎没有被占用多少算力 。换句话说,整个手机SoC的综合性能,其实并没有被充分和均衡的发挥出来 。
那么这就不禁使我们脑洞大开了,是否存在这样一种方法,可以拯救诸如此类优化不佳的程序,让它们能够更充分的利用当今主流芯片不同处理部件的算力,从而给消费者带来更流畅也更正常的体验呢?
有的,这就是异构计算“终极方案”oneAPI
2019年6月17日,一年一度的国际超级计算大会在德国拉开帷幕 。在这一场主要旨在讨论超级计算机、区块链、量子技术的活动中,知名行业巨头的Intel也预告他们最新研制出的一个“小玩意” 。
msm8960


而这,就是今天刚刚发布1.0正式版的oneAPI 。虽然乍看之下只是一个面向大众的、开源的编程工具,但是oneAPI给整个行业带来的震撼,却远远地超过了目前可能任何一台超级计算机、顶级显卡、新款游戏主机,或是旗舰智能手机 。因为它即是整个计算机编程领域有史以来第一个能够同时兼容CPU、GPU、NPU、以及FPGA四种基本架构,完全不同的处理器硬件的“终极解决办法” 。
msm8960


这是什么概念呢?简单来说,在如今PC或者手机的一颗“处理器”芯片里,实际上往往集成了多种用途的处理单元 。比如说擅长标量处理的CPU、擅长矢量运算的GPU(图形处理器)、擅长矩阵计算的NPU(神经网络处理器),有的甚至还会集成有擅长空间运算的FPGA(可编程逻辑门阵列) 。
但问题在于,各种用途的处理单元它们架构迥异,所需的编程工具各不相同 。过去,假设一位程序员想要在Ta开发的游戏里,把原本由GPU运行的物理计算过程改为由CPU执行,把原本由CPU负责的战斗AI判断过程交给NPU去运算,那么就将不得不同时使用三种完全不同的编程工具,并且深刻理解三种不同架构硬件之间在算法、原理,以及计算方式上的差异才行 。
msm8960


说实话,这的确不是一般人能搞定的事情,至少在oneAPI出现之前是这样 。但在有了oneAPI后,程序员只需要学会一种统一的代码(DPC++),然后在写完代码后,选择这段代码是交给CPU,还是交给GPU,亦或是NPU去运行,oneAPI就能自动完成代码的转换和优化工作 。如此一来,“仅用一种语言,编写出自动适配多种不同计算架构的程序,并让程序在运行时更充分的利用现代数码设备的异构计算能力”,就突然间变得轻而易举了 。

推荐阅读