03.02 华为如何不改硬件,通过写代码就把手机变快了?GPU Turbo别人学不去吗?

雪鹰365


如果手机厂商也有自己的CPU,也有自己配套的系统,通过软硬件协同的方式,然后提高图形加载速度,肯定可以做出另外一种GPU turbo!但是,现在除了iPhone,似乎也找不到系统和处理器都是自己的手机了!

在这里我们先讨论iPhone

这就是先回答第二个问题!

首先,iPhone会不会尝试这种GPU turbo?我们知道在iOS12出现的时候,它提升了App启动速度快了40%。仅仅这一点,我们可以预估,iPhone可以通过软件方式提高硬件能力。而本身iPhone在游戏性能上都是业界数一数二!


所以,它有必要提高或者研究这种能力吗?华为GPU turbo 对单线程进行提升,但是很多游戏第一时间都会多性程的iPhone进行优化,其实相差并不大!

所以,别人能学会,但是得用自家的系统和处理器,高通如果愿意和手机厂商合作可能也行,可是你认为高通愿意吗!

华为如何做的?

同样采用我看到的一个技术贴的分析。我觉得很有道理,那就是:

为了不超出TDP功耗限制,关闭多数CPU核心,同时对GPU进行超频,以此来提升3D游戏性能。

这里TDP:CPU散热功耗,比如手机CPU会设置它能承受的散热功耗为10w TDP,也就表示这款CPU可以承受10w功耗的散热。

这里一方面为了维持手机的散热功耗,采用单线程,将GPU进行超频,不过我在这里猜测为软件超频,来将图形能力提升!

总结

所以,GPU turbo作为一种掀起了行业风暴的技术,可能在未来会有厂商和处理器厂商合作,但是也不否认他们会用其他方式进行优化方式。这个就等他们更吓人的技术了!


LeoGo科技


昨天试着回答了一下这个问题,其中把GPU Turbo归纳为“软件超频工具”,后来思考了一下觉得还是欠妥当,今天再来把话说说清楚。


我不想纠结于技术细节的讨论,只是提出这样一个观点:在认可GPU Turbo效果的同时没必要把它过于神话,“软硬件协同”的意思是这样的优化目前只能用在华为的麒麟芯片上。


有些文章提到了诸如“驱动的HAL层”、“Linux Kernel”、“核函数”、“全局内存”这样的技术术语,非技术人士一看就会觉得是了不得的黑科技,起到了吸引眼球的效果,但事实上GPU Turbo只是一种较为底层的软件优化。


“华为消费者业务软件工程部总裁王成录博士解释道:华为麒麟的GPU走的是高主频少核心的路子,理论上高主频设计能带来非常不错的性能表现,但也需要进一步控制功耗。而 GPU Turbo 技术则是通过软硬件相结合的方式,将“肌肉”的使用进行更有效的重新规划,从而是现在提升帧率表现的同时,也降低了功耗发热。” 用一句大白话来说,就是把硬件资源重新优化,用到“刀口”上去。



华为的麒麟也好,高通的骁龙也罢,底层用的都是ARM的IP,只不过一个是公版架构,另外一个是自研的架构,两者还是有很大的相似性。GPU Turbo可以给华为芯片优化,理论上也可以进行定制后给高通的芯片使用,只不过从商业的角度华为没有这样的动力罢了。


那为什么高通不开发这样的优化功能呢?原因也很简单:如果硬件就能解决问题的话就不需要用软件优化了。华为推出GPU Turbo的根本原因还是在于华为芯片的性能不如高通,硬件拼不过只能用软件来弥补,这是我们无法忽视的一个事实。


当然,GPU Turbo和小米为提高跑分而进行的优化是有本质区别的,毕竟带来的性能提升是实实在在的。在这点上必须肯定GPU Turbo是一项有技术含量的创新和一个成功的先例,只不过没有某些宣传中所说的那么“黑科技”而已。


最新补充:“8月2日,高通骁龙将在上海举行移动游戏体验媒体沟通会,有消息称,在会上高通骁龙会宣布“Adreno Turbo”模式,针对手游进行优化提升。” 看来高通也要上Turbo软件优化,要进一步和麒麟芯片拉开差距了。



