国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

與普通處理器又何區(qū)別?NEC最新矢量處理器解析

2019-08-27 01:49:01張平
微型計算機 2019年7期
關(guān)鍵詞:超級計算機內(nèi)存矢量

張平

日本在半導(dǎo)體產(chǎn)業(yè)尤其是處理器、SoC芯片等方向似乎沒有太多聲音。從近幾年日本半導(dǎo)體產(chǎn)業(yè)發(fā)展來看,雖然具體的產(chǎn)品并沒有太多,不過但凡有新品出現(xiàn),都以獨特的設(shè)計和規(guī)格讓人眼前一亮。NEC在2017年發(fā)布了一款全新的矢量處理器,并在2018年正式將其推向市場。和傳統(tǒng)的通用處理器、GPU加速器相比,矢量處理器還比較少見。今天,本文將和你一起解讀NEC矢量處理器背后的秘密。

NEC在高性能處理器設(shè)計上擁有豐富的經(jīng)驗,其輝煌的頂點是在2002年左右推出的Earth Simulator Computer也就是地球模擬器超級計算機,這款產(chǎn)品占據(jù)了全球最快超級計算機的寶座長達三年之久,并且大部分核心處理器都由NEC設(shè)計完成,其特點就是先進的矢量計算設(shè)計。不過,由于當時的普通用戶對矢量計算需求不足,因此這類產(chǎn)品距離主流市場較遠,NEC的矢量處理器往往只能用于大型設(shè)備,完全稱不上大眾化。

事物在發(fā)生著變化。隨著AI計算的興起,矢量加速器又開始逐漸成為很多用戶的選擇。鑒于此,NEC又開始重新考慮將矢量計算相關(guān)產(chǎn)品推向主流市場。2017年,NEC宣布推出全新的矢量超級計算機Sx-AuroraTsuBAME,其中的計算核心VectorEngine超級矢量卡(下文簡稱為“VE卡”)一經(jīng)發(fā)布就引起了眾人關(guān)注。這款采用主流PCIe接口設(shè)計、專攻矢量計算的產(chǎn)品使用范圍極其廣泛,NEC稱其能夠支持“標準環(huán)境”,也就是支持Linux和英特爾x86架構(gòu)??紤]到NEC在之前矢量處理器設(shè)計上的保守,這不得不說是—次重大改變。

有何優(yōu)勢?淺析矢量處理器的優(yōu)勢

對長期關(guān)注本刊的讀者來說,矢量和標量的概念應(yīng)該不陌生。所謂矢量,又可稱為向量,就是指具有方向和大小、且滿足平行四邊形法則的幾何對象。標量則只有大小,沒有方向。一般來說,矢量多用在工程學(xué)、物理學(xué)中,比如位移、加速度、力矩、電流密度等都需要用矢量來表示。值得注意的是,矢量在代數(shù)中可以用矩陣的方式表示。比如矢量a可以表示為a=[a,b,c]其中a,b,c分別是矢量在三維坐標體系中的坐標值。

由于矢量的數(shù)組特性使其可以一次性進行多組計算,因此從一開始矢量計算和相關(guān)矢量處理器就頗受重視。從20世紀70年代一直到20世紀90年代,矢量計算和相關(guān)矢量處理器都是超級計算機的核心。隨之興起的就是一些處理多重矢量的技術(shù),包括MIMD多指令多數(shù)據(jù)、SIMD單指令多數(shù)據(jù)、VLIM超長指令集架構(gòu)等。這些技術(shù)都是希望通過減少指令的數(shù)量,通過大量數(shù)據(jù)進行并行計算,—次性處理更多的內(nèi)容。

在這里,我們通過一個例子來顯示CPU傳統(tǒng)的“循環(huán)”計算和矢量處理器在計算方面的差異。

從例子可以看出,CPU每次只能加一個數(shù)據(jù),10個周期才能做完這件事情。但是對矢量處理器而言,利用規(guī)模優(yōu)勢,一次可以執(zhí)行1O次運算,一個周期就能做完10個計算。這是典型的單指令多數(shù)據(jù)流處理方法。相比傳統(tǒng)的CPU,在面對大量并行數(shù)據(jù)時,矢量處理器效率更高。

由于矢量處理器在大規(guī)模數(shù)據(jù)計算上的優(yōu)勢,因此任何現(xiàn)代計算架構(gòu)都無法忽視其存在。實際上,現(xiàn)代CPU往往都已經(jīng)包含了矢量計算模塊。比如英特爾和AMD很早就推出了MMX、SSE、3D Now!、AVx等指令集,通過特殊的矢量加速模塊和指令,能夠大幅度加速相關(guān)矢量計算。不過,CPU依舊有其在邏輯計算上的優(yōu)勢,矢量計算并不是它的重點,一般只有在IBM Power 9這樣專為超級計算機和大型機設(shè)計的處理器中才專門設(shè)計了超大規(guī)模的矢量計算核心。即使如此,矢量計算也會給傳統(tǒng)處理器帶來極大的性能提升。比如英特爾新近加入的AVX-512指令集就能夠大幅度加強AI計算等這類天然的大數(shù)據(jù)量、并行度極高的矢量計算。

除7CPU之外,GPU則可被稱為天然的矢量加速器。傳統(tǒng)的圖形計算的頂點轉(zhuǎn)換本身就是為矢量計算而生,再加上像素計算方面RGBA的固定模式,因此GPU的每一個計算核心都可以被看做一個矢量加速單元。諸如英偉達最新的Volta、Turning等架構(gòu),更是可以看成是專為圖形計算設(shè)計的矢量加速器。

除了CPu和GPu外,市場上還有專門的矢量加速處理器、矢量計算機等。這類產(chǎn)品在核心架構(gòu)上設(shè)計更為簡潔,并不包含太多的附加功能,也沒有為特定用途優(yōu)化,其目的就是通過純粹的矢量計算核心設(shè)計,為AI計算、特殊并行計算、超級計算機等提供加速計算的能力。本期的主角VE超級矢量卡以及其核心SX-Aurora處理器正是這種“純粹”的產(chǎn)品,專為加速而生,別無旁騖。術(shù)業(yè)有專攻,專業(yè)的加速處理器自然有一定的優(yōu)勢,在架構(gòu)設(shè)計上也可能存在和傳統(tǒng)通用加速器的差異,值得研究。

從SX-Aurora TSUBAME超級計算機到VE超級矢量卡

要了解VE超級矢量卡,我們先來一起看看SX-Aurora TSUBAME超級計算機。這款超算是NEC對所謂“標準環(huán)境”的首次嘗試,其特點就是采用了英特爾的處理器,支持PCIe總線。根據(jù)不同的配置,在風(fēng)冷環(huán)境下,SX-Aurora TSUBAME可以實現(xiàn)1顆或者2顆處理器,但是搭載1個、2個、4個甚至8個VE卡的不同配置方案。在水冷環(huán)境下,SX-Aurora TSUBAME最多能夠?qū)崿F(xiàn)8個機架搭配64個VE卡的方案。

為了更好地區(qū)分不同的配置,NEC也根據(jù)不同的配置情況對產(chǎn)品的命名進行了調(diào)整。比如1顆處理器搭配1個VE卡的型號是A100-1,這是最基本的方案。進階配置中,1顆處理器搭配2個VE卡型號被稱為A300-2,2顆處理器搭配4個VE卡則是A300-4。風(fēng)冷條件下最強的型號是A300-8,采用2顆處理器搭配8個VE卡的設(shè)計。最高端的則是水冷型號,NEC采用InfinBand連接8個機架,組成了16顆處理器和64個VE卡的產(chǎn)品,型號則是A500。

SX-Aurora TSUBAME在CPU方面采用的是英特爾Skylake-SP架構(gòu)的xeonGold或者xeon Sliver處理器,主角部分則是本文的核心VE超級矢量卡。對這款產(chǎn)品,熟悉PC DIY的用戶可能會誤認為VE卡是哪一家新廠商推出的新顯卡。誠然,從外觀來看,采用標準PCIe接口、側(cè)吹散熱的VE超級矢量卡在外觀上和一般的顯卡別無二致。令人想不到的是,其火紅的外觀下隱藏的是完全不一樣的核心。

深入VE超級矢量卡的內(nèi)部世界

VE超級矢量卡在計算架構(gòu)上和一般的加速卡存在很大差異。根據(jù)NEC的說明,VE卡的工作模式遵循OS卸載模式。簡而言之,除了偶爾的系統(tǒng)調(diào)用或者I/O功能外,VE卡在工作中需要將所有的執(zhí)行程序和數(shù)據(jù)轉(zhuǎn)移到本地存儲并在處理器上運行,只有計算完成后才輸出結(jié)果。在軟件支持方面,VE卡可以使用標準的語言模型,比如C、C++或者Fortran,無需特殊的編程模型或者平臺支持。

這種設(shè)計的優(yōu)勢在于大大降低了處理器和加速卡之間的傳輸瓶頸,尤其是PCIe帶寬壓力,也避免了一般加速卡出現(xiàn)的由于CPu和加速器數(shù)據(jù)傳輸延遲導(dǎo)致的性能下降等問題。但是,這種設(shè)計方法也存在一定的缺陷,那就是計算靈活度可能會受到限制,因此需要完善軟件優(yōu)化以及合適的算法搭配,這樣才能更有效地利用VE卡的計算能力。另外,在物理規(guī)格上,這種設(shè)計也對VE卡的本地存儲能力提出了要求,VE卡依賴于更大的本地存儲(目前為48GB),畢竟本地存儲空間越大,能夠計算的數(shù)據(jù)量也就越大。

為了解決這些問題,NEC提出了一些新的優(yōu)化思路,被稱為VH Call和VEO。這兩個設(shè)計的優(yōu)勢在于,在VH調(diào)用模型下,應(yīng)用程序被存放在矢量加速卡中,并在主處理器上執(zhí)行標量相關(guān)計算。而VEO則是Vector EngineOffload的簡稱,在這種模式下,僅有矢量化部分被載入,標量化部分則交由系統(tǒng)處理器完成。

在程序執(zhí)行方面,VE卡使用名為ve_exec的特殊程序調(diào)用用戶的適量程序,然后,ve_exec程序會自動請求在矢量計算卡上運行OS創(chuàng)建新的進程。接下來,ve_exec迭代可執(zhí)行的ELF文件,讀取每個段落并將其傳遞給矢量計算卡。同時,系統(tǒng)會在X86也就是向量主機上生成偽進程,這個偽進程具有與矢量計算卡虛擬地址空間平行的虛擬地址空間。舉例來說,在某個存儲器操作時,首先分配的是虛擬地址頁面,然后向矢量計算卡的OS請求在VE卡上的物理地址空間上分配頁面,并由VE卡進行相關(guān)的虛擬地址轉(zhuǎn)換和數(shù)據(jù)保護。

此外,NEC還為SX-Aurora設(shè)計了一個名為存儲主機存儲器(SHM)的特殊指令。在異常情況下,SHM指令用于將系統(tǒng)調(diào)用ID以及其參數(shù)傳遞給矢量OS中的偽進程,然后執(zhí)行監(jiān)視器調(diào)用指令,該指令將停止vE內(nèi)核并在VH上調(diào)用中斷程序。接下來操作系統(tǒng)就可以喚醒偽進程進行異常處理了,這相當于是加入了一個錯誤排除機制。

SX-Aurora矢量引擎處理器

如果拆開VE超級矢量卡的話,可以看到PCB板上除了電源和一部分功能芯片外,實際上只存在一顆碩大的芯片,那就是名為SX-Aurora的矢量引擎處理器。這顆處理器擁有8顆矢量核心和相對應(yīng)的6顆HBM2存儲顆粒。這顆核心采用了臺積電16nm工藝制造。相比之下,NEC設(shè)計的前代產(chǎn)品也就是SX-Ace采用的是DDR3內(nèi)存,通道數(shù)量高達16條——如此多的DDR3通道數(shù)量除了需要占據(jù)相當大的電路板空間外,芯片的存儲控制器部分也是—筆不小的開支。最終這款產(chǎn)品所需要的電路面積過于龐大,只能使用傳統(tǒng)的服務(wù)器主板搭載。而新的SX-Aurora則采用了全新的HBM2存儲顆粒,通過先進的封裝設(shè)計大幅度降低了芯片和數(shù)據(jù)傳輸對PCB面積的需求,不但提高了存儲帶寬,還使得最終成品使用PCIe規(guī)格的尺寸就能夠搭載,大大提高了產(chǎn)品的靈活性。

