CANN 5.0硬核技術搶先看

華為雲開發者社群發表於2021-09-30
摘要:2021年12月,CANN5.0版本也將與大家正式見面,通過軟硬體協同優化,該版本將會實現訓練效能再翻倍,憑實力展現AI領域的「中國速度」!

本文分享自華為雲社群《CANN 5.0硬核技術搶先看》,作者:kourei。

引言

2018年9月,CANN 1.0華為昇騰AI使能平臺誕生;

2020年8月,CANN 3.0版本釋出,作為專門面向AI場景的異構計算架構,搭起了上層深度學習框架和底層AI硬體平臺的橋樑,開發效率和效能業界領先,可支撐使用者全方位的人工智慧計算訴求。

在最近一年中,CANN攜手200+所高校/科研所,持續推進AI科研進步;

在CANN架構加持下,擁有千億引數的盤古AI模型帶來前所未有的商業價值;

昇騰社群開發者數量從10萬增長到40萬,生態陣營的蓬勃發展…

2021年12月,CANN5.0版本也將與大家正式見面,通過軟硬體協同優化,該版本將會實現訓練效能再翻倍,憑實力展現AI領域的「中國速度」!

先放幾個彩蛋,讓大家先睹為快!

核心技術鑄就極致效能

CANN5.0相比於3.0版本,在典型推理場景,效能可實現30%到140%的提升;大規模叢集訓練及常用模型訓練,更可達到效能翻番;

CANN 5.0效能大幅提升背後的關鍵技術有哪些?

任務自動流水

計算啟動時過長的資料載入操作會阻塞後續計算流水的啟動速度,就好比手機充電電量達到20%才能開機一樣讓人無法接受。

CANN 5.0將計算指令和資料載入實現多流水並行,該優化允許使用者對載入資料進行分段,當載入資料滿足分段資料量時即刻啟動後續計算邏輯,同時後續資料持續載入,當後續分段資料載入完成且流水空閒時,依次再啟動後續計算,充分發揮昇騰AI處理器多流水並行能力,實現無縫多流水銜接。
image.png

運算元深度融合

隨著網路結構的日益複雜,資料在內外存搬運、以及多運算元對應多指令帶來的效能開銷已經越發不可忽視。

CANN 5.0在3.0基礎上識別了更多的融合場景,通過多運算元自動融合減少計算節點數,有效減少記憶體拷貝;並且通過靈活可定製的融合規則讓計算圖中的運算元得以最大程度融合,為開發者贏得了更多的計算效能收益。

自適應梯度切分

在大規模叢集訓練場景下,通常需要進行成千上萬次迭代計算,每次迭代包括正、反兩個方向的逐層前饋計算。

大部分同步更新演算法要求,在下一輪迭代正向計算開始前,各計算節點間需要同步好梯度資料,完成權重更新。這就會導致在兩輪迭代之間產生等待間隙,即通訊拖尾。

CANN 5.0通過智慧梯度切分演算法,自動搜尋出最優梯度引數切分方式,為梯度傳輸選擇合適的通訊時機和通訊量,最大限度讓計算和通訊並行執行,將通訊拖尾時間降至最低,可促使叢集訓練達到最優效能。
image.png

AutoTune智慧計算調優

就像我們不能期待千篇一律的美顏相機能夠修飾出一個絕世美女,類似地,對於不同的網路,如果全部採用簡單的資料切分策略,往往會導致計算單元無法滿載,效能達不到預期。

CANN 5.0通過智慧化資料切分技術,為網路量身定製一個最優的切分策略,實現單個計算單元滿載計算,充分利用硬體資源,從而帶來可觀的效能收益。

同時為了解決調優耗時的問題,CANN 5.0預置了海量模型優化規則,可大大降低調優時長,給使用者帶來卓越的調優體驗。

降低開發者使用門檻

除了效能上帶來的驚喜,CANN 5.0更是在3.0基礎上進一步簡化了程式碼開發和調測方法,助力開發者實現高效AI開發。

支援模型自動遷移,無需手工修改程式碼,一鍵式完成模型移植,即刻暢想昇騰910 AI處理器帶來的澎湃算力。

支援混合程式設計,在APP中直接呼叫運算元函式,自動完成編譯載入並執行。
image.png

支援自動生成運算元測試程式碼,並可一鍵式執行出結果。
image.png

使能超大模型,加速創新

支援超大引數模型

近2年來,業界出現了非常多的大模型,例如GPT-3,引數量高達1750億,單獨一個大模型就需要月3TB的儲存空間,而算力需求更是驚人。

為了解決模型“放得下”的問題,並且以一種友好的、幾乎不用改變原有程式碼的方式讓使用者使用,CANN5.0在“AI編譯器”這個層面,在優化器、梯度、權重等各維度進行模型並行訓練。

通過不同層次的模型並行,將原本放不下的模型,分散式地部署在叢集上,並且能夠以較高的算力利用率進行訓練。以83億的Megatron模型為例,從單卡180GB左右的記憶體需求量降低到16G以下,這樣,超大模型就可以“放得下”了。

支援超大圖片計算

除此之外,在某些應用場景下,還可能遇到超大輸入資料規格的挑戰。

比如遙感應用領域,往往需要從茫茫大海中定位到一艘船,從廣袤天空裡定位到一架飛機,隨著觀測技術的進步,這些遙感影像的空間解析度越來越高,平均可達CHW:43000030000甚至更高,單樣本大小往往2-3GB,超大圖片計算已經成為了遙感應用產業發展的「卡脖子」問題。

CANN 5.0助力武漢大學打造全球首個遙感專用框架LuojiaNet,解決遙感影像“大幅面、多通道”的處理難題。實驗證明,FCN8S模型在處理遙感資料集(影像解析度3萬*3萬)時,精度提升顯著。這其中隱藏了大量關鍵技術:

  • 圖片大,視訊記憶體不夠怎麼辦?

充分利用叢集優勢,根據資料量和叢集規模,完成圖片自動切分,部署到各計算節點。

  • 特徵跨度大,特徵丟失,邊緣失真怎麼辦?

在當前切片的卷積運算前,自動計算出具有相鄰切片特徵的overlap資料,為當前切片提供上下文資訊,保證圖片精度。

  • 如何高效交換overlap資料?

藉助高效的alltoallv運算元在相鄰節點間收發資料,實現無阻塞通訊。
image.png

CANN5.0依託自動分解和並行技術,將超大模型的處理同普通模型一樣簡單,相信在CANN5.0版本的助攻下,一定會促使AI產業不斷加速創新,迎來新的爆發期。

ModelZoo全面支援業界主流模型

ModelZoo是昇騰提供的一個優選模型庫,其裝載的模型能夠直接在昇騰AI處理器上高效執行。目前CANN5.0全面支援包括TensorFlow, PyTorch, ONNX在內的業界主流模型400+,同時運算元完備度大幅提升。

開發者可移步昇騰社群Modelzoo進行體驗。

合眾之力,生態陣營蓬勃發展

CANN作為人工智慧基礎軟體平臺,持續在基礎能力和關鍵技術上不斷突破,但若想走的更遠,唯有合眾人之力。在過去的1年,CANN面向開發者的生態全面展開:

迄今為止,昇騰社群活躍度較去年提升3倍;當前已匯聚40萬開發者,3千核心開發者,並計劃於2022年發展百萬開發者,1萬核心開發者;累計與超過200家高校研究團隊開展合作,眾智專案貢獻200+個模型及500+個運算元。

聚是一團火,生態建設是使能AI產業持續發展的原動力,通過開放、合作、共贏的方式,CANN將不斷攜手合作夥伴,全方位、多維度支撐AI產業,助力人工智慧繁榮發展!

點選關注,第一時間瞭解華為雲新鮮技術~

相關文章