現(xiàn)在的深度學(xué)習(xí)系統(tǒng)仰賴軟體定義網(wǎng)路和巨量資料學(xué)習(xí)產(chǎn)生的超大型運算能力,并靠此來實現(xiàn)目標(biāo);遺憾的是,這類型的運算配置是很難嵌入到那些運算能力、記憶體容量大小和頻寬都有限制的系統(tǒng)中(例如汽車、無人機和物聯(lián)網(wǎng)設(shè)備)。
這為業(yè)界帶來了一個新的挑戰(zhàn)──如何透過創(chuàng)新將深度神經(jīng)網(wǎng)路運算能力嵌入到終端設(shè)備中。如(已經(jīng)被Intel收購的)電腦視覺處理器設(shè)計業(yè)者Movidius執(zhí)行長Remi El-Ouazzane在幾個月前就說過,將人工智慧布署在網(wǎng)路邊緣將會是一個大趨勢。
在問到為什么人工智慧會被“趕”到網(wǎng)路邊緣的時候,法國原子能委員會(CEA)架構(gòu)、IC設(shè)計與嵌入式軟體(Architecture, IC Design and Embedded Software)部門院士Marc Duranton提出三個原因:安全性(safety)、隱私(privacy)和經(jīng)濟(economy);他認(rèn)為這三點是驅(qū)動業(yè)界在終端處理資料的重要因素,而未來將會衍生更多“盡早將資料轉(zhuǎn)化為資訊”的需求。
Duranton指出,試想自動駕駛車輛,如果其目標(biāo)是安全性,那些自動駕駛功能就不應(yīng)該只仰賴永不中斷的網(wǎng)路連線;還有例如老人在家里跌倒了,這種情況應(yīng)該由本地監(jiān)測裝置在當(dāng)場就判斷出來,考慮到隱私因素,這是非常重要的。而他補充指出,不必收集家里10臺攝影機的所有影像并傳輸以觸發(fā)警報,這也能降低功耗、成本與資料容量。
AI競賽正式展開
從各方面看來,晶片供應(yīng)商已經(jīng)意識到推理引擎的成長需求;包括Movidus (Myriad 2), Mobileye (EyeQ 4 & 5) 和Nvidia (Drive PX)在內(nèi)的眾多半導(dǎo)體公司正競相開發(fā)低功耗、高性能的硬體加速器,好讓機器學(xué)習(xí)功能在嵌入式系統(tǒng)中被更妥善執(zhí)行。
從這些廠商的動作和SoC的發(fā)展方向看來,在后智慧型手機時代,推理引擎已經(jīng)逐漸成為半導(dǎo)體廠商追逐的下一個目標(biāo)市場。
在今年稍早,Google推出了張量處理單元(TPU),可說是產(chǎn)業(yè)界積極推動機器學(xué)習(xí)晶片創(chuàng)新的一個轉(zhuǎn)捩點;Google在發(fā)表晶片時表示,TPU每瓦性能較之傳統(tǒng)的FPGA和GPU將會高一個等級,此外并指出這個加速器還被已被應(yīng)用于今年年初風(fēng)靡全球的AlphaGo系統(tǒng)。但是迄今Google并未披露TPU的規(guī)格細節(jié),也不打算讓該元件在商業(yè)市場上銷售。
很多SoC從業(yè)者從Google的TPU中得出了一個結(jié)論──機器學(xué)習(xí)需要客制化的架構(gòu);但在他們針對機器學(xué)習(xí)進行晶片設(shè)計的時候,他們又會對晶片的架構(gòu)感到疑惑,同時想知道業(yè)界是否已經(jīng)有了一種評估不同形態(tài)下深度神經(jīng)網(wǎng)路(DNN)性能的工具。
性能評估工具即將問世
CEA表示,該機構(gòu)已經(jīng)準(zhǔn)備好為推理引擎探索不同的硬體架構(gòu),他們已經(jīng)開發(fā)出一種名為N2D2的軟體架構(gòu),能夠幫助設(shè)計工程師探索和生成DNN架構(gòu);Duranton指出:“我們開發(fā)這個工具之目的,是為DNN選擇適合的硬體目標(biāo)。”CEA將會在2017年第一季釋出N2D2的開放源碼。
N2D2的特色在于不僅是以識別精確度為基礎(chǔ)來比較硬體,它還能從處理時間、硬體成本和功耗等多個方面執(zhí)行比較;Duranton表示,因為針對不同應(yīng)用的深度學(xué)習(xí),需求之硬體設(shè)定參數(shù)也會有所不同,因此以上幾個比較非常重要。N2D2能為現(xiàn)有CPU、GPU和FPGA等硬體(包括多核心與眾多核心)提供一個性能參考標(biāo)準(zhǔn)。
N2D2運作原理
邊緣運算的障礙
CEA已經(jīng)針對如何把DNN完美地推展到邊緣運算(edge computing)進行了深入研究;Duranton指出,其中最大的障礙在于因為功耗、記憶體容量尺寸和延遲等限制,“浮點”式伺服器方案不適用;而其他障礙還包括:“需要大量的MAC、頻寬和晶片上記憶體容量。”
所以說,采用整數(shù)(Integer)而非浮點運算是最需要優(yōu)先考量的問題…還有別的嗎?Duranton認(rèn)為,這種專屬架構(gòu)也需要采用新的編碼方式,例如“棘波編碼(spike coding)”;CEA的研究人員研究了神經(jīng)網(wǎng)路的特性,發(fā)現(xiàn)這種網(wǎng)路能容忍運算誤差,使其適用于“近似運算(approximate computation)”。
如此一來,甚至于不需要采用二進位編碼;而Duranton解釋,其好處在于諸如棘波編碼的時間編碼(temporal coding),能在邊緣運算提供更具能源效益的結(jié)果。棘波編碼之所以具吸引力,是因為棘波編碼──或是以事件為基礎(chǔ)(event-based)的──系統(tǒng)能展現(xiàn)實際神經(jīng)系統(tǒng)內(nèi)的資料如何被解碼。
此外,以事件為基礎(chǔ)的編碼能相容專用的感測器和預(yù)處理(pre-processing)。這種和神經(jīng)系統(tǒng)極度相似的編碼方式,使得類比和數(shù)位混合訊號更容易實現(xiàn),也能夠幫助研究者打造低功耗的小型硬體加速器。
還有其他能加速將DNN推展到邊緣運算的因素;例如CEA正在考量把神經(jīng)網(wǎng)路架構(gòu)本身調(diào)整為邊緣運算的潛在可能。Duranton指出,現(xiàn)在人們已經(jīng)開始討論采用“SqueezeNet”架構(gòu)而非“AlexNet”架構(gòu)的神經(jīng)網(wǎng)路,據(jù)了解,前者達到與后者相同精確度所需的參數(shù)規(guī)格是五十分之一;這類簡單配置對于邊緣運算、拓撲和降低MAC數(shù)量都十分關(guān)鍵。
而Duranton認(rèn)為,最終目標(biāo)是將經(jīng)典DNN轉(zhuǎn)換成“嵌入式”網(wǎng)路。