矢量核心設(shè)計

前文說過,一顆SX-Aurora矢量引擎處理器內(nèi)包含78顆矢量核心,相比前代產(chǎn)品的4顆而言數(shù)量翻倍。盡管核心數(shù)量看起來很低,但是每顆核心一個循環(huán)就可以執(zhí)行192個雙精度浮點運算。以芯片的頻率為1.6GHz來看的話,每顆內(nèi)核的計算能力高達307,2Giga Flops,總計8顆核心高達2.45TFIos,注意,這是雙精度計算能力。

繼續(xù)拆解的話,可以看到每顆核心由三個功能模塊組成:標量處理單元SPU、矢量處理單元VPU和NOC接口。一般來說,即使是一款矢量處理器,標量單元依舊非常重要。這是因為應(yīng)用程序需要完全在矢量處理器上運行,因此SPU相對應(yīng)的必須有良好的序列化代碼性能,這里需要重點提及SPU單元的設(shè)計。

NEC在SPU的設(shè)計上采用了一個四發(fā)射的亂序執(zhí)行設(shè)計方案,它能夠在每個周期內(nèi)拾取、解碼和重命名四條指令。NEC還表示,SPU具有硬件預(yù)取和復(fù)雜的分支預(yù)測器,整體深度為8階段,具有運行一個完整操作系統(tǒng)所需要的所有功能。后端設(shè)計上,SPU包含一套統(tǒng)一的調(diào)度程序,每周期可以發(fā)送五條指令,一旦解決了指令的相關(guān)性問題,就會以亂序執(zhí)行的方式發(fā)送指令給五個獨立的執(zhí)行單元。這五個獨立執(zhí)行單元包括用于通用標量算數(shù)的整數(shù)和浮點ALu、一個專用分支ALU、一個LSU和一個矢量Eu。除了典型的標量操作外,SPU還需要計算矢量訪問的基本內(nèi)存地址。在實際應(yīng)用中,SPU可以保證VPU單元滿載并且不間斷地工作,還可將每個周期的一條指令傳遞到VPU的緩沖區(qū)以等待執(zhí)行,另外還能夠向地址生成單元發(fā)送矢量指令,以便可以提前計算矢量地址。這些設(shè)計都能夠大大提高效率,保證核心計算的效能。

矢量處理單元

進一步向細節(jié)深入的話,在矢量核心中最重要的部分就是矢量處理單元也就是VPU了理想情況下,絕大部分密集型計算應(yīng)該在VPU中完成。VPU的控制邏輯類似于流水線,擁有一個相當簡單的管道,并且也采用了亂序執(zhí)行的設(shè)計。實際操作中,在SPU發(fā)出的指令會被放置到指令緩沖區(qū),并在那里將其重命名、重排序和調(diào)度,等待VPU的處理。系統(tǒng)將64個矢量寄存器重命名為256個物理寄存器,支持增強預(yù)加載功能,并避免WAR/WAW等依賴性的存在。調(diào)度方面,VPU的調(diào)度相對比較簡單且擁有一個專門的復(fù)雜操作管道。一般來說,調(diào)度程序往往會獨占一個專用端口,用于復(fù)雜操作執(zhí)行單元和矢量并行管道(VPP),復(fù)雜操作執(zhí)行單元一般用于處理高延遲操作,比如矢量求和、除法、掩碼填充計數(shù)等操作會被發(fā)送至該單元,這可以防止由于這些操作涉及到了高延遲而導(dǎo)致整個流水線的停頓。

在SX-Aurora中,一個VPU中有32個VPP,相比上代產(chǎn)品翻倍。另外VPP部分還配備了一個8端口的矢量寄存器、16個屏蔽寄存器和6個執(zhí)行管道。其中,6個執(zhí)行管道包括3個浮點管道、2個整數(shù)ALU以及一條用于數(shù)據(jù)輸出,設(shè)計復(fù)雜的存儲管道,在這里一個ALU管道和一個存儲管道共享相同的讀取端口。類似的還有FMA和另一個ALU共享一個讀取端口,總而言之,每個周期執(zhí)行的有效管道數(shù)量實際上是4個。和前代產(chǎn)品相比,現(xiàn)在的產(chǎn)品每個VPP擁有一個額外的FMA單位,可以在一定程度上加強處理器的計算能力。

性能方面,VPU部分能夠?qū)崿F(xiàn)的峰值理論性能是每周期每VPP 3個FMA操作,每個VPU包括32個VPP,因此總計是96個FMA每周期、192個DP Flops/周期。考慮到頻率為1.6GHz,因此每個VPU的峰值性能是307.26igaF10ps。對單精度計算而言,每個FMA都可以對打包數(shù)據(jù)進行操作,因此可以將2個32位數(shù)據(jù)打包為一個雙精度數(shù)據(jù)進行處理,這樣單精度的浮點峰值性能就是雙精度的一倍,為614.4Giga Flops。

內(nèi)存子系統(tǒng)設(shè)計

從上文的數(shù)據(jù)也可以看出,整個VPU部分的吞吐能力非常強大,這樣強大的計算能力對內(nèi)存子系統(tǒng)的設(shè)計提出了極高的要求,原因也很簡單,如果喂不飽VPUU,那么計算效率將嚴重降低。

在2013年推出的SX-Ace包含74個VPU核心,每個VPU有16個VPP,每個VPP有2個FMA。在1GHz頻率下,每個核心將帶來64 GigaFlops或者總計256GigaFlops的計算能力。為了滿足這顆核心的吞吐能力,四個內(nèi)核連接至一個CrossBar,總帶寬為256GB/s,共計16條內(nèi)存通道,搭配的內(nèi)存為DDR3-2133,內(nèi)存帶寬也恰好為256GB/s,所以每GigaFlop對應(yīng)了1GB/S的帶寬,這是之前的數(shù)據(jù)和帶寬匹配情況。

在新的處理器上,NEC的每核心Flops從之前的64增加到了307.2,在緩存設(shè)計上也不再采用1MB的可分配數(shù)據(jù)緩沖區(qū)(ADB),轉(zhuǎn)而采用16MB共享末級緩存。核心和高速緩存通過網(wǎng)格連接,采用16層2D網(wǎng)狀網(wǎng)絡(luò),其目的是通過最小化物理傳輸距離來實現(xiàn)最大化的帶寬。

SX-Aurora每顆核心的交叉總線每周期可以發(fā)出16個請求指令,在1.6GHz頻率下,每周期的帶寬就是410GB/s。內(nèi)存子系統(tǒng)方面,最后一級緩存的帶寬為3TB/s。再向下一層的LLC方面,高速緩存被分為8個2MB的塊,每個塊由16個存儲器構(gòu)成,每一組LLC和IMC的帶寬為200GB/s,共計8組LLC和2組IMC之間的總帶寬為1600G/s。IMC連接76組HBM2內(nèi)存,總計擁有1.22TB/s的帶寬。通過計算可知,整個處理器的計算能力是2.45TFIos,對外連接帶寬是1.22TB/s。

工藝和封裝

從架構(gòu)設(shè)計來看,封裝是Sx-Aurora實現(xiàn)高性能的關(guān)鍵,尤其是HBM2內(nèi)存的使用。SX-Aurora擁有6顆HBM2內(nèi)存,采用的是4層或者8層堆棧方案。這顆芯片在封裝上采用了臺積電的CoWoS技術(shù),也就是第二代基板上芯片封裝技術(shù)。這也使得SX-Aurora成為全球第一款使用6通道HBM2內(nèi)存的芯片。

為了更好地散除熱量,SX-Aurora沒有使用處理器常見的金屬頂蓋,硅片裸露在外,周圍使用了等高的金屬層來改善封裝的機械可靠性。NEC指出在散熱方面,SX-Aurora需要和散熱器有效接觸,否則會由于高溫導(dǎo)致性能降低。

