IPU:為AI處理器帶來了一種顛覆 性架構
迎 九 (《電子產品世界》 北京,100036)
本文引用地址:http://www.j9360.com/article/202007/415317.htm摘 要:英國半導體之父、Arm的聯合創始人Hermann爵士稱:“在計算機歷史上發生過3次革命,第1次是70年代的CPU,第2次是90年代的GPU,而Graphcore公司帶來了第3次革命。”Graphcore推出了為AI計算而生的IPU。Graphcore高級副總裁兼中國區總經理盧濤先生和中國銷售總監朱江,向電子產品世界等媒體介紹了IPU的架構。
0 引言
Graphcore總部在英國,目前全球有450名員工。公司已獲大量投資,截止到2020年6月,總融資超過4.5億美元。
Graphcore主要產品是IPU。Graphcore認為,由于CPU和GPU不是為了滿足機器學習的計算需求而設計,因此盡管進化,創新者卻開始因硬件阻礙而倒退。而Graphcore創建了一種全新的處理器,是第一個專為機器學習工作負載而設計的處理器——智能處理器(IPU)。
1 IPU的兩大特點
Graphcore現有的IPU的表現及下一代的模型上,性能領先于GPU:在自然語言處理方面的速度能夠提升20%~50%;在圖像分類方面,能夠有6倍的吞吐量而且是更低的時延;在一些金融模型方面的訓練速度能夠提高26倍以上。目前,IPU在一些云上、客戶自建的數據中心服務器上已經可用。
相比GPU及其他與GPU類似的處理器架構,IPU有2個亮點設計。
1)從大規模并行的角度來看,CPU在控制方面做了很多非常通用化的處理器,也就是一個標量的處理器;GPU是向量處理器,有單指令、多數據的特點,適合處理大規模的、稠密的數據,在某一類的AI運算里會有非常明顯的優勢,這也是現在GPU在市場上表現得非常好的原因;而IPU是一種全新的架構設計,是一種圖形的處理器,具備多指令、多數據的特點。除了稠密的數據之外,現在代表整個AI發展方向的大規模稀疏化的數據,在IPU上處理就會有非常明顯的優勢。
2)IPU采用的大規模分布式的片上SRAM的架構,這與GPU、CPU是完全不同的。Graphcore IPU拋棄了外部的DDR,把所有memory放到片上,因此能夠解決在目前機器學習中大量出現的內存帶寬構成的瓶頸。
在場景應用方面,由于采用了分組卷積這種新型的卷積,和目前比較傳統的ResNet相比,可以有更好的精度表現。但這樣的分組卷積因為數據不夠稠密,在GPU上可能效果并不好,而IPU可以把這樣的模型真正落地使用,尤其是在一些垂直行業,諸如金融領域提升應用的性能。
Graphcore所做的產品包括了硬件、軟件和IPU的系統解決方案。
2 為AI應用打造的IPU
機器智能代表的是全新的計算負載,特點是非常大規模的并行計算,和非常稀疏的數據結構。AI或機器智能相較于傳統的科學計算或者高性能計算(HPC)有個特點,就是低精度計算;另外像在做訓練推理過程中的數據參數復用、靜態圖結構都是AI應用代表的一些全新的計算負載。
從2016年至今,整個AI算法模型發展基本上從2016年1月的ResNet50的2 500萬個參數,到2018年10月BERT-Large的3.3億個參數,2019年GPT2的15.5億個參數,呈大幅增長的趨勢。甚至現在有一些領先的科研機構和AI研究者在探索更大的算法模型,希望用一些復雜的模型能夠訓練更復雜的算法,并提高精度。
但是現在的密集計算并不是可持續的,因為譬如要從15.5億規模擴展到1萬億,計算方面的提高是指數級,即數倍算力的提升,這就需要一種全新的方法來做AI計算。
但是在當前,機器學習采用的還是傳統處理器架構,例如CPU,目前還是有很多AI負載架構在CPU之上。CPU實際是針對應用和網絡進行設計的處理器,是標量處理器(表1)。
后來出現的GPU是針對圖形和高性能計算,以向量處理為核心的處理器,從2016年到現在被廣泛應用在AI里。
但AI是一種全新的應用架構,它底層表征是以計算圖作為表征的,所以可能需要一種全新的處理器架構,而Graphcore IPU就是針對計算圖的處理來設計的處理器。
提到摩爾定律和算力,處理器現在是1個teraflops(每秒1萬億次浮點運算)、10個teraflops甚至100個teraflops,算力提升非常快。但人們發現,有效的算力其實遠遠達不到算力的峰值,中間內存的帶寬是非常限制性能的。
例如,處理器算力提高了10倍,內存怎樣提高10倍吞吐量呢?如果用傳統的DDR4、DDR5、HBM、HBM1、HBM2、HBM3內存等,基本上每代只能有30%、40%的提升。
所以在Graphcore做IPU的時候,在這部分做了一個特別的設計:與傳統的CPU、GPU比較起來,IPU用了大規模并行MIMD的處理器核,另外做了非常大的分布式的片上的SRAM,在片內能做到300 MB的SRAM,相對CPU的DDR2的子系統,或相對于GPU的GDDR、HBM,IPU能夠做到10~320倍的性能提升。從時延的角度來看,與訪問外存相比較,時延只有1%,可以忽略不計。
再從整體上看一下IPU處理器,目前已經量產的是GC2處理器,是16 nm TSMC的工藝。該處理器目前片內有1 216個IPU-Tiles,每個Tile里有獨立的IPU核作為計算及In-Processor-Memory(處理器之內的內存)。所以整個GC2共有7 296個線程,能夠支持7 296個程序做并行計算。對整片來說,In-Processor-Memory總共是300 MB。所以IPU的整個思想是所有的模型要被放在片內處理。PCIe也是16個PCIeGen 4。
所以,IPU GC2是非常復雜的擁有236億個晶體管的芯片處理器,在120 W的功耗下有125 TFlops的混合精度、1 216個獨立的處理器核心(Tile)、300 M的SRAM能夠把完整的模型放在片內,另外內存的帶寬有45 TB/s、片上的交換是8 TB/s,片間的IPU-Links是2.5 Tbps。
由于IPU GC2有1 216個核心(Tile)、7 000多個線程,所以解決并行硬件的高效編程問題是一個非常大的課題。Graphcore采用構建大規模數據中心集群的BSP技術(Bulk Synchronous Parallel,大容量同步并行),這種技術目前在谷歌、Facebook、百度這樣的大規模數據中心都在使用。
因此,IPU是業界首款BSP處理器,通過硬件能支持BSP協議,并通過BSP協議把整個計算邏輯分成計算、同步、交換。對軟件工程師或開發者,這就是非常易于編程的,因為這樣就不用處理locks這個概念。對用戶來說,也不用管其中是1 216個核心(Tile)還是7 000多個線程、任務具體在哪個核上執行,所以這是一個非常用戶友好的創新。
(注:本文來源于科技期刊《電子產品世界》2020年第07期第59頁,歡迎您寫論文時引用,并注明出處。)
評論