圖片來源@視覺中國
文丨腦極體
在CPU芯片領域,延續至今的“摩爾定律”,正在隨着製程工藝逼近物理極限而有了延緩的趨勢,甚至失效的可能。就在摩爾定律的增長放緩腳步的同時,半導體芯片的計算也正在從通用走向專用,其中AI計算正是其中增長最快的一種專用計算。
現在,AI計算正在接棒摩爾定律,延續並超越其倍增神話。2019年,OpenAI發佈了AI算力的增長情況,結果顯示AI算力以3.4個月的倍增時間實現了指數增長,從2012年起,該指標已經增長了30萬倍。
在AI算力爆炸式增長的過程中,英偉達的GPU功不可沒。廣為人知的一個故事就是2012年,來自多倫多大學的Alex和他的團隊設計了AlexNet的深度學習算法,並用了2個英偉達的GTX580 GPU進行訓練後,打敗了其他所有計算機視覺團隊開發的算法,成為那一屆ImageNet的冠軍。
此後,在計算機視覺和自然語言處理領域,GPU的高並行計算能力得到了充分的發揮,英偉達的GPU也隨着AI第三次浪潮的崛起而迎來井噴發展。與此同時,更多為機器學習而專門定製的專用芯片開始出現,比如專用集成電路(ASIC)的張量處理單元TPU、神經網絡單元NPU以及半定製芯片FPGA等等。
2018年底,英國一家名為Graphcore的創業公司推出了一種專門用於AI計算的處理器芯片IPU(Intelligence Processing Unit)。一經問世,IPU就受到AI界越來越多的關注。
ARM創始人,被稱為英國半導體之父的赫曼·豪瑟曾為Graphcore的IPU給出很高評價,將其譽為“計算機史上三次革命中,繼CPU和GPU之後的第三次革命”。赫曼在芯片產業的地位自然不容置疑,但由於Graphcore是英國芯片產業中為數不多的新生力量,難免赫曼有“護犢子”的打廣告之嫌。
IPU出道2年時間,現已推出了量產第二代型號為GC2的IPU。那麼,IPU的表現如何,與GPU相比有哪些優勢之處,這是本文要重點探討的問題。
GPU所開啓的深度學習一個廣為人們熟知的例子就是,在計算機視覺發展初期的2011年,谷歌大腦想要在YouTube的視頻中識別人類和貓,當時這樣一個簡單的任務,谷歌要動用一家大型數據中心內的 2,000 顆服務器 CPU,這些CPU的運行會產生大量的熱量和能耗,關鍵是代價不菲,很少能有研究人員可以用得起這種規模的服務器。
不過在當時,研究人員注意到了英偉達的GPU,斯坦福大學的吳恩達團隊開始和英偉達合作,將GPU應用於深度學習。後來證明,只需要12顆英偉達GPU就可以達到相當於2000顆CPU提供的深度學習性能。此後越來越多的AI研究人員開始在GPU上加速其深度神經網絡 (DNN)的訓練。
現在我們都知道,GPU能夠在深度學習的訓練中大顯身手,正是源於GPU的計算架構正好適用於深度學習的計算模式。深度學習是一種全新的計算模式,其採用的DNN算法包含數十億個網絡神經元和數萬億個連接來進行並行訓練,並從實例中自己學習規律。
深度學習算法主要依賴的基本運算方法有矩陣相稱和卷積浮點運算,而GPU多核架構在原本圖像渲染中可以大規模處理矩陣乘法運算和浮點運算,很好地可以處理並行計算任務,使得DNN訓練速度大幅提升。
此後,GPU成為輔助完成深度學習算法的主流計算工具,大放異彩。但GPU本身並非是專門為AI計算而設計的芯片,其中有大量的邏輯計算對於AI算法來説毫無用處,所以行業自然也需要專門針對AI算法的專用AI芯片。
近幾年,全球已經有上百家公司投入到新型AI芯片的研發和設計當中,當然最終能夠成功流片並推出商用的仍然是幾家巨頭公司和少數實力雄厚的獨角獸公司。
這其中,2017年初創成立的Graphcore所研發的AI芯片IPU,則成為這些AI芯片當中的另類代表,因其不同於GPU架構的創新得到了業內的關注。而這正是我們要着重介紹的部分。
更適合AI計算的IPU芯片近兩年,AI 芯片出現了各種品類的井噴,其中甚至出現一些堪稱瘋狂的另類產品。
比如一家同樣創立四年的AI芯片創業公司Cerebras Systems就發佈了史上最大的半導體芯片Wafer Scale Engine(WSE),號稱“晶圓級發動機”,擁有1.2萬億個晶體管,比英偉達最大的GPU要大出56.7倍。這塊芯片主要瞄準的是超級計算和和大型雲計算中心市場,其創新之處在於一體化的芯片設計大幅提高了內部的數據通信數據,但其架構仍然類似於GPU的計算架構。
而Graphcore的 IPU與GPU的架構差異非常大,代表的是一種新的技術架構,可以説是專門為解決CPU和GPU在AI計算中難以解決的問題而設計的。
IPU為AI計算提供了全新的技術架構,同時將訓練和推理合二為一,兼具處理二者工作的能力。
我們以目前已經量產的IPU的GC2處理器來看,IPU GC2採用台積電的16nm工藝,擁有 236億個晶體管,在120瓦的功耗下有125TFlops的混合精度,另外有45TB/s內存的帶寬、8TB/s片上多對多交換總線,2.5 TB/s的片間IPU-Links。
其中,片內有1216個IPU-Tiles獨立處理器核心,每個Tile中有獨立的IPU核,作為計算以及In-Processor-Memory(處理器內的內存)。對整個GC2來説共有7296個線程(每個核心最多可以跑6個線程),能夠支持7296個程序並行運行,處理器內的內存總共可以達到300MB,其設計思路就是要把所有模型放在片內處理。
首先,IPU作為一個標準的神經網絡處理芯片,可以支持多種神經網絡模型,因其具備數以千計到數百萬計的頂點數量,遠遠超過GPU的頂點規模,可以進行更高潛力的並行計算工作。此外,IPU的頂點的稀疏特性,令其也可以高效處理GPU不擅長的稀疏的卷積計算。其次,IPU 也支持了模型參數的複用,這些複用特性可以獲取數據中的空間或時間不變性,對於訓練與推理的性能會有明顯幫助。
其次,為解決芯片內存的寬帶限制,IPU採用了大規模並行MIMD(多指令流多數據流)眾核架構,同時,IPU架構做了大規模分佈式的片上SRAM。片內300MB的SRAM,相對於GPU的GDDR、HBM來説,可以做到數十倍的性能提升,而且與訪問外存相比,SRAM的片內時延基本可以忽略不計。
第三,IPU採用了高效的多核通信技術BSP(Bulk Synchronous Parallel)。IPU是目前世界上第一款採用BSP通信的處理器,支持內部1216個核心之間的通信以及跨不同的IPU之間的通信。通過硬件支持BSP協議,並通過BSP協議把整個計算邏輯分成了計算、同步、交換,能極大方便工程師們的開發工作。
基於以上IPU的差異化特點,IPU在某些批量訓練和推理中能夠獲得更好的性能、更低延時和更快網絡收斂。片內的SRAM相對於片外存儲,也有高帶寬和低延時的優勢。
今年7月,Graphcore發佈了二代的Colossus MK2 IPU (MK2),以及包含四顆MK2芯片系統方案的IPU-Machine:M2000 (IPU-M2000),其核心數增加了20% ,達到1472個,8832個可並行執行的線程。片內SRAM則多出3倍,增加到900MB,互聯擴展性能是上一代的16倍。顯然在計算、數據和通信擴展層面,MK2都算是延續了第一代IPU堆料狂魔的作風。
由4個IPU芯片構成的IPU-M2000系統,可以提供大約1 PetaFLOPs的算力。基於IPU的多層級存儲結構,與IPU Exchange Memory等技術優化,整體與GPU的HBM2存儲比較,可以提供超過100倍的帶寬以及大約10倍的容量,可以適用於更復雜的AI模型和程序。
計算加上數據的突破可以讓IPU在原生稀疏計算中展現出領先GPU 10-50倍的性能優勢,在通信上,Graphcore專為為AI橫向擴展設計了IPU-Fabric,解決數據中心大規模計算橫向擴展的關鍵問題。Graphcore將計算、數據、通信三者的突破技術結合,構建了大規模可擴展的IPU-POD系統,最終可以提供一個AI計算和邏輯進行解耦、系統易於部署、超低網絡延時、高可靠的AI超算集羣。
可以預計,未來IPU在各類AI應用中將具有更大的優勢,而這也必然會引起英偉達的注意。那麼,相較於英偉達GPU所佔據的AI行業生態位的霸主地位,IPU會有哪些前景,也會遭遇哪些困境呢?
走向通用AI計算的“另闢蹊徑”如果回顧下AI芯片的發展經歷,我們看到在經過這幾年專用AI芯片的井噴之後,也開始面臨一個尷尬困境,那就是ASIC芯片的靈活性或者説可編程性很差,對應的專用AI芯片只能應對一種算法應用,而算法本身則在3-6個月的時間就有可能變化一次,或許出現很多AI芯片還未上市,算法就已經發生進化的問題,一些AI芯片註定無法生產。當然,專用AI芯片的優勢也很明顯,在性能、功耗和效率上遠勝更加通用的GPU,對於一些非常具體的AI應用場景,這些專用芯片就具有了巨大的收益。
從專注圖像渲染崛起的英偉達的GPU,走的也是相當於ASIC的技術路線,但隨着遊戲、視頻渲染以及AI加速需要的出現,英偉達的GPU也在向着GPGPU(General Purpose GPU)的方向演進。為保持其在GPU領域的寡頭地位,使得英偉達必須一直保持先進的製程工藝,保持其通用性,但是要犧牲一定的效能優勢。
這給後來者一定的啓發,那就是AI芯片既要具備一定的靈活的可編程性(通用性),又要具備專用的高效性能優勢。這為IPU找到了一個新的細分市場,也就是介入GPU不能很好發揮效能的神經網絡模型,比如強化學習等類型,同時又避免的專用AI芯片的不可擴展性,能夠部署在更大規模的雲計算中心或超算中心,對新算法模型保持足夠的彈性計算空間。
目前來看,IPU正在成為僅次於GPU和谷歌TPU的第三大部署平台,基於IPU的應用已經覆蓋包括自然語言處理、圖像/視頻處理、時序分析、推薦/排名及概率模型等機器學習的各個應用場景。
典型的如通過IPU可以訓練胸片,幫助醫學人員快速進行新冠肺炎的診斷;如在金融領域,對涉及算法交易、投資管理、風險管理及詐騙識別的場景進行更快的分析和判斷;此外在生命科學領域、通信網絡等方面,都可以同IPU實現高於GPU性能的AI加速。
(NLP模型參數的指數增長)
當然,IPU想要在AI計算中擁有挑戰GPU地位的資格,除了在性能和價格上面證明自己的優勢之外,還需要在為機器學習框架提供的軟件棧上提供更多選擇,獲得主流AI算法廠商的支持,在標準生態、操作系統上也需要有廣泛的支持,對於開發者有更方便的開發工具和社區內容的支持,才能從實際應用中壯大IPU的開發生態。
今年, AI芯片產業正在遭遇洗牌期,一些AI芯片企業黯然退場,但這並不意味着AI計算遭遇寒冬,反而AI算力正在得到大幅提升,以今年數量級提升GPT-3的出場就可以看出這樣的趨勢。
一個AI芯片從產出到大規模應用必須要經過一系列的中間環節,包括像上面提到的支持主流算法框架的軟件庫、工具鏈、用户生態等等,打通這樣一條鏈條都會面臨一個巨大挑戰。
現在,GPU已經形成一個非常完整的AI算力生態鏈路,而IPU則仍然在路上,是否能真正崛起,還需要整個AI產業和開發者用實際行動來投票。