SX-Aurora的芯片面積為493.68平方毫米,不算特別巨大,大概尺寸接近英偉達GP104或者Tu106的規(guī)格。NEC也展示了SX-Aurora的PCB設(shè)計也就是前文提到的VE超級矢量卡,和常見的顯卡非常類似。PCIe插槽上方就是SX-Aurora矢量引擎處理器,肉眼可見6顆HBM2顯存。右側(cè)是多相數(shù)字供電電路,上下橋合并封裝。接口采用了單8Pin方案,最大供電能力150W。NEC沒有公布VE超級矢量卡的功耗情況,從供電接口設(shè)計來看,其最大功耗應(yīng)該不超過225W。

最后再來對比依一下業(yè)內(nèi)類似定位的芯片性能。這里的數(shù)據(jù)是VE超級矢量卡、英特爾Xeon Platinum 818028核心處理器和英偉達Tesla V100。從下面的性能對比表我們可以看出VE超級矢量卡和傳統(tǒng)的處理器、GPU之間的差異。由于架構(gòu)設(shè)計的側(cè)重點完全不同,因此在單核心的統(tǒng)計方法、內(nèi)存類型和容量、內(nèi)存帶寬方面顯示出了巨大差異。尤其是在和TeslaV100的對比中,VE超級矢量卡的內(nèi)存容量三信于對方,內(nèi)存帶寬也超出不少,不過在核心規(guī)模上還有所欠缺,因此理論性能上存在差異??紤]到VE超級矢量卡的OS卸載模式和TeslaV100的傳統(tǒng)模式存在很大差異,因此在優(yōu)化得當?shù)那闆r下效率表現(xiàn)還是可圈可點。

除了理論性能外,NEC還給出了一些性能相對值對比。從這些測試可以看出,VE超級矢量卡的優(yōu)勢在于相對英特爾xeon處理器有更高的性能、更好的性能功耗比。在絕對性能上暫時不能和英偉達Tesla V100相比,但是NEC也特別指出,VE超級矢量卡的價格相對低廉,整體性價比將更為出色。

總的來說,NEC通過此次推出的SX-Aurora處理器和相關(guān)產(chǎn)品,顯示了其在高性能處理器設(shè)計領(lǐng)域的雄厚積累。通過面向AI等目前熱門的應(yīng)用和環(huán)境,再加上良好的擴展性和獨特的技術(shù)模式,SX-Aurora處理器和相關(guān)產(chǎn)品有可能在未來的市場競爭中分得一杯羹。另外,NEC的這款產(chǎn)品也有可能進入超算產(chǎn)品中。從歷史角度來看,日本曾有一段輝煌超算時代,比如NEC的地球模擬器就以強勁的實力霸榜三年之久。但近幾年來隨著中美兩國漸漸發(fā)力,日本在超算行業(yè)中的聲音逐漸走低?,F(xiàn)在,NEC又帶來了如此強勁的計算設(shè)備,很有可能會進一步研發(fā)改進、加以擴展后推出新一代超算的可能,值得人們關(guān)注。

猜你喜歡
超級計算機內(nèi)存矢量
超級計算機
矢量三角形法的應(yīng)用
超級計算機及其在航空航天領(lǐng)域中的應(yīng)用
科技傳播(2019年22期)2020-01-14 03:06:36
“春夏秋冬”的內(nèi)存
當代陜西(2019年13期)2019-08-20 03:54:22
美國制造出全球最快超級計算機
每秒100億億次 中國超級計算機
基于矢量最優(yōu)估計的穩(wěn)健測向方法
三角形法則在動態(tài)平衡問題中的應(yīng)用
基于內(nèi)存的地理信息訪問技術(shù)
色料減色混合色矢量計算
出版與印刷(2013年3期)2013-01-31 03:26:11
隆回县| 邯郸县| 益阳市| 仁寿县| 定远县| 景宁| 内江市| 滁州市| 丽江市| 永济市| 清镇市| 双鸭山市| 江口县| 哈巴河县| 济宁市| 锡林浩特市| 塘沽区| 盘山县| 历史| 左权县| 镶黄旗| 鸡西市| 射阳县| 衡东县| 舞钢市| 洪湖市| 休宁县| 科技| 张家界市| 乐安县| 肃宁县| 万载县| 山阳县| 晋江市| 聂荣县| 库伦旗| 子洲县| 邯郸县| 海兴县| 北安市| 昌黎县|