加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
    • 1.1 摩爾定律失效?
    • 1.2 馮·諾依曼架構過時?
    • 2.1 “指令”復雜度
    • 2.2 運行頻率
    • 2.3 并行度
    • 3.1 優(yōu)化泛義的I/O,形成存儲分層結構
    • 3.2 存儲分層結構瓶頸,新的I/O優(yōu)化
    • 4.1 工藝封裝的進步
    • 4.2 存算一體化
    • 4.3 架構優(yōu)化和創(chuàng)新
    • 5.1 實際總算力的定義
    • 5.2 處理器的數(shù)量,實現(xiàn)規(guī)?;?/span>
    • 5.3 算力的利用率,降低成本,普惠大眾
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

預見·第四代算力革命(一):算力綜述

09/23 09:14
2.7萬
閱讀需 36 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

首先,2月7日是春節(jié)后第一個工作日,祝大家在新的一年里,技術進步,事業(yè)高升!

國家發(fā)改委等四部門聯(lián)合發(fā)布《全國一體化大數(shù)據(jù)中心協(xié)同創(chuàng)新體系算力樞紐實施方案》,提出在京津冀、長三角、粵港澳大灣區(qū)、成渝以及貴州、內(nèi)蒙古、甘肅、寧夏建設全國算力網(wǎng)絡國家樞紐節(jié)點,啟動實施“東數(shù)西算”工程,構建國家算力網(wǎng)絡體系。

當前,算力已成為全球戰(zhàn)略競爭新焦點,是國民經(jīng)濟發(fā)展的重要引擎,全球各國的算力水平與經(jīng)濟發(fā)展水平呈現(xiàn)顯著的正相關。在2020年全球算力中,美國占36%,中國占31%,歐洲和日本分別占11%及6%。近年來,美國、歐洲、日本紛紛制定行動計劃,不斷運用算力助推經(jīng)濟增長。

“數(shù)據(jù)、算法、算力”是數(shù)字經(jīng)濟時代核心的三個要素,其中算力是數(shù)字經(jīng)濟的物理承載。這,我們通過“預見·第四次算力革命”系列文章(共四篇),從微觀到宏觀,詳細分析跟性能和算力相關的各個因素以及主流的算力平臺,盡可能的直面當前算力提升面臨的諸多挑戰(zhàn)和困難,展望面向未來的算力發(fā)展趨勢。這四篇文章為:

預見·第四次算力革命(一):算力綜述;

預見·第四次算力革命(二):三大主流計算平臺CPU、GPU和DSA;

預見·第四次算力革命(三):面向未來十年的新一代計算架構;

預見·第四次算力革命(四):宏觀算力建設。

本文為第一篇,歡迎關注公眾號,閱讀歷史以及后續(xù)精彩文章。

1 基礎知識

1.1 摩爾定律失效?

上世紀80/90年代,CPU性能狂飆,每18個月,CPU性能就會翻倍,這就是著名的摩爾定律。如今,CPU性能提升,每年只有不到3%,要想性能翻倍,需要20年??梢哉f,基于CPU的摩爾定律已經(jīng)失效,行業(yè)進入了后摩爾時代。但是摩爾定律賦予行業(yè)的意義遠不止這些。

數(shù)字經(jīng)濟時代來臨,各種各樣的應用都需要強大的算力支撐。不管是從單個設備的角度,還是萬千設備組成的宏觀算力的角度,都需要持續(xù)不斷的算力,來支撐數(shù)字經(jīng)濟的繁榮發(fā)展??梢哉f:用戶“需求”的驅動,需要摩爾定律繼續(xù)有效。

對消費者來說,摩爾定律意味著當前購買的電子設備性能會比一年前有非常顯著的提升,摩爾定律是到了時間自然而然、輕輕松松就會發(fā)生的事情。而對行業(yè)從業(yè)者來說,摩爾定律是整個行業(yè)的KPI,代表了殘酷的競爭法則:一個公司或產(chǎn)品,如果能達到或超過摩爾定律,就能夠生存;反過來,如果達不到,就只能走向消亡。

站在算力的角度,摩爾定律一直在驅趕著行業(yè)中的你我:前進!前進!前進!

1.2 馮·諾依曼架構過時?

 

