被譽為英國半導體之父,同時也是Arm共同創辦人的Hermann Hauser先前曾經這樣評價過Graphcore:「這在電腦歷史上只發生過三次,第一次是70年代的CPU,第二次是90年代的GPU,而Graphcore就是第三次革命。他們的晶片是這個世界偉大新架構的一種。」

當通用運算性能、能效比的提升速度逐年趨緩,以及摩爾定律(Moore’s Law)趨緩、登納德縮放(Dennard Scaling)定律失效,被人們每每提及的「架構革新」成為一種必然。Graphcore的IPU可算是當代「架構革命」的先驅之一;Graphcore的架構革命究竟能帶來什麼?

為什麼需要革命?

神經網路(NN)的一大特點,就是在邏輯層針對人腦神經元行為的模擬。更加高度抽象地說,以「推論」過程為例,我們「感知」世界的方式,總是透過非精確資料進行推論,從經驗中學習,以及基於世界模型的嘗試;就好比人類大腦辨認一隻貓的過程,是基於經驗的、常識模型的,而且是低精度的,我們不需要精確獲知這隻動物身上究竟有多少根毛髮、眼睛尺寸的具體數值等,便可推論出這是一隻貓。

在深圳舉行的ASPENCORE 2019年全球CEO峰會上,Graphcore執行長Nigel Toon在題為「Exascale Compute with IPU」的專題演說中提到,如今智慧型機器(Intelligence Machine)的常規方案,即是獲取訓練(training)資料/感測器資料,然後借由「概率知識模型」在本地進行推論(inference),並最終得到結果。

「什麼樣的資料、什麼樣的方法去捕捉他們要訓練的這些資料,資料間的應用關係;就像孩子一樣,大腦不斷地吸收他們的知識,才能產生這樣的模型,這些是需要長時間建立的。」Toon表示,除此之外,這類型的工作極少出現分支和其他複雜行為任務(分支這類型的任務是CPU的專長),可以分解成單獨、半獨立的執行緒;而且運算精度要求並沒有那麼高。

20191113_DSGraphcore_NT61P1

這樣一來GPU這種具備處理重度並行任務能力的處理器也就非常適用,不過GPU的效率仍然不夠高。Graphcore在前兩年的一次主題演講中特別提到了GPU的Dark Silicon,畢竟GPU有一部分是專為圖形渲染做高性能運算的,這樣一來就存在大量資源浪費;而且主流GPU核心區域的晶片上記憶體資源仍然是不夠的,資料吞吐能力也就沒有那麼強。

前面提到的「知識模型」包含的特點有:自然呈現為運算圖(graphs,代表的是知識模型和應用,所有機器學習模型都用graph的形式來表達)、支援高度平行運算、需要海量資料頻寬、小型張量(small tensors)的低精度演算法。這其實是AI晶片誕生的重要契機。

另一方面,「機器智慧」的要求還在發生進化。我們現在更多的應用,並不是單純能識別一隻貓這麼簡單,更多的比如語言理解,以及更多的高級感知能力——如汽車輔助駕駛系統或者自動駕駛中,對司機情緒、疲勞程度的判斷等。與此同時,模型尺寸正在變得越來越大。我們前兩年還在說:好的卷積神經網路,通常是帶有「上百萬參數」和許多隱藏層的怪物。不過在這些年不同應用的發展中,「上百萬」又算得上什麼?

Toon列舉在2016年1月的殘差網路(Residual Network) ResNet50參數總量25M,到2018年10月的BERT-Large自然語言模型發展到了330M,如今OpenAI會講故事的文本生成模型GPT2——這是一個大型語言模型,具有15億個參數;未來的新模型是朝著兆(trillion)量級去的。

20191113_DSGraphcore_NT61P2

上面這張圖來自去年年中OpenAI發佈的一份名為《AI與運算》的分析報告。這份報告提到,自2012年以來,AI訓練(training)任務應用的算力需求每3.5個月就會翻倍,這個數字可是超過了摩爾定律的;從2012年至今,AI算力成長超過30萬倍。這張圖縱軸的單位,每1個petaflop/s-day (pfs-day),就包含了一天每秒10^15次神經網路運行次數,或者總數大約10^20次操作(不過這個統計針對一次「操作「的定義,沒有區分加法、乘法,而且不區分資料精度)。

需要注意的是,這張圖的縱軸刻度並不呈線性,而是指數級增加。

20191113_DSGraphcore_NT61P3

當我們真正去對比當前晶片的電晶體數量,以及性能變化時,其實很容易發現,摩爾定律大趨勢是持續的,但登納德縮放定律(電晶體密度增加同時,每個電晶體功耗會下降)已經達到極限——我們在先前的文章中也已經不止一次地提到過這個問題。早些年,Steve Scott還在Nvidia的Tesla GPU業務部門擔任CTO (現在是Cray的CTO)的時候就說過這個觀點:電晶體已經無法在體積縮小的情況下持續降低電壓,這樣一來,雖然整合的電晶體越來越多,也意味著功耗越來越大:性能因此受到功耗限制,每一次製程演進都會加重該問題。

所以解決方案是?

去年《WIRED》雜誌在採訪AI之父Geoff Hinton時,他說:「我認為我們需要轉向不同類型的電腦。幸運的是我這裡有一個...」Hinton從錢包裡掏出一枚又大又亮的矽晶片:IPU。

這段是Toon在全球CEO峰會上講的,看起來很像是個「段子」。不過從連《WIRED》的原報導來看,這件事竟然是真的,當時Hinton拿出來的是Graphcore的原型產品。Geoff Hinton現如今是Google的頂尖AI研究人員,此人早在1970年代就開始構建人類大腦從視覺層面理解世界的數學模型。所以這件事又讓Graphcore獲得了一重加持。

實際上,如今的AI晶片已經遍地開花了,不管是訓練(training)還是推論(inferencing),包括Arm前不久都已經發佈了針對邊緣AI推論的專用IP。這其實已經足夠表明,這種「架構革命」風捲殘雲式的來襲。

簡單地說:CPU透過手機數據塊來處理問題,然後針對這些資訊跑演算法或執行邏輯操作,其通用性很好,適用於各種運算,但可平行的核心數量經常只有個位數;GPU核心數或執行單元數量大,可同時執行更多工,但如前所述,其效率還是不夠的。而AI晶片則能夠從不同位置同時拉來大量資料,進行快速和更高平行數的處理:Graphcore的IPU (Intelligence Processing Units)是其中一種。

20191113_DSGraphcore_NT61P4

Graphcore可以被認為是這個領域最早的一批開創者。IPU的「架構變革」部分體現在整合晶片邏輯和記憶體部分,在晶片上分佈SRAM,讓IPU達到100倍吞吐;此外,16nm 「Colossus」IPU包含了超過1,200個低精度浮點運算核心,和所有機器學習所需的控制操作與超越函數,125 teraFLOPS算力,每個核心能夠跑至多6個執行緒。

另外搭配Graphcore針對機器智慧設計的軟體工具鏈Poplar。Toon先前在接受採訪時曾提到:「Poplar建立在運算圖形抽象(computational graph abstraction)的基礎上。其graph compiler的中介碼(intermediate representation,IR)是個大型的定向圖。」Graph圖像共用作為內部的representation,整個知識模型的representation最後都會分解為高度並行的工作負載,然後在IPU處理器之間進行調度和執行。一句話概括就是,Poplar透過不同層級的優化,在IPU核心之間部署任務(參考閱讀)。

Poplar支持TensorFlow、PyTorch、OONX、Keras等框架。「從這些高層級的框架獲取輸出,饋入Poplar軟體層,產生高層級的graph,並將這些graph映射到跑在IPU處理器上的一張完整運算graph上;」這其實也是當前AI晶片開發的常規思路。

總結一下,這些嘗試解決的問題實質就是本文第一部分提出的,當代「知識模型」的那些要求,包括高吞吐、高度平行、低精度等,並在性能要求上滿足模型越來越貪婪的需求。

IPU的幾個特點,第一是被稱作graphs型的運算(computation on graphs,包括了高度平行、稀疏化(sparse)、高維度模型、分散式晶片上記憶體);第二,低精度、寬動態範圍演算法(混合精度,16.32,和更低);第三,靜態圖形結構(編譯器可分解任務、分配記憶體,調度messages,塊同步平行、無序化、adress-less通訊);最後是Entropy Generative(比如產生統一分佈整數、Generation of vectors of approximately Gaussian distributed floats等)。

ExaFLOPS級別的擴展

Toon提到,IPU產品已經向戴爾(Dell)出貨,Dell EMC IPU伺服器即是一款比較具體的產品。如我們先前所瞭解的那樣,這款資料中心設備,每台插8張C2 PCIe加速卡(每個C2卡包含兩個IPU),能夠實現1.6 petaFLOPS的算力。戴爾其實也是Graphcore企業市場策略的重要組成部分。

20191113_DSGraphcore_NT61P5

20191113_DSGraphcore_NT61P6

從IPU先前的介紹來看,它具備card-to-card links的彈性擴展機制;在前不久的NeurIPS大會上展出了一個名為Rackscale IPU-POD的參考設計。Toon這次將IPU-POD稱為「機器智慧超級電腦」;他指出:「這部分從去年10月我們開始逐步付諸實現。」這可以認為是將IPU彈性應用到極致的某個範例。

一個單獨的42U機架IPU-Pod能夠提供超過16 PetaFLOPS混合精度算力;一套32個IPU-POD(至多4096個IPU),可以將算力彈性擴展至超過0.5 ExaFLOPS的程度,這對同硬體的訓練和推論,都是相當驚人的輸送量。顯然針對Toon前面提到神經網路模型在體積和算力需求方面的擴張,是越來越必要的一種應用方案。

身為英國的「獨角獸」,Graphcore被Toon寄予厚望;他一直期望在英國建立一個具備Arm同等影響力的科技企業,當前Graphcore的融資總額已經達到3.25億美元。不過有鑑於AI晶片市場越來越多參與者,包括大量的新創公司,以及Intel、Nvidia這些老牌企業的入場,Graphcore和Toon顯然也面臨不小的競爭壓力。

(本文原刊於EE Times China網站,為ASPENCORE主辦之2019年全球CEO峰會現場報導)