高挺观点


前段时间,华为在荣耀Play的发布会上正式发布宣传已久的“吓死人的技术”——GPU Turbo。相信不少发烧友都被该技术震惊到了,根据华为的介绍,拥有GPU Turbo技术加持的麒麟970芯片在玩游戏的时候可以吊打某些骁龙845手机,终于为被高通打压的麒麟芯片出了一口恶气。


根据华为目前透露的信息,笔者在之前发的文章就分析过,GPU Turbo技术的原理是通过软件与硬件相结合的方式,通过关闭大部分CPU的核心线程,只留一核进行超频的技术原理来提升图形处理效率,并且降低芯片的能耗。那么,别的手机厂商会跟进此技术吗?


答案是不能。首先看华为方面,和海思麒麟一样,目前华为并没有打算将GPU Turbo技术提供给友商。毕竟目前海思麒麟的产能跟不上,任正非表示即使是今年,海思麒麟的供应量都不能自给自足,还需要向高通购买芯片。所以,在不提供麒麟芯片的前提下,GPU Turbo技术对友商就没有任何意义。

从技术层面来看,和GPU Turbo类似的技术,只有华为、苹果、高通这种厂商才有可能做到,连三星可能都不行,毕竟三星连高通都抵制不了。华为GPU Turbo是一项软硬件协同的技术,一定要在EMUI和海思麒麟的基础之上实现的。相信对手机较为了解的朋友都知道,想要优化一个程序,需要涉及到很多内容,包括驱动的HAL层,甚至内核的linux kernel层。


仅仅是以上这些还不够,提升芯片的性能,前提一定要对芯片有足够的了解。华为的海思麒麟是自己研发的,而别的手机厂商都是用的高通芯片,只能坐等高通的API调用,完全不是同一个技术水平的。

不知道各位看官们是如何看待华为吓死人的技术GPU Turbo的呢?欢迎在下方评论留言,让更多人看到您的观点,谢谢!


科飞猫科技公社


第一个,按照华为自己的说法,所谓的GPU Turbo不是纯软件实现的,而是软硬协同,所以这个问题本身就问的有问题。

按照网上一些大神的猜测,GPU Turbo应该是在麒麟960那个时代就开始布局了,其中的机关可能跟华为的一个关于内存的专利有关(专利《一种优化核函数的方法和装置》),所以华为可能在麒麟960中就在芯片中增加了一些不为人知的机构,现在技术成熟了,才放出来给大家一个惊喜。

而要做到这一点,就不仅仅是写软件的问题了,而是要厂商有实力自己设计芯片——他们得要按照自己的需要往芯片中增加一些硬件机构。所以目前为止,全世界就只有苹果、华为和三星可以做到,因为只有他们既是手机芯片设计者,又是手机生产商。

第二个,写代码不是你想写就能写的。

有人老觉得写代码就是你坐在电脑前面写“我要芯片加速运行”,然后芯片就加速运行了。实际上写代码要比这个复杂很多,很多情况下如果不能够了解硬件的底层结构,那么写出来的代码远远达不到提升硬件使用效率的目的。

像国内的其他手机厂商,用的是高通或者联发科提供的成熟芯片方案,你想改变硬件的调用方案,就必须要跟这些芯片厂商合作,人家愿不愿意跟你合作是一回事,你有没有能力吃透这其中的技术又是一回事,毕竟华为是芯片-手机-系统三位一体,而其他国产手机厂商则跟芯片厂商之间始终隔着一层膜,所以要麻烦很多。

所以说,能够有自己的芯片,是华为在很早之前下了大决心布下一场大棋局,现在到了收获的时候了。而且不仅仅是GPU Turbo,包括刚刚爆料出来的华为“达芬奇计划”,在AI芯片上的发力,也是这个布局的成果之一。显然,大量的研发投入,总是会获得收获的。


航小北的日常科普


相信这段时间华为的GPU turbo技术可以说让非常多的人关注了,那么很多人可能就会有疑惑,华为是如何不改动硬件,而是通过软件优化,就可以把手机的速度变快,难道这项技术别的厂商学不去吗?

其实,并不是学不去这项技术,而是这项技术确实是有难度的,如果手机厂商都有自己的CPU的话,也有自己配套的一些系统,我相信通过工程师的攻关,可以把手机软硬件的协同方式,还有图形加载速度的技术做出来,所以那时候,肯定也就是另外的GPU turbo技术了,但是现在手机芯片出来苹果之外,恐怕找不到一加系统和处理器都是自己生产的手机了,所以关键之处在这里,可能你的处理器是自己生产的,但是你的操作系统却不是自己开发的。

那么,我们再回头看看国产手机,像vivo和OPPO,小米之类的手机厂商,他们可以也和华为一样只通过代码进行优化系统吗?其实目前来说还是不现实的,华为底下有自己生产的海思麒麟处理器,所以可以通过技术对自家的处理器CPU和GPU之间的瓶颈进行打破,这就是GPU Turbo技术的实质,所以对于高通和联发科处理器的手机厂商来说是非常困难的,只能通过系统进行优化。

所以,最后回到那个问题上,华为的GPU Turbo技术,确实是非常的厉害,而其他的手机厂商因为手机处理器的因素也无法对其进行学习,大家的对于华为GPU Turbo技术,有什么不同的看法,可以在下方留言,咱们一起探讨!


帆辰科技


类似于GPU Turbo这样的技术,只有华为和苹果这样的厂家可能推出,三星都不行(三星连在自家旗舰上拒绝用高通都做不到,怎么会搞这个),其它友商自然学不会。必须有操作系统和驱动的参与才能正常的使用硬件,操作系统和驱动决定了硬件的使用方式,这些都是通过软件升级的,硬件只是负责运算,不负责怎么运算。

之所以说GPU Turbo别人学不会是因为这个技术涉及操作系统和硬件,华为自己能修改Android底层又自己做处理器。GPUT Turbo是一项软硬件协同图形加速技术,是在EMUI与华为海思自己的硬件基础上实现的,想要实现类似的技术需要对Android操作系统的底层有修改的能力,目前国内的厂商中可能只有华为和小米能做到这点,这里面华为做的更深入一些。

看看Android的框架图就知道了,想要优化一个程序的使用需要涉及到很多层,其中包括驱动所在的HAL层,甚至与硬件直接打交道的内核linux kernel层。


仅仅这些还不够,你还需要对硬件有足够多的了解,华为的芯片是自己设计的,而其它厂商采用的是高通的芯片,只能使用那些提供的API调用,完全不可同日而语。



萌哈科技


这个问题是错的,华为基本上是没有能力在不改变硬件的情况下做如此强的优化。连国际大厂NVIDIA都做不到,华为很难。(其他人的文章基本上能介绍gpu turbo的大体上的原理,大部分差别不大,我从另外一个角度说吧。)

为什么说很难,一个简单的例子,CPU线程或者是多核心优化。拿火车站举例。人是数据,一列火车就是一个核心。人进火车站时间不同,也就是说单位时间内数据量不一样。这时候做了多核优化的cpu在数据流大的情况下优势很明显了,可以开多列火车同时输送,而单核只能通过加快火车速度来处理。但是相比之下,只有一列火车,那么售票员只需要卖一种票,但多列火车就要卖不同的票,并且,如何分配人流量,这也是一个问题。

那么,1列变2列,不足为奇,那一列变16列的?请问有多少种组合?所以大而复杂的程序优化很难很难,而且有的时候并不是投钱就做的了的,还得要时间,人才。华为的这次优化普遍适用于各种软件,并且在很多层的协议上,指令上都有变更。

所以,综上可以证实华为是软硬件一体的优化,麒麟的soc,emui系统,这些都是一定程度上可控的,所以华为能做深度优化,就像我之前回答的,为什么高通做同样的优化不行,首先就是专利等一些外部条件,最重要的是高通soc运用于各种系统,不做定制的深度优化,差别还是很大的。与其说高通去学这项技术,不如升级自己的架构


