通常來(lái)說(shuō),機器學(xué)習模型必須部署在終端執行的理由包括傳輸帶寬、反應延遲和安 全性等。從傳輸帶寬來(lái)考慮,目前物聯(lián)網(wǎng)中節點(diǎn)分布在各種場(chǎng)景中,如果要把原始數據直接傳輸到云端,則帶寬開(kāi)銷(xiāo)非常大,而且無(wú)線(xiàn)傳輸的能量開(kāi)銷(xiāo)也不小。而如果在終端部署機器學(xué)習推理則可以省下帶寬的開(kāi)銷(xiāo),只需要有選擇性地把部分重要數據傳送到云端,而無(wú)需傳輸全部原始數據。
反應延遲也是把深度學(xué)習部署在終端的重要理由。目前數據到云端的來(lái)回傳送時(shí)間通常在數百毫秒級,對于工業(yè)機器人等對于延遲有高要求的應用來(lái)說(shuō)無(wú)法滿(mǎn)足要求。即使在5G低延遲網(wǎng)絡(luò )下,無(wú)線(xiàn)網(wǎng)絡(luò )的可靠性對于智能工業(yè)等要求高可靠性的應用來(lái)說(shuō)也難以滿(mǎn)足需求,偶爾的高延遲甚至數據丟包都可能會(huì )造成要求即時(shí)反應的機器發(fā)生問(wèn)題,因此會(huì )傾向于選擇將深度學(xué)習推理的計算放在本地做。
數據的安 全性也是一個(gè)考量,對于一些敏感應用來(lái)說(shuō)將數據通過(guò)網(wǎng)絡(luò )傳送給云端服務(wù)器意味著(zhù)存在著(zhù)數據被入侵的風(fēng)險——如果黑客通過(guò)破解智能工廠(chǎng)與云端服務(wù)器的數據從而控制整個(gè)工廠(chǎng)將會(huì )給工廠(chǎng)帶來(lái)巨大損失——而如果把這些計算放在本地則會(huì )安 全地多。
根據上述的場(chǎng)景,我們認為需要執行本地機器學(xué)習推理計算的MCU主要會(huì )運行在如下場(chǎng)景中:
智能生產(chǎn),需要快速反應且重視數據的安 全性,如根據聲音識別機器故障等;
小型機器人,沒(méi)有人會(huì )希望機器人一旦斷網(wǎng)就無(wú)法工作,如無(wú)人機,掃地機器人等;
智能家電,如智能空調根據人的位置智能送風(fēng)等;
智能可穿戴設備,如根據人體的生理信號給出相應提示等。
隨著(zhù)上述在終端部署執行機器學(xué)習推理計算的需求,一些原來(lái)只負責執行基本程序的MCU也必須要有能力能跑動(dòng)機器學(xué)習推理計算。這對于MCU的挑戰在于算力,因為在這一波人工智能的浪潮中,訓練好的模型所需要的計算量通常是數十萬(wàn)次計算到數億次計算不等,如果需要實(shí)時(shí)執行這些運算則MCU需要的算力將會(huì )比原來(lái)的MCU強幾個(gè)數量級。
另外,智能MCU對功耗和實(shí)時(shí)性也有很高要求,這就需要MCU設計能有相應改變。目前,MCU正處于8位更新?lián)Q代到32位的過(guò)程中,我們預計在32位MCU的基礎上,智能化會(huì )成為下一個(gè)MCU的演進(jìn)方向。
智能化技術(shù)路徑一:整合加速器IP
目前MCU領(lǐng)域,ARM占據了***的地位,其IP占據了大量的市場(chǎng)份額。對于智能化MCU的興起,ARM自然也不會(huì )袖手旁觀(guān),而是起到了推動(dòng)者的作用,幫助MCU實(shí)現智能化。
ARM的Cortex系列架構占據著(zhù)32位MCU的主導位置,所以ARM推進(jìn)智能MCU的方法需要兼顧其Cortex架構,不能為了推智能化MCU結果把自己的命給革了。因此,ARM選擇的方法是給Cortex核搭配一個(gè)獨立的加速器IP,當需要執行機器學(xué)習相關(guān)算法時(shí)調用這個(gè)加速器IP去做計算,而當做傳統操作時(shí)還是使用Cortex。
ARM的機器學(xué)習加速器系列產(chǎn)品即Project Trillium,其中包括了機器學(xué)習處理器(ML Processor),物體檢測處理器等硬件IP,同時(shí)還包括可以在這些加速器以及Cortex核和Mali GPU上更優(yōu)化執行相關(guān)算法的軟件棧ARM NN。以ARM ML Processor為例(如下圖),其架構包含了用于加速專(zhuān)用函數的加速引擎Fixed-function Engine,用于加速神經(jīng)網(wǎng)絡(luò )的可編程層引擎Programmable Layer Engine,片上內存,用于控制加速器執行的網(wǎng)絡(luò )控制單元以及用于訪(fǎng)問(wèn)片外內存的DMA。
ARM ML Processor是典型的加速器架構,它有自己的指令集,只能執行和機器學(xué)習相關(guān)的運算加速而無(wú)法運行其他程序,因此必須搭配Cortex核才能發(fā)揮作用。ARM ML Processor可以更高實(shí)現4.6TOPS的算力,同時(shí)更高能效比可達3TOPS/W,性能實(shí)屬優(yōu) 秀,對于算力需求不高的場(chǎng)合也可以通過(guò)降低運行速度來(lái)降低功耗,以滿(mǎn)足MCU的需求。
除了ARM之外,其他MCU巨頭也在紛紛布局AI加速器,其中意法半導體屬于技術(shù)領(lǐng) 先的位置。在去年,意法發(fā)布了其用于超低功耗MCU的專(zhuān)用卷積神經(jīng)網(wǎng)絡(luò )加速器,代號為Orlando Project,在28nm FD-SOI上可以實(shí)現2.9TOPS/W的超高能效比,相信隨著(zhù)技術(shù)和市場(chǎng)需求的進(jìn)一步需求將會(huì )轉為商用化。
應該說(shuō)目前基于專(zhuān)用機器學(xué)習加速器IP的智能MCU尚處于蓄勢待發(fā)階段。顧名思義,專(zhuān)用機器學(xué)習加速器通過(guò)專(zhuān)用化的設計實(shí)現了很高的能效比,然而這也限制了應用范圍,只能加速一部分機器學(xué)習算法,而無(wú)法顧及通用性。
目前,機器學(xué)習加速器主要的加速對象算法是神經(jīng)網(wǎng)絡(luò )算法,尤其是卷積神經(jīng)網(wǎng)絡(luò )。從技術(shù)上說(shuō),卷積神經(jīng)網(wǎng)絡(luò )在執行過(guò)程中并行度高,存在加速空間,一個(gè)加速器相比傳統處理器往往能把神經(jīng)網(wǎng)絡(luò )的執行速度和能效比提升幾個(gè)數量級。從人工智能的發(fā)展脈絡(luò )來(lái)看,這一波人工智能中更成功的應用也是基于卷積神經(jīng)網(wǎng)絡(luò )的機器視覺(jué)應用,因此大家都專(zhuān)注于卷積神經(jīng)網(wǎng)絡(luò )的加速也是順理成章。
然而,對于MCU來(lái)說(shuō),專(zhuān)注于卷積神經(jīng)網(wǎng)絡(luò )加速卻未必是一個(gè)更優(yōu)化的選擇。首先,MCU市場(chǎng)的應用存在一定碎片化,而一個(gè)專(zhuān)用的加速器很難覆蓋多個(gè)應用,因此對于習慣了設計標準化MCU并走量覆蓋許多個(gè)市場(chǎng)的半導體廠(chǎng)商來(lái)說(shuō)是否使用專(zhuān)用化加速器是一個(gè)需要仔細考慮的選擇。換句話(huà)說(shuō),許多應用中希望智能MCU能高效執行基于非卷積神經(jīng)網(wǎng)絡(luò )的機器學(xué)習算法(例如SVM,決策樹(shù)等等),那么這些應用就無(wú)法被一個(gè)專(zhuān)用的卷積神經(jīng)網(wǎng)絡(luò )加速器覆蓋到,而需要設計另外一套加速器。當然,這對于IP商ARM來(lái)說(shuō)不是件壞事,因為ARM可以快速提升其機器學(xué)習加速器的IP品類(lèi)數量并從中獲利,但是對于半導體公司來(lái)說(shuō)卻有些頭疼。
此外,卷積神經(jīng)網(wǎng)絡(luò )更成功的應用是機器視覺(jué),然而在MCU應用中除了機器視覺(jué)之外還有許多其他應用,甚至可以說(shuō)智能MCU的應用中機器視覺(jué)并非更大的市場(chǎng),這也限制了只能處理卷積神經(jīng)網(wǎng)絡(luò )的專(zhuān)用加速器IP的市場(chǎng)。
智能化路徑二:處理器架構改良
根據上面的討論,ARM因為之前使用Cortex核占領(lǐng)了MCU市場(chǎng),因此其保留Cortex架構不變并力推能搭配Cortex核使用的專(zhuān)用加速器IP也是必然的商業(yè)邏輯。然而,基于專(zhuān)用機器學(xué)習加速器IP的智能MCU在碎片化應用中會(huì )遇到應用覆蓋過(guò)窄的問(wèn)題,這也就是為什么還存在**條MCU智能化的技術(shù)路徑——改良處理器架構。
處理器架構改良意味著(zhù)直接設計一個(gè)低功耗高算力的通用處理器,這樣就可以覆蓋幾乎所有MCU應用,從而避免了專(zhuān)用加速器的通用性問(wèn)題。當然,在處理器設計中,往往需要從指令集開(kāi)始全盤(pán)重新設計,因此需要很大的投入。
根據半導體行業(yè)的傳統,從頭設計一套新的自有指令集往往是吃力而不討好,因為指令集的設計、驗證、可擴展性考慮等等往往不是一個(gè)團隊就能完成的,而是需要大量人長(cháng)時(shí)間的努力。然而,隨著(zhù)RISC-V開(kāi)源指令集得到越來(lái)越多的認可,使用基于RISC-V指令集去做新處理器架構可以大大節省指令集和架構開(kāi)發(fā)的成本以及風(fēng)險。RISC-V指令集經(jīng)過(guò)開(kāi)源社區的認證,已經(jīng)證明非??孔V,可以無(wú)需從頭造輪子,而只需要把精力集中在需要改良的部分,因此在這個(gè)時(shí)間點(diǎn)做新處理器架構可謂是正逢其時(shí)。
使用新架構做智能MCU的代表公司是來(lái)自法國的初創(chuàng )公司Greenwaves Technologies。Greenwaves正是使用了基于RISC-V的指令集,同時(shí)在架構上在MCU中也引入了多核的概念,通過(guò)多數據流(SIMD)的方式來(lái)加速人工智能算法中的并行計算,可謂是MCU架構上的一個(gè)革新。
目前,Greenwaves的第 一款產(chǎn)品GAP8已經(jīng)處于出樣階段。根據網(wǎng)站資料,GAP8擁有8個(gè)核,可以在數十毫瓦的功耗下實(shí)現8GOPS的算力,該算力已經(jīng)能滿(mǎn)足許多智能MCU的需求。更關(guān)鍵的是,由于GAP8使用的是多核通用處理器而非專(zhuān)用加速器去加速人工智能算法,因此其可以通用性非常好,可以覆蓋各種算法以及應用。在應用存在碎片化的MCU市場(chǎng),這無(wú)疑是一個(gè)很大的優(yōu)勢。由于使用的是通用處理器,GAP8的能效比相對于A(yíng)RM的專(zhuān)用加速器在特定的領(lǐng)域較弱,但是GAP8的通用性卻是ARM的專(zhuān)用加速器無(wú)法企及的。
另外值得指出的是,新處理器架構和專(zhuān)用加速器并非水火不容,完全可以在使用新處理器架構的同時(shí)集成一個(gè)專(zhuān)用加速器,從而使用專(zhuān)用加速器去加速特定的應用,而使用通用化的新架構處理器去處理高效處理其他應用。這里專(zhuān)用與通用的選擇完全則很大程度上取決于市場(chǎng)的需求以及潛在的商業(yè)回報。
除了Greenwaves之外,瑞薩也推出了類(lèi)似的新處理器架構。與Greenwaves略有不同的是,瑞薩并不是做一個(gè)新的通用處理器架構,而是做了一個(gè)可配置的協(xié)處理器,該協(xié)處理器可以使用高 級語(yǔ)言(如C/C++)編程,在不同的應用場(chǎng)景可以配置為不同的架構,從而兼顧了通用性和專(zhuān)用性。瑞薩將該架構稱(chēng)作為動(dòng)態(tài)可重構處理器(Dynamic Reconfigurable Processor, DRP),該架構之前已經(jīng)在瑞薩的視頻處理器中已經(jīng)得到了驗證,現在瑞薩準備將該架構也搬到MCU中,并將在今年十月正式發(fā)布第 一代集成DRP的MCU。
人工智能和物聯(lián)網(wǎng)的結合推進(jìn)了智能MCU概念。我們預計在未來(lái)幾年將會(huì )看到智能MCU的普及,而在智能MCU的兩條技術(shù)路徑之間選擇則不僅會(huì )影響MCU市場(chǎng),更有可能會(huì )對于半導體生態(tài)造成深遠影響——如果專(zhuān)用加速器IP獲勝,則ARM將繼續成為智能MCU的***,反之如果新架構獲勝則ARM將會(huì )遇到強力的挑戰。