硬科技:NVIDIA車駕晶片Xavier最大的祕密:初探「Carmel」微架構

2018.10.12 04:04PM
System on a chip, Volta, Nvidia, , Graphics processing unit, Drive PX-series, Integrated Circuits & Chips, Central processing unit, Multi-core processor, Pascal, soc xavier, product, electronics, technology, product, computer wallpaper, brand

既然有一位這麼會演講的執行長兼創辦人,NVIDIA一直都是一間不缺「存在感」的公司,在HotChips當然也不會例外,整體來說,一年比一年積極,甚至超越了Intel和AMD。

  • 2014年:自家的Arm微架構「Denver」和Tegra K1。
  • 2015年:缺席。(大概是推廣Tegra K1出師不利,重整產品時程表的關係?)
  • 2016年:新一代的Tegra「Parker」和支援NVLink的Pascal繪圖核心。
  • 2017年:Volta繪圖核心,自動駕駛需要的深度學習技術,與NVIDIA的自動駕駛平台。
  • 2018年:全球首款單晶片自動駕駛車處理器「Xavier」,其內建的深度學習加速器,與作為DGX-2超級電腦基礎的NVSwitch。

NVIDIA的簡報一向就是給台下觀眾那種「喔... 喔... 喔... 好厲害好厲害」,然後演講結束後,也不會讓你動腦思考的洗腦風格 (跟宗教化的Apple有點類似),但這招對吃飽閒閒到處看諸多廠商不爽的筆者來說,幾乎沒有效果,所以各位科科才會看到這些「挖死人骨頭」的另類內容,讓科科們從此與眾不同。

在今年的HotChips 30,NVIDIA總算不是在Xavier的簡報內只擺放著一張晶粒照片 (Die Photo),還加上了對諸多功能單元的簡介。最顯眼的,莫過於右下角對於Arm處理器單元的描述,特別是那行:10-wide Superscalar—10指令發出 (issue) 的超純量架構,代表每個時脈週期可以塞10個被解碼後的指令到後端執行單元。為了與一般用語接軌,筆者後面統一用way取代wide。

Nvidia, , Hot Chips, System on a chip, Computer Software, Integrated Circuits & Chips, Electronics, Moor Insights & Strategy, Semiconductor, , screenshot, text, font, screenshot, software, multimedia, brand, website

回顧過去的Tegra家族,問世多年的NVIDIA自家64位元ARM微架構「Denver」終於後繼有人:「Carmel」。

Callao, Tegra, Tegra Parker, , Drive PX-series, Lima District, Nvidia, district of Peru, West, , social media content ideas, text, font, line, product, area, angle, number

10-way Superscalar究竟是怎樣的概念?在Arm的世界,Apple和Samsung自家最新的微架構是6-way (A12不明),ARM的高階核心從Cortex-A15到Cortex-A75是3-way。放眼處理器業界,目前最寬的應為IBM Power9 SMT8核心組態的12-way。

看起來似乎很厲害?但魔鬼藏在細節裡,NVIDIA的「多少way」,「定義」很可能跟別人家的不太一樣。

NVIDIA過去研發的Arm處理器微架構「Denver」,就已經是驚世駭俗的7-way,而且時間點還是2014年。不過,NVIDIA沒有講出來的是:Denver並不是硬體非循序執行 (Out-Of-Order) 的微架構,而且也不是「貨真價實」的硬幹了七個指令解碼器。

Tegra K1, Project Denver, Tegra, Nvidia, , 64-bit computing, Central processing unit, Comparison of ARMv8-A cores, ARM architecture, System on a chip, nvidia tegra denver project, text, technology, software, area, font, multimedia, product, screenshot, brand

Intel, JPEG, , Brand, Font, Technology, Presentation, Angle, SK Hynix, JPEG, text, technology, software, multimedia, presentation, font, product, angle, brand, Arup Group, Lights on Afterschool

參考文章:硬科技:為悼念Intel NetBurst的失敗而刻下的墓誌銘 (中)

NVIDIA借鑒了其他廠商過去的作法,依序如下:

  • Intel在NetBurst微架構的「Trace Cache」:存放依照動態分支預測的「實際執行順序」的被解碼指令,指令只要被解碼一次,就無須被反覆擷取解碼並「利於重複使用」。

Line, Point, Angle, Screenshot, Hyper-threading, Thread, hyper threading, text, line, font, area, product, angle, screenshot

  • Intel曾計畫的「PARROT (Power-aware ARchitecture Running Optimized Traces)」:Intel根據內部研究,以「10%的程式碼佔走90%的執行率,而且這10%的程式碼實際上都很規律、易於預測、以及有著很長的不含分支指令序列」為理論基礎,在Trace Cache之外,再導入更近似「編譯器」的機制,最佳化Trace內的微指令排序及數量,以兼顧效能與省電。

