張平
當(dāng)英特爾在2018年宣布自己將研發(fā)高性能獨立GPU時,人們不禁紛紛猜測,在高性能獨立GPU市場.上屢次折戟的英特爾,這一次是否會真的成功?除此之外,英特爾重新研發(fā)高性能獨立GPU是否還瞄準(zhǔn)了其他的市場?在經(jīng)過了一年多的等待后,英特爾在2020年的CES上公布了全新的Xe GPU,并且開始瞄準(zhǔn)目標(biāo)市場進行研究和推廣。那么英特爾的Xe GPU究竟帶來了哪些改變和新特性,又有哪些不同?
在2018年的最后一天,英特爾宣布了自己即將在2020年回歸高性能獨立GPU市場。而在2019年年底和今年初的CES上,英特爾又先后發(fā)布了不少的消息。其中,大部分的消息來源于英特爾和美國能源部簽訂的合同,即在阿貢國家實驗室建造百億億級別超級計算機Aurora。美國能源部和阿貢國家實驗室希望開發(fā)人員能夠盡早地了解目關(guān)硬件信息,以便能夠在超級計算機搭建完成后在盡可能短的時間內(nèi)開始工作,并盡可能高效率地利用算力。因此,在超級計算機尚未完成之前,英特爾就必須公開一部分研發(fā)資料和硬件信息。
現(xiàn)在,英特爾公布了很多有關(guān)XeGPU的信息,比如其研發(fā)代號,PonteVecchio-即維琪奧橋,這座橋梁始建于1345年,是意大利佛羅倫薩最古老的橋梁。采用這個代號的原因是英特爾Xe項目的首席架構(gòu)師Raja Koduri喜歡吃這座橋附近一家冰淇淋店的冰淇淋,因此就這么簡單粗暴了。
“老玩家”的新任務(wù)——英特爾GPU研發(fā)歷史
英特爾實際上是GPU業(yè)界的“老玩家”,并且是全球GPU市場占有率第一的企業(yè)。不過,英特爾這樣的業(yè)績往往來自于嵌入式和集成式圖形計算解決方案。比如目前我們所熟知的“核芯顯卡”,將GPU計算部分和CPU集成在一起并一起銷售,大幅度提高了自已產(chǎn)品的市場占有率。
回顧歷史,英特爾首次開發(fā)獨立GPU的嘗試是在1998年2月12日。這一天英特爾發(fā)布了旗下首款獨立GPU產(chǎn)品——英特爾i740 AGP顯卡。這款產(chǎn)品最主要的貢獻在于推廣了AGP接口。其實際效能和功能設(shè)置則表現(xiàn)一般,在各項測試中都落后于市場上競爭對手的方案,比如Voodo0 2以及英偉達的RIVA TNT。1999年8月,英特爾宣布i740徹底退市。
在i740徹底下市之前,英特爾還研發(fā)了i752和i754,不過前者發(fā)布后沒多久就宣布撤回,后者甚至沒有正式發(fā)布,性能方面i752相比i740提高得很有限。隨后,英特爾宣布這兩款GPU的內(nèi)核將被直接用在.810和i815的芯片組中,成為集成顯卡的核心。在2000年9月,英特爾最后一款在研的GPU架構(gòu)Ca pitola也被宣布取消,英特爾首次GPU研發(fā)計劃徹底終止。
英特爾第二次計劃研發(fā)高性能獨立GPU則是在2009年,這一年,英特爾宣布了新的Larrabee計劃。Larrabee的本質(zhì)是基于x86架構(gòu)的圖形處理器,英特爾試圖使用和英特爾CPU相同代碼路徑的寬矢量引擎來打造一款擁有高端圖形性能的GPU產(chǎn)品,并且這款產(chǎn)品還可以在標(biāo)準(zhǔn)CPU代碼中進行編程處理。在發(fā)布后不久,Larrabee就進行了一些圖形演示。不過在2010年英特爾又宣布這款產(chǎn)品最終不會用于民用圖形市場,而是進入了高性能計算市場。開發(fā)人員發(fā)現(xiàn),英特爾Larrabee的產(chǎn)品可以很好地執(zhí)行5組512位寬的矢量計算,這最終帶來了AVX-512指令集,這個指令集目前存在并將持續(xù)存在于英特爾的至強可擴展系列高性能處理器、部分消費級處理器中。Larrabee隨后被賦予了一個產(chǎn)品名,那就是“XeonPhi”。Xeon Phi在大量的超級計算機中出現(xiàn),還拿下了不少大獎。不過XeonPhi只持續(xù)了幾代,最后一代“KnightsHill”并未實際部署就結(jié)束了整個系列的壽命。
英特爾可能在很早之前就已經(jīng)放棄了Larrabee或者類似的產(chǎn)品進入普通民用圖形市場。在Larrabee之后,英特爾的研發(fā)層進行了一些調(diào)整,高管們又重新拾起了對傳統(tǒng)類型GPU的興趣,并再次決定進入高性能獨立GPU市場。新的項目大約在三年前啟動,但是英特爾的官方消息和正式宣布日期應(yīng)該是始于英特爾在2017年12月聘請AMD首席圖形設(shè)計師Raja Koduri以及著名的SoC專家Jim Keller。Raja Koduri本身的資歷極其深厚,他先后在AMD和蘋果擁有超過20年的圖形解決方案經(jīng)驗,因此英特爾授予其首席架構(gòu)師的職位,這也顯示了英特爾對新的高性能獨立GPU項目的重視程度。
從2017年12月開始到現(xiàn)在,英特爾都在努力加強自己在GPU研發(fā)上的實力。在此期間,英特爾也動用大量手段從競爭對手AMD以及其他廠商那里廣泛挖人,僅僅AMD跳轉(zhuǎn)英特爾的高級人才就包括AMD營銷總監(jiān)ChrisHook、AMD顯卡技術(shù)市場總監(jiān)DamienTriolet、AMD顯卡高級市場總監(jiān)DarrenMcPhee、AMD視覺技術(shù)副總裁/多倫多地區(qū)副總裁Ari Rauch等人,尤其是Ari Rauch還幫助英特爾建立了新的營銷數(shù)據(jù)和分析師團隊。
終于,英特爾在2018年12月的架構(gòu)日上披露,全新的GPU家族即將到來。英特爾將提供一個全新的圖形解決方案,從上到下覆蓋所有市場,不論是低功耗還是高性能平臺,甚至連集成顯卡也不會遺漏。當(dāng)時英特爾表示主要有2個GPU微架構(gòu),全部基于Xe體系結(jié)構(gòu)建立。Xe的意思是“每個人的eXascale(百億億級)”,英特爾希望高效能和高效率的新架構(gòu)能夠滿足任何市場。
現(xiàn)在,英特爾進一步披露了全新架構(gòu)的消息,絕大部分內(nèi)容來自于英特爾、美國能源部和阿貢國家實驗室,大量的產(chǎn)品內(nèi)容和技術(shù)消息是面向HPC也就是高性能計算的。雖然迄今為止還是不清楚英特爾在民用級別的GPU上打算如何做,但是我們可以根據(jù)現(xiàn)有的消息管中窺豹,對英特爾新的Xe架構(gòu)和未來的GPU計劃進行一個預(yù)覽。
英特爾的百億億次計劃
在介紹有關(guān)Xe產(chǎn)品的相關(guān)架構(gòu)之前,有一個疑惑需要進一步闡述。闡述清楚這個問題,有助于更加深入地認(rèn)識英特爾為什么執(zhí)著于GPU這一類超大規(guī)模并行計算架構(gòu),而不是持續(xù)加強CPU或者其他什么產(chǎn)品。
英特爾在之前就表示,人們對更快、更節(jié)能的計算設(shè)備擁有“永不滿足”的需求。不僅如此,現(xiàn)有計算規(guī)模還需要進一步擴大,下一個目標(biāo)是達到百億億級別,也就是10的18次方級別,也被稱作Exascale Flops或者E級超算。相比之下,目前人類掌握的最強大的超級計算機的計算能力大概是Petaflops,也就是10的15次方級別,千萬億次,被稱為P級超算,和E級超算差了三個數(shù)量級。目前超算排行榜第一的IBM Summit,計算能力大概為148 Petaflops,離E級超算還有大約10倍的差距。英特爾將2020年以及以后定義為“百億億次”時代,并且宣稱這個時代,沒有任何計算能力可以滿足前沿研究計算的需求。
更重要的是,英特爾指出,目前市場上已連接設(shè)備的數(shù)量還在快速增加。幾年前,分析師預(yù)測2020年到2023年大概有500億的IoT設(shè)備(50B),英特爾在演講中表示,到2020年代中期以及以后,將有超過1000億個設(shè)備需要某種形式的智能計算。無論是訓(xùn)練端還是推理端,實現(xiàn)AI計算都意味著性能和計算將無處不在,這種計算將超越網(wǎng)絡(luò)、超越移動設(shè)備、超越云端。這種龐大的計算市場規(guī)模,是英特爾對未來的一種愿景和期望。
為了進一步實現(xiàn)這種遠景,英特爾將計算分為四個特定的類別,分別是標(biāo)量、矢量、矩陣和空間。標(biāo)量計算是絕大部分系統(tǒng)運行的日常標(biāo)準(zhǔn)計算,向量計算正在轉(zhuǎn)向并行指令計算。矩陣計算或者張量計算是當(dāng)前的熱門話題,張量內(nèi)核和AI芯片之類的產(chǎn)品都可以優(yōu)化矩陣吞吐量??臻g計算則由FPGA完成,這也是FPGA'市場延伸出來、一種非常復(fù)雜的稀疏計算(一般是指針對稀疏矩陣的計算,所謂稀疏矩陣,是指矩陣中數(shù)值為O的元素數(shù)目遠遠多于非O元素的數(shù)目,并且非O元素分布沒有規(guī)律的一種矩陣類型,與之相反還有周密矩陣。稀疏矩陣被廣泛使用在諸如流體力學(xué)、統(tǒng)計物理、電路模擬以及圖像處理、納米材料等計算中)。對于這種計算,F(xiàn)PGA可以使用其非標(biāo)計算引擎進行優(yōu)化,然后加速解決。顯然,英特爾的目標(biāo)是覆蓋所有的計算場合,包括標(biāo)量CPU、矢量GPU、矩陣AI以及空間FPGA。
CPU可以執(zhí)行任何類型的計算,唯一的問題在于效率,無論是計算效率還是電源效率。比如CPU轉(zhuǎn)移到FPGA時,硬件上越來越專業(yè)化,但是自由度大幅度降低。此外,諸如GPU、AI和FPGA這樣的產(chǎn)品,其軟硬件的專業(yè)化和更高的使用難度提高了用戶的門檻。這意味著較高的使用成本和學(xué)習(xí)成本。鑒于此,英特爾對不同的計算推出了oneAPI計劃,后文還有進一步的介紹。
聚焦到Xe上,英特爾宣稱Xe架構(gòu)將是所有GPU硬件的基礎(chǔ)。Xe對當(dāng)前圖形架構(gòu)進行了全新設(shè)計,并吸收了之前英特爾在Larrabee、Atom、酷睿甚至安騰系列產(chǎn)品中掌握的經(jīng)驗。英特爾之前已經(jīng)宣布自己拿到了全新的Xe芯片硅片,并進行了諸如電源循環(huán)和基本功能測試。
有關(guān)Xe的性能,英特爾在一張幻燈片中展示了其雄心勃勃的計劃:單個服務(wù)器計算節(jié)點的性能。2021年在Xe架構(gòu)的輔助下,將是2019年傳統(tǒng)節(jié)點的500倍。值得注意的是,英特爾在這里并沒有指出相關(guān)的對比參數(shù)。考慮到英特爾在數(shù)據(jù)對比中,可能使用2019年單個6核心的Xeon Bronze,以標(biāo)量模式運行矢量代碼,并對比2021年具有六個Xe GPU優(yōu)化的雙路處理器系統(tǒng),因此結(jié)果存在很大的不確定性。
Xe系列產(chǎn)品概述
在HPC DevCon公開Xe相關(guān)信息之前,英特爾曾表示,旗下Xe產(chǎn)品即Xe架構(gòu),將從集成顯卡—直延伸至中端圖形市場、企業(yè)級圖形市場以及數(shù)據(jù)中心、AI加速、虛擬化等現(xiàn)在所有的主流應(yīng)用場景和功能。在入門級市場也就是Xe-LP,其用戶期望性能大約能夠達到TeraFLOPS,在企業(yè)級市場也就是Xe-HP,這個性能會提升至PetaFLOPS,所有的用戶所對應(yīng)的產(chǎn)品都會分布在這個性能差距為1000倍的區(qū)間之內(nèi)。
之前英特爾宣稱在整個范圍內(nèi)會有兩個版本的Xe產(chǎn)品,不過新的消息顯示,Xe將有第三款產(chǎn)品出現(xiàn),并且其名稱似乎指出了相關(guān)的定位和差異性。
在入門級產(chǎn)品中,英特爾將使用Xe-LP核心,LP表示Low Power也就是低功耗。這個核心將覆蓋所有的集成圖形解決方案。英特爾宣稱Xe-LP產(chǎn)品的功耗定位為20W,但是這個設(shè)計是可擴展的,最多可以擴展至50W,不過在這個功耗下能耗效率會有所降低,目前暫時沒有推出50W Xe-LP產(chǎn)品的計劃。通過這種方式,英特爾有可能在傳統(tǒng)45W的高性能移動處理器中使用Xe-LP架構(gòu),并且可能出現(xiàn)在SoC形式的臺式機處理器中。這樣一來,Xe-LP的主要設(shè)計目標(biāo)就是移動和集成核芯顯卡,并且不太可能以獨立顯卡的方式提供。
對于中端用戶、發(fā)燒友或者數(shù)據(jù)中心,英特爾拿出的是Xe-HP核心,HP是High Performance的意思。這個版本的核心將是英特爾獨立顯卡的基礎(chǔ),能夠支持50W-250W或者更高功率的產(chǎn)品??紤]到獨立顯卡的重要性,英特爾不得不為這類產(chǎn)品提供全面的軟硬件支持,包括Day-0驅(qū)動等產(chǎn)品。目前英特爾尚未公布有關(guān)Xe-HP核心的消息,但是據(jù)估計英特爾應(yīng)該在2020年某個時候宣布這個產(chǎn)品線的具體信息。
第三個也就是之前未公開的一個全新的產(chǎn)品系列:Xe-HPC,HPC是高性能計算的意思。Xe-HPC將作為Xe-LP和Xe-HP的變體,將重點放在提高原始吞吐量上,這也是高性能計算最關(guān)注的點。Xe-HPC可以從Xe-LP的最高層—直擴展至整個Xe-HP,甚至超越Xe-HP。由于使用Xe-HPC的超級計算機部署會比普通的PC或者服務(wù)器擁有更好的適配,能容納高功耗產(chǎn)品,因此Xe-HPC的相關(guān)功耗設(shè)定可能會高達400W甚至更高,實際上現(xiàn)在已經(jīng)有TDP高達500W的PCle產(chǎn)品出現(xiàn)了因此這—點是完全可行的。
Ke系列架構(gòu)概述
每一個GPU設(shè)計基本上都是建立在其矢量寬度上,GPU在本質(zhì)上可以看作一個矢量處理機器,因此必須能夠提供超寬矢量的高效率計算,同時也允許微小矢量并行處理。矢量寬度的一個重要決定性因素就是圖形計算本身:處理器被要求在正確的時間內(nèi)使用矢量計算一定數(shù)量的像素,處理來自內(nèi)存中不同位置的數(shù)據(jù),甚至處理不同內(nèi)核提交的不同數(shù)據(jù)集。
矢量寬度還定義了很多軟件和相應(yīng)的優(yōu)化。作為公開內(nèi)容的一部分,英特爾稱經(jīng)過研究后發(fā)現(xiàn),試圖把一個較大矢量寬度構(gòu)建的代碼轉(zhuǎn)換較小的矢量寬度,實際上極為困難。因此Xe架構(gòu)在矢量寬度上選擇了可變矢量寬度的模式。
Xe架構(gòu)包含了兩個基本單位,SIMT和SIMD。本質(zhì)上SIMD也就是單指令多數(shù)據(jù)類似于CPU,可以在具有多個數(shù)據(jù)源的單個元素上執(zhí)行。而SIMT也就是單指令多線程涉及到在數(shù)據(jù)塊上使用相同的指令,并作為整個“矢量”處理的一部分。在實際操作中,可以按照正確的順序使用多個SIMT和SIMD模塊構(gòu)建Xe架構(gòu),以精確處理不同細分市場的工作任務(wù),也就是所謂的“樂高”風(fēng)格——搭建符合需求的積木模塊。
英特爾表示,和SIMT和SIMD-樣,新架構(gòu)中的每一個部分都可以協(xié)同工作以實現(xiàn)最高性能的模式。如果可能的話,這聽起來似乎像是將潛在的SIMT命令擴展至SIMD單元上。英特爾同時也表示,每個單元的設(shè)計都是可擴展的(為了達到萬億級)。在這種情況下,英特爾非常熱衷于在HPC市場推廣Xe架構(gòu),因為這種架構(gòu)的SIMT和SIMD單元可以輕松擴展至數(shù)干個以上,帶來強大的并行計算能力。
英特爾展示了一個Xe的擴展網(wǎng)絡(luò)。在這個擴展網(wǎng)絡(luò)中,Xe被擴展至8x8網(wǎng)格,點擴展則為14xll網(wǎng)格。英特爾似乎想展示Xe的自由擴展特性,但是沒有更多的說明。英特爾內(nèi)部模擬顯示,SIMD和SIMT的組合將在某些方面提供幫助:一些例子將只使用SIMT單位,因為這些標(biāo)準(zhǔn)的SIMT代碼沒有得到任何加速,比如雙調(diào)排序、月光光線追蹤以及矩陣乘法(一個巨大的矩陣乘法案例)。其他代碼則可以使用SIMD和SIMT組合來提高性能,比如矩陣轉(zhuǎn)置、Nbody、光線追蹤以及提升最明顯的FastWalsh等。
該圖表明,英特爾Xe的架構(gòu)對于完全針對SIMT優(yōu)化的代碼不需要額外的SIMD進行優(yōu)化,并且后者將保持空閑狀態(tài)。對于某些依賴串行工作的代碼比如Nbody代碼,或者對于以不同方式編程的光線追蹤器,當(dāng)內(nèi)核需要執(zhí)行某些串行工作時,可以將這些線程轉(zhuǎn)移至硬件的SIM D/CPU部分進行繼續(xù)執(zhí)行,并且不需要返回CPU-這對很多代碼加速非常重要。但是對于那些已經(jīng)針對矢量計算進行充分優(yōu)化的加速代碼而言,SIMD單元的存在僅僅意味著浪費晶體管,這是非常重要的。
Xe-HPC的執(zhí)行單元設(shè)計:驚鴻一瞥
英特爾展示了一部分Xe單元的內(nèi)部設(shè)計,但是沒有給出太多說明和解釋。需要指出的是,英特爾給出的幻燈片是Xe-HPC的單元,這意味著Xe-LP和Xe-HP架構(gòu)可能和其極為相似,但是功能權(quán)重完全不同。英特爾同樣沒有說明給出的信息是SIMD還是SIMT,但是根據(jù)幻燈片的情況來觀察,可能是SIMT單元。
熟悉架構(gòu)圖的讀者看到這樣的圖片,可能會覺得眼熟。實際上Xe-HPC展示的信息類似于之前英特爾Gen架構(gòu)的升級版本。之前Gen架構(gòu)基于7路管道方案,每個EU具有7個線程。在Xe上,英特爾將每個EU升級到了8個管道,每個周期能夠并行處理8個線程,這一點在圖中顯示得很清楚,當(dāng)然前提是英特爾給出的架構(gòu)圖是真實的。
對于Xe架構(gòu)的EU單元內(nèi)部結(jié)構(gòu),英特爾沒有給出任何信息,因此目前還不清楚英特爾對EU內(nèi)部做出了如何的改進,每個不同的區(qū)塊都能執(zhí)行怎樣的計算。一些業(yè)內(nèi)人士猜測,EU單元內(nèi)部還是有一些特殊功能模塊,比如為AES指令或者內(nèi)存加載、存儲端口、本地緩存等功能設(shè)計的獨立模塊等。
另外一個出現(xiàn)在Xe-HPC上非常重要的改進就是雙精度計算了,尤其是在高性能計算領(lǐng)域。對高性能計算用戶而言,雙精度目前已經(jīng)變得越來越重要。早期當(dāng)GPU編程和CUDA到來的時候,科研人員開始大規(guī)模使用FP32,也就是單精度浮點。對當(dāng)時的大部分應(yīng)用來說,單精度浮點速度快且能夠提供比較高的計算精度,是足夠的。不過隨著計算任務(wù)的變化,一些模擬類和科學(xué)計算類任務(wù)需要更高的精度才能更好地擬合或者實現(xiàn)結(jié)果時,單精度就不夠用了,需要及時切換到雙精度也就是FP64。不過,雙精度帶來了更大的計算負(fù)荷,包括寄存器、緩存方面都存在更大的壓力。
英偉達對這個事情的解決方案是同時提供單精度和雙精度計算能力,但是后者將由額外的雙精度計算單元加強,兩者的計算能力比值為1:1或者1:2,后期也有1:3,當(dāng)然這樣的比值—般只針對計算卡和專業(yè)用戶。對民用用戶而言,英偉達的產(chǎn)品往往會刪除掉雙精度計算單元,從而只提供1:32的雙精度:單精度計算能力比值。一般而言,這樣的做法是鼓勵對成本比較敏感的學(xué)生使用高性能技術(shù)的市場策略。如果真的需要高成本的雙精度進行生產(chǎn)力計算,那么這些用戶終將會考慮購買更高端的產(chǎn)品。
長期以來,F(xiàn)P64-直在計算方面占據(jù)統(tǒng)治地位,帶來了高精度計算市場的繁榮。不過隨后AI計算的興起,又使得低精度計算市場進一步發(fā)展壯大。AI計算更偏向于吞吐量,并且廣泛使用INT8、FP16這樣的低精度進行訓(xùn)練計算。因此,現(xiàn)在有兩個方面的市場需要照顧:—方面是高精度、用于模擬器的FP64,使用場合是石油、天然氣、地質(zhì)學(xué)、天氣動態(tài)、財務(wù)分析等;另一方面是低精度,AI訓(xùn)練主要使用BF16和FP16,AI推理則更為簡單,INT8和FP16都能很好地完成任務(wù)。
對于雙精度計算,英特爾宣稱Xe-HPC相比之前的產(chǎn)品能夠帶來40倍的性能提升,不過,英特爾沒有說明是和誰相比,如果和Gen架構(gòu)相比的話,那么這可能只是宣傳上的用語而已。
Xe-HP和Xe-LP規(guī)格概述:全面覆蓋
在民用級別GPU,也就是Xe-HP和Xe-LP的搭建上,很大一部分內(nèi)容和Xe-HPC的模塊相同,但是面對民用和圖形計算用戶,又需要專門的優(yōu)化。 和Xe-HPC-樣,在Xe-HP和Xe-LP上,一個EU內(nèi)部依舊有8個計算管道,也可以被稱為8個計算單元?,F(xiàn)有資料顯示,英特爾將16個EU單元組成子片塊(sub-slice),一個子片塊內(nèi)擁有128個計算單元。接下來,6個或者4個子片塊將會進一步結(jié)合成一個片塊( Slice)。片塊是Xe GPU的最小可工作完整單位,根據(jù)子片塊的個數(shù)不同,單個片塊中擁有768個(6個子片塊)或者512個(4個子片塊)計算單元。一個Xe-LP核心可能只擁有一個容納了6個子片塊的片塊,總計768個計算單元。對于Xe-HP核心而言,英特爾展示的樣品擁有4個片塊,每個片塊包含4個子片塊,256個EU單元和總計2048個計算單元。
同時英特爾意外泄露的消息也證實了以上的推測,定位入門級的GPU DG1擁有6個子片塊,因此其大概擁有96個EU單元和768個計算單元。此外,前文所說到的Xe-HPC產(chǎn)品中的一個型號規(guī)格也被泄露了出來,它擁有2個較小的片塊,每個片塊內(nèi)部有4個子片塊,因此其總計有128個EU單元和1024個計算單元。
除了上述內(nèi)容外,英特爾還給出了3款DG2產(chǎn)品的型號,分別是DG2H P128、DG2HP256和DG2HP512。女口果后三位數(shù)表示EU單元的數(shù)量的話,那么這三款GPU分別有1024、2560和4096個計算單元。這和英特爾之前宣稱將挑戰(zhàn)600美元以上的GPU市場,以及成為印度人設(shè)計的最大GPU言論相符合。
不過也有一些證據(jù)顯示,英特爾還將推出具有3個片塊的產(chǎn)品,計算單元數(shù)量為1536??紤]到良率和市場區(qū)分等原因,可以合理推測出英特爾可能通過屏蔽不同的片塊來實現(xiàn)產(chǎn)品檔次的劃分或者良率的提升,這一點也正是英偉達和AMD在中高端GPU上常用的手段。因此英特爾通過屏蔽1個、2個或者3個片塊,能夠劃分出擁有2個到8個不同片塊的GPU產(chǎn)品。
另外在功能方面,英特爾之前的—篇公告宣布,英特爾Xe架構(gòu)路線圖將包含對英特爾渲染框架API和光線追蹤硬件加速的支持。英特爾沒有給出更多細節(jié)。但是硬件加速則說明英特爾可能會在Xe架構(gòu)中加入光線追蹤相關(guān)的單元。不過英特爾的另外—篇博文也指出,英特爾在光線追蹤方面更傾向于“整體解決”,也就是同時使用CPU和GPU來完成計算。因此,雖然GPU有可能成為英特爾提高光線追蹤效能的主要手段,但是英特爾也不放棄采用傳統(tǒng)CPU來完成一部分光線追蹤任務(wù)??紤]到英特爾依1日是GPU產(chǎn)業(yè)界的新手,因此這樣的選擇無疑是正確的。
Xe M F:全新具有RAMBO CACHE的可擴展存儲結(jié)構(gòu)
目前英特爾在Xe架構(gòu)的計算規(guī)模擴充上顯得特別賣力,甚至可以擴充至超過1000個EU單元。不過如果沒有一個很好的方法將數(shù)據(jù)移出或者移入計算核心,那么英特爾這所有的設(shè)計就沒有意義。在這一點上,英特爾宣布已經(jīng)設(shè)計了全新的存儲結(jié)構(gòu),被稱為Xe MF。請注意,這里的存儲結(jié)構(gòu)描述的是Xe-HPC版本,和未來民用的GPU版本可能存在很大差異。
根據(jù)英特爾資料,Xe MF有下列特點:首先,Xe MF和每個Xe-HPC計算單元有三個連接,和HBM通道只有1個連接。帶寬上形成了3:1的態(tài)勢,這可能是硅片外部數(shù)據(jù)傳輸?shù)南拗扑?。其次,每個Xe-HPC的計算模塊可以直連且存在三個連接通道,不過,Xe-HPC的計算模塊只能和最近的2個計算模塊通訊。當(dāng)然,在圖中可能為了簡化省去了不少信息。
第三:與此類似,每個HBM通道可以和相鄰的兩個HBM通道進行連接,無需經(jīng)過中間交換設(shè)備,如果這一切可能的話,那么這將是一個全新的設(shè)計方案。除了上述三點外,英特爾在Xe MF中最為獨特的一點是加入了一個名為RAMBO的緩存。RAMBO緩存的作用是為Xe的計算模塊提供大量的緩存空間,以供調(diào)用和存儲數(shù)據(jù)以備不時之需。英特爾還給出了一張圖片展示RAMBO緩存的作用,圖中數(shù)據(jù)顯示,RAMBO到計算模塊的帶寬比緩存到HBM的緩存部分大約有3:1的改進,因此RAMBO緩存的重要用途在于為計算模塊提供更高的數(shù)據(jù)存取速度。英特爾的資料暗示RAMBO緩存在Xe MF芯片內(nèi)部,但是另—方面英特爾又說Foveros技術(shù)可以用于RAMBO緩存,因此可能這個緩存分布在整個GPU中,為所有部分都提供數(shù)據(jù)緩沖服務(wù)。
為了展示Xe MF的性能優(yōu)勢,英特爾還給出了一個FP64矩陣的例子,但是沒有說明是數(shù)據(jù)傳輸還是計算。在沒有RAMBO緩存的情況下,8x8的矩陣可以在峰值速度下計算,隨后可能會在64x64或者256x256矩陣后性能開始下降,直到4096x4096矩陣計算,瓶頸全部轉(zhuǎn)移至數(shù)據(jù)存取部分。英特爾宣稱,RAMBO介入后,即使在4096x4096矩陣計算的強度下,峰值性能(不青楚是傳輸還是計算)和8x8是—樣的,這有利于大量的仿真計算。
維琪奧橋:從架構(gòu)到實現(xiàn)
經(jīng)過上文對Xe-HPC架構(gòu)的概述和解讀,接下來本文將進入具體的產(chǎn)品實踐部分。英特爾首個Xe-HPC架構(gòu)下的產(chǎn)品代號為Ponte Vecchio(簡稱為“PVC”),前文已經(jīng)有過介紹。
根據(jù)英特爾給出的展示圖來看,PVC和之前我們看到過的任何一款GPU都是不同的。PVC實際上包含了2個部分,每個部分有8個小型計算芯片,多個Xe MF芯片和HBM顯存。在進一步介紹PVC的相關(guān)技術(shù)之前,我們先了解—下英特爾在多芯片封裝、堆疊技術(shù)方面的進展。
目前的消息顯示,EMIB和Foveros技術(shù)都將使用在英特爾全新的GPU上,當(dāng)然,這兩個技術(shù)成本目前是比較高昂的。因此它可能會被最先使用在Xe-HPC這樣面向高端市場的產(chǎn)品中,PVC是第一個同時使用這兩個技術(shù)的產(chǎn)品。值得注意的是,EMIB技術(shù)和Foveros技術(shù)并不只是在GPU等產(chǎn)品上使用,英特爾計劃將其擴展至CPU、FPGA、AI以及其他所有的設(shè)備之中。
在完整的PVC產(chǎn)品示意圖上,它擁有16個Xe-HPC小芯片和8個Xe MF芯片,這些芯片被分為2組,每組8個Xe-HPC芯片和4和Xe MF芯片,每—組都可以訪問4個HBM堆棧,每個HBM堆棧都通過EMIB和10芯片連接。
從英特爾的官方幻燈片中可以看到,似乎8個Xe-HPC小芯片和4個Xe MF芯片被作為一個獨立完整的封裝進行工作,并且下方實現(xiàn)了完整的BGA連接。實際上下方的中間層上還有一些芯片存在,并且也獲得了EMIB技術(shù)連接。此外,HBM和10芯片都被放置在底層進行封裝。這意味著,英特爾在GPU部分就擁有三層封裝,如果每個Xe-HPC小芯片也是堆疊的話,那么總計會有四層封裝。
在本文中,我們認(rèn)為每個Xe-HPC小芯片都是堆疊的,采用了Foveros技術(shù)?,F(xiàn)在的問題在于英特爾將什么芯片堆疊在了一起?一種猜測是10和計算芯片,另一種猜測是將像Lakefield那樣的多個計算芯片進行了堆疊。有一種不太合理的結(jié)論是,計算芯片和緩存堆疊在一起。但是需要特別注意的是,GPU傾向于在計算芯片邊上放置本地緩存,鑒于此也有人估計是兩個計算芯片進行堆疊,一種可能是SIMD,另一種是SIMT,當(dāng)然,如果兩者相同并且采用模塊化設(shè)計的話,那么制造起來就容易很多。
此外,英特爾還在Xe-HPC的基板上放置了不少金屬墊片,這種墊片可以幫助不同的芯片矯正高度,這也是堆疊和多封裝所需要的必要技術(shù)。在芯片尺寸方面,目前看起來Xe-HPC小芯片f以乎比Xe MF芯片要小一些,可能后者包含了高速緩存,或者說這兩款芯片的制造工藝節(jié)點完全不同。在功能方面,PVC支持所有內(nèi)存和緩存的ECC和奇偶校驗,還納入了Xeon級別的RAS功能和被稱為“現(xiàn)場修復(fù)(in-field repair)”的功能。
OneAPl:英特爾的軟件解決方案
在硬件設(shè)計完成后,軟件環(huán)境就顯得特別重要了。英特爾指出,在新的oneAPI計劃實施之前,英特爾整個公司內(nèi)部擁有200多個軟件開發(fā)項目。oneAPI的用處在于能夠?qū)⑦@200多個不同角度、不同用途的軟件開發(fā)項目放在一個API中,并為開發(fā)人員提供一個單一的入口點,使得開發(fā)人員可以自由訪問CPU、GPU、FPGA和AI計算。
oneAPI有一個口號,叫做“notransistor left behind”,直譯是“沒有晶體管被忽視”,也就是“每個晶體管都有用”。實際上,oneAPI僅僅對英特爾的硬件有效,對其他廠商的產(chǎn)品沒有太多用處,因此此處應(yīng)該改為“no inteltransistor left behind”。
對英特爾這樣龐大的公司來說,單個入口點無法面對所有開發(fā)人員的工作。英特爾也知道這一點。因此oneAPI的意義在于統(tǒng)一軟件堆棧,這樣使用高級語言的程序員就可以在不考慮硬件的情況下做自己喜歡做的事情,而想要在最低級別對特定硬件進行微優(yōu)化,使用低級語言的程序員也可以做到這一點。
oneAPI給出了新的架構(gòu)介紹。oneAPI所有的內(nèi)容都將通過oneAPI堆棧進行驅(qū)動,堆棧的底層是硬件,頂部是工作負(fù)載。英特爾將在這五個領(lǐng)域內(nèi)解決軟件開發(fā)的問題。在系統(tǒng)編程部分,英特爾展示了調(diào)度程序管理、對等通信、設(shè)備和內(nèi)存管理、跟蹤和調(diào)試工具等內(nèi)容。
對于編程語言而言,英特爾依賴于分布式并行C++標(biāo)準(zhǔn)或者DPC++,后者是C++和SYCL的組合,由英特爾負(fù)責(zé)維護。英特爾還計劃構(gòu)建具有OpenMP編譯器的Fortran和具有OpenMP編譯器的C++,以及也可以和oneAPI其余部分一起使用的Python分發(fā)網(wǎng)絡(luò)。在庫文件方面,英特爾也準(zhǔn)備好讓那些非常受歡迎的工作負(fù)載加入庫,類似的還有英特爾Math Kernel Library(MKL)庫或MPI庫。
另外,英特爾要面對的一大問題就是遷移工具。英特爾希望有工具能夠?qū)⒅С諧UDA的程序轉(zhuǎn)為支持英特爾硬件,之前Raja Koduri在AMD的HIP產(chǎn)品上已經(jīng)嘗試可以做到這一點。HIP工具在某些情況下表現(xiàn)很出色,但是在絕大部分情況下還需要手動調(diào)整代碼使得部分CUDA代碼能夠在AMD硬件上運行。Raja表示,在CUDA向AMD轉(zhuǎn)移時,問題在于遇到的是在寬矢量機制下編寫的代碼轉(zhuǎn)移至窄矢量機制,但是在Xe上并不存在這一點,因為英特爾采用了可變矢量寬度,因此oneAPI遇到的問題可能比較少。
首個Xe-HPC架構(gòu)的超算——Aurora
前文我們也提到了美國能源部和阿貢國家實驗室的Aurora超算,這臺超算預(yù)計2021年交付。不過之前這臺超算預(yù)計是2020年交付,圍繞英特爾的Xeon Phi平臺構(gòu)建。雖然后來英特爾停止了Xeon Phi產(chǎn)品線,但是又帶來了Xe,因此目前英特爾宣稱Aurora將由Xeon和Xe-HPC聯(lián)合組建。
Aurora超算的每個節(jié)點將由2個Xeon處理器和6個Xe-HPC GPU組成。由于發(fā)布時間還比較早,因此Aurora超算的處理器采用的是代號為SapphireRapids的全新Xeon處理器。SapphireRapids處理器將使用lOnm工藝制造,具有8個內(nèi)存通道,可能支持DDR5和PCle 5.0,是英特爾首款支持全新CXL標(biāo)準(zhǔn)的企業(yè)級CPU。
在GPU上,英特爾拿出的是PVC,從產(chǎn)品圖上來看,這些專門為超算定制的GPU顯然不會使用PCle接口,可能是OAM或者SXM2,或者當(dāng)時更新的標(biāo)準(zhǔn)。每個GPU都可以通過CXL直接相互通訊。英特爾給出了一顆命名為XeLink的全新芯片,這顆芯片將管理6個GPU之間的通訊,另外還可以實現(xiàn)統(tǒng)一的內(nèi)存管理,Xe Link也基于CXL技術(shù)實現(xiàn)。英特爾在預(yù)告超算的架構(gòu)的同時,也順便宣布PVC將采用全新的7nm工藝制造。
Aurora的每個節(jié)點將包括8個結(jié)構(gòu)端點,大概有200個機架,總計10PB的內(nèi)存和230PB的存儲空間。從這些數(shù)據(jù)推測的話,整個Aurora大概只使用5000個新的Xeon處理器和15000個PVC GPU產(chǎn)品。如果Aurora確實是百億億級別的產(chǎn)品,考慮到CPU提供的計算性能很有限,因此假設(shè)忽視CPU的算力,只利用GPU進行計算的話,百億億次計算能力除以15000個GPU,這樣每個GPU的平均計算性能將在66.6TFLOPS左右。相比之下,英偉達目前最接近的圖靈架構(gòu)大概最多能提供14TFLOPS的FP32計算能力,因此英特爾要做的是在2021年到2022年將GPU的計算能力提高至現(xiàn)有產(chǎn)品的5倍。當(dāng)然對超算來說,功耗暫時可以被放在一邊。更悲觀一些的算法是,由于采用了4U機架,因此只能放置7500個GPU,所以單個GPU的計算能力需要達到135TFLOPS,大約是現(xiàn)在處理器的10倍,難度就更大了。
目標(biāo):覆蓋所有計算市場
從性能來看,合理的推測是英特爾在2021年底到2022年初將獲得現(xiàn)有頂級GPU 5倍計算性能的產(chǎn)品,其余的一些細節(jié)包括總線、擴展性、單個芯片實現(xiàn)方式以及軟件等方面,本文都做出了一定的解釋。不過目前Xe尚未發(fā)布,大量資料尚未解密,因此本文的內(nèi)容可能和實際產(chǎn)品存在較大差異甚至錯誤,建議大家以實際產(chǎn)品和本刊后續(xù)介紹的內(nèi)容為主。
回顧了英特爾的過去、了解了英特爾在計算上的野心和具體的產(chǎn)品情況,目前英特爾在Xe和相關(guān)產(chǎn)品上想做什么就很明確了。英特爾希望能擴大產(chǎn)品覆蓋的計算市場的范圍,簡單來說,標(biāo)量、矢量、矩陣和空間四大計算中,英特爾在其他三個方面都做得很好,唯獨缺少了矢量加速,或者說沒有強有力的競爭對手。當(dāng)然,英特爾本身在CPU上足夠出色,依靠財務(wù)手段和市場操作收購了FPGA和AI計算廠商,形成了自己計算產(chǎn)業(yè)的三條支柱,現(xiàn)在最后一個支柱也就是矢量計算也將被英特爾補上,這樣一個覆蓋了幾乎所有計算場合的英特爾,才是一個計算產(chǎn)業(yè)領(lǐng)軍人物的完全體。利用四個計算產(chǎn)業(yè)的互相配合和支持,英特爾有望進一步打造一個統(tǒng)一的產(chǎn)業(yè)鏈,在計算產(chǎn)業(yè)上實現(xiàn)“贏者通吃”。至于GPU和顯卡,目前看起來只是英特爾在計算產(chǎn)業(yè)發(fā)展路線執(zhí)行上的自然產(chǎn)物。對四大計算產(chǎn)業(yè)來說,任何一個做好,都將面對萬億級別的市場,但是英特爾希望自己在四個領(lǐng)域都占有一席之地,這樣龐大的格局和野心,也只有英特爾才能如此豪氣又理所當(dāng)然地展示出來,并有能力向著目標(biāo)前進。