jhuf1


我是不请自来。

华为最近对gpu turbo做了专门的沟通会。介绍了这个技术是如何实现软硬件高度协调调度的。

最后大家听完了,明白了,原来华为跟苹果走的一个路子,这种事情谁都可以学,前提是cpu gpu是自己设计的,底层的微代码舶来品是不会公开给你的,只有你有这个设计能力才可以,微观电路世界都是纳米级的,难度是可想而知的。

有了芯片的设计能力,系统层面上你要把上层,中层,底层调用,都捋顺了,安卓中层代码上非常混乱,底层代码也是,所以华为工程师们自己编写替换了几十万行代码,让app调用端口一致,调用逻辑一致,同时它加入了ai,预识别画面,如果下一侦画面变化不大,那gpu渲染就不用整图重新渲染了,而是只渲染不同的部分。这样,效率高了,又省点,降低功耗了。

这种软硬件优化协同调度的事儿苹果一直做的是最好的,高通有做什么应对么?除了狂堆核心,提硬件性能好像别的什么也没做。

谁都可以学这个技术,但前提是处理器是自己设计的,有系统底层改造的能力。否则你连玩的资格都没有。高通没有修改优化系统的团队,它也不会去做。

现在有这种能力的只有苹果,三星,华为了。这种玩法继续下去,那以后安卓阵营逐渐就成了华为和其他安卓厂商了。这种技术没把消费者吓一跳,倒是会把安卓友商们吓得够呛。。。。。


曾经过往24


在回答这个问题之前我们首先要了解清楚GPU Turbo是个什么样的牛逼技术?以及它的原理是什么?还有它的实现难度有多大?

GPU Turbo技术是一个图形处理加速技术,通过软硬件的优化协同,从而实现图形处理效率的巨大提升,并降低了功耗。GPU Turbo的出现打通了EMUI操作系统以及GPU和CPU之间的处理瓶颈,实现了整个系统的图形处理效率的极大提升。我们的手机由硬件底层到可以看到的系统,由内到外分为硬件、内核、驱动、配套、中间件和框架层。因为安卓开源的问题,每层里面都彼此混乱,应用调用的代码层级不同、无用代码、同一个数据调用位置不一样,都会造成冗余计算的增多以及无效的计算输出增多。这样就会造成图形处理能力的下降以及功耗的增加。GPU Turbo所做的其实很简单。就是通过对每层的代码优化调用。从而让GPU与CPU实现全新的沟通方式。让GPU可以多线程、多连接地主动接收CPU指令,大大增强GPU处理图形的能力和效率,如果把GPU比作汽车的气缸,GPU对图形的处理指令来自于CPU,就像气缸工作需要空气一样。以往的芯片,CPU与GPU之间的指令传输,就像汽车的自然吸气发动机,通过气缸内外的气压差吸引空气进入,这种方式会导致燃烧效率低。GPU Turbo技术就是让CPU和GPU之间的指令传输效率大幅度提升,减少GPU的冗余计算消耗,更高效的完成CPU指令。就像在气缸中加入了涡轮,主动往气缸中吸入并压缩空气,提升气缸气压和氧气密度,大幅度提升燃烧效率。