Computer program, Line, Product, Font, Computer, WiMAX, وایمکس, text, product, software, line, technology, area, font, product, computer program

  • IBM Power4「Regatta」的VLIW化執行核心 (考量到染指x86相容性的野心,可能也得納入Transmeta的作法):將解碼後的指令打包成「一個蘿蔔一個坑的對應執行單元」的超長指令包,簡化處理器控制單元的複雜度。

Line, Product, Point, Font, Technology, The Agency for Restructuring and Modernisation of Agriculture, arimr, text, technology, line, font, area, product, ARiMR

簡而言之,融入以上的「他山之石」,NVIDIA的Denver僅實作了2個指令解碼器,透過動態指令碼最佳化 (Dynamic Code Optimization),在大型化的128kB指令快取記憶體內存放著「執行順序被最佳化的被解碼指令」(這也是為何容量要特別大的主因,請參考Intel的Trace Cache),接著「打包」成對應7個內部執行單元的VLIW指令包,這就是所謂7-way Superscalar並「無須仰賴增加耗電量的專屬硬體功能單元,亦可非循序的執行指令」的由來。

Project Denver, Tegra, Nvidia, , Tegra K1, Multi-core processor, ARM architecture, Central processing unit, 64-bit computing, System on a chip, nvidia denver, green, text, software, product, technology, font, multimedia, product, brand, angle

Electronics, JPEG, , Nvidia, Brand, Multimedia, Product design, Camera, CUDA, ARM architecture, JPEG, product, technology, product, multimedia, font, brand, electronics, Gymnastics

JPEG, , Nvidia, Brand, Product design, Camera, CUDA, ARM architecture, Block diagram, Design, JPEG, product, product, technology, font, brand, Gymnastics

因為NVIDIA曾有過這樣的「前科」,我們也大概抱持著87%的信心,相信嶄新的Carmel微架構也將萬變不離其宗的擦邊球。但如果發生「意外」,NVIDIA真的不計代價拼下去了,變成「如假包換」的10-way Superscalar,筆者恕不負責,畢竟「之前可能還有32位元相容性包袱,但現在已經是純64位元」是一個很大的變數。

至於下面的處理器區塊圖,除了Carmel不再是「大核心 + 小核心」的結構,看在擺明要犧牲存取延遲、換取更多有效容量的互斥性第三階快取 (Exclusive L3 cache) 和雙核共用高容量第二階快取的份上,越看越像AMD當年的推土機 (Bulldozer)。

Computer program, Line, Angle, Screenshot, Computer, Font, Brand, multimedia, green, text, technology, multimedia, screenshot, font, software, area, line, product

Bulldozer, , Advanced Micro Devices, Central processing unit, AMD FX, Wiring diagram, Multi-core processor, Bulldozer, Diagram, Integrated Circuits & Chips, amd bulldozer, technology, text, product, electronics, software, multimedia, gadget, product, electronic device, font

最後,NVIDIA在簡報中提及Xavier八核Carmel的估計效能:執行SPEC CPU 2006的整數項目Int Rate時,輸出量是「21」。那我們就直接連上SPEC官網查詢被提交的效能報告,瞧瞧這大概是怎樣等級的表現:

Vastu shastra, House plan, Bedroom, House, Room, , Architecture, Family, Shastra, Building, family assessment device, text, font, line, area, black and white, document, paper

這表現究竟如何,就有勞各位科科用心中那把彷彿長度30公分的尺去衡量了,筆者不予置評,反正效能不是重點,搭載Xavier的自駕車可以「快快樂樂出門、平平安安回家」比較重要。

Beer, Line, Screenshot, Angle, Technology, Product, Brand, ice cold beer, green, text, font, product, line, technology, area, angle, multimedia, screenshot

但各位科科應該赫然發現一個恐怖的事實:回頭看著NVIDIA、Apple、Samsung、Fujitsu和諸多企圖在「Arm伺服器」搶佔一席之地的勇者們,自力打造高效能64位元Arm微架構的有志之士,好像越來越與日俱增?這就是在邁向64位元之路,大刀闊斧改革昔日嵌入式系統時代的包袱、讓64位元指令集更加簡潔優雅、更利於設計高效能產品的Arm,最希望看到的結果。那為什麼x86指令集作不到這件事?就有勞各位科科好好的思考了。