华为代码规范_53年国内唯三,华为MindSpore论文获顶会最佳论文提名
曉查 發自 凹非寺
量子位 報道 | 公眾號 QbitAI
“研究芯片光砸錢不行,要砸數學家、物理學家。”
任正非今年5月在接受《科技日報》專訪時如是說。據任正非透露,華為已擁有700多名數學家。
現在,這些數學家的基礎研究,讓華為在AI和芯片等領域得到了回報。
最近,來自鄭州數學工程與先進計算國家重點實驗室的趙捷老師與華為MindSpore團隊合作,憑借著在基礎數學上的能力,解決了一個AI芯片優化的重要問題,獲得了頂級學術會議MICRO 2020的最佳論文提名,MICRO是計算機體系結構領域的國際頂級會議,這也是中國團隊53年第3次入圍該大會的最佳論文提名。
這篇論文主要研究了如何優化在AI芯片上的程序編譯,盡可能的“榨干”AI芯片的性能,不僅支持對華為自研的昇騰910芯片,也支持現在主流的NVIDIA A100/V100 GPU,今后還會支持更多硬件。
在CPU上,其方法相較PolyMage和Halide分別平均性能提升了20%和33%。在GPU上,其方法比Halide提供了17%的平均性能改進。在AI芯片華為昇騰910上,該論文提出的方法可將ResNet-50模型整個執行時間提升16%。
華為不僅發表了論文,同時快速推進這項研究的落地。基于Polyhedral模型的算子自動生成技術MindAKG現已集成到AI框架MindSpore中。
MindAKG的作用就是對深度神經網絡中的算子進行優化,利用Polyhedral模型來解決AI應用在不同芯片架構中的性能自動優化難題。
Polyhedral模型則是MindAKG的數學核心。
目前所有MindAKG的源代碼早已在Gitee上開源代碼,可謂所見即所得的典范。論文合作者趙捷老師目前也是MindSpore社區SIG-AKG的核心成員。業界少見的堅定開源開發如此大規模復雜技術,擁有如此開源雄心的MindSpore無疑將極大的考驗其他開源AI框架的“硬核程度”。
基于Polyhedral的編譯技術
Polyhedral編譯技術歷史悠久,最早可追溯到大型機時代研究程序自動并行問題開始。兩位圖靈獎得主Richard Karp、Leslie Lamport先后為此提出相關理論。
Polyhedral模型需要在編譯器中構建一個非常好的數學模型來計算調度。
這種數學模型底層是通過解決整數線性規劃問題來得到最優解的,但整數線性規劃問題的求解過程是一個NP完全問題,因此只能通過一些近似方法求解。
如果這種數學模型的調度不夠好,那么可能還不如手工編寫調度性能。
如何構建Polyhedral模型的整數線性規劃問題,使其能夠達到手工編寫調度性能相當的結果,是當前研究的核心難點。
既然是NP完全問題,如何降低Polyhedral模型求解的復雜度,也是當前需要解決的問題。
Polyhedral模型涉及大量的基礎數學理論,包括但不限于線性代數、空間幾何、最優化理論和矩陣論,以及基礎計算機理論科學的知識如圖論、數理邏輯等,這些知識點本身并不復雜,但是將這些知識點統一地表示在一個模型里,導致該模型的比較復雜,難以理解,入門的“門檻”比較高。
當前國內從事Polyhedral模型研究的人員較少,但在國外,多家科技廠商對該技術的研究十分重視,Google、Facebook、NVIDIA這幾家AI領軍企業都在研究利用Polyhedral模型來實現算子層的循環優化。
華為MindSpore團隊也集結了Polyhedral領域的頂尖專家,全力攻關新的調度算法。
華為自研AI框架MindSpore利用Polyhedral模型,實現了昇騰系列芯片的算子自動生成器MindAKG,采用了可定制化的求解算法,保證程序性能的同時,有效緩解了編譯時長的問題。
MindSpore的應用創新
這篇新論文的研究重點是利用Polyhedral模型來解決算子自動生成的問題,與Halide和TVM采用的”compute+schedule”的方式不同。本文研究的算子自動化技術,無需手動編寫算子調度算法。
在此基礎上,這項研究有以下關鍵創新點:
首先,這項工作自動化地實現了一種循環分塊和合并的新組合。這種組合在已有的基于Polyhedral的自動編譯過程中沒有被考慮到,因為現有的Polyhedral編譯流程限定了這兩種循環變換的組合順序。
同時,這種組合在已有的基于手工編寫調度的編譯工作中也很難實現,因為在復雜場景下,底層計算和數據之間的映射關系很難用手工編寫的方式指定,所以基于手工編寫調度的方式很難深入和系統地構建這種組合。
其次,該研究工作在提升程序性能的同時,又有效地緩解了現有Polyhedral編譯技術的時間復雜度問題。
通常性能的提升和時間復雜度的降低是矛盾的,但這項研究由于避開了使用前面提到的整數線性規劃問題來求解調度的過程,從而能在降低編譯時間復雜度的同時,保證了程序性能的顯著提升。
最后,這項研究工作具有很好的可擴展性,可支持多種異構硬件架構的代碼自動生成,包括Intel的CPU以及NVDIA的GPU。特別地,這項工作已經在華為自研AI框架MindSpore的算子自動生成器MindAKG中落地,可支持昇騰系列AI芯片上的算子自動生成。
通過對包括神經網絡、圖像處理、稀疏矩陣計算、線性代數等應用領域在內的11項基準測試實驗,該研究證明其方法能在先進的CPU、GPU及AI芯片架構上獲得有效的性能改進。
在AI芯片華為昇騰910上,該論文提出的方法可將ResNet-50模型整個執行時間提升16%。
代碼已開源
華為MindAKG相關代碼已經在Gitee開源,用戶既能從MindSpore側構建,也能獨立編譯運行。
MindAKG當前已支持華為自研昇騰AI芯片、GPU V100/A100等硬件上的高性能算子自動生成。
MindAKG主要流程可以分為四個部分:
- 規范化:為了解決polyhedral表達能力的局限性(只能處理靜態的線性程序),需要首先對計算公式IR進行規范化。規范化模塊中的優化主要包括自動運算符inline、循環拆分和公共子表達式優化等。
- 自動調度:自動調度模塊基于polyhedral技術,主要包括自動向量化、自動切分、依賴分析和數據搬移等。
- 指令發射:指令發射模塊的優化主要包括循環規范化、標簽自動生成和指令發射等。
- 后端優化:后端優化模塊的優化主要包括雙緩沖區、存儲重寫和同步指令插入等。
MindSpore期待開發者加入
今年國產AI框架如雨后春筍一般涌現,華為MindSpore也是其中一員。華為也是少有的具有自研AI框架、AI推理芯片、AI訓練芯片的國內廠商。
華為Polyhedral技術獲得MICRO最佳論文的提名,也說明了華為在AI基礎技術上獲得了國際認可。讓我們看到了任正非口中的數學家在華為AI中起到的最大作用。
華為MindSpore不是國內最早開源的AI框架,卻靠著在基礎技術上的投入快速得到學界和開發者的認可。
但不可忽視的是,生態才是AI框架最重要的生命力,作為一個正在快速成長的AI社區,MindSpore需要AI開發者積極加入,一起引領AI創新,共同成長。
12月14日至25日,MindSpore社區將在目前已展開過MSG活動的12個城市,開展別開生面的“MindCon極客周”活動,在已漸寒冷的冬日,開發者每天聚集在一個城市,修復社區bug,分享學習心得,還可以參加昇騰模型王者挑戰賽的青銅賽段。這次活動還首次通過點亮城市的積分評比(新增star積10分、完成bugfix積100、完成青銅賽段任務積200分)方式,12個城市PK產生明年6月第二屆MindCon極客周的主辦城市。想要了解像AKG這樣黑科技的開發者,快來報名吧!
論文地址:
https://www.microarch.org/micro53/papers/738300a427.pdf
開源地址:
https://gitee.com/mindspore/akg
— 完 —
量子位 QbitAI · 頭條號簽約
關注我們,第一時間獲知前沿科技動態
總結
以上是生活随笔為你收集整理的华为代码规范_53年国内唯三,华为MindSpore论文获顶会最佳论文提名的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决方案和项目的区别_沃尔玛用大数据提高
- 下一篇: 查询手机号段对应地区编码_想知道海关统计