華為的通用AI之路:深度解讀達芬奇架構硬件篇

2019-08-29 13:14:38 來源:來源公眾號:MikesICroom 作者:Mike Liu
2019年的hotchip如期閉幕。其中很多AI相關的報告,最想了解的當然是華為的達芬奇架構。從半年前昇騰處理器的各種新聞就吊足了胃口,不過一直沒有細節部分的展示。這次hotchip的presentation終于可以一窺真目了。由于沒有聽過現場的演講,只能根據ppt的內容進行解讀,有不對的部分,歡迎大家批評指正。這一篇主要是針對達芬奇的硬件結構。

 

達芬奇架構追求的是一個全場景的scalable設計,以一個通用的硬件架構,實現從低端到高端的全覆蓋。這是一個很宏大的目標。由于各個應用領域的具體需求不同,比如嵌入式領域對成本和功耗非常注重,移動端更關注性能和功耗的平衡,而云端是極致性能的追求者。通常來說很難有一種架構適配全部應用場景。像ARM這樣的通用處理器架構,也針對應用領域的不同需求,設計了M/R/A三個系列,分別針對嵌入式、實時系統和應用領域。對于單一的application region,針對高端的A7x系列和低端的A5x系列,在流水線結構和運算單元設計上也截然不同。不過在面向深度學習的硬件加速領域,由于目前算法的原因,最小的算力需求都在數百GOPs,這遠遠超過了傳統處理器所能提供的運算能力,最少也需要數百個MAC才能實現。這個最小數量的限制和純運算的需求給scalable的目標提供了便利??梢钥吹竭_芬奇的設計,也是通過改變MAC數量和核心數目來實現的全場景可擴展。當然是否實現對全場景的高效支持,還是需要大規模應用后才能檢驗。
 


全場景的另外一層含義是不僅僅針對深度學習的典型框架進行加速,而且可以適配包括傳統的機器學習在內的各種AI算法。對于不同的算法需要不同的硬件進行加速,這是一種DSA(Domain Specific Architecture)的思想。達芬奇的思路是將包括CPU,Vector、Tensor Core等多種硬件加速單元集成在一塊芯片中,根據具體的應用使用不同的硬件單元進行運算。這是包括intel在內的很多芯片廠商采用的方法,如intel推崇的多核異構,一塊芯片上可以集成CPU、GPU、FPGA等多種運算模塊。這并不是芯片面積的浪費,而是在“Dark Silicion”影響下的硬件設計新思路,相關分析可以參考文末的延伸閱讀。
 

接下來我們看下達芬奇的MAC矩陣結構。這個3D Matrix Unit的結構就像是一個NVIDIA tensor core的放大版(右邊黑底為NVIDIA volta tensor core結構)。由于ppt上并沒有給出這種3D matrix的具體運算形式,只能合理推測應該和tensor core差不多,一個cycle執行16x16+16的矩陣乘累加操作,相當于4096次MAC運算。這個運算可要比tensor core的4x4+4大的多,硬件上也復雜的多。一個tensor core需要64個MAC可以實現,這個乘法器數量比較少,直接綜合就可以。而達芬奇是4069個乘法器,這么大的規模需要很特殊的處理。推測是采用了類似systolic的方法,數據依systolic到達時間的不同呈菱形進入MAC矩陣,這樣首次啟動的時間較長(數十個cycle),但可以實現每個cycle得到一個16x16矩陣的運算結果。不過輸入數據預處理和systolic每拍連接的硬件資源應該不小。

通過改變2D Matrix Unit中MAC的數量,可以衍生出針對高中低三個領域的不同配置??梢钥吹郊词棺钚〉腡iny,支持的運算規模都是8x8+8,比tensor core的規模大8倍。更大的MAC矩陣可以更好的利用矩陣乘法運算中的數據復用性,用較小的存儲和帶寬實現相同的算力,不過代價就是靈活性的降低。2D Matrix算法結構的基礎是將卷積運算轉化成矩陣乘累加,較大的MAC矩陣在運行較小的模型上的效率是比較低的。這要求達芬奇的三個架構需要分別針對大中小三種規模的模型才能發揮出最大效用。同時為了避免算力浪費,轉化的矩陣應該盡可能是MAC矩陣邊長的倍數,比如Davinci Max需要是16的倍數,這個比tensor core的4的倍數要求要高。因此,硬件設計是一個有得必有失的折中, NVIDIA選擇了靈活,華為選擇了算力。這并不能簡單的判斷優劣,還是老話,符合具體需求的架構才是最好的。
 

這是華為第一次秀出達芬奇架構的框圖。從大的結構上看,數據從L1預取到L0后,依次發射到Cube中進行2D matrix運算,結果寫到buffer C中,可以通過Vector單元進行卷積和全連接之后的后處理運算(operation fusion,和TPU以及NVDLA的結構類似),然后寫回到United Buffer中等待下一次調度。最下方是控制通路,指令經Icache取得后,譯碼分發到Scalar,Vector和MTE三個單元中進行對應的運算。整體數據通路和寒武紀的“DINANAO”是很類似的,通過顯式的內存管理調度數據進入主運算cube或后處理單元,各buffer內部空間劃分出ping-pong存儲塊,保證數據存取的連續性。下方的控制加上scalar和vector運算,相當于集成了一個通用CPU在其中,這樣的話支持任何算法都沒有問題了。scalar負責控制流和簡單運算,vector來解決MAC矩陣所不擅長的pooling,activation等操作,這幾部分相互配合補充,很好的實現對AI算法全場景的支持??梢悦黠@看出,最核心的運算還是在cube,主要面向流行的深度學習算法,在其他AI算法上使用vector和scalar運算,算力比cube低不少,因此這類算法的性能是低于SIMT結構的GPU的。
 


從寒武紀的“DIANNAO”到Google的TPU再到達芬奇,AI芯片的設計呈現出百花齊放的場景。有單一針對卷積神經網絡的ASIC加速器,有支持簡單編程的通用型處理器;有的通過硬件可重構進行算法映射,有的通過VLIW指令支持高并發運算;有一個超大矩陣支持大規模AI運算,有通過眾核進行任務切割運算;有的作為協處理器,有的可以獨立運行??梢哉f計算機發展史中出現的各種架構在其中都有體現。達芬奇的整體結構是經指令執行的眾核系統,它將三種運算類型集成一體的思路很好的體現了專用型和靈活性,我認為是走在正確的道路上。而如何高效的使用這三種運算資源以及存儲調度,這個就非??简炣浖途幾g的實力了。
 

總結一下,從硬件角度,達芬奇架構是一個混合型的設計,或者叫核內異構系統。通過集成scalar、vector和cube三類運算單元分別支持不同的AI算法場景,同時吸收了之前深度學習加速器的成功經驗,這也是作為后發者的優勢。全場景的通用AI處理器中,達芬奇和同領域的寒武紀、GPU的硬件結構有非常多的相似之處,對深度學習的支持也是各有優劣。而華為最大的優勢其實是作為系統供應商的軟硬件結合設計的能力,這一點和Google、Amazon發展自定義的AI加速器是同樣的道理。通過云端收集數據進行反饋調整,反復迭代升級,不斷完善硬件對基本算子的良好支持和軟件編譯的高效性和友好性,最終形成生態閉環。期待華為在AI領域再創輝煌。


免責聲明:本文由作者原創。文章內容系作者個人觀點,轉載目的在于傳遞更多信息,并不代表EETOP贊同其觀點和對其真實性負責。如涉及作品內容、版權和其它問題,請及時聯系我們,我們將在第一時間刪除!


 

  1. EETOP 官方微信

  2. 創芯大講堂 在線教育

  3. 創芯老字號 半導體快訊

相關文章

全部評論

  • 最新資訊
  • 最熱資訊
@2003-2021 EETOP

京ICP備10050787號   京公網安備:11010502037710

X
免费大片一级a一级久久