53年來(lái)國(guó)內(nèi)唯三,MindSpore加速昇騰芯片論文獲國(guó)際頂會(huì)MICRO最佳論文提名
現(xiàn)在,這些數(shù)學(xué)家的基礎(chǔ)研究,讓華為在AI和芯片等領(lǐng)域得到了回報(bào)。
曉查 發(fā)自 凹非寺?量子位 報(bào)道 | 公眾號(hào) QbitAI
“研究芯片光砸錢不行,要砸數(shù)學(xué)家、物理學(xué)家?!?/span>
任正非今年5月在接受《科技日?qǐng)?bào)》專訪時(shí)如是說(shuō)。據(jù)任正非透露,華為已擁有700多名數(shù)學(xué)家。
現(xiàn)在,這些數(shù)學(xué)家的基礎(chǔ)研究,讓華為在AI和芯片等領(lǐng)域得到了回報(bào)。
最近,來(lái)自鄭州數(shù)學(xué)工程與先進(jìn)計(jì)算國(guó)家重點(diǎn)實(shí)驗(yàn)室的趙捷老師與華為MindSpore團(tuán)隊(duì)合作,憑借著在基礎(chǔ)數(shù)學(xué)上的能力,解決了一個(gè)AI芯片優(yōu)化的重要問(wèn)題,獲得了頂級(jí)學(xué)術(shù)會(huì)議MICRO 2020的最佳論文提名,MICRO是計(jì)算機(jī)體系結(jié)構(gòu)領(lǐng)域的國(guó)際頂級(jí)會(huì)議,這也是中國(guó)團(tuán)隊(duì)53年第3次入圍該大會(huì)的最佳論文提名。

這篇論文主要研究了如何優(yōu)化在AI芯片上的程序編譯,盡可能的“榨干”AI芯片的性能,不僅支持對(duì)華為自研的昇騰910芯片,也支持現(xiàn)在主流的NVIDIA A100/V100 GPU,今后還會(huì)支持更多硬件。
在CPU上,其方法相較PolyMage和Halide分別平均性能提升了20%和33%。在GPU上,其方法比Halide提供了17%的平均性能改進(jìn)。在AI芯片華為昇騰910上,該論文提出的方法可將ResNet-50模型整個(gè)執(zhí)行時(shí)間提升16%。
華為不僅發(fā)表了論文,同時(shí)快速推進(jìn)這項(xiàng)研究的落地?;赑olyhedral模型的算子自動(dòng)生成技術(shù)MindAKG現(xiàn)已集成到AI框架MindSpore中。

MindAKG的作用就是對(duì)深度神經(jīng)網(wǎng)絡(luò)中的算子進(jìn)行優(yōu)化,利用Polyhedral模型來(lái)解決AI應(yīng)用在不同芯片架構(gòu)中的性能自動(dòng)優(yōu)化難題。
Polyhedral模型則是MindAKG的數(shù)學(xué)核心。
目前所有MindAKG的源代碼早已在Gitee上開(kāi)源代碼,可謂所見(jiàn)即所得的典范。論文合作者趙捷老師目前也是MindSpore社區(qū)SIG-AKG的核心成員。業(yè)界少見(jiàn)的堅(jiān)定開(kāi)源開(kāi)發(fā)如此大規(guī)模復(fù)雜技術(shù),擁有如此開(kāi)源雄心的MindSpore無(wú)疑將極大的考驗(yàn)其他開(kāi)源AI框架的“硬核程度”。
基于Polyhedral的編譯技術(shù)
Polyhedral編譯技術(shù)歷史悠久,最早可追溯到大型機(jī)時(shí)代研究程序自動(dòng)并行問(wèn)題開(kāi)始。兩位圖靈獎(jiǎng)得主Richard Karp、Leslie Lamport先后為此提出相關(guān)理論。
Polyhedral模型需要在編譯器中構(gòu)建一個(gè)非常好的數(shù)學(xué)模型來(lái)計(jì)算調(diào)度。
這種數(shù)學(xué)模型底層是通過(guò)解決整數(shù)線性規(guī)劃問(wèn)題來(lái)得到最優(yōu)解的,但整數(shù)線性規(guī)劃問(wèn)題的求解過(guò)程是一個(gè)NP完全問(wèn)題,因此只能通過(guò)一些近似方法求解。

如果這種數(shù)學(xué)模型的調(diào)度不夠好,那么可能還不如手工編寫調(diào)度性能。
如何構(gòu)建Polyhedral模型的整數(shù)線性規(guī)劃問(wèn)題,使其能夠達(dá)到手工編寫調(diào)度性能相當(dāng)?shù)慕Y(jié)果,是當(dāng)前研究的核心難點(diǎn)。
既然是NP完全問(wèn)題,如何降低Polyhedral模型求解的復(fù)雜度,也是當(dāng)前需要解決的問(wèn)題。
Polyhedral模型涉及大量的基礎(chǔ)數(shù)學(xué)理論,包括但不限于線性代數(shù)、空間幾何、最優(yōu)化理論和矩陣論,以及基礎(chǔ)計(jì)算機(jī)理論科學(xué)的知識(shí)如圖論、數(shù)理邏輯等,這些知識(shí)點(diǎn)本身并不復(fù)雜,但是將這些知識(shí)點(diǎn)統(tǒng)一地表示在一個(gè)模型里,導(dǎo)致該模型的比較復(fù)雜,難以理解,入門的“門檻”比較高。
當(dāng)前國(guó)內(nèi)從事Polyhedral模型研究的人員較少,但在國(guó)外,多家科技廠商對(duì)該技術(shù)的研究十分重視,Google、Facebook、NVIDIA這幾家AI領(lǐng)軍企業(yè)都在研究利用Polyhedral模型來(lái)實(shí)現(xiàn)算子層的循環(huán)優(yōu)化。
華為MindSpore團(tuán)隊(duì)也集結(jié)了Polyhedral領(lǐng)域的頂尖專家,全力攻關(guān)新的調(diào)度算法。
華為自研AI框架MindSpore利用Polyhedral模型,實(shí)現(xiàn)了昇騰系列芯片的算子自動(dòng)生成器MindAKG,采用了可定制化的求解算法,保證程序性能的同時(shí),有效緩解了編譯時(shí)長(zhǎng)的問(wèn)題。
MindSpore的應(yīng)用創(chuàng)新
這篇新論文的研究重點(diǎn)是利用Polyhedral模型來(lái)解決算子自動(dòng)生成的問(wèn)題,與Halide和TVM采用的”compute+schedule”的方式不同。本文研究的算子自動(dòng)化技術(shù),無(wú)需手動(dòng)編寫算子調(diào)度算法。
在此基礎(chǔ)上,這項(xiàng)研究有以下關(guān)鍵創(chuàng)新點(diǎn):
首先,這項(xiàng)工作自動(dòng)化地實(shí)現(xiàn)了一種循環(huán)分塊和合并的新組合。這種組合在已有的基于Polyhedral的自動(dòng)編譯過(guò)程中沒(méi)有被考慮到,因?yàn)楝F(xiàn)有的Polyhedral編譯流程限定了這兩種循環(huán)變換的組合順序。
同時(shí),這種組合在已有的基于手工編寫調(diào)度的編譯工作中也很難實(shí)現(xiàn),因?yàn)樵趶?fù)雜場(chǎng)景下,底層計(jì)算和數(shù)據(jù)之間的映射關(guān)系很難用手工編寫的方式指定,所以基于手工編寫調(diào)度的方式很難深入和系統(tǒng)地構(gòu)建這種組合。

其次,該研究工作在提升程序性能的同時(shí),又有效地緩解了現(xiàn)有Polyhedral編譯技術(shù)的時(shí)間復(fù)雜度問(wèn)題。
通常性能的提升和時(shí)間復(fù)雜度的降低是矛盾的,但這項(xiàng)研究由于避開(kāi)了使用前面提到的整數(shù)線性規(guī)劃問(wèn)題來(lái)求解調(diào)度的過(guò)程,從而能在降低編譯時(shí)間復(fù)雜度的同時(shí),保證了程序性能的顯著提升。

最后,這項(xiàng)研究工作具有很好的可擴(kuò)展性,可支持多種異構(gòu)硬件架構(gòu)的代碼自動(dòng)生成,包括Intel的CPU以及NVDIA的GPU。特別地,這項(xiàng)工作已經(jīng)在華為自研AI框架MindSpore的算子自動(dòng)生成器MindAKG中落地,可支持昇騰系列AI芯片上的算子自動(dòng)生成。

通過(guò)對(duì)包括神經(jīng)網(wǎng)絡(luò)、圖像處理、稀疏矩陣計(jì)算、線性代數(shù)等應(yīng)用領(lǐng)域在內(nèi)的11項(xiàng)基準(zhǔn)測(cè)試實(shí)驗(yàn),該研究證明其方法能在先進(jìn)的CPU、GPU及AI芯片架構(gòu)上獲得有效的性能改進(jìn)。

在AI芯片華為昇騰910上,該論文提出的方法可將ResNet-50模型整個(gè)執(zhí)行時(shí)間提升16%。

代碼已開(kāi)源
華為MindAKG相關(guān)代碼已經(jīng)在Gitee開(kāi)源,用戶既能從MindSpore側(cè)構(gòu)建,也能獨(dú)立編譯運(yùn)行。
MindAKG當(dāng)前已支持華為自研昇騰AI芯片、GPU V100/A100等硬件上的高性能算子自動(dòng)生成。
MindAKG主要流程可以分為四個(gè)部分:
-
規(guī)范化:為了解決polyhedral表達(dá)能力的局限性(只能處理靜態(tài)的線性程序),需要首先對(duì)計(jì)算公式IR進(jìn)行規(guī)范化。規(guī)范化模塊中的優(yōu)化主要包括自動(dòng)運(yùn)算符inline、循環(huán)拆分和公共子表達(dá)式優(yōu)化等。
-
自動(dòng)調(diào)度:自動(dòng)調(diào)度模塊基于polyhedral技術(shù),主要包括自動(dòng)向量化、自動(dòng)切分、依賴分析和數(shù)據(jù)搬移等。
-
指令發(fā)射:指令發(fā)射模塊的優(yōu)化主要包括循環(huán)規(guī)范化、標(biāo)簽自動(dòng)生成和指令發(fā)射等。
-
后端優(yōu)化:后端優(yōu)化模塊的優(yōu)化主要包括雙緩沖區(qū)、存儲(chǔ)重寫和同步指令插入等。
MindSpore期待開(kāi)發(fā)者加入
今年國(guó)產(chǎn)AI框架如雨后春筍一般涌現(xiàn),華為MindSpore也是其中一員。華為也是少有的具有自研AI框架、AI推理芯片、AI訓(xùn)練芯片的國(guó)內(nèi)廠商。
華為Polyhedral技術(shù)獲得MICRO最佳論文的提名,也說(shuō)明了華為在AI基礎(chǔ)技術(shù)上獲得了國(guó)際認(rèn)可。讓我們看到了任正非口中的數(shù)學(xué)家在華為AI中起到的最大作用。
華為MindSpore不是國(guó)內(nèi)最早開(kāi)源的AI框架,卻靠著在基礎(chǔ)技術(shù)上的投入快速得到學(xué)界和開(kāi)發(fā)者的認(rèn)可。
但不可忽視的是,生態(tài)才是AI框架最重要的生命力,作為一個(gè)正在快速成長(zhǎng)的AI社區(qū),MindSpore需要AI開(kāi)發(fā)者積極加入,一起引領(lǐng)AI創(chuàng)新,共同成長(zhǎng)。
12月14日至25日,MindSpore社區(qū)將在目前已展開(kāi)過(guò)MSG活動(dòng)的12個(gè)城市,開(kāi)展別開(kāi)生面的“MindCon極客周”活動(dòng),在已漸寒冷的冬日,開(kāi)發(fā)者每天聚集在一個(gè)城市,修復(fù)社區(qū)bug,分享學(xué)習(xí)心得,還可以參加昇騰模型王者挑戰(zhàn)賽的青銅賽段。這次活動(dòng)還首次通過(guò)點(diǎn)亮城市的積分評(píng)比(新增star積10分、完成bugfix積100、完成青銅賽段任務(wù)積200分)方式,12個(gè)城市PK產(chǎn)生明年6月第二屆MindCon極客周的主辦城市。想要了解像AKG這樣黑科技的開(kāi)發(fā)者,快來(lái)報(bào)名吧!

論文地址: https://www.microarch.org/micro53/papers/738300a427.pdf
開(kāi)源地址: https://gitee.com/mindspore/akg
版權(quán)所有,未經(jīng)授權(quán)不得以任何形式轉(zhuǎn)載及使用,違者必究。
- 腦機(jī)接口走向現(xiàn)實(shí),11張PPT看懂中國(guó)腦機(jī)接口產(chǎn)業(yè)現(xiàn)狀|量子位智庫(kù)2021-08-10
- 張朝陽(yáng)開(kāi)課手推E=mc2,李永樂(lè)現(xiàn)場(chǎng)狂做筆記2022-03-11
- 阿里數(shù)學(xué)競(jìng)賽可以報(bào)名了!獎(jiǎng)金增加到400萬(wàn)元,題目面向大眾公開(kāi)征集2022-03-14
- 英偉達(dá)遭黑客最后通牒:今天必須開(kāi)源GPU驅(qū)動(dòng),否則公布1TB機(jī)密數(shù)據(jù)2022-03-05