IPU MLPerf跑分成績出爐意味什麼?

作者 : 黃燁鋒,EE Times China

IPU在某些特定工作中的性能、效率表現遠超GPU。不過這是一家之言……

在前年Aspencore的雙峰會上,EE Times China採訪Graphcore CEO Nigel Toon時就曾談到過Graphcore的IPU處理器尚未參與人工智慧(AI)業界比較知名的MLPerf基準測試。當時Nigel Toon和Graphcore資深副總裁兼中國區總經理盧濤都表示,Graphcore的資源仍較有限,這一階段「仍需聚焦開發核心軟體特性,以及和客戶一同進行一些應用場景的實踐」。

事實上,6月初MLCommons (MLPerf基準測試的發起主體)發佈的Board Members名單中,就可看到有三名新成員加入。其中一位就是Graphcore戰略與業務開發執行副總裁Jon Khazam——這位也是業內名人。所以這次Graphcore參與MLPerf基準測試中,也是意料之中。

IPU的測試成績

IPU在某些特定工作中(比如和微軟Azure合作中,在BERT語言模型訓練和推論;與百度合作,在Deep Voice 3模型訓練等)的性能、效率表現遠超GPU。不過這是一家之言,用盧濤的話來說,MLPerf更像是把大家「拉到同一個維度裡對話,對於業界具備較大的參考意義」。

 

藉由Poplar生成的ResNet-50和BERT。這種專屬於Graphcore的視覺化呈現,也是Graphcore的形象代表。

 

MLPerf基準測試有訓練和推理兩部分,針對影像分類、物件檢測、翻譯、自然語言處理(NLP)、推薦系統、強化學習等都有對應的測試。這次Graphcore參與的是MLPerf Training v1.0中的ResNet-50和BERT兩項——分別是電腦視覺(CV)和NLP應用中比較具有代表性的模型。

而Graphcore用於基準測試的硬體設備,分別是IPU-POD16和IPU-POD64。測試中,IPU-POD16是4個1U的IPU-M2000,加1台雙路伺服器(dual-CPU x86 server),運算力標稱為4 PetaFLOPS;IPU-POD64則是由16個IPU-M2000組成,4台雙路伺服器,運算力16 PetaFLOPS。盧濤表示,BERT模型訓練配1台x86伺服器,而ResNet-50模型訓練則配4台。盧濤還說,未來有做更大規模集群的性能提交計畫。

 

 

測試結果如上圖。這裡BERT模型訓練成績中,Closed和Open的區別在於,Closed是完全依照MLPerf規定的網路架構最佳化方式和硬體設定測得的成績;而Open則是Graphcore「提交中稍微改動了一下網路架構」後的成績。這張圖可以具體表現出,IPU進行運算力擴展時的效率,尤其在BERT模型訓練中,IPU-POD64可以達成相比IPU-POD16大約3.5倍的性能優勢,性能折損較小。

 

 

 

和Nvidia這次參與測試所用的DGX A100 80GB比較(總共8張卡,也就是640GB總HBM顯示記憶體容量),ResNet-50和BERT模型訓練任務下,5U的IPU-POD16雖然相比6U的DGX A100 640GB的訓練時間會更久,但從Performance/TCO也就是性價比的角度來看,IPU-POD16還是有優勢,如上圖所示。

畢竟DGX A100 640GB價格接近30萬美元,這裡IPU-POD16的價格,據說是合作夥伴提供的目錄價。這個對比實際上沒有提供另一個功耗維度的考量,在擁有權總成本(TCO)中,散熱、電力等開支都是其中的組成部分。從理論上來說,IPU應該會比GPU有著更高的效率,所以在特定任務下的性價比優勢可能會更大。不過更具體的開發專案可能還需要考慮開發成本。這就涉及到廠商的生態構建能力了,這一點Nvidia大概會更具優勢。從總體上,可能需要具體問題具體分析。

 

 

在性能測試結果這部分,盧濤還特別提到ResNet-50存在已經有5年時間,「5年對AI發展來說不短了。而一些新的CV模型如EfficientNet,就不在MLPerf的任務列表中。這種新型的CV模型在IPU上的性能表現更好。」所以Graphcore也比較了EfficientNet-B4模型訓練性能。這項測試裡,IPU-POD16的吞吐量就有比較大的優勢,所以單純以設備性能除以設備價格,性價比優勢也順勢擴大到了3.8倍。「這從某種意義上佐證了IPU的巨大潛力,尤其是針對一些新型的演算法模型的時候。」盧濤說。不過這可能也和Graphcore當前的努力方向有關,下文將提到Graphcore在EfficientNet模型上有對應的研究成果。

值得一提的是,這裡並未提供IPU-POD64的比較,或許是因為在運算力擴展的效率折損中,帶來的性價比優勢會相對收窄。

持續走向完善的AI晶片

Graphcore能夠參與MLPerf測試,其實也很大程度說明Graphcore這家公司正全面走向發展正軌;另一方面則是像Graphcore這種在AI晶片領域頗具產業代表性的新興力量,更多地加入MLPerf測試,也是AI產業在飛速發展的佐證。

可類比的是,當年GPU從專用的繪圖處理器,發展到後來可實現CUDA程式設計和應用於AI之時,就是Nvidia規模持續擴大,公司內部將更多注意力轉向軟體、工具,完善開發生態的過程,IPU這樣的AI處理器也必然經歷這樣的過程。

比較有趣的是,這次Graphcore中國工程總負責人、AI演算法科學家金琛公佈了Graphcore在SDK最佳化方面進步的一些數字。下圖中,比較的是Poplar SDK 1.4、2.0和2.1版本在不同模型訓練吞吐方面的性能提升(基於相同的IPU-POD16硬體)。SDK 1.4其實是Graphcore去年底才發佈,而今年一季2.0就問世了,2.1則在6月發佈——版本遞進速度的確相當快,不同模型下的性能提升也很顯著。

 

 

「對於Graphcore這樣一個500人左右的公司來說,能在半年內取得這樣的提升,可以說是相當顯著的成果了。」金琛說,這一點的確相當值得肯定。Nvidia現如今在GTC上普遍都會談透過軟體、工具、函式庫等的最佳化,實現同等硬體之下的性能提升。所以Nvidia現在也總說自己不是一家晶片公司。這好像也是眾多AI晶片廠商普遍在摸索和發展的方向,是生態建設能力的實現。

金琛表示,「BERT-Large模型的整體性能提升了1.5倍以上。對於BERT-Large第一階段預訓練(SL128)傳輸量來說,其SDK 1.4的傳輸量是大概2700,SDK 2.0是大概3700,SDK 2.1是4000多。CV影像分類方面,EfficientNet在SDK 2.1上的性能和SDK 1.4相比提升了1.5倍。」

這其中能看出提升最為顯著的是ResNet-50模型,SDK 2.1相比1.4性能提升了2.1倍。「這是發揮了我們SDK中的比較顯著的兩個feature的作用:一是post I/O的overlap,即在CPU和IPU間進行任務處理時,在影像傳輸的過程中會與運算發生重疊,這樣可以更好地利用IPU的運算資源。另外,我們在運算元庫和Tile Memory Layout方面也取得了一些進步,使得我們在運算元方面有所提升。」

針對2.1倍的提升,金琛進一步解釋:「訓練ResNet時,配置四個機頭(4台x86 CPU伺服器),四個機頭中每一個Host都起了四個Instance,基本有16個process去處理影像pre-process的過程。這樣帶來的好處是資料的pre-load部分就不會再成為計算瓶頸。這樣的『多進程』可以大大縮短pre-process在整個訓練過程中的佔比。」

 

 

這些都能很大程度顯示Graphcore在快速發展,甚至和1年前我們認識的Graphcore相比都大不一樣。EE Times China倒是認為,隨Graphcore在AI研究中的愈發駕輕就熟,這次公佈的成績並不能完全實現IPU硬體層面的真正實力,將來的提升空間可能還會很大。

盧濤說:「參加MLPerf Benchmark需要較大的投入。我們有十幾個團隊成員直接、間接地參與了這個專案,投入了至少半年以上的時間。」過去Graphcore作為新創公司的資源比較有限,而現在「Graphcore整體軟硬體,尤其是軟體和生態更加成熟完善,公司整體實力和之前相比也更加雄厚。所以我們參加了MLPerf 訓練 v1.0的Benchmark,後續也有持續投入的計畫。」

金琛提到,在參與MLPerf基準測試的過程中,還誕生了幾篇頗具意義的研究報告,分別是Graphcore針對EfficientNet所作的一些工作(Making EfficientNet More Efficient: Exploring Batch-Independent Normalization, Group Convolutions and Reduced Resolution Training)和「使用pre訓練 BERT,使得BERT性能得到兩倍的提升」,這些都是IPU生態逐漸完善中的佐證。

本文原刊登於EE Times China網站

 

 

 

 

加入LINE@,最新消息一手掌握!

發表評論