tft每日頭條

 > 生活

 > 升級鴻蒙後跑分

升級鴻蒙後跑分

生活 更新时间:2024-08-06 12:04:38

本文分享自華為雲社區《這就是華為速度:2.69分鐘完成BERT訓練!新發CANN 5.0加持,還公開了背後技術-雲社區-華為雲》,作者:昇騰CANN。

快,着實有點快。

現在,經典模型BERT隻需2.69分鐘、ResNet隻需16秒

啪的一下,就能完成訓練!

升級鴻蒙後跑分(2.69分鐘完成BERT訓練)1

這是華為全聯接2021上,針對異構計算架構CANN 5.0放出的最新性能“預熱”:

  • 4K老電影AI修複,原本需要幾天時間,現在幾小時就能完成;
  • 針對不同模型進行智能優化,300 模型平均可獲得30%性能收益;
  • 支持超大參數模型、超大圖片計算,幾乎無需手動修改原代碼……

不同于訓練推理框架,異構計算架構在設計時,還需要兼顧硬件和軟件的特點。

為的就是盡可能提升AI模型的計算效率,減少在訓練和推理上占用的時間。

它的存在,能讓開發者在使用AI模型時,最大程度地發揮硬件的性能。

異構計算架構究竟為什麼重要,昇騰CANN 5.0又究竟有哪些特性和優勢?

我們對華為昇騰計算業務副總裁金穎進行了采訪,從CANN 5.0的功能解讀中一探究竟。

升級鴻蒙後跑分(2.69分鐘完成BERT訓練)2

為什麼需要AI異構計算架構?

首先來看看,AI異構計算架構到底是什麼。

通常做AI模型分兩步,先選用一種框架來搭建AI模型,像常見的Caffe、Tensorflow、PyTorch、MindSpore等;再選用合适的硬件(CPU、GPU等)來訓練AI模型。

BUT,在AI訓練框架和硬件之間,其實還有一層不可或缺的“中間架構”,用來優化AI模型在處理器上的運行性能,這就是AI異構計算架構。

區别于同構計算(同類硬件分布式計算,像多核CPU),異構計算指将任務高效合理地分配給不同的硬件,例如GPU做浮點運算、NPU做神經網絡運算、FPGA做定制化編程計算……

升級鴻蒙後跑分(2.69分鐘完成BERT訓練)3

面對各種AI任務,AI異構計算架構會充當“引路員”,針對硬件特點進行分工,用“組合拳”加速訓練/推理速度,最大限度地發揮異構計算的優勢。

如果不重視它,各類硬件在處理AI任務時,就可能出現“長跑選手被迫舉重”的情況,硬件算力和效率不僅達不到最優,甚至可能比隻用CPU/GPU更慢。

目前已有越來越多的企業和機構,注意到異構計算架構的重要性,開始着手布局相關技術,不少也會開放給開發者使用。

但開發者在使用這些異構計算架構時,會逐漸發現一個問題:

不少AI異構計算架構,基本隻針對一種或幾種特定場景來設計,如安防、客服等AI應用較成熟的場景;針對其他場景設計的AI模型,異構計算架構的性能會有所下降。

就像安防公司會針對安防類AI模型進行優化一樣,這類異構計算架構往往不具有平台通用性。

這使得開發者在訓練不同的AI模型時,需要在搭載不同異構計算架構的各類處理器之間“反複橫跳”,找到訓練效率最高的方法。

期間不僅要學習各類算子庫、張量編譯器、調優引擎的特性,還隻能選用特定的訓練框架,非常複雜。

相比之下,華為從2018年AI戰略制定之初,就選擇了一條不同的路線。

華為昇騰計算業務副總裁金穎在采訪中表示:

我們認為,AI模型會由單一的、場景化的模式,逐漸走向通用化,而昇騰系列,就是針對全場景設計的解決方案。

其中,昇騰CANN作為平台級的異構計算架構,已經經過了3年多的優化,疊代了4個大版本。

現在,最新“預熱”的CANN 5.0版本,在各種不同場景的模型和任務上,都表現出了不錯的效果。

昇騰CANN 5.0帶來哪些新功能?

