英偉達(dá)在云端AI訓(xùn)練芯片市場(chǎng)超九成的市占率讓新入局的競(jìng)爭(zhēng)者們都將槍口指向這家當(dāng)紅AI公司。聲稱(chēng)AI性能比英偉達(dá)GPU的新產(chǎn)品不少,但真正突破英偉達(dá)護(hù)城河的現(xiàn)在仍未看到。
相比在硬件性能上超越英偉達(dá),軟件生態(tài)的趕超難度顯然更大。不過(guò),微軟亞洲研究院的NNFusion項(xiàng)目以及阿里云的HALO開(kāi)源項(xiàng)目,正努力降低從GPU遷移到新的硬件平臺(tái)的難度和成本,再加上在多個(gè)重要AI模型上性能超英偉達(dá)最新A100 GPU的IPU,云端AI芯片市場(chǎng)的格局未來(lái)幾年可能會(huì)發(fā)生變化。
微軟、阿里云開(kāi)源項(xiàng)目
降低遷移出GPU的難度
—
目前AI的落地,仍以互聯(lián)網(wǎng)和云計(jì)算為主。因此,科技巨頭們很快發(fā)現(xiàn)遷移到新平臺(tái)不能只看峰值算力。Graphcore高級(jí)副總裁兼中國(guó)區(qū)總經(jīng)理盧濤表示:“客戶(hù)考慮為一個(gè)新的軟硬件平臺(tái)買(mǎi)單時(shí),首先考慮的是能夠獲得多少收益。其次考慮的是需要多少成本,這涉及軟硬件的遷移成本?!?/p>
對(duì)于科技巨頭們而言,GPU確實(shí)是一個(gè)好選擇,但考慮到成本、功耗以及自身業(yè)務(wù)的特點(diǎn),仍然有自研或者遷移到其它高性能芯片的動(dòng)力。此時(shí),軟件成為能否快速、低成本遷移的關(guān)鍵。
將已有的AI模型遷移到新的AI加速器時(shí),現(xiàn)在普遍的做法是在TensorFlow寫(xiě)一些后端集成新硬件,這給社區(qū)和AI芯片公司都帶來(lái)了負(fù)擔(dān),也增加了遷移的難度和成本。
微軟亞洲研究院的NNFusion以及阿里云的HALO開(kāi)源項(xiàng)目,都是希望從AI編譯的角度,避免重復(fù)性的工作,讓用戶(hù)能夠在GPU和其它AI加速器之間盡量平滑遷移,特別是GPU和IPU之間的遷移。
也就是說(shuō),NNFusion和HALO向上跨AI框架,既可以集成TensorFlow生成的模型,也可以集成PyTorch或其他框架生成的模型。向下用戶(hù)只要通過(guò)NNFusion或者HALO的接口就可以在不同的AI芯片上做訓(xùn)練或者推理。
這種調(diào)度框架在降低遷移難度和成本的同時(shí),還能提升性能。根據(jù)2020 OSDI(計(jì)算機(jī)學(xué)界最頂級(jí)學(xué)術(shù)會(huì)議之一)發(fā)布的研究結(jié)果,研究者在英偉達(dá)和AMD的GPU,還有Graphcore IPU上做了各種測(cè)試后得出結(jié)果,在IPU上LSTM的訓(xùn)練模型得到了3倍的提升。
當(dāng)然,這樣的收益還是需要開(kāi)源社區(qū)與硬件提供方的緊密合作,比如Graphcore與微軟亞洲研究院以及阿里云的合作。
增加遷入IPU的便捷性
—
“我們與阿里云HALO和微軟NNFusion緊密合作,這兩個(gè)項(xiàng)目支持的最主要的平臺(tái)是GPU和IPU。”盧濤表示,“目前在阿里云HALO的GitHub里已經(jīng)有IPU的完整支持代碼odla_PopArt,下載開(kāi)源代碼就已經(jīng)可以在IPU上使用。”
能夠便捷地使用IPU也離不開(kāi)主流機(jī)器學(xué)習(xí)框架的支持。Graphcore本月最新發(fā)布了面向IPU的PyTorch產(chǎn)品級(jí)版本與Poplar SDK 1.4。PyTorch是AI研究者社區(qū)炙手可熱的機(jī)器學(xué)習(xí)框架,與TensorFlow兩分天下。
PyTorch支持IPU引起了機(jī)器學(xué)習(xí)大神Yann LeCun的關(guān)注。之所以引發(fā)廣泛關(guān)注,是因?yàn)檫@個(gè)支持對(duì)于IPU的廣泛應(yīng)用有著積極意義。
Graphcore中國(guó)工程總負(fù)責(zé)人,AI算法科學(xué)家金琛介紹,“在PyTorch的代碼里,我們引入了一個(gè)叫PopTorch的輕量級(jí)接口。通過(guò)這個(gè)接口,用戶(hù)可以基于他們當(dāng)前的PyTorch的模型做輕量級(jí)封裝,之后就可以無(wú)縫的在IPU和CPU上運(yùn)行這個(gè)模型?!?/p>
這也能更好地與HALO和NNFusion開(kāi)源社區(qū)合作。金琛告訴雷鋒網(wǎng),“不同的框架會(huì)有不同中間表示格式,也就是IR(Intermediate Representation)。我們希望將不同的IR格式轉(zhuǎn)換到我們通用的PopART計(jì)算圖上,這也是兼容性中最關(guān)鍵的一點(diǎn)?!?/p>
據(jù)悉,IPU對(duì)TensorFlow的支持,是像TPU一樣,通過(guò)TensorFlow XLA backend接入到TensorFlow的框架,相當(dāng)于把一個(gè)TensorFlow計(jì)算圖轉(zhuǎn)換成為一個(gè)XLA的計(jì)算圖,然后再通過(guò)接入XLA的計(jì)算圖下沉到PopART的計(jì)算圖,通過(guò)編譯,就可以生成可以在IPU上執(zhí)行的二進(jìn)制文件。
金琛認(rèn)為,“各個(gè)層級(jí)圖的轉(zhuǎn)換是一個(gè)非常關(guān)鍵的因素,也需要一些定制化工作,因?yàn)槔锩娴囊恍┩ㄓ盟阕右彩腔贗PU進(jìn)行開(kāi)發(fā)的,這是我們比較特殊的工作。”
除了需要增加對(duì)不同AI框架以及AI框架里自定義算子的支持,增強(qiáng)對(duì)模型的覆蓋度的支持,也能夠降低遷移成本。
金琛介紹,對(duì)于訓(xùn)練模型的遷移,如果是遷移一個(gè)不太復(fù)雜的模型,一般一個(gè)開(kāi)發(fā)者一周就可以完成,比較復(fù)雜的模型則需要兩周時(shí)間。如果是遷移推理模型,一般只需要1-2天就可以完成。
IPU正面挑戰(zhàn)GPU,
云端芯片市場(chǎng)或改變
—
AI時(shí)代,軟硬件一體化的重要性更加突顯。盧濤說(shuō):“AI處理器公司大致可以分為三類(lèi),一類(lèi)公司是正在講PPT的公司,一類(lèi)公司是有了芯片的公司,一類(lèi)公司是真正接近或者是有了軟件的公司?!?/p>
已經(jīng)在軟件方面有進(jìn)展的Graphcore,硬件的表現(xiàn)能否也讓用戶(hù)有足夠的切換動(dòng)力?本月,Graphcore發(fā)布了基于MK2 IPU的IPU-M2000的多個(gè)模型的訓(xùn)練Benchmark,包括典型的CV模型ResNet、基于分組卷積的ResNeXt、EfficientNet、語(yǔ)音模型、BERT-Large等自然語(yǔ)言處理模型,MCMC等傳統(tǒng)機(jī)器學(xué)習(xí)模型。
其中有一些比較大的提升,比如與A100 GPU相比,IPU-M2000的ResNet50的吞吐量大概能實(shí)現(xiàn)2.6倍的性能提升,ResNeXt101的吞吐量提升了3.6倍,EfficientNet的吞吐量達(dá)到了18倍,Deep Voice 3達(dá)到了13倍。
值得一提的還有IPU-POD64訓(xùn)練BERT-Large的時(shí)間比1臺(tái)DGX-A100快5.3倍,比3臺(tái)DGX-A100快1.8倍。1個(gè)IPU-POD64和3個(gè)DGX-A100的功率和價(jià)格基本相同。
強(qiáng)調(diào)IPU訓(xùn)練BERT-Large的成績(jī)不僅因?yàn)檫@是英偉達(dá)GPU和谷歌TPU之后第三個(gè)發(fā)布能夠訓(xùn)練這一模型的AI芯片,還因?yàn)锽ERT-Large模型對(duì)現(xiàn)在芯片落地的意義。
盧濤說(shuō):“在今天,BERT-Large模型不管是對(duì)于工業(yè)界,還是對(duì)研究界都是一個(gè)比較好的基準(zhǔn),它在未來(lái)至少一年內(nèi)是一個(gè)上線(xiàn)的模型水準(zhǔn)?!?/p>
不過(guò),這一成績(jī)目前并非MLPerf發(fā)布的結(jié)果,正式結(jié)果需要等待Graphcore在明年上半年正式參與MLPerf性能測(cè)試。近期,Graphcore宣布加入MLPerf管理機(jī)構(gòu)MLCommons。
“我覺(jué)得我們加入MLCommons和提交MLPerf表明,IPU即將在GPU的核心領(lǐng)域里面和GPU正面PK,表明了IPU除了能做GPU不能做的事情,在GPU最擅長(zhǎng)的領(lǐng)域,IPU也能以更好TCO實(shí)現(xiàn)相等,甚至更優(yōu)的表現(xiàn)?!北R濤表示。
微軟亞洲研究院、阿里云、Graphcore都在共同推動(dòng)GPU轉(zhuǎn)向IPU,什么時(shí)候會(huì)迎來(lái)破局時(shí)刻?