多核之后CPU 的發(fā)展方向是什么_第1頁
多核之后CPU 的發(fā)展方向是什么_第2頁
多核之后CPU 的發(fā)展方向是什么_第3頁
多核之后CPU 的發(fā)展方向是什么_第4頁
多核之后CPU 的發(fā)展方向是什么_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

首先回顧一下計算機體系結(jié)構(gòu)領(lǐng)域三個定律:摩爾定律、牧本定律、貝爾定律。摩爾定律就不用多說了,但想表達一個觀點是摩爾定律未死,只是不斷放緩。2.摩爾定律讓芯片上的晶體管數(shù)量不斷增加,但一個問題是這些晶體管都被充分用起來了嗎?最近MIT團隊在《Science》上發(fā)表了一篇文章《There’splentyofroomattheTop:WhatwilldrivecomputerperformanceafterMoore’slaw?》,給出他們的答案:顯然沒有!可以來看一下MIT團隊開展的一個小實驗(見下面PPT):假設(shè)用Python實現(xiàn)一個矩陣乘法的性能是1,那么用C語言重寫后性能可以提高50倍,如果再充分挖掘體系結(jié)構(gòu)特性(如循環(huán)并行化、訪存優(yōu)化、SIMD等),那么性能甚至可以提高63000倍。然而,真正能如此深入理解體系結(jié)構(gòu)、寫出這種極致性能的程序員絕對是鳳毛麟角。問題是這么大的性能差異到底算好還是壞?從軟件開發(fā)角度來看,這顯然不是好事。這意味著大多數(shù)程序員無法充分發(fā)揮CPU的性能,無法充分利用好晶體管。這不能怪程序員,更主要還是因為CPU微結(jié)構(gòu)太復(fù)雜了,導(dǎo)致軟件難以發(fā)揮出硬件性能。如何解決這個問題?領(lǐng)域?qū)S眉軜?gòu)DSA(Domain-SpecificArchitecture)就是一個有效的方法。DSA可以針對特定領(lǐng)域應(yīng)用程序,定制微結(jié)構(gòu),從而實現(xiàn)數(shù)量級提高性能功耗比。這相當(dāng)于是把頂尖程序員的知識直接實現(xiàn)到硬件上。3.第二個定律是牧本定律(也有稱“牧本波動”)。1987年,原日立公司總工程師牧本次生(TsugioMakimoto,也有翻譯為牧村次夫,故稱為“牧村定律”)提出,半導(dǎo)體產(chǎn)品發(fā)展歷程總是在“標(biāo)準(zhǔn)化”與“定制化”之間交替擺動,大概每十年波動一次。牧本定律背后是性能功耗和開發(fā)效率之間的平衡。對于處理器來說,就是專用結(jié)構(gòu)和通用結(jié)構(gòu)之間的平衡。最近這一波開始轉(zhuǎn)向了追求性能功耗,于是專用結(jié)構(gòu)開始更受關(guān)注。4.第三個定律是貝爾定律。這是GordonBell在1972年提出的一個觀察,具體內(nèi)容如下面的PPT所述。值得一提的是超級計算機應(yīng)用最高獎“戈登·貝爾獎”就是以他的名字命名。5.貝爾定律指明了未來一個新的發(fā)展趨勢,也就是AIoT時代的到來。這將會是一個處理器需求再度爆發(fā)的時代,但同時也會是一個需求碎片化的時代,不同的領(lǐng)域、不同行業(yè)對芯片需求會有所不同,比如集成不同的傳感器、不同的加速器等等。如何應(yīng)對碎片化需求?這又將會是一個挑戰(zhàn)。6.