相比于昇騰CANN 3.0,“跨代”的5.0版本帶來三大優勢:

  • 性能:AI模型訓練/推理性能大幅提升,用時更短;
  • 功能:推理引擎ATC Suite1.0首次發布,AI模型推理性能更高、功能更全面;
  • 便捷性:代碼開發和調試進一步簡化,包括支持混合編程等,使用門檻更低。

性能上,無論是訓練規模大小、場景類型,還是推理效率,均有較大提升。

其中,在MLPerf提供的大規模集群訓練場景中測試,結果如下:

升級鴻蒙後跑分(2.69分鐘完成BERT訓練)4

數據來源:昇騰

從上圖可見,原本需要6.25分鐘訓練的BERT模型,在CANN 5.0的加持下縮短了一倍多,隻需2.69分鐘就能完成訓練;至于在3.0版本上需要28秒訓練的ResNet,5.0版本則是“再進化”到了16秒。

至于常用的一些小模型訓練場景(分類、檢測、語義分割、NLP等),5.0版本的性能提升同樣明顯:

升級鴻蒙後跑分(2.69分鐘完成BERT訓練)5

數據來源:昇騰

訓練以外,5.0版本的推理性能,在不同場景(分類、翻譯、檢測)下提升效果也非常不錯:

升級鴻蒙後跑分(2.69分鐘完成BERT訓練)6

數據來源:昇騰

顯然,無論是訓練還是推理,CANN 5.0都實現了更高效的任務調度和更好的性能提升。

功能上,CANN 5.0首次發布了昇騰推理引擎軟件包ATC Suite1.0(ATC,Ascend Tensor Compiler,昇騰張量編譯器),包括模型壓縮、張量編譯、智能優化和媒體預處理硬加速等能力。

模型壓縮,包括量化、稀疏、張量分解等工具。像其中的AMCT模型壓縮工具,就能對浮點數據進行壓縮處理,來降低模型大小,加速推理速度;

智能優化,能為用戶提供在線調優能力,包括圖解析、子圖/算子自動調優、模型編譯優化等功能,進一步加速ATC的計算速度。

此外,推理引擎還包括Ascend CL(Ascend Computing Language,昇騰統一編程接口)全棧能力調用,即使是多路複雜的音視頻處理等特殊場景也能輕松應對,以及ACE(Ascend Computing Execution,昇騰計算執行引擎)運行管理等功能;至于在線/離線切換的推理模式,也讓部署場景更加靈活。

便捷性上,5.0版本又進一步降低了開發者的使用門檻。

例如,無需開發者手工修改代碼,5.0版本支持模型自動遷移。

又例如,進一步支持混合編程。相比于3.0的手動加載模型,5.0版本在APP中可以直接調用算子函數,自動完成編譯加載并執行:

升級鴻蒙後跑分(2.69分鐘完成BERT訓練)7

3.0版本

升級鴻蒙後跑分(2.69分鐘完成BERT訓練)8

5.0版本

再例如,相比3.0,5.0版本現在還能自動生成算子測試代碼,省去不少步驟:

升級鴻蒙後跑分(2.69分鐘完成BERT訓練)9

可以說是對開發者新人也很友好了。

然而,相比于表面帶來的更高性能、更全面的功能應用,異構計算架構的性能優化,并不如想象中“随便調調參”一般簡單,而是需要大量的技術支撐。

性能優化有多難?

将原本需要跑上幾天的模型訓練時間,縮減到幾小時甚至幾秒,背後絕不僅僅靠的是硬件的堆疊。

其中CANN 5.0的一個關鍵技術,就是集群訓練(采用大量機器共同訓練模型,以加速訓練時間)。

據金穎介紹,相對于單機訓練,增加訓練模型的機器數量,往往并不一定能收獲線性的效率提升。

在訓練過程中,多台機器雖然整體上擁有更多算力,但這些算力是分散的,彼此在進行數據交互的過程中,實際上又降低了訓練效率,這也一直是集群訓練的一個瓶頸。

升級鴻蒙後跑分(2.69分鐘完成BERT訓練)10

圖源:圖蟲

昇騰選擇用圖計算的原理,來分析集群訓練的流水線分布、内存分配,針對不同機器的特點進行了架構上的設計,合理分配各個節點中的内存和通訊時間,來提高機器整體的計算效率。

具體來說,CANN 5.0版本在性能優化上,主要自研了4點技術:

其一,任務自動流水

我們都在打遊戲的時候感受過數據加載的痛苦,這是因為硬件需要一定的時間來“反應”,包括加載計算指令等,但在數據量大的情況下,這顯然會極大地延緩整體計算時間。

5.0實現了計算指令和數據載入的多流水并行,載入數據滿足分段數據量時,不僅啟動後續計算邏輯、還保持數據繼續載入,進一步“壓榨”硬件處理器的并行計算能力,實現任務銜接。

其二,算子深度融合

算子是支持AI模型訓練與推理的基本運算單元及組合,異構計算架構基本都要有自己的算子庫。5.0版本重新定制了更靈活的算子融合規則,通過多個算子自動融合提升模型訓練效率。

其三,自适應梯度切分

這項技術,是華為針對集群訓練提出的智能梯度切分算法,具體針對模型訓練中的疊代計算進行了優化。

CANN 5.0能通過智能梯度切分算法,自動搜索出最優梯度參數切分方式,讓計算和通信進一步并行執行,使得通信拖尾時間降至最低、梯度調優時間降低90%。

其四,AutoTune智能計算調優

不同的AI模型,如果架構隻用一種方式進行計算分配的話,勢必會造成不适配的情況。

因此,CANN 5.0研究出了智能數據切分技術,提出最優切分策略,确保每個計算單元被充分利用,平均性能提升30%以上。

5.0版本也預置了海量模型優化,能極大地縮短開發者的調優時間。

正是這些技術優勢,讓華為在AI性能提升上,擁有了更多的底氣。

如何評價昇騰CANN 5.0?

一方面,無論是AI模型、還是硬件層面的架構優化,都是AI技術走向更複雜的“通用化”的一個體現。

對于AI模型來說,更加通用的模型,并非僅僅是“參數越堆越多”的結果。

目前的通用AI模型,無論從訓練數據、還是架構設計本身來看,技術上都還有許多亟待完善的地方:由數據帶來的模型偏見、架構設計的冗餘和不可解釋性……

顯然,AI模型面臨的這些問題,不可能單純通過“模型變大”來徹底得到解決。

對于硬件也是如此,當下AI行業對于算力需求的擴大,同樣不可能隻通過硬件的堆砌來填補空缺。

如何在單個硬件算力受限的情況下,充分利用每個硬件的性能,達到算力1 1=2甚至是>2的效果,是AI行業的每個參與者都必須思考的問題。

異構計算架構,是高效利用不同硬件算力的解決方案之一,對于它來說,通用化也是同樣複雜的一個問題。

相比于單純為某一場景、或某一功能而設計的專用異構計算架構,适用于全平台、全場景的“通用型”異構計算架構,從實現到優化上都要複雜得多。

這裡的難度,不僅僅在于實現功能上的通用性,而是在同樣場景下,将對AI模型的性能優化做得和專用架構一樣好。

從這個角度來看,不可能存在一個“一勞永逸”的技術解決方案。

無論是AI模型還是異構計算架構,都必須不斷推陳出新、打破自己和行業的固有認知,與時俱進,才可能在變幻莫測的時代浪潮中保持身位。

升級鴻蒙後跑分(2.69分鐘完成BERT訓練)11

圖源:圖蟲

另一方面,回過頭看曆史潮流,僅憑創新,也不足以讓技術實現“可持續發展”,究其根本,還是要回歸現實、解決實際應用問題。

例如,昇騰CANN 5.0聯手武漢大學,解決了遙感領域的超大圖片計算瓶頸;同時,也在電影行業中,幫助修複了如《紅樓夢》、《開國大典》等高清4K影片。

要守住過去繼承下來的技術地位,又要迎頭直面實實在在的新問題,對華為已是競争中的必修課。

正如華為輪值董事長徐直軍在全聯接大會2021上所言:

數字化将注定是一個長期的過程,不可能一蹴而就。

我們所從事的這些技術領域,有幸處在變化最活躍的環節。

點擊下方,第一時間了解華為雲新鮮技術~

華為雲博客_大數據博客_AI博客_雲計算博客_開發者中心-華為雲

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved