被譽為英國半導體之父,同時也是Arm聯合創始人的Hermann Hauser先前曾經這樣評價過Graphcore:「這在計算機歷史上只發生過三次,第一次是70年代的CPU,第二次是90年代的GPU,而Graphcore就是第三次革命。他們的晶片是這個世界偉大新架構的一種。」
當通用計算逐漸在性能、能效比提升逐年放緩的情況下,摩爾定律放緩、登納德縮放定律失效,被人們每每提及的「架構革新」成為一種必然。Graphcore的IPU可算是當代「架構革命」的先驅之一。Graphcore的架構革命究竟能帶來什麼?
Graphcore CEO Nigel Toon
神經網絡(NN)的一大特點,就是在邏輯層面對人腦神經元行為的模擬。更加高度抽象地說,以「推理」過程為例,我們「感知」世界的方式,總是通過非精確數據進行推理,從經驗中學習,以及基於世界模型的嘗試。就好比人類大腦辨認一隻貓的過程,是基於經驗的、常識模型的,而且是低精度的,我們不需要精確獲知這隻動物身上究竟有多少根毛髮、眼睛尺寸的具體數值等,便可推理出這是一隻貓。
今年的2019全球CEO峰會上,Graphcore CEO Nigel Toon在題為Exascale Compute with IPU的主題演講中提到,如今智能機器(Intelligence Machine)的常規方案,即是獲取訓練(training)數據/傳感器數據,然後藉由「概率知識模型」在本地進行推理(inference),並最終得到結果。
「什麼樣的數據、什麼樣的方法去捕捉他們要訓練的這些數據,數據間的應用關係;就像孩子一樣,大腦不斷地吸收他們的知識,才能產生這樣的模型,這些是需要長時間建立的。」Toon表示。除此之外,這類型的工作極少出現分支和其他複雜行為任務(分支這類型的任務是CPU的專長),可以分解成單獨、半獨立的線程;而且計算精度要求並沒有那麼高。
這樣一來GPU這種具備處理重度並行任務能力的處理器也就非常適用,不過GPU的效率仍然不夠高。Graphcore在前兩年的一次主題演講中特別提到了GPU的Dark Silicon[1],畢竟GPU有一部分是專為圖形渲染做高性能計算的,這樣一來就存在大量資源浪費;而且主流GPU核心區域的片上存儲資源仍然是不夠的,數據吞吐能力也就沒有那麼強。
前面提到的「知識模型」包含的特點有:自然呈現為計算圖(graphs,代表的是知識模型和應用,所有機器學習模型都用graph的形式來表達)、支持高度並行計算、需要海量數據帶寬、小型張量(small tensors)的低精度算法。這其實是AI晶片誕生的重要契機。
另一方面,「機器智能」的要求還在發生進化。我們現在更多的應用,並不是單純能識別一隻貓這麼簡單,更多的比如語言理解,以及更多的高級感知能力——如汽車輔助駕駛系統或者自動駕駛中,對司機情緒、疲勞程度的判斷等。與此同時,模型尺寸正在變得越來越大。我們前兩年還在說:好的卷積神經網絡,通常是帶有「上百萬參數」和許多隱藏層的怪物。不過在這些年不同應用的發展中,「上百萬」又算得上什麼?
Toon列舉在2016年1月的殘差網絡ResNet50參數總量25M,到2018年10月的BERT-Large自然語言模型發展到了330M,如今OpenAI會講故事的文本生成模型GPT2——這是一個大型語言模型,具有15億個參數;未來的新模型是朝著萬億(trillion)量級去的。
上面這張圖,來自去年年中OpenAI發布的一份名為《AI與計算》的分析報告[2]。這份報告提到,自2012年以來,AI訓練(training)任務應用的算力需求每3.5個月就會翻倍,這個數字可是超過了摩爾定律的;從2012年至今,AI算力增長超過30萬倍。這張圖縱軸的單位,每1個petaflop/s-day(pfs-day),就包含了一天每秒10^15次神經網絡運行次數,或者總數大約10^20次操作(不過這個統計針對一次「操作」的定義,沒有區分加法、乘法,而且不區分數據精度)。
需要注意的是,這張圖的縱軸刻度並不呈線性,而是指數級增加。
當我們真正去對比當前晶片的電晶體數量,以及性能變化時,其實很容易發現,摩爾定律大趨勢是持續的,但登納德縮放比例定律(電晶體密度增加同時,每個電晶體功耗會下降)已經達到極限——我們在先前的文章中也已經不止一次地提到過這個問題。早些年,Steve Scott還在英偉達特斯拉業務部門擔任CTO(現在是Cray的CTO)的時候就說過這個觀點:電晶體已經無法在體積縮小的情況下持續降低電壓,這樣一來,雖然集成的電晶體越來越多,但也意味著功耗越來越大:性能因此受到功耗限制,每一次製程迭代,都會加重該問題。
所以解決方案是?去年《連線(WIRED)》雜誌在採訪AI之父Geoff Hinton說:「我認為我們需要轉向不同類型的計算機。幸運的是我這裡有一個...」Hinton從錢包裡掏出一枚又大又亮的矽晶片:IPU。
這段是Toon在全球CEO峰會上講的,看起來很像是個段子。不過從連線雜誌的原報導來看[3],這件事竟然是真的,當時Hinton拿出來的是Graphcore的原型產品。Geoff Hinton現如今是谷歌AI頂級研究人員,此人早在上世紀70年代就開始構建人類大腦從視覺層面理解世界的數學模型。所以這件事,又讓Graphcore獲得了一重加持。
實際上,現如今的AI晶片已經遍地開花了,不管是訓練(training)還是推理(inferencing),包括Arm前不久都已經發布了針對邊緣AI推理的專用IP。這其實已經足夠表明,這種「架構革命」風捲殘雲式的來襲。
簡單地說:CPU通過手機數據塊來處理問題,然後針對這些信息跑算法或執行邏輯操作,其通用性很好,適用於各種計算,但可並行的核心數量經常只有個位數;GPU核心數或執行單元數量大,可同時執行更多任務,但如前所述,其效率還是不夠的;而AI晶片,則能夠從不同位置同時拉來大量數據,進行快速和更高並行數的處理:Graphcore的IPU(Intelligence Processing Units)是其中一種。
Graphcore可以認為是這個領域最早的一批開創者。IPU的「架構變革」部分體現在,整合晶片邏輯和存儲部分,在片上分布SRAM,讓IPU達到100倍吞吐;此外,16nm "Colossus" IPU包含了超過1200個低精度浮點運算核心,和所有機器學習所需的控制操作與超越函數,125 teraFLOPS算力;每個核心能夠跑至多6個線程。
另外搭配Graphcore針對機器智能設計的軟體工具鏈Poplar。Toon先前在接受採訪時曾提到:「Poplar建立在計算圖形抽象(computational graph abstraction)的基礎上。其graph compiler的IR(intermediate representation中間層)是個大型的定向圖。」Graph圖像共享作為內部的representation,整個知識模型的representation最後都會分解為高度並行的工作負載,然後在IPU處理器之間進行調度和執行。一句話概括就是,Poplar通過不同層級的優化,在IPU核心之間部署任務。[4]
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級別的擴展Nigel Toon提到,IPU產品已經向戴爾出貨,戴爾易安信IPU伺服器即是一款比較具體的產品。如我們先前所了解的那樣,這款數據中心設備,每臺插8張C2 PCIe加速卡(每個C2卡包含兩個IPU),能夠實現1.6 petaFLOPS的算力。戴爾其實也是Graphcore企業市場策略的重要組成部分。
從IPU先前的介紹來看,它具備card-to-card links的彈性擴展機制。在前不久的NeurIPS展會上佔了一個名為Rackscale IPU-POD的參考設計。Nigel Toon這次講IPU-POD稱作「機器智能超級計算機」,「這部分去年10月,我們開始逐步付諸實施。」這可以認為是將IPU彈性應用到極致的某種示例。
一個單獨的42U機架IPU-Pod能夠提供超過16 PetaFLOPS混合精度算力;一套32個IPU-POD(至多4096個IPU),可以將算力彈性擴展至超過0.5 ExaFLOPS的程度,這對同硬體的訓練和推理,都是相當驚人的吞吐量。
顯然針對Toon前面提到神經網絡模型在體積和算力需求方面的擴張,是越來越必要的一種應用方案。
可彈性擴展至0.5 ExaFLOPs的IPU-POD
作為英國的一家獨角獸企業,Graphcore是被Nigel Toon寄予了厚望的。他一直期望在英國建立一個具備Arm同等影響力的科技企業。當前Graphcore的融資總額已經達到3.25億美元,這在我們先前的全球CEO峰會展望篇中已有所提及。不過在應對AI晶片越來越多市場參與者,包括大量初創型企業,以及Intel、英偉達這些老牌企業的入場,Graphcore和Nigel Toon的競爭壓力顯然也是不小的。
參考來源:
[1]https://cdn2.hubspot.net/hubfs/729091/NIPS2017/NIPS%2017%20-%20IPU.pdf?t=1526305355186
[2]https://openai.com/blog/ai-and-compute/
[3]https://www.wired.com/story/googles-ai-guru-computers-think-more-like-brains/
[4]https://www.eet-china.com/news/201909211859.html
責編:Yvonne Geng