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)是開源的,如果華為修改其底層代碼做適配優化而不公開源代碼的話,將會面臨違反開源協議訴訟。


分享到:


相關文章: