當前位置:
首頁 > 新聞 > 從Tegra K1和Denver,看那些年我們一直誤會的NVIDIA CPU

從Tegra K1和Denver,看那些年我們一直誤會的NVIDIA CPU

提起NVIDIA,可能99%+的朋友第一反應是「顯卡」和「GPU」。世界上兩大GPU巨頭之一、GPU領域絕對的霸主嘛,地球人都知道,前些天還剛剛發布了全新的Turing架構和RTX 2080Ti/2080/2070顯卡呢。

這其實也沒什麼毛病,不過近幾年以來,人們在麻木於NVIDIA GPU強大的同時,似乎冥冥之中忽略了某件事情。NVIDIA的GPU強不?確實強,爆炸強,不管是PC端還是SoC上,有目共睹,人盡皆知……emmm,然後嘞?

直到前陣子看到了這樣一張圖:

顯然,這是一張對目前市面上主流SoC的簡要概括,生動形象簡明易懂。不過看到最後一個的時候,我瞬間意識到了人們之前忽略了哪裡:NVIDIA SoC的CPU怎麼樣,真的是像圖上畫的一樣么?


CPU不行?這還真不服

實際上,NVIDIA對SoC的設計並不陌生,到目前為止他們已經發布了7代Tegra系列SoC。NVIDIA一直在Tegra SoC中使用自家的GPU架構,但前幾代的CPU部分用的則是Arm公版CPU內核。與同時期的高通三星聯發科處理器相比,除了「祖傳」的GPU外並無其他出彩之處。倒也有不少手機和平板電腦使用了Tegra處理器,還算差強人意。

然而即便時間僅止於此,我們似乎也挑不出NVIDIA SoC中的CPU有什麼毛病。非要說的話,不知NVIDIA黃教主是否為蘋果喬幫主的鐵杆擁躉,這幾代Tegra均沒有集成neon協處理器,flash播放能力欠佳。至於使用Arm公版CPU內核雖然不假,但是同時期的三星華為聯發科德州儀器用的也都是公版內核。

更何況,NVIDIA在CPU上的野心和實力,遠非人們的固有印象可以衡量。

在2011年的CES上,NVIDIA對外公布了Denver計劃,宣布將要開發基於64位Arm v8指令集的自研架構,用於從移動設備到伺服器等各種設備。短短三年後的2014年CES,NVIDIA便推出了使用自研Denver架構的Tegra K1上,並依此成為了繼蘋果之後第二個發布基於Arm v8指令集的消費級SoC的公司。

時間回退4個月,2013年9月,蘋果在其A7處理器上出人意料地使用了基於Arm v8指令集的Cyclone 架構。此後的一年多時間裡,市面上基於Arm v7指令集的Cortex A15公版架構和高通Krait自研架構,甚至包括同樣基於Arm v8指令集的Cortex A57在內,所有其他同時期的CPU架構均被Cyclone橫掃。

除了Denver。

據雷鋒網了解,傳統的CPU架構設計分為兩種:順序執行和亂序執行。恰如其名,順序執行體系嚴格按照接收順序執行微指令,而亂序執行體系允許在不改變指令運算結果的前提下調整執行順序。

一直以來,亂序執行被認為是順序執行發展到極限後的一次進化。CPU執行的任務紛繁複雜,某些情況下RAM等周邊部件會阻塞指令的順序執行,這時亂序執行便可以明顯改善運算的靈活性,有效提高吞吐量。

而NVIDIA在提升架構性能方面則另闢蹊徑,認為亂序執行並不是解決問題的唯一方案。不光敢想,Denver真的放棄了Arm公版高性能架構中主流的亂序執行方式,轉而採用了低功耗處理器上常見的順序執行,並為其配以一套高效的二進位翻譯和代碼優化方案。

NVIDIA的思路很簡單:順序執行體系面臨的基本問題很明確,無外乎內存停滯等硬體問題,以及指令排序不良等軟體問題。那麼這些問題一定要硬改架構體系么,能否在「軟層面」中解決? 而這就是Denver的核心思想。


這個架構不尋常

Denver一個不尋常的地方是,它內部的指令格式與ARMv7或ARMv8大相徑庭。在具體的內部結構上,Denver使用了在GPU中頗為常見的VLIW(Very Long Instruction Word,超長指令字)格式執行指令(畢竟NVIDIA)。

而在架構前端,Denver的指令解碼寬度達到了前無古人的7發射,比Cortex A15(3發射)、Cortex A57(4發射)和蘋果Cyclone(6發射)都要更寬。NVIDIA官方稱其為「7+」架構,其中的「+」指的是NVIDIA為Denver設計的DCO(動態代碼優化器)。

DCO的任務是將Arm代碼轉換為Denver的原生格式,並優化此代碼以使其在Denver上運行得更好。對於CPU整體而言,DCO是最關鍵的一個環節,因為它的性能將直接由DCO決定。

長期以來,一直有傳言稱Denver最初的設計意圖瞄準的是x86,其底層設計和二進位翻譯機制旨在不侵犯任何x86專利的前提下兼容x86指令的執行。不管這傳言是不是真的,最終結果是NVIDIA在軟層面上有了驚人的成果,打造出了一套可以將硬體設計和指令集分離的架構。

然而儘管DCO如此逆天,NVIDIA還是在其之外配備了一套Arm指令解碼器。雖然官方表示這個Arm解碼器並不是「備胎」,但實際來看顯然是「口嫌體正直」,Denver的大部分指令都來自二進位翻譯,這個Arm解碼器只有區區2指令寬度(Cortex A8級別),只在二進位翻譯無法高效處理時才會接手以直接解碼Arm指令。

與此同時,由於NVIDIA選擇了在「軟層面」中解決問題的方式,Denver也擁有了其他架構都不具備的可升級性,如果DCO有改進的話,NVIDIA可以進一步部署新版本的DCO。

而最終Denver的實際性能也足以用技驚四座來形容,在SPECint2000測試中,Denver相比Cortex A15有了35%的平均提升,最高提升幅度甚至高達67%:

更為具體一點,使用Denver核心的Tegra K1性能完全壓過了同時期Cyclone核心的蘋果A7,相較於Intel Haswell核心的賽揚2955U也是互有來回。


醉翁之意不在酒

看到這也許有朋友會疑惑,既然NVIDIA SoC的CPU不但不弱,反而也和GPU一樣是爆炸強的存在,為什麼NVIDIA在手機和平板領域卻一直不得法,到最後乾脆退出了呢?

很簡單,因為人家根本沒想爭這塊啊……

和我們這些看熱鬧不怕事大的普通用戶不同,NVIDIA對自家SoC的情況再清楚不過了。作為剛入局的新人,在基帶、底包、SDK、節能降耗等方面均處於後發劣勢,和市面上這些位根深蒂固的老黃牛拼力氣實為不智之舉。

沒見人家德州儀器都在2014年退出手機SoC領域了,Tegra出到第4代給小米3用用也算善始善終,交個朋友嘛……

很顯然,NVIDIA看到了SoC更好的應用領域——AI等高性能移動計算平台,說白了就是自動駕駛和機器人。

經歷了Tegra K1和Tegra X1的過渡,Tegra Parker(即NVIDIA Drive PX)終於帶著改良版的Denver2架構成功登上了自動駕駛的舞台。而今年剛剛推出的NVIDIA Jetson Xavier平台則更是帶來了強到沒朋友的自研架構Carmel,其指令解碼達到了驚為天人的10寬度,在Denver的基礎上再次向前邁進了一大步。

據雷鋒網了解,在眼下的AI晶元領域都在追求純AI運算的精簡設計時,NVIDIA是唯一沒有放棄高性能CPU的一家,同時也是將CPU、GPU、AI三部分平衡做的最好的一家。

So,老鐵們,別再說NVIDIA「CPU不行GPI帶」了,NVIDIA真的不是CPU差,而是是在太強了,強到已經超出了我們所熟知的這個次元……


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

阿里健康奪冠中文電子病歷實體識別評測任務
專訪NovuMind周斌:AI晶元彎道超車,架構和算力沒有任何取巧之道

TAG:雷鋒網 |