当我们运行游戏的时候相邻的两帧画面往往是有很多地方是相同的,手游玩家应该对这一点很有体会,你这一帧在G港集装箱里,下一帧有很大的概率依然在集装箱内。特别对于一些LYB而言,很有可能一整场都趴在草丛里,游戏30分钟稳定保持在同一个画面。而GPU Turbo技术在预判到游戏画面下一帧没差别的情况下,就会只渲染画面出现变化的地方。举个例子,2帧之间可能有80%的画面是一致的,GPU Turbo就会让芯片只渲染变化的20%,从而减少GPU 80%工作量。渲染工作量的减少大幅提升了下一帧的帧数延迟,用户眼球感受到画面掉帧需要16.7毫秒的时间,华为GPU Turbo可以把下一帧的渲染时间控制在7毫秒以内,最快可以在短短3毫秒以内就完成下一帧的渲染工作。你可不要小看这个 减少GPU%80的工作量能力。它可以让你的手机一天少充几次电,可以让你的手机避免因过度使用而出现的严重发热 发烫的现象。华为的GPU Turbo技术其实就是通过合理调度GPU资源,节省GPU性能到最需要的地方。从而极大 的提升GPU的图形处理能力。说白了,华为的GPU Turbo技术其实就跟我们平时在电脑上下载的windows 优化大师一样。都是通过对底层优化调用来提升GPU和CPU的处理的能力的。但是又有点不同。不同在于其实现的难度不一样。这我们就得从华为的麒麟芯片的架构开始说起了。我们就以华为的麒麟970芯片架构为例来进行分析。麒麟970CPU部分采用的是ARM公版A73架构+A53架构大小核心搭配,4个A73大核最高主频为2.4GHz,4个A53小核最高主频1.8GHz,GPU方面,麒麟970采用的是ARM Mali-G72MP12,这是一款12核的图形处理单元,也就是说,麒麟970的GPU与CPU一样,也是会根据实际使用的需求来决定启用具体的核心数,而不是一直保持火力全开的状态。说到这你就可以看出华为的深谋远虑了吧。华为从研发麒麟开始就已经开始对GPU和CPU进行优化了。只不过发展到了现在的GPU Turbo技术,更加高级,更加牛逼一点了而已。换而言之。华为的GPU Turbo技术是在华为的麒麟芯片对GPU和CPU的优化上进一步优化而得来的。也就是说你必须要拥有华为的麒麟芯片才能实现GPU Turbo技术。但你想一下,这有可能 吗?我们的大麒麟可是谁都不卖的。也有人会说,我了解了你的原理。再盗回去在自家的芯片架构平台上(比如高通 三星 )进行复制不就可以了吗?

制造原子弹的原理谁都懂,但是数来数去也就只有中国 美国 俄罗斯等少数几个国家能做的出来。处理器的制造原理中国也知道。但是偏偏就是造不出来。可见就算明白了原理也不一定能造得出来。而且华为的GPU Turbo技术是自家麒麟芯片架构平台上进行优化的。如果友商想要复制这一技术在其它平台上进行优化定制,就意味着要进行重新的研制开发。华为为了研制这个GPU Turbo技术花了五年时间。华为的研发实力是全球属目的。你就想一下其它友商要多少年吧?

而且这里面还有关乎专利的问题,像华为这种全球性的科技公司会不为自己的科研技术进行专利申请吗?一旦友商用了华为的GPU Turbo技术,要么给钱,要么法庭见。

所以说华为的GPU Turbo技术别人就算是学去了,只怕也得给华为交钱。如果自己进行重新开发可就不知道要花多少时间了。


大波电影观


因为华为买了ARM的公版芯片设计方案后,加以改造,采用了自己特有的芯片指令(一般是预处理指令),可以针对某些复杂的指令进行批处理优化(例如,批量图形渲染),所以只要在手机操作系统底层对该部分指令进行调用就可以“加速”某些特定的操作。

这有些类似显卡驱动程序,在芯片中是有“抗锯齿”“HDR”等功能,但要通过驱动程序判别硬件并适配调用此类功能指令才能用到此部分功能的硬件支持。

因为华为的芯片是自己的,所以其操作系统的“优化”也只能针对自己的芯片。

不是别人学不来,而是因为大多数手机厂商用的是高通的CPU芯片(正确点来说是SOC),高通芯片是通用型芯片,因而无需特定的手机操作系统对其优化。

在芯片竞争上,尽管大家不是太喜欢听,但高通确实有优势,并在功耗和性能上取得均衡。

利用操作系统去优化硬件性能一般是软硬设计一体的公司才能做到(例如苹果公司三星公司),所以华为其实也是“学”人家的技术来做的。

另外,因为操作系统(安卓和Linux)是开源的,如果华为修改其底层代码做适配优化而不公开源代码的话,将会面临违反开源协议诉讼。


分享到:


相關文章: