<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          多核之后,CPU 的發(fā)展方向是什么?

          共 4573字,需瀏覽 10分鐘

           ·

          2021-02-01 19:38

          后摩爾定律時(shí)代,CPU 性能提升放緩,計(jì)算力增長(zhǎng)式微。多核之后,CPU 還能借助哪些方向?qū)崿F(xiàn)突圍?在這篇文章中,中國(guó)科學(xué)院計(jì)算技術(shù)研究所研究員包云崗對(duì)這一問(wèn)題進(jìn)行了詳細(xì)解讀。


          2020 年底給某大廠做過(guò)一個(gè)報(bào)告,包含兩部分內(nèi)容:一部分是關(guān)于計(jì)算機(jī)體系結(jié)構(gòu),尤其是 CPU 結(jié)構(gòu)的演變;另一部分關(guān)于處理器芯片設(shè)計(jì)方法。這里把第一部分內(nèi)容貼出來(lái)回答一下這個(gè)知乎問(wèn)題。


          1. 首先回顧一下計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域三個(gè)定律:摩爾定律、牧村定律、貝爾定律。摩爾定律就不用多說(shuō)了,但想表達(dá)一個(gè)觀點(diǎn)是摩爾定律未死,只是不斷放緩。


          2. 摩爾定律讓芯片上的晶體管數(shù)量不斷增加,但一個(gè)問(wèn)題是這些晶體管都被充分用起來(lái)了嗎?最近 MIT 團(tuán)隊(duì)在《Science》上發(fā)表了一篇文章《There’s plenty of room at the Top: What will drive computer performance after Moore’s law?》,給出他們的答案:顯然沒(méi)有!

          可以來(lái)看一下 MIT 團(tuán)隊(duì)開(kāi)展的一個(gè)小實(shí)驗(yàn)(見(jiàn)下面 PPT):假設(shè)用 Python 實(shí)現(xiàn)一個(gè)矩陣乘法的性能是 1,那么用 C 語(yǔ)言重寫(xiě)后性能可以提高 50 倍,如果再充分挖掘體系結(jié)構(gòu)特性(如循環(huán)并行化、訪存優(yōu)化、SIMD 等),那么性能甚至可以提高 63000 倍。然而,真正能如此深入理解體系結(jié)構(gòu)、寫(xiě)出這種極致性能的程序員絕對(duì)是鳳毛麟角。

          問(wèn)題是這么大的性能差異到底算好還是壞?從軟件開(kāi)發(fā)角度來(lái)看,這顯然不是好事。這意味著大多數(shù)程序員無(wú)法充分發(fā)揮 CPU 的性能,無(wú)法充分利用好晶體管。這不能怪程序員,更主要還是因?yàn)?CPU 微結(jié)構(gòu)太復(fù)雜了,導(dǎo)致軟件難以發(fā)揮出硬件性能。

          如何解決這個(gè)問(wèn)題?領(lǐng)域?qū)S眉軜?gòu) DSA(Domain-Specific Architecture)就是一個(gè)有效的方法。DSA 可以針對(duì)特定領(lǐng)域應(yīng)用程序,定制微結(jié)構(gòu),從而實(shí)現(xiàn)數(shù)量級(jí)提高性能功耗比。這相當(dāng)于是把頂尖程序員的知識(shí)直接實(shí)現(xiàn)到硬件上。


          3. 第二個(gè)定律是牧村定律(也有稱「牧村波動(dòng)」)。1987 年, 原日立公司總工程師牧村次夫(Tsugio Makimoto) 提出,半導(dǎo)體產(chǎn)品發(fā)展歷程總是在「標(biāo)準(zhǔn)化」與「定制化」之間交替擺動(dòng),大概每十年波動(dòng)一次。牧村定律背后是性能功耗和開(kāi)發(fā)效率之間的平衡。

          對(duì)于處理器來(lái)說(shuō),就是專用結(jié)構(gòu)和通用結(jié)構(gòu)之間的平衡。最近這一波開(kāi)始轉(zhuǎn)向了追求性能功耗,于是專用結(jié)構(gòu)開(kāi)始更受關(guān)注。


          4. 第三個(gè)定律是貝爾定律。這是 Gordon Bell 在 1972 年提出的一個(gè)觀察,具體內(nèi)容如下面的 PPT 所述。值得一提的是超級(jí)計(jì)算機(jī)應(yīng)用最高獎(jiǎng) “戈登 · 貝爾獎(jiǎng)” 就是以他的名字命名。


          5. 貝爾定律指明了未來(lái)一個(gè)新的發(fā)展趨勢(shì),也就是 AIoT 時(shí)代的到來(lái)。這將會(huì)是一個(gè)處理器需求再度爆發(fā)的時(shí)代,但同時(shí)也會(huì)是一個(gè)需求碎片化的時(shí)代,不同的領(lǐng)域、不同行業(yè)對(duì)芯片需求會(huì)有所不同,比如集成不同的傳感器、不同的加速器等等。如何應(yīng)對(duì)碎片化需求?這又將會(huì)是一個(gè)挑戰(zhàn)。


          6. 這三個(gè)定律都驅(qū)動(dòng)計(jì)算機(jī)體系結(jié)構(gòu)向一個(gè)方向發(fā)展,那就是「DSA」。如何實(shí)現(xiàn) DSA,這又涉及到兩個(gè)方面:

          為了追求性能功耗,有三條主要的設(shè)計(jì)原則(見(jiàn)下面 PPT);

          為了應(yīng)對(duì)碎片化需求,則需要發(fā)展出處理器敏捷設(shè)計(jì)新方法。(這個(gè)回答就不介紹敏捷設(shè)計(jì)方法了)


          7. 在談一些具體技術(shù)之前,我們可以先總體看一下過(guò)去幾十年 CPU 性能是如何提升的。下面這頁(yè) PPT 列出了 1995-2015 這二十年 Intel 處理器的架構(gòu)演進(jìn)過(guò)程——這是一個(gè)不斷迭代優(yōu)化的過(guò)程,集成了上百個(gè)架構(gòu)優(yōu)化技術(shù)。

          這些技術(shù)之間還存在很多耦合,帶來(lái)很大的設(shè)計(jì)復(fù)雜度。比如 2011 年在 Sandy Bridge 上引入了大頁(yè)面技術(shù),要實(shí)現(xiàn)這個(gè)功能,會(huì)涉及到超標(biāo)量、亂序執(zhí)行、大內(nèi)存、SSE 指令、多核、硬件虛擬化、uOP Fusion 等等一系列 CPU 模塊和功能的修改,還涉及操作系統(tǒng)、編譯器、函數(shù)庫(kù)等軟件層次修改,可謂是牽一發(fā)動(dòng)全身。(經(jīng)常看到有人說(shuō)芯片設(shè)計(jì)很簡(jiǎn)單,也許是因?yàn)檫€沒(méi)有接觸過(guò) CPU 芯片的設(shè)計(jì),不知道 CPU 設(shè)計(jì)的復(fù)雜度)


          8. 處理器內(nèi)部有非常復(fù)雜的狀態(tài),其狀態(tài)變化是由程序驅(qū)動(dòng)的。也就是說(shuō),處理器狀態(tài)取決于程序行為(見(jiàn)下面 PPT),而 CPU 體系結(jié)構(gòu)層次的優(yōu)化思路就是發(fā)現(xiàn)程序行為中的共性特征并進(jìn)行加速。

          如何發(fā)現(xiàn)程序行為中的共性特征,就是處理器優(yōu)化的關(guān)鍵點(diǎn),這需要對(duì)程序行為、操作系統(tǒng)、編程與編譯、體系結(jié)構(gòu)等多個(gè)層次都有很好的理解,這也是計(jì)算機(jī)體系結(jié)構(gòu)博士的基本要求。這也是為什么很多國(guó)外的計(jì)算機(jī)體系結(jié)構(gòu)方向?qū)儆?Computer Science 系。

          題外話:這兩天看到國(guó)內(nèi)成立集成電路一級(jí)學(xué)科,這是一個(gè)好消息。不過(guò)要能培育 CPU 設(shè)計(jì)人才,在課程設(shè)計(jì)上不要忽視了操作系統(tǒng)、編程與編譯這些傳統(tǒng)計(jì)算機(jī)科學(xué)的課程。


          9. 舉兩個(gè)發(fā)現(xiàn)熱點(diǎn)應(yīng)用和熱點(diǎn)代碼、并在體系結(jié)構(gòu)層次上優(yōu)化的例子。一個(gè)例子是發(fā)現(xiàn)在不少領(lǐng)域 TCP/IP 協(xié)議棧五層協(xié)議(L5Ps)存在很多大量共性操作,比如加密解密等,于是直接在網(wǎng)卡上實(shí)現(xiàn)了一個(gè)針對(duì) L5Ps 的加速器,大幅加速了網(wǎng)絡(luò)包處理能力。另一個(gè)例子是這次疫情導(dǎo)致云計(jì)算數(shù)據(jù)中心大量算力都用來(lái)做視頻轉(zhuǎn)碼,于是設(shè)計(jì)了一個(gè)硬件加速器專門來(lái)加速視頻轉(zhuǎn)碼,大幅提升了數(shù)據(jù)中心效率。



          10. 發(fā)現(xiàn)和識(shí)別這種熱點(diǎn)應(yīng)用和熱點(diǎn)代碼并不容易,需要由很強(qiáng)大的基礎(chǔ)設(shè)施和分析設(shè)備。比如 Google 在其數(shù)據(jù)中心內(nèi)部有一個(gè) GWP 工具,能對(duì)整個(gè)數(shù)據(jù)中心應(yīng)用在很低的開(kāi)銷下進(jìn)行監(jiān)測(cè)與統(tǒng)計(jì),找到算力被那些熱點(diǎn)程序 / 代碼消耗,當(dāng)前的 CPU 哪些部件是瓶頸。比如 GWP 顯示在 Google 數(shù)據(jù)中心內(nèi)部有 5% 的算力被用來(lái)做壓縮。

          正是得益于這些基礎(chǔ)工具,Google 很早就發(fā)現(xiàn) AI 應(yīng)用在數(shù)據(jù)中心中應(yīng)用比例越來(lái)越高,于是開(kāi)始專門設(shè)計(jì) TPU 來(lái)加速 AI 應(yīng)用。


          11. 下面分別從三個(gè)方面來(lái)介紹體系結(jié)構(gòu)層面的常見(jiàn)優(yōu)化思路:減少數(shù)據(jù)移動(dòng)、降低數(shù)據(jù)精度、提高處理并行度。

          首先看一下如何減少數(shù)據(jù)移動(dòng)。第一個(gè)切入點(diǎn)是指令集——指令集是程序語(yǔ)義的一種表達(dá)方式。同一個(gè)算法可以用不同粒度的指令集來(lái)表達(dá),但執(zhí)行效率會(huì)有很大的差別。一般而言,粒度越大,表達(dá)能力變?nèi)酰菆?zhí)行效率會(huì)變高。



          12. 通用指令集為了能覆蓋盡可能多的應(yīng)用,所以往往需要支持上千條指令,導(dǎo)致流水線前端設(shè)計(jì)(取指、譯碼、分支預(yù)測(cè)等)變得很復(fù)雜,對(duì)性能與功耗都會(huì)產(chǎn)生負(fù)面影響。


          13. 針對(duì)某一個(gè)領(lǐng)域設(shè)計(jì)專用指令集,則可以大大減少指令數(shù)量,并且可以增大操作粒度、融合訪存優(yōu)化,實(shí)現(xiàn)數(shù)量級(jí)提高性能功耗比。下面 PPT 的這組數(shù)據(jù)是斯坦福大學(xué)團(tuán)隊(duì)曾經(jīng)做過(guò)的一項(xiàng)研究,從這個(gè)圖可以看出,使用了「Magic Instruction」后,性能功耗比大幅提升幾十倍。而這種 Magic Instruction 其實(shí)就是一個(gè)非常具體的表達(dá)式以及對(duì)應(yīng)的電路實(shí)現(xiàn)(見(jiàn) PPT 右下角)。


          14. 第二個(gè)減少數(shù)據(jù)移動(dòng)的常用方法就是充分發(fā)揮緩存的作用。訪存部件其實(shí)是處理器最重要的部分了,涉及許多技術(shù)點(diǎn)(如下面 PPT)。很多人都關(guān)注處理器的流水線多寬多深,但其實(shí)大多數(shù)時(shí)候,訪存才是對(duì)處理器性能影響最大的。

          關(guān)于訪存優(yōu)化,也有一系列技術(shù),包括替換、預(yù)取等等。這些技術(shù)到今天也依然是體系結(jié)構(gòu)研究的重點(diǎn),這里就不展開(kāi)細(xì)講了。


          15. 不再展開(kāi)介紹訪存優(yōu)化技術(shù),就選最近比較熱的內(nèi)存壓縮方向介紹一下。

          IBM 在最新的 Z15 處理器中增加了一個(gè)內(nèi)存壓縮加速模塊,比軟件壓縮效率提高 388 倍,效果非常突出。


          16. 英偉達(dá)也在研究如何在 GPU 中通過(guò)內(nèi)存壓縮技術(shù)來(lái)提升片上存儲(chǔ)的有效容量,從而提高應(yīng)用性能。


          17. Intel 在訪存優(yōu)化上很下功夫,可以通過(guò)對(duì)比兩款 Intel CPU 來(lái)一窺究竟。Core 2 Due T9600 和 Pentium G850 兩塊 CPU,工藝差一代,但頻率相近,分別是 2.8GHz 和 2.9GHz,但性能差了 77%——SPEC CPU 分值 G850 是 31.7 分,而 T9600 只有 17.9 分。

          頻率相當(dāng),為何性能會(huì)差這么多?事實(shí)上,G850 的 Cache 容量比 T9600 還要小——6MB L2 vs. 256KB L2 + 3MB L3。

          如果再仔細(xì)對(duì)比下去,就會(huì)發(fā)現(xiàn)這兩款處理器最大的區(qū)別在于 G850 適配的內(nèi)存控制器中引入 FMA(Fast Memory Access)優(yōu)化技術(shù),大幅提高了訪存性能。


          18. 第二類體系結(jié)構(gòu)優(yōu)化技術(shù)是降低數(shù)據(jù)精度。這方面是這幾年研究的熱點(diǎn),特別是在深度學(xué)習(xí)領(lǐng)域,很多研究發(fā)現(xiàn)不需要 64 位浮點(diǎn),只需要 16 位甚至 8 位定點(diǎn)來(lái)運(yùn)算,精度也沒(méi)有什么損失,但性能卻得到數(shù)倍提升。

          很多 AI 處理器都在利用這個(gè)思路進(jìn)行優(yōu)化,包括前段時(shí)間日本研制的世界最快的超級(jí)計(jì)算機(jī) “富岳” 中的 CPU 中就采用了不同的運(yùn)算精度。因此其基于低精度的 AI 運(yùn)算能力可以達(dá)到 1.4EOPS,比 64 位浮點(diǎn)運(yùn)算性能(416PFLOPS)要高 3.4 倍。


          19. IEEE 754 浮點(diǎn)格式的一個(gè)弊端是不容易進(jìn)行不同精度之間的轉(zhuǎn)換。近年來(lái)學(xué)術(shù)界提出一種新的浮點(diǎn)格式——POSIT,更容易實(shí)現(xiàn)不同的精度,甚至有一些學(xué)者呼吁用 POSIT 替代 IEEE 754(Posit: A Potential Replacement for IEEE 754)。

          RISC-V 社區(qū)一直在關(guān)注 POSIT,也有團(tuán)隊(duì)實(shí)現(xiàn)了基于 POSIT 的浮點(diǎn)運(yùn)算部件 FPU,但是也還存在一些爭(zhēng)論(David Patterson 和 POSIT 發(fā)明人 John L. Gustafson 之間還有一場(chǎng)精彩的辯論,另外找機(jī)會(huì)再介紹)。


          20. 體系結(jié)構(gòu)層次的第三個(gè)優(yōu)化思路就是并行。這個(gè)題目中提到的 “多核”,就是這個(gè)思路中一個(gè)具體的技術(shù)。除了多核,還有其他不同層次的并行度,比如指令集并行、線程級(jí)并行、請(qǐng)求級(jí)別并行;除了指令級(jí)并行 ILP,還有訪存級(jí)并行 MLP。總之,提高處理并行度是一種很有效的優(yōu)化手段。



          以上是關(guān)于計(jì)算機(jī)體系結(jié)構(gòu)尤其是 CPU 結(jié)構(gòu)優(yōu)化思路的一個(gè)大致梳理,供大家參考。總結(jié)來(lái)說(shuō)就是兩點(diǎn)結(jié)論:

          1. 領(lǐng)域?qū)S皿w系結(jié)構(gòu) DSA 是未來(lái)一段時(shí)間體系結(jié)構(gòu)發(fā)展趨勢(shì);
          2. 體系結(jié)構(gòu)層面3條優(yōu)化路線——減少數(shù)據(jù)移動(dòng)、降低數(shù)據(jù)精度、提高處理并行度。

          作者簡(jiǎn)介

          包云崗,中國(guó)科學(xué)院計(jì)算技術(shù)研究所研究員、博士生導(dǎo)師、中國(guó)科學(xué)院大學(xué)教授,中國(guó)開(kāi)放指令生態(tài)(RISC-V)聯(lián)盟秘書(shū)長(zhǎng),從事計(jì)算機(jī)體系結(jié)構(gòu)和開(kāi)源芯片方向前沿研究,主持研制多款達(dá)到國(guó)際先進(jìn)水平的原型系統(tǒng),相關(guān)技術(shù)在華為、阿里等國(guó)內(nèi)外企業(yè)應(yīng)用。他曾獲「CCF-Intel 青年學(xué)者」獎(jiǎng)、阿里巴巴最佳合作項(xiàng)目獎(jiǎng)、「CCF-IEEE CS」青年科學(xué)家獎(jiǎng)等獎(jiǎng)項(xiàng)。





          感謝閱讀



          瀏覽 22
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  激情电影午夜色导航 | 午夜国际熟妇精品影院 | 欧美精品一区二区三区主播视频 | 香蕉狼人一区 | 成人乱无码AV在线观看 |