2020年12月,,Graphcore宣布加入MLCommons(獨立Benchmark組織MLPerf的下屬機構(gòu)),,成為其創(chuàng)始成員,,并表示將于2021年加入MLPerf,在春季提交第一份訓(xùn)練,。北京時間2021年7月1日凌晨1點,,一份出色的提交結(jié)果如期而至。
在今年提交的MLPerf訓(xùn)練1.0版本的任務(wù)里面,,Graphcore提交了兩個在相應(yīng)領(lǐng)域里面頗具代表意義,,被廣為使用的模型:計算機視覺模型ResNet-50,以及自然語言處理模型BERT,。所提交的硬件形態(tài)也是兩個,,IPU-POD16和IPU-POD64。
如下圖所示,,在IPU-POD64上,,BERT的訓(xùn)練時間只有9.39分鐘,ResNet-50的訓(xùn)練時間為14.48分鐘,,已經(jīng)達(dá)到了超級計算機級別的AI性能,。
據(jù)悉,封閉分區(qū)(Closed Division)嚴(yán)格要求提交者使用完全相同的模型實施和優(yōu)化器方法,,包括定義超參數(shù)狀態(tài)和訓(xùn)練時期,。開放分區(qū)(Open Division)保證了和封閉分區(qū)完全相同的模型準(zhǔn)確性和質(zhì)量,但支持更靈活的模型實施以促進(jìn)創(chuàng)新,。因此,,開放分區(qū)支持更快的模型實現(xiàn),更加適應(yīng)不同的處理器功能和優(yōu)化器方法,。其實,,對于像Graphcore IPU這樣的創(chuàng)新架構(gòu),開放分區(qū)更能體現(xiàn)出其性能,,但公司還是選擇在開放和封閉分區(qū)都進(jìn)行了提交,。
“在IPU-POD16上,BERT在MLPerf v1.0 Training開放分區(qū)中的訓(xùn)練時間(Time To Train)基本上是小于半個小時的。而在IPU-POD64上,,其Scaling Factor基本上可以達(dá)到3.5倍,,在開放分區(qū)提交中的訓(xùn)練時間基本上是小于10分鐘的,這對于很多科研工作者來說是非常令人興奮的一個消息,,這意味著在訓(xùn)練過程中他們可以更快地得到研究結(jié)果,。”Graphcore中國工程總負(fù)責(zé)人,、AI算法科學(xué)家金琛表示,。
Graphcore中國工程總負(fù)責(zé)人、AI算法科學(xué)家 金琛
性價比超高,!Graphcore“每美元性能”領(lǐng)先英偉達(dá)
MLPerf被稱為比較基準(zhǔn),,實際上進(jìn)行直接比較可能很復(fù)雜。而從“每美元性能”角度來看,,往往最能夠說明問題,。
MLPerf對比了市面上的Graphcore系統(tǒng)與NVIDIA的最新產(chǎn)品,結(jié)果證實Graphcore在“每美元性能”(Performance-Per-Dollar)的指標(biāo)上穩(wěn)居領(lǐng)先地位,。
據(jù)悉,NVIDIA此次提交的很多數(shù)據(jù)是基于其DGX A100 640G的版本,。以ResNet-50為例,,其使用的DGX A100 640G的版本,8張卡,,6U的空間,。Graphcore使用的是IPU-POD16,5U的空間,。如上圖所示,,DGX A100的廠商指導(dǎo)零售價接近30萬美金/臺。Graphcore的全球合作伙伴給出的IPU-POD16目錄價是將近15萬美金/臺,。
經(jīng)對比可見,,這兩個系統(tǒng)中,IPU-POD16上ResNet-50的MLPerf訓(xùn)練時間是37.12分鐘,,DGX A100 640G版本上是28.77分鐘,。“最終用戶非常關(guān)注‘每花費一美金所能獲得的訓(xùn)練收益’,。如果我們將訓(xùn)練收益和目錄價折算成性價比的話,,IPU-POD16相對DGX A100 640G版本的性價比收益有1.6倍?!盙raphcore高級副總裁兼中國區(qū)經(jīng)理盧濤表示,。
Graphcore高級副總裁兼中國區(qū)經(jīng)理 盧濤
兩個系統(tǒng)同樣在BERT的訓(xùn)練任務(wù)上也進(jìn)行了比較。IPU-POD16上BERT的MLPerf訓(xùn)練時間是34.49分鐘,NVIDIA是21.69分鐘,,折算成性價比的話,,IPU-POD16的性價比收益可達(dá)DGX A100 640G版本的1.3倍。
由此可見,,Graphcore系統(tǒng)的經(jīng)濟性可以更好地幫助客戶實現(xiàn)其AI計算目標(biāo),。同時,由于IPU專為AI構(gòu)建的架構(gòu)特點,,Graphcore系統(tǒng)還可以解鎖下一代模型和技術(shù),。
持續(xù)追求軟件改進(jìn),六個月內(nèi)性能提升高達(dá)2.1倍
上圖顯示的是SDK對模型性能的影響(以在IPU-POD16上為例),。近期發(fā)布的Poplar SDK中所取得的基準(zhǔn)測試(Benchmark)方面的進(jìn)展,,體現(xiàn)了Graphcore對持續(xù)改進(jìn)軟件的關(guān)注。圖中列出了三個版本:1.4版本,、2.0版本,、2.1版本。1.4版本于2020年發(fā)布,,2.0版本于2021年Q1發(fā)布,,2.1版本在6月底剛剛發(fā)布??梢园l(fā)現(xiàn),,隨著版本的演進(jìn),Graphcore實現(xiàn)了2.1倍的ResNet-50性能提升,,1.6倍的BERT-Large性能提升和1.5倍的計算機視覺模型EfficientNet性能提升,。“對于BERT-Large第一階段預(yù)訓(xùn)練(SL128)吞吐量的來說,,其SDK 1.4的吞吐量大概是2700,,SDK 2.0大概是3700,SDK 2.1是4000多,。對于Graphcore這樣一個500人左右的公司來說,,能在半年內(nèi)取得這樣的提升,可以算是取得了一個較為顯著的成果,?!苯痂”硎荆坝嬎銠C視覺(CV)圖像分類(Image Classification)方面,,EfficientNet在SDK 2.1上的性能和SDK 1.4相比提升了1.5倍,。而在這三個模型中,提升最顯著的是ResNet-50,,其在SDK 2.1上的性能和SDK 1.4相比提升了2倍左右,。這是發(fā)揮了我們SDK中的兩個比較顯著的功能(Feature)的作用:一是post I/O的overlap,,即在CPU和IPU間進(jìn)行任務(wù)處理時,在圖像傳輸?shù)倪^程中會與我們的計算進(jìn)行重疊,,這樣可以更好地利用我們IPU的計算資源,。另外,我們在算子庫和Tile Memory Layout方面也取得了一些進(jìn)步,,使得我們在算子方面有所提升,。”
MLPerf的提交對Graphcore意味著什么,?
“Graphcore什么時候能夠提交MLPerf的結(jié)果,?”在過去的一兩年里,這個問題常被外界問及,。
由于資源有限,,還要聚焦于開發(fā)公司自身的核心軟件特性,以及與頭部客戶及合作伙伴聯(lián)合探索應(yīng)用場景落地,,Graphcore在當(dāng)時沒有足夠的人力和時間資源進(jìn)行MLPerf提交的相關(guān)工作,。
“今年,Graphcore整體軟硬件,,尤其是軟件和生態(tài),,更加成熟完善,公司整體實力和之前相比更加雄厚,?!北R濤說道,“提交MLPerf的工作量不小,。我們有一個團隊主要做MLPerf的相關(guān)工作,在其他團隊的支持下,,這個團隊針對這一次的提交做了半年多的工作,。”
的確,,對于如今500人左右規(guī)模的Graphcore來說,,這是一項很大的投資?!疤峤籑LPerf從某種意義上證明,,和以前相比,Graphcore的實力有了進(jìn)一步提高,,我們有資源來做提交MLPerf的相關(guān)工作,。”盧濤補充道,,“在未來,,我們也有做更大規(guī)模集群性能提交的計劃。”
Graphcore追求的三個目標(biāo):更優(yōu)的性能,、更大的規(guī)模和添加更多模型
MLCommons的使命是“加速機器學(xué)習(xí)創(chuàng)新并擴大其對社會的積極影響”,,這也是Graphcore全力以赴、為之奮斗的志向,。全球的處理器各不相同,,衡量其性能的維度更是多種多樣。在對比不同處理器的時候,,所對比的維度也是不盡相同,。MLCommons所提出的各種基準(zhǔn)測試從某種意義上說將各類處理器都拉到了同一個維度里進(jìn)行對話,這對于業(yè)界來說有較大的參考意義,?!跋馬esNet、BERT等應(yīng)用都是在過往基于GPU架構(gòu)選擇出來并深度優(yōu)化的應(yīng)用,。這可能對于Graphcore來說不是特別‘公平’,。但是對于一家企業(yè)機構(gòu)來說,要積極參與產(chǎn)業(yè)標(biāo)準(zhǔn)的探討,,逐漸成為產(chǎn)業(yè)中的有力聲音,,才能最終影響產(chǎn)業(yè)標(biāo)準(zhǔn)的走向。所以對于Graphcore來說,,要先擁抱這一標(biāo)準(zhǔn),,逐漸加深對這一標(biāo)準(zhǔn)規(guī)則的了解以及其對整個產(chǎn)業(yè)的意義?!北R濤如是說,,“此次是Graphcore第一次提交MLPerf訓(xùn)練任務(wù)。這是一項需要持續(xù)投入的工作,,我們在未來也會積極參與MLPerf的提交,,提供一些不同的任務(wù),讓MLPerf的工作負(fù)載(Workload)更具代表性,?!?/p>