華為的通用AI之路:深度解讀達(dá)芬奇架構(gòu)硬件篇
2019-08-29 13:14:38 來源公眾號:MikesICroom 作者:Mike Liu
達(dá)芬奇架構(gòu)追求的是一個全場景的scalable設(shè)計,以一個通用的硬件架構(gòu),實現(xiàn)從低端到高端的全覆蓋。這是一個很宏大的目標(biāo)。由于各個應(yīng)用領(lǐng)域的具體需求不同,比如嵌入式領(lǐng)域?qū)Τ杀竞凸姆浅W⒅兀苿佣烁P(guān)注性能和功耗的平衡,而云端是極致性能的追求者。通常來說很難有一種架構(gòu)適配全部應(yīng)用場景。像ARM這樣的通用處理器架構(gòu),也針對應(yīng)用領(lǐng)域的不同需求,設(shè)計了M/R/A三個系列,分別針對嵌入式、實時系統(tǒng)和應(yīng)用領(lǐng)域。對于單一的application region,針對高端的A7x系列和低端的A5x系列,在流水線結(jié)構(gòu)和運算單元設(shè)計上也截然不同。不過在面向深度學(xué)習(xí)的硬件加速領(lǐng)域,由于目前算法的原因,最小的算力需求都在數(shù)百GOPs,這遠(yuǎn)遠(yuǎn)超過了傳統(tǒng)處理器所能提供的運算能力,最少也需要數(shù)百個MAC才能實現(xiàn)。這個最小數(shù)量的限制和純運算的需求給scalable的目標(biāo)提供了便利。可以看到達(dá)芬奇的設(shè)計,也是通過改變MAC數(shù)量和核心數(shù)目來實現(xiàn)的全場景可擴(kuò)展。當(dāng)然是否實現(xiàn)對全場景的高效支持,還是需要大規(guī)模應(yīng)用后才能檢驗。
全場景的另外一層含義是不僅僅針對深度學(xué)習(xí)的典型框架進(jìn)行加速,而且可以適配包括傳統(tǒng)的機(jī)器學(xué)習(xí)在內(nèi)的各種AI算法。對于不同的算法需要不同的硬件進(jìn)行加速,這是一種DSA(Domain Specific Architecture)的思想。達(dá)芬奇的思路是將包括CPU,Vector、Tensor Core等多種硬件加速單元集成在一塊芯片中,根據(jù)具體的應(yīng)用使用不同的硬件單元進(jìn)行運算。這是包括intel在內(nèi)的很多芯片廠商采用的方法,如intel推崇的多核異構(gòu),一塊芯片上可以集成CPU、GPU、FPGA等多種運算模塊。這并不是芯片面積的浪費,而是在“Dark Silicion”影響下的硬件設(shè)計新思路,相關(guān)分析可以參考文末的延伸閱讀。
接下來我們看下達(dá)芬奇的MAC矩陣結(jié)構(gòu)。這個3D Matrix Unit的結(jié)構(gòu)就像是一個NVIDIA tensor core的放大版(右邊黑底為NVIDIA volta tensor core結(jié)構(gòu))。由于ppt上并沒有給出這種3D matrix的具體運算形式,只能合理推測應(yīng)該和tensor core差不多,一個cycle執(zhí)行16x16+16的矩陣乘累加操作,相當(dāng)于4096次MAC運算。這個運算可要比tensor core的4x4+4大的多,硬件上也復(fù)雜的多。一個tensor core需要64個MAC可以實現(xiàn),這個乘法器數(shù)量比較少,直接綜合就可以。而達(dá)芬奇是4069個乘法器,這么大的規(guī)模需要很特殊的處理。推測是采用了類似systolic的方法,數(shù)據(jù)依systolic到達(dá)時間的不同呈菱形進(jìn)入MAC矩陣,這樣首次啟動的時間較長(數(shù)十個cycle),但可以實現(xiàn)每個cycle得到一個16x16矩陣的運算結(jié)果。不過輸入數(shù)據(jù)預(yù)處理和systolic每拍連接的硬件資源應(yīng)該不小。
通過改變2D Matrix Unit中MAC的數(shù)量,可以衍生出針對高中低三個領(lǐng)域的不同配置。可以看到即使最小的Tiny,支持的運算規(guī)模都是8x8+8,比tensor core的規(guī)模大8倍。更大的MAC矩陣可以更好的利用矩陣乘法運算中的數(shù)據(jù)復(fù)用性,用較小的存儲和帶寬實現(xiàn)相同的算力,不過代價就是靈活性的降低。2D Matrix算法結(jié)構(gòu)的基礎(chǔ)是將卷積運算轉(zhuǎn)化成矩陣乘累加,較大的MAC矩陣在運行較小的模型上的效率是比較低的。這要求達(dá)芬奇的三個架構(gòu)需要分別針對大中小三種規(guī)模的模型才能發(fā)揮出最大效用。同時為了避免算力浪費,轉(zhuǎn)化的矩陣應(yīng)該盡可能是MAC矩陣邊長的倍數(shù),比如Davinci Max需要是16的倍數(shù),這個比tensor core的4的倍數(shù)要求要高。因此,硬件設(shè)計是一個有得必有失的折中, NVIDIA選擇了靈活,華為選擇了算力。這并不能簡單的判斷優(yōu)劣,還是老話,符合具體需求的架構(gòu)才是最好的。
這是華為第一次秀出達(dá)芬奇架構(gòu)的框圖。從大的結(jié)構(gòu)上看,數(shù)據(jù)從L1預(yù)取到L0后,依次發(fā)射到Cube中進(jìn)行2D matrix運算,結(jié)果寫到buffer C中,可以通過Vector單元進(jìn)行卷積和全連接之后的后處理運算(operation fusion,和TPU以及NVDLA的結(jié)構(gòu)類似),然后寫回到United Buffer中等待下一次調(diào)度。最下方是控制通路,指令經(jīng)Icache取得后,譯碼分發(fā)到Scalar,Vector和MTE三個單元中進(jìn)行對應(yīng)的運算。整體數(shù)據(jù)通路和寒武紀(jì)的“DINANAO”是很類似的,通過顯式的內(nèi)存管理調(diào)度數(shù)據(jù)進(jìn)入主運算cube或后處理單元,各buffer內(nèi)部空間劃分出ping-pong存儲塊,保證數(shù)據(jù)存取的連續(xù)性。下方的控制加上scalar和vector運算,相當(dāng)于集成了一個通用CPU在其中,這樣的話支持任何算法都沒有問題了。scalar負(fù)責(zé)控制流和簡單運算,vector來解決MAC矩陣所不擅長的pooling,activation等操作,這幾部分相互配合補(bǔ)充,很好的實現(xiàn)對AI算法全場景的支持。可以明顯看出,最核心的運算還是在cube,主要面向流行的深度學(xué)習(xí)算法,在其他AI算法上使用vector和scalar運算,算力比cube低不少,因此這類算法的性能是低于SIMT結(jié)構(gòu)的GPU的。
從寒武紀(jì)的“DIANNAO”到Google的TPU再到達(dá)芬奇,AI芯片的設(shè)計呈現(xiàn)出百花齊放的場景。有單一針對卷積神經(jīng)網(wǎng)絡(luò)的ASIC加速器,有支持簡單編程的通用型處理器;有的通過硬件可重構(gòu)進(jìn)行算法映射,有的通過VLIW指令支持高并發(fā)運算;有一個超大矩陣支持大規(guī)模AI運算,有通過眾核進(jìn)行任務(wù)切割運算;有的作為協(xié)處理器,有的可以獨立運行。可以說計算機(jī)發(fā)展史中出現(xiàn)的各種架構(gòu)在其中都有體現(xiàn)。達(dá)芬奇的整體結(jié)構(gòu)是經(jīng)指令執(zhí)行的眾核系統(tǒng),它將三種運算類型集成一體的思路很好的體現(xiàn)了專用型和靈活性,我認(rèn)為是走在正確的道路上。而如何高效的使用這三種運算資源以及存儲調(diào)度,這個就非常考驗軟件和編譯的實力了。
總結(jié)一下,從硬件角度,達(dá)芬奇架構(gòu)是一個混合型的設(shè)計,或者叫核內(nèi)異構(gòu)系統(tǒng)。通過集成scalar、vector和cube三類運算單元分別支持不同的AI算法場景,同時吸收了之前深度學(xué)習(xí)加速器的成功經(jīng)驗,這也是作為后發(fā)者的優(yōu)勢。全場景的通用AI處理器中,達(dá)芬奇和同領(lǐng)域的寒武紀(jì)、GPU的硬件結(jié)構(gòu)有非常多的相似之處,對深度學(xué)習(xí)的支持也是各有優(yōu)劣。而華為最大的優(yōu)勢其實是作為系統(tǒng)供應(yīng)商的軟硬件結(jié)合設(shè)計的能力,這一點和Google、Amazon發(fā)展自定義的AI加速器是同樣的道理。通過云端收集數(shù)據(jù)進(jìn)行反饋調(diào)整,反復(fù)迭代升級,不斷完善硬件對基本算子的良好支持和軟件編譯的高效性和友好性,最終形成生態(tài)閉環(huán)。期待華為在AI領(lǐng)域再創(chuàng)輝煌。
免責(zé)聲明:本文由作者原創(chuàng)。文章內(nèi)容系作者個人觀點,轉(zhuǎn)載目的在于傳遞更多信息,并不代表EETOP贊同其觀點和對其真實性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時聯(lián)系我們,我們將在第一時間刪除!
EETOP 官方微信
創(chuàng)芯大講堂 在線教育
半導(dǎo)體創(chuàng)芯網(wǎng) 快訊
相關(guān)文章