這三個定律都驅(qū)動計算機體系結(jié)構(gòu)向一個方向發(fā)展,那就是“DSA”。如何實現(xiàn)DSA,這又涉及到兩個方面:為了追求性能功耗,有三條主要的設(shè)計原則(見下面PPT);為了應(yīng)對碎片化需求,則需要發(fā)展出處理器敏捷設(shè)計新方法。(這個回答就不介紹敏捷設(shè)計方法了)7.在談一些具體技術(shù)之前,我們可以先總體看一下過去幾十年CPU性能是如何提升的。下面這頁PPT列出了1995-2015這二十年Intel處理器的架構(gòu)演進過程——這是一個不斷迭代優(yōu)化的過程,集成了上百個架構(gòu)優(yōu)化技術(shù)。這些技術(shù)之間還存在很多耦合,帶來很大的設(shè)計復(fù)雜度。比如2011年在SandyBridge上引入了大頁面技術(shù),要實現(xiàn)這個功能,會涉及到超標(biāo)量、亂序執(zhí)行、大內(nèi)存、SSE指令、多核、硬件虛擬化、uOPFusion等等一系列CPU模塊和功能的修改,還涉及操作系統(tǒng)、編譯器、函數(shù)庫等軟件層次修改,可謂是牽一發(fā)動全身。(經(jīng)??吹接腥苏f芯片設(shè)計很簡單,也許是因為還沒有接觸過CPU芯片的設(shè)計,不知道CPU設(shè)計的復(fù)雜度)8.處理器內(nèi)部有非常復(fù)雜的狀態(tài),其狀態(tài)變化是由程序驅(qū)動的。也就是說,處理器狀態(tài)取決于程序行為(見下面PPT),而CPU體系結(jié)構(gòu)層次的優(yōu)化思路就是發(fā)現(xiàn)程序行為中的共性特征并進行加速。如何發(fā)現(xiàn)程序行為中的共性特征,就是處理器優(yōu)化的關(guān)鍵點,這需要對程序行為、操作系統(tǒng)、編程與編譯、體系結(jié)構(gòu)等多個層次都有很好的理解,這也是計算機體系結(jié)構(gòu)博士的基本要求。這也是為什么很多國外的計算機體系結(jié)構(gòu)方向?qū)儆贑omputerScience系。題外話:這兩天看到國內(nèi)成立集成電路一級學(xué)科,這是一個好消息。不過要能培育CPU設(shè)計人才,在課程設(shè)計上不要忽視了操作系統(tǒng)、編程與編譯這些傳統(tǒng)計算機科學(xué)的課程。9.

舉兩個發(fā)現(xiàn)熱點應(yīng)用和熱點代碼、并在體系結(jié)構(gòu)層次上優(yōu)化的例子。一個例子是發(fā)現(xiàn)在不少領(lǐng)域TCP/IP協(xié)議棧五層協(xié)議(L5Ps)存在很多大量共性操作,比如加密解密等,于是直接在網(wǎng)卡上實現(xiàn)了一個針對L5Ps的加速器,大幅加速了網(wǎng)絡(luò)包處理能力。另一個例子是這次疫情導(dǎo)致云計算數(shù)據(jù)中心大量算力都用來做視頻轉(zhuǎn)碼,于是設(shè)計了一個硬件加速器專門來加速視頻轉(zhuǎn)碼,大幅提升了數(shù)據(jù)中心效率。10.發(fā)現(xiàn)和識別這種熱點應(yīng)用和熱點代碼并不容易,需要由很強大的基礎(chǔ)設(shè)施和分析設(shè)備。比如Google在其數(shù)據(jù)中心內(nèi)部有一個GWP工具,能對整個數(shù)據(jù)中心應(yīng)用在很低的開銷下進行監(jiān)測與統(tǒng)計,找到算力被那些熱點程序/代碼消耗,當(dāng)前的CPU哪些部件是瓶頸。比如GWP顯示在Google數(shù)據(jù)中心內(nèi)部有5%的算力被用來做壓縮。正是得益于這些基礎(chǔ)工具,Google很早就發(fā)現(xiàn)AI應(yīng)用在數(shù)據(jù)中心中應(yīng)用比例越來越高,于是開始專門設(shè)計TPU來加速AI應(yīng)用。11.下面分別從三個方面來介紹體系結(jié)構(gòu)層面的常見優(yōu)化思路:減少數(shù)據(jù)移動、降低數(shù)據(jù)精度、提高處理并行度。首先看一下如何減少數(shù)據(jù)移動。第一個切入點是指令集——指令集是程序語義的一種表達方式。同一個算法可以用不同粒度的指令集來表達,但執(zhí)行效率會有很大的差別。一般而言,粒度越大,表達能力變?nèi)?,但是?zhí)行效率會變高。12.通用指令集為了能覆蓋盡可能多的應(yīng)用,所以往往需要支持上千條指令,導(dǎo)致流水線前端設(shè)計(取指、譯碼、分支預(yù)測等)變得很復(fù)雜,對性能與功耗都會產(chǎn)生負面影響。13.針對某一個領(lǐng)域設(shè)計專用指令集,則可以大大減少指令數(shù)量,并且可以增大操作粒度、融合訪存優(yōu)化,實現(xiàn)數(shù)量級提高性能功耗比。下面PPT的這組數(shù)據(jù)是斯坦福大學(xué)團隊曾經(jīng)做過的一項研究,從這個圖可以看出,使用了“MagicInstruction”后,性能功耗比大幅提升幾十倍。而這種MagicInstruction其實就是一個非常具體的表達式以及對應(yīng)的電路實現(xiàn)(見PPT右下角)。14.

第二個減少數(shù)據(jù)移動的常用方法就是充分發(fā)揮緩存的作用。訪存部件其實是處理器最重要的部分了,涉及許多技術(shù)點(如下面PPT)。很多人都關(guān)注處理器的流水線多寬多深,但其實大多數(shù)時候,訪存才是對處理器性能影響最大的。關(guān)于訪存優(yōu)化,也有一系列技術(shù),包括替換、預(yù)取等等。這些技術(shù)到今天也依然是體系結(jié)構(gòu)研究的重點,這里就不展開細講了。15.不再展開介紹訪存優(yōu)化技術(shù),就選最近比較熱的內(nèi)存壓縮方向介紹一下。IBM在最新的Z15處理器中增加了一個內(nèi)存壓縮加速模塊,比軟件壓縮效率提高388倍,效果非常突出。16.英偉達也在研究如何在GPU中通過內(nèi)存壓縮技術(shù)來提升片上存儲的有效容量,從而提高應(yīng)用性能。17.

Intel在訪存優(yōu)化上很下功夫,可以通過對比兩款I(lǐng)ntelCPU來一窺究竟。Core2DueT9600和PentiumG850兩塊CPU,工藝差一代,但頻率相近,分別是2.8GHz和2.9GHz,但性能差了77%——SPECCPU分值G850是31.7分,而T9600只有17.9分。頻率相當(dāng),為何性能會差這么多?事實上,G850的Cache容量比T9600還要小——6MBL2vs.256KBL2+3MBL3。如果再仔細對比下去,就會發(fā)現(xiàn)這兩款處理器最大的區(qū)別在于G850適配的內(nèi)存控制器中引入FMA(FastMemoryAccess)優(yōu)化技術(shù),大幅提高了訪存性能。18.

第二類體系結(jié)構(gòu)優(yōu)化技術(shù)是降低數(shù)據(jù)精度。這方面是這幾年研究的熱點,特別是在深度學(xué)習(xí)領(lǐng)域,很多研究發(fā)現(xiàn)不需要64位浮點,只需要16位甚至8位定點來運算,精度也沒有什么損失,但性能卻得到數(shù)倍提升。很多AI處理器都在利用這個思路進行優(yōu)化,包括前段時間日本研制的世界最快的超級計算機“富岳”中的CPU中就采用了不同的運算精度。因此其基于低精度的AI運算能力可以達到1.4EOPS,比64位浮點運算性能(416PFLOPS)要高3.4倍。19.

IEEE754浮點格式的一個弊端是不容易進行不同精度之間的轉(zhuǎn)換。近年來學(xué)術(shù)界提出一種新的浮點格式——POSIT,更容易實現(xiàn)不同的精度,甚至有一些學(xué)者呼吁用POSIT替代IEEE754(Posit:APotentialReplacementforIEEE754)。RISC-V社區(qū)一直在關(guān)注POSIT,也有團隊實現(xiàn)了基于POSIT的浮點運算部件FPU,但是也還存在一些爭論(DavidPatterson和POSIT發(fā)明人JohnL.Gustafson之間還有一場精彩的辯論,另外找機會再介紹)。20.

體系結(jié)構(gòu)層次的第三個優(yōu)化思路就是并行。這個題目中提到的“多核”,就是這個思路中一個具體的技術(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論