馮·諾依曼架構模型是計算機系統(tǒng)的經(jīng)典模型,簡單說,就是一個計算機系統(tǒng)包括輸入、處理和輸出三個部分。處理部分有控制單元、計算單元和數(shù)據(jù)暫存(內(nèi)存),處理部分的控制單元和計算單元組成大家通常理解的中央處理單元CPU。

 

根據(jù)馮·諾依曼架構,可以繪制出一個典型服務器的模型。一個服務器,由核心的處理邏輯、分層級的寄存器、緩存、內(nèi)存、本地外存四級的暫存存儲(云服務器本地存儲也是暫存,關鍵的數(shù)據(jù)必須存儲到遠程存儲集群)、以及通過網(wǎng)絡的輸入/輸出三部分組成。

站在處理器中處理邏輯部分的角度,不管是從各級暫存還是從網(wǎng)絡I/O,都是數(shù)據(jù)的輸入/輸出。因此,計算模型就可以簡單的分為兩部分:數(shù)據(jù)處理和數(shù)據(jù)輸入輸出。并且,系統(tǒng)的性能 = 最小值(數(shù)據(jù)處理能力,數(shù)據(jù)輸入/輸出能力)。

近些年來,行業(yè)內(nèi)有一種說法:馮·諾依曼架構已經(jīng)過時。因此,需要打破馮·諾依曼架構,例如近年來非?;鸨拇嫠阋惑w化。但這些說法,其實是對馮·諾依曼架構的誤解。

馮·諾依曼架構本身很簡單,只是后來,為了更大規(guī)模的計算,才逐漸形成了復雜的存儲分層結構。計算和I/O之間的不匹配導致了復雜的存儲分層結構,而復雜的存儲分層結構一方面增加了功耗,另一方面限制了性能的進一步提升。

于是,架構設計開始往回走,存算一體化反對的只是復雜的存儲分層結構,而不應該是馮·諾依曼架構。存算一體化,更加簡單直接的解決I/O和計算處理性能匹配的問題。但是,并沒有改變馮·諾依曼架構的本質。

2 與性能相關的三個因素

我們舉個形象的例子:

團隊A的每個工人可以在單位時間里加工5個零件,團隊B的每個工人在單位時間里可以加工8個零件。

團隊A的單位時間是3分鐘,這意味著團隊A一個小時可以有20個單位時間;團隊B的單位時間是5分鐘,這意味著團隊B一個小時擁有12個單位時間。

團隊A有10個人,團隊B有20個人。

這意味著:在一個小時里,團隊A可以完成1000個零件的加工,而團隊B則可以完成1920個零件的加工。

這里說的性能,指的是單位處理器的性能。衡量一個處理器的性能,通常有三個因素:

“指令”復雜度,類比于例子中單位時間加工的零件數(shù)量,指的是單個指令中計算的密度。

運行速度,即運行頻率,類比于例子中一個小時的單位時間數(shù)量,指的是1秒鐘時鐘周期變化的數(shù)量。

并行度,則類比于例子中團隊的成員數(shù)量,指的是多個并行的處理。

也可以簡潔明了的用公式表示性能和三者的關系:

(單個處理器的)性能 = 指令的復雜度(單位計算密度) x 頻率 x 并行度

2.1 “指令”復雜度

CPU是硬件,基于CPU運行的程序是軟件;GPU是硬件,基于GPU運行的程序是軟件。那么CPU和GPU的差別在哪里?

CPU(不考慮協(xié)處理器)支持的指令稱為通用指令,包括整形計算類、浮點類、數(shù)據(jù)傳輸類、控制類等。

相比通用指令,一些復雜類指令(復雜類指令需要復雜的硬件邏輯來處理),則需要專用的硬件處理單元。比如SIMD(單指令流多數(shù)據(jù)流,Single Instruction Multiple Data)類和MIMD(多指令多數(shù)據(jù)流,Multiple Instruction Multiple Data)類指令,則可能是在GPU運行。

對硬件加速單元(Accelerator,從設計架構的角度也就是ASIC)來說,“指令”則是對算法的一次處理。例如DES算法設計,其“指令”為一次64bits DES計算。CPU對DES的一次處理需要上百條指令,而在DES硬件加速器這里,只需要一條“指令”,可見DES硬件加速器“指令”的復雜度遠大于CPU指令的復雜度。

 

