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