指令是軟件和硬件的媒介,指令的復雜度(單位計算密度)決定了系統(tǒng)的軟硬件解耦程度。按照指令的復雜度,典型的處理器平臺大致分為CPU、協(xié)處理器、GPU、FPGA、DSA、ASIC。任務在CPU運行,則定義為軟件運行;任務在協(xié)處理器、GPU、FPGA、DSA或ASIC運行,則定義為硬件加速運行。

魚和熊掌不可兼得,指令復雜度和編程靈活性是兩個互反的特征:指令越簡單,編程靈活性越高,因此我們才說軟件有更高的靈活性;指令越復雜,性能越高,因此而受到的限制越多,只能用于特定場景的應用,其軟件靈活性越差。

一個系統(tǒng),必然經(jīng)過前期快速迭代,后期逐漸穩(wěn)定的過程。因此,系統(tǒng)運行的處理器平臺選擇也必然有如下的一些規(guī)律:

CPU通用軟件平臺:當一個新的應用出現(xiàn)的時候,最早出現(xiàn)的一般是軟件實現(xiàn)。一來實現(xiàn)所需要的代價較少,可以快速實現(xiàn)想法;二來CPU所提供的靈活性,不考慮性能的情況下,使之幾乎可以處理任何場景的任務。

協(xié)處理器擴展指令加速平臺:隨著技術的演進,對性能提出了一些要求。這個時候,可以針對一些比較消耗CPU資源的程序進行一定的編程和編譯優(yōu)化。

GPU向量及并行加速平臺:更進一步的,技術廣泛應用,并且我們能從算法中尋找到更多的并行性。這個時候,我們就可以找一些專用的處理器,如GPU、DSP、NPU等,來處理。通過特定的并行優(yōu)化以及支持向量(SIMD)、多指令并行(MIMD/VLIW)等復雜指令編譯優(yōu)化的方式,深度的優(yōu)化性能。

FPGA硬件可編程加速平臺:隨著技術越來越成熟,應用的規(guī)模越來越大。也越來越消耗資源。這個時候,我們值得花費更多的精力,提煉出復雜度非常高的算法(或者可以當作一個非常復雜的“指令”)然后通過硬件邏輯實現(xiàn)。再通過FPGA硬件可編程的方式快速落地。

DSA/ASIC定制加速平臺:再進一步的,技術更加成熟穩(wěn)定,應用規(guī)模足夠龐大,這個時候就非常有必要為此場景定制開發(fā)DSA/ASIC,來達到最優(yōu)的性能、最低的成本、最小的功耗。

需要注意的是,性能和靈活可編程能力是矛盾的兩面。當我們通過定制硬件加速器的方式來獲得性能提升,同時也就意味著放棄了軟件應有的靈活性。

特別是復雜場景,對靈活性的要求更甚于對性能的要求,這樣的場景需要花費更大的代價,實現(xiàn)靈活可編程能力的同時,提供非常好的性能。

從軟件到硬件的一個經(jīng)典的例子就是比特幣,其激烈而快速的完成了從CPU到ASIC的過渡。比特幣使用的技術區(qū)塊鏈核心算法是SHA-256,它在各個平臺上的性能對比如下:

CPU:最開始的時候,大家使用CPU挖礦,一臺高端個人電腦,處理速度大概20MH/s(H/s, Hash per second);

 

GPU:后來有人用GPU加速挖礦,SHA-256可以繼續(xù)拆分成普通的算術邏輯運算,而GPU具有超級多的算術邏輯運算單元,一個高端顯卡的處理速度可以達到200MH/s;

 

FPGA:再后來出現(xiàn)了定制SHA-256算法硬件邏輯的FPGA加速卡來挖礦,精心設計的定制電路的FPGA,可以使運算速度達到1GH/s;

 

ASIC:而比特大陸公司2015年發(fā)布的ASIC礦機芯片BM1385,其性能達到單顆芯片算力可達32.5GH/s。

 

2.2 運行頻率

(a) 組合電路示例

 

(b) 數(shù)字電路中的關鍵路徑

圖 運行頻率與電路邏輯的關系

 

頻率越高,計算速度越快。不考慮其他因素的制約,計算速度和頻率是正比的關系。而頻率受電路中的關鍵路徑(延遲最大路徑)約束,兩者呈反比關系:關鍵路徑越短,頻率則越高。如上圖所示,頻率受關鍵路徑制約,而關鍵路徑與兩個因素有關:

一個是關鍵路徑所包含門的數(shù)量,即從前一級寄存器到后一級寄存器之間的最長路徑所包含的邏輯門的數(shù)量;

另一個則是單個邏輯門的延遲時間,邏輯門的延遲時間跟半導體生產(chǎn)工藝相關,一般情況下,工藝尺寸越小,單個邏輯門的延遲越小。

因此,要想優(yōu)化頻率,就是要優(yōu)化關鍵路徑:一個是優(yōu)化關鍵路徑的邏輯門的數(shù)量,另一個則是優(yōu)化單個邏輯門的延遲。當邏輯門的延遲越小,或者兩級寄存器之間的邏輯門數(shù)量越少,則頻率越高,計算速度也就越快。

要想減少兩級寄存器間邏輯門的數(shù)量,則需要采用更多級的流水,這樣每一級流水所做的事情越少,所需要的邏輯門也就越少。

要想減小單個邏輯門的延遲,主要有如下辦法:

最立竿見影的就是采用更先進的工藝,當然了,更換工藝需要更多的資金和研發(fā)投入。

另一個辦法是提升工作電壓,提升電壓會降低邏輯門的延遲,但與此同時會提升功耗和發(fā)熱。發(fā)熱過高又會影響到邏輯門的延遲,產(chǎn)生的熱量如果不及時排出,甚至有可能燒壞整個電路。所以,通常是把電壓控制在一個均衡的區(qū)間。

還有一個辦法是做定制的門電路。通常,大家都選擇的是工藝廠商提供的標準庫。如果采用定制門電路,則會在相同工藝下相比別人有更好的性能。例如,在比特幣挖礦芯片行業(yè),在均采用當時最先進工藝的情況下,比特大陸采取全定制電路設計,獲得相比別人更多的性能優(yōu)勢,使其獲得比特幣挖礦的大部分市場。

2.3 并行度

并行的設計在硬件邏輯設計里非常常見。例如:

指令流水線:指令流水線是一種時間并行,在同時有多條指令處理流水線的不同階段,這樣相當于有多條指令在并行處理。

指令多發(fā)射(Multiple Issue):一條流水線,從指令緩沖區(qū)一次發(fā)送到譯碼階段就有多條指令,然后在執(zhí)行階段也是多條指令并行。

超線程(Hyper-Thread):在一個處理器核內(nèi)部,多組不同的指令流處理,分時的共享處理器核內(nèi)部的各種硬件資源,達到更佳的資源利用率,提升整體性能。

總線:例如,指令、數(shù)據(jù)總線分開,多數(shù)據(jù)總線等設計,進一步增加處理器的數(shù)據(jù)處理帶寬。

多核技術:通過一些內(nèi)部互聯(lián)總線,把多個處理器核集成到一塊芯片內(nèi),以此來提升綜合性能。

多處理器芯片:受限于芯片工藝、功耗水平、設計架構,單芯片內(nèi)的多核互聯(lián)不能無限制增加下去,也可以通過一些芯片間互聯(lián)技術,把多個CPU Socket連成一個NUMA系統(tǒng),當前比較常見的是2-8個Socket互聯(lián)的架構。

總線:對并行總線來說,增加數(shù)據(jù)線的寬度,對增加總線的帶寬是顯而易見的,并行總線一般用于芯片內(nèi)部邏輯通信;串行總線,例如PCIe,相比PCI并行總線,一方面可以快速提升頻率,還可以通過很多組串行線組合通信來提升傳輸性能,串行總線一般用于芯片間數(shù)據(jù)通信。

異構計算單元:CPU和GPU、xPU以及各種硬件加速器組成異構多處理單元共同協(xié)作完成工作任務,CPU更多的是承擔控制和數(shù)據(jù)交互的角色。

多服務器集群:現(xiàn)在大型的互聯(lián)網(wǎng)系統(tǒng)需要成百上千的服務器,分為業(yè)務處理、網(wǎng)絡處理、存儲和數(shù)據(jù)庫處理等不同功能分工的服務器,共同組成一個性能強大并且運行穩(wěn)定的系統(tǒng)對外提供服務。

通過不同方向、不同層次的并行技術,都可以提升硬件系統(tǒng)的性能。我們把不同復雜度的單位處理都當作了“指令”,那么,我們就可以通過IPC(Instruction per Cycle)來評價并行度。對一個CPU核來說,IPC代表的是每個周期執(zhí)行的指令數(shù);對一個硬件加速模塊來說,IPC則代表了一個周期所能進行的單位處理的數(shù)量。

3 I/O和處理的性能匹配

3.1 優(yōu)化泛義的I/O,形成存儲分層結構

如第一部分內(nèi)容的介紹,數(shù)據(jù)I/O的帶寬和數(shù)據(jù)處理的性能是相互配合的。當兩者不匹配時,兩者之間性能低的那個就代表了整個系統(tǒng)的性能(或者說,性能低的那個托了整個系統(tǒng)的后腿)。

如果計算處理的性能低于I/O性能,則通過提高指令復雜度、運行頻率和并行度的方式提升處理的性能。

如果I/O性能低于計算處理的性能,則常見的提升I/O(這里的I/O是泛義的I/O,不僅僅是計算機架構中的I/O設備)的方法有:

  • 緩存Cache。內(nèi)存訪問延遲無法匹配處理器流水線的處理能力的情況下,緩存Cache得以應用,隨后還出現(xiàn)了多級Cache。

  • 內(nèi)存帶寬。在DDR控制器的內(nèi)存帶寬不滿足需要的情況下,基于HBM的內(nèi)存得到采用。

  • 高速存儲。在存儲HDD不能滿足性能的情況下,切換到Sata SSD,再切換到NVMe SSD,以此來提高存儲I/O。

  • 高性能網(wǎng)絡。不僅僅是因為處理性能的提升。還因為服務器集群的高可擴展性,以及分布式存儲的廣泛使用,還有整個應用逐漸微服務化,都使得東西向網(wǎng)絡流量(數(shù)據(jù)中心內(nèi)網(wǎng)流量)激增。因此,需要低延遲并且高吞吐量的網(wǎng)絡來處理網(wǎng)絡I/O。

在計算機體系結構里,根據(jù)訪問延遲和容量大小來對計算機存儲分層(Memory Hierarchy),利用程序局部性原理對存儲進行性能優(yōu)化,既可以匹配處理器延遲又可以提供大容量存儲。

圖 計算機存儲分層結構

 

如上圖所示,只考慮架構層面不同存儲層次的功能和作用,可以把存儲結構簡單分為五個存儲級別:

處理器通用寄存器

各級緩存;

內(nèi)存,ROM及系統(tǒng)RAM等;

本地外部存儲;

遠程外部存儲。

3.2 存儲分層結構瓶頸,新的I/O優(yōu)化

物極必反!

因為優(yōu)化I/O的性能,形成了存儲分層結構。然而復雜的存儲分層已經(jīng)開始成為問題的瓶頸,主要體現(xiàn)在功耗、延遲和訪問帶寬,也就是我們常說的“存儲墻”和“功耗墻”的問題。

存儲分層結構存在的一個關鍵原因是程序的局部性。然而,在大數(shù)據(jù)和人工智能時代,大通量計算的場景,再加上服務器多集群擴展以及微服務等對計算的拆分,計算開始呈現(xiàn)“高數(shù)據(jù)量低計算量”的特點,程序局部性逐漸失效。再加上各種數(shù)據(jù)處理引擎開始采用DSA甚至ASIC架構,計算量也在快速上升。這樣如何更好的提供I/O成為整個計算性能的瓶頸。

行業(yè)當前大概有兩個方向的做法:

一個方向是往計算邏輯里放入更多的存儲單元。如增加片內(nèi)內(nèi)存,并且增加各級的訪問帶寬,盡可能的減少層級,以及盡可能不讓中間結果到下一級存儲,盡可能的讓計算全速進行。

另一個方法則更加極端,直接“反其道而行之”,在存儲體里放計算邏輯,這就是大家現(xiàn)在所說的“存內(nèi)計算”。

總之,兩個方法都是盡可能的讓I/O和計算的性能更加匹配。

4 性能提升的各種方法

前面我們通過跟性能相關的四個因素(處理引擎性能的三個因素:指令復雜度、運行頻率和并行度,以及I/O性能匹配)介紹了如何提升性能。接下來,我們介紹一些主要的提升性能的方法。

4.1 工藝封裝的進步

tsmc 5nm已經(jīng)量產(chǎn),3nm工藝已經(jīng)在路上,2nm、1nm也都在未來幾年的路線圖中。并且,tsmc已經(jīng)開始在攻關0.1nm工藝,半導體工藝即將進入亞納米(埃米)時代。此外,在存儲領域,近些年來還興起了3D封裝技術,使得集成電路從二維進入三維。還有,芯粒(chiplet)機制的出現(xiàn),把多個芯片裸DIE集成到一起,從3D到4D,都進一步增強了單位面積的晶體管集成度。工藝持續(xù)進步、3D堆疊以及Chiplet多Die互聯(lián),使得芯片從2D->3D->4D。這些技術的進步,意味著在芯片這個尺度,可以容納更多的晶體管,也意味著芯片的規(guī)模越來越大。

過去50年里,工藝進步是推動摩爾定律的主要因素。每隔兩年左右,單個晶體管變得更小、更快、功耗更低。在面積、功耗不變的硅片上,可以放下更多的晶體管。上圖是斯坦福大學的學者在2012年整理的CPU性能提升的示意圖,可以看到,在架構不變,僅靠工藝進步,其提升的性能依然是相當?shù)目捎^??梢圆豢鋸埖恼f,工藝進步才是摩爾定律持續(xù)發(fā)揮作用的“主力軍”。

總結一下,工藝進步主要可以優(yōu)化三個因素:

工藝進步不直接影響處理引擎架構,也就意味著沒法提升“指令”復雜度;

由于工藝進步,單個晶體管的速度可以更快,這樣,可以立竿見影的提升頻率;

因為資源足夠富余,可以通過并行多個處理引擎的方式實現(xiàn)更高并行性;

工藝進步,可以內(nèi)部嵌入更多片內(nèi)存儲、通過多DIE互聯(lián)/封裝,進一步優(yōu)化泛義I/O;或者通過3D和chiplet等方式實現(xiàn)更大的系統(tǒng)下的更高的交互性能。

4.2 存算一體化

隨著AI等高算力場景的爆發(fā),業(yè)界迫切需要新技術來解決算力的瓶頸。存算一體化芯片成為一種重要的選擇。阿里達摩院總結了存算一體的三種技術路線:

近存儲計算(Processing Near Memory):計算操作由位于存儲芯片外部的獨立計算芯片完成。

內(nèi)存儲計算(Processing In Memory):計算操作由位于存儲芯片內(nèi)部的獨立計算單元完成,存儲單元和計算單元相互獨立存在。

內(nèi)存執(zhí)行計算(Processing With Memory):存儲芯片內(nèi)部的存儲單元完成計算操作,存儲單元和計算單元完全融合,沒有一個獨立的計算單元。

 

站在架構的視角,近內(nèi)存技術是一種優(yōu)化內(nèi)存訪問性能的辦法,能夠通過工藝或封裝,提供數(shù)量級提升的內(nèi)存性能。能夠:提高內(nèi)存訪問的性能,降低內(nèi)存訪問的代價,緩解由于數(shù)據(jù)搬運產(chǎn)生的性能瓶頸。

AI、大數(shù)據(jù)處理等應用,大數(shù)據(jù)量低計算量。這樣,AI-DSA類的芯片,都有一個大的特點,內(nèi)部有非常大的片內(nèi)存儲(On-chip Memory)。而內(nèi)存儲計算則更加激進,直接是在存儲中放計算處理邏輯。不過在此刻,內(nèi)存和計算處理依然是分開的獨立模塊。

而內(nèi)存執(zhí)行計算,當前主要是用于AI場景,可以認為是一個偏ASIC的設計。通過模擬計算,把卷積計算和存儲體深度結合起來。由于模擬計算的精度有限,也由于較定制的設計,這樣的內(nèi)存計算主要用于終端AI推理場景,或者說對能效比非常敏感的小規(guī)模的嵌入式場景。

總結一下,存算一體化主要優(yōu)化的是I/O,主要是通過工藝和封裝的設計和調(diào)整,使得系統(tǒng)能夠更加輕量而高性能的進行存儲訪問。內(nèi)存執(zhí)行計算則相當于定制芯片,可以算作是提高“指令”復雜度,不過這些要歸屬到接下來要介紹的架構的范疇。

4.3 架構優(yōu)化和創(chuàng)新

工藝的進步,給架構師們提供了更多的資源和發(fā)揮的空間:

總線,從最簡單的單總線到總線開關,再到Ring環(huán)形總線,甚至Mesh網(wǎng)絡,以及基于更加功能強大總線完成的集成越來越多復雜模塊的超大SOC。

CPU的流水線、多發(fā)射、多級Cache、多核,以及擴展的各類協(xié)處理器;

GPU也從專門的圖形加速卡變成了GPGPU(后續(xù),GPU默認為GPGPU),集成了數(shù)以千計的通用處理核心,成為并行計算的主力平臺。

近些年,興起了DSA的熱潮,進入了體系結構的“黃金年代”。DSA當前的兩個重要特點,一個是更加復雜的計算引擎,一個是更加龐大的片內(nèi)存儲。

工藝進步提供了更多的晶體管資源,使得大家能夠更加自由的發(fā)揮架構創(chuàng)新的價值。工藝發(fā)展和架構創(chuàng)新相輔相成:工藝發(fā)展給架構創(chuàng)新提供了更多的發(fā)揮空間,而架構創(chuàng)新讓工藝的價值落地。

架構創(chuàng)新是整個設計的主導,架構創(chuàng)新可以從所有四個方面全方位的優(yōu)化整體性能:

“指令”復雜度,處理引擎選擇CPU、GPU還是其他DSA/ASIC定制設計,均可以提升指令復雜度;

通過更優(yōu)化的流水線,每個階段做的事情減少,在同等工藝下,依然可以提升頻率;

通過架構上的優(yōu)化,實現(xiàn)在共享資源情況下的并行。比如Hyper-thread并行共享ALU/MAC等執(zhí)行單元,比如多核并行共享三級Cache和內(nèi)存。也包括充分利用資源實現(xiàn)的其他并行機制。

對I/O訪問也需要更多的優(yōu)化。比如總線的非獨占、Outstanding,多總線,還有多通道內(nèi)存、NVMe以及高性能網(wǎng)絡等等。

5 宏觀的算力

5.1 實際總算力的定義

性能是微觀的概念,代表了單個個體的計算能力。而算力則是宏觀的概念,算力是很多個體的計算能力的總和。為了避免混淆,我們采用總算力的叫法。

在前面我們已經(jīng)介紹了單個個體的性能(在泛I/O不拖后腿的情況下):

(單個處理器的)性能 = 指令的復雜度(單位計算密度) x 頻率 x 并行度

那么總算力則和單個處理器的性能以及處理器的數(shù)量成正比:

總算力 = (單個處理器的)性能 x 處理器的數(shù)量

雖然總算力可以很高,但如果因為各方面的原因,其利用率不高,則也不夠好。因此:

實際總算力 = 總算力 x 利用率

= 指令的復雜度(單位計算密度) x 頻率 x 并行度 x 處理器的數(shù)量 x 利用率

5.2 處理器的數(shù)量,實現(xiàn)規(guī)?;?/h2>

總算力的概念非常的直觀,一方面是單顆芯片的算力要高,另一方面,芯片要被大規(guī)模采用。像CPU、GPU以及DPU這樣的大芯片,只有得到了大規(guī)模的采用,才能真正的發(fā)揮芯片的價值,在商業(yè)上才能做到真正的成功。反之,如果芯片沒有大規(guī)模落地,即使性能太好,一切都是浮云。

那如何做到芯片能夠規(guī)?;??這是一個非常復雜的問題,涉及到很多方面的因素。如果只考慮核心的架構設計,則是需要在性能和靈活性這兩個矛盾的關鍵因素達到平衡甚至兼顧。CPU極度靈活,但性能瓶頸;ASIC性能極致,但靈活性差。如何設計一個均衡的算力平臺,兼顧性能和靈活可編程能力,使得總算力盡可能最高,是一個非常巨大的挑戰(zhàn)。

5.3 算力的利用率,降低成本,普惠大眾

云計算沒有出現(xiàn)的時候,如果我們想部署一套互聯(lián)網(wǎng)系統(tǒng)給大家提供服務,則需要自己購買物理的服務器,然后租用運營商的機房。整個過程成本很高,而且彈性不足。不知道用戶會有多少,也不知道服務器應該購買多少量,應該是10臺還是1000臺。買少了,用戶訪問量快速上升,服務會掛掉;買多了,如果用不到,浪費錢財資源閑置。超過一定數(shù)量,有可能就需要自己建機房,自己運維硬件。整個業(yè)務模式很重。

后來,云計算幫助用戶完成了基礎設施的建設,用戶只需要按需購買。一方面,不需要關心門檻高而且距離業(yè)務非常遠的基礎設施建設。另一方面,實現(xiàn)完全的按需付費,快速而方面的擴容或者縮容,可以非常明顯的降低運維成本。

再后來,云計算這種集中計算的架構其性能挑戰(zhàn)越來越大,于是有了邊緣計算。類似于集中(云計算)和分布(邊緣計算)的關系,邊緣計算能夠相比云計算提供更低延遲的服務,與此同時,大幅度減輕云的壓力。不過邊緣計算也帶來了一些問題,就是資源規(guī)模小,地域分散,而且運行環(huán)境各異。如何充分利用分散到各處的邊緣計算資源,成為了需要重點解決的事情。

近些年來,宏觀的一些技術趨勢,比如云網(wǎng)融合、超云(云MSP實現(xiàn)跨云和混合云模式,我們定義為超云)以及國家“東數(shù)西算”戰(zhàn)略等等。本質的,都是在通過各種各樣的手段,盡可能的提高算力的整體利用率,以此來降低算力的成本,讓算力變得更加唾手可得。

6 總結

把相關的若干因素再總結一下,要提高宏觀的實際總算力,就必須要:

提高指令的復雜度(單位計算密度)。新的DSA架構創(chuàng)新,均衡的考慮不同的算力平臺,以及通過異構和超異構計算,融合多種平臺一起協(xié)作,完成系統(tǒng)級計算。

提高運行頻率。優(yōu)化設計,選擇最優(yōu)的流水線級數(shù)以及工藝等的持續(xù)進步,優(yōu)化系統(tǒng)的運行頻率。

提高并行度。更高的擴展性(Scalibility),更高性能的各層級的互聯(lián)總線,并行更多的處理引擎。

優(yōu)化I/O和處理的匹配度。通過工藝和封裝優(yōu)化,實現(xiàn)更加匹配的計算和I/O匹配。

實現(xiàn)處理器芯片的更大規(guī)模落地。均衡芯片的整體性能和靈活可編程能力,實現(xiàn)宏觀的總算力最大化。

進一步優(yōu)化宏觀算力的利用率。算力上規(guī)模后,通過云計算、邊緣計算、超云、云網(wǎng)融合等手段,持續(xù)優(yōu)化算力的利用率,降低算力的成本。

簡單一些的說,算力提升核心就兩個方面:

一個是增大規(guī)模(Scale out),通過擴大算力基礎設施建設,以及“東數(shù)西算”等方式,構建更加規(guī)模龐大并且低能耗的現(xiàn)代化數(shù)據(jù)中心。

 

另一個是提升單個計算節(jié)點的性能(Scale up),構建新一代的創(chuàng)新計算范式,要把算力再持續(xù)提升1-2個數(shù)量級,并且能夠提供非常好的易用編程能力,來持續(xù)應對未來10年的更加復雜系統(tǒng)的算力需求爆炸的挑戰(zhàn)。

參考文獻:

https://www.stcn.com/xw/sd/202201/t20220118_4085409.html,數(shù)字基建大工程啟動,“西算”四大樞紐節(jié)點獲批

https://mp.weixin.qq.com/s/cWS4YeIlUEm1dexjgN8f-w,鄔賀銓院士:算力如何賦能未來世界?

https://mp.weixin.qq.com/s/_0_uwuCuKnMiuZM_jvYnaw, 性能提升10倍以上:阿里達摩院成功研發(fā)新型存算一體芯片

  1. CPU DB: Recording Microprocessor History, by Andrew Danowitz, Kyle Kelley, James Mao, John P. Stevenson, and Mark Horowitz, http://cpudb.stanford.edu/p55-danowitz.pdf

相關推薦

電子產(chǎn)業(yè)圖譜

公眾號:軟硬件融合;CPU靈活性好但性能較差,ASIC性能極致但靈活性差,魚和熊掌如何兼得,同時兼顧性能和靈活性,我給出的方案是“軟硬件融合”。軟硬件融合不是說要軟硬件緊耦合,相反,是要權衡在不同層次和粒度解耦之后,再更加充分的協(xié)同。