介紹:即時(shí)機(jī)器學(xué)習(xí)推論
機(jī)器學(xué)習(xí)是支撐新型服務(wù)的技術(shù),透過使用自然語(yǔ)音互動(dòng)與影像辨識(shí)提供無縫社群媒體或客服中心體驗(yàn)。此外,它能夠在與大量變數(shù)相關(guān)的巨量資料中辨識(shí)出模式或異常,因此經(jīng)訓(xùn)練的深度學(xué)習(xí)神經(jīng)網(wǎng)路也將透過數(shù)位分身(digital twin)與預(yù)測(cè)性維護(hù)等服務(wù),轉(zhuǎn)變我們進(jìn)行科學(xué)研究、財(cái)務(wù)規(guī)劃、智慧城市營(yíng)運(yùn)、工業(yè)機(jī)器人編程和執(zhí)行數(shù)位業(yè)務(wù)轉(zhuǎn)型的方式。
無論經(jīng)訓(xùn)練的網(wǎng)路是部署在雲(yún)端還是在網(wǎng)路邊緣的嵌入式系統(tǒng)內(nèi)進(jìn)行推論,大多數(shù)使用者都期望能夠達(dá)到確定性的傳輸量和低延遲。然而,想在可行的尺寸和電源限制下同時(shí)達(dá)到這兩個(gè)要求,需在系統(tǒng)的核心架構(gòu)高效且大規(guī)模的平行運(yùn)算引擎,以有效率地傳輸資料,而這需要彈性的記憶體階層和靈活應(yīng)變的高頻寬互連等功能。
一般用於訓(xùn)練神經(jīng)網(wǎng)路且以GPU進(jìn)行運(yùn)算的引擎運(yùn)算週期皆相當(dāng)耗時(shí),且會(huì)產(chǎn)生teraFLOPS運(yùn)算次數(shù),其固定式的互連結(jié)構(gòu)和記憶體階層難以滿足即時(shí)推論的要求,與上述的需求成為對(duì)比。由於資料重複、快取遺失和阻塞(blocking)等問題時(shí)常發(fā)生,因此,為達(dá)到可滿足需求的推論效能,需要一款更加靈活且具可擴(kuò)展性的架構(gòu)。
專案善用FPGA的可配置性
現(xiàn)場(chǎng)可編程邏輯閘陣列(FPGA)整合了最佳化的運(yùn)算磚(compute tile)、分散式區(qū)域記憶體和自行調(diào)適、無阻塞的共用互連(shared interconnect),能克服傳統(tǒng)的限制並確保確定性的傳輸量和低延遲。隨著對(duì)機(jī)器學(xué)習(xí)作業(yè)負(fù)載的需求變得越來越嚴(yán)苛,像微軟「Project BrainWave」這類先進(jìn)的機(jī)器學(xué)習(xí)專案已採(cǎi)用FPGA執(zhí)行即時(shí)運(yùn)算,可達(dá)到GPU無法企及的成本效益和極低延遲。
全球運(yùn)算服務(wù)供應(yīng)商阿里雲(yún)的先進(jìn)機(jī)器學(xué)習(xí)專案也選擇FPGA作為其運(yùn)算基礎(chǔ),為影像辨識(shí)和分析建構(gòu)深度學(xué)習(xí)處理器(DLP);該公司的基礎(chǔ)設(shè)施服務(wù)事業(yè)群認(rèn)為,F(xiàn)PGA讓DLP具備GPU無法達(dá)到的低延遲和高效能。圖一所示為該團(tuán)隊(duì)使用ResNet-18深度殘差網(wǎng)路進(jìn)行分析所得的結(jié)果,顯示採(cǎi)用FPGA的DLP能達(dá)到低至0.174秒的延遲,比同水準(zhǔn)的GPU速度快86%,而以每秒查詢率(QPS)測(cè)量的傳輸量則提升7倍以上。
微軟的「BrainWave」和阿里巴巴的DLP等專案皆成功建構(gòu)出能加速AI作業(yè)負(fù)載的新型硬體架構(gòu)。然而,這只是落實(shí)機(jī)器學(xué)習(xí)加速的開端,最終它將被雲(yún)端服務(wù)、工業(yè)與汽車產(chǎn)業(yè)的客戶廣為應(yīng)用;其中,工業(yè)與汽車產(chǎn)業(yè)對(duì)網(wǎng)路邊緣嵌入式系統(tǒng)部署機(jī)器學(xué)習(xí)推論有更頻繁的需求。
另一方面,部分的服務(wù)供應(yīng)商熱衷於將機(jī)器學(xué)習(xí)融入到現(xiàn)有系統(tǒng)中,以強(qiáng)化和加速既有的使用案例。例如在網(wǎng)路安全方面,機(jī)器學(xué)習(xí)能強(qiáng)化模式辨識(shí),驅(qū)動(dòng)惡意軟體和危險(xiǎn)異常的高速偵測(cè)。其他案例包括將機(jī)器學(xué)習(xí)應(yīng)用於臉部辨識(shí)或干擾偵測(cè),協(xié)助智慧城市更順暢地運(yùn)作。
為非FPGA專家打造的AI加速
賽靈思已建立起具備豐富資源的產(chǎn)業(yè)生態(tài)系,讓使用者能充分發(fā)揮FPGA的潛力,以加速雲(yún)端或邊緣AI的作業(yè)負(fù)載。
在可用的工具中,ML套件(圖二)負(fù)責(zé)編譯神經(jīng)網(wǎng)路,以便在賽靈思FPGA硬體中運(yùn)作。它能與TensorFlow、Caffe、MxNet等常見的機(jī)器學(xué)習(xí)框架所生成的神經(jīng)網(wǎng)路共同運(yùn)作,而Python API可簡(jiǎn)化與ML套件的互動(dòng)。

圖二 : 賽靈思ML套件為機(jī)器學(xué)習(xí)開發(fā)提供具備豐富資源的產(chǎn)業(yè)生態(tài)系 |
|
因?yàn)闄C(jī)器學(xué)習(xí)框架常常生成採(cǎi)用32位元浮點(diǎn)運(yùn)算的神經(jīng)網(wǎng)路,因此包含量化器工具的ML套件能將其轉(zhuǎn)換成定點(diǎn)等效網(wǎng)路,更適合在FPGA中運(yùn)作。該量化器是整套中介軟體、編譯與優(yōu)化工具及運(yùn)轉(zhuǎn)時(shí)間的一部分,整體稱為「xfDNN」,它能確保神經(jīng)網(wǎng)路在FPGA晶片上發(fā)揮最佳效能。
在賽靈思收購(gòu)深鑒科技(DeePhi Technology)後,其剪枝技術(shù)也被納入賽靈思的產(chǎn)業(yè)生態(tài)系中,用於刪除近零權(quán)重(near-zero weights)、壓縮和簡(jiǎn)化網(wǎng)路層。深鑒科技的剪枝技術(shù)能在不影響整體效能和精度的情況下,將神經(jīng)網(wǎng)路速度提升10倍並顯著降低系統(tǒng)功耗。
在部署轉(zhuǎn)換後的神經(jīng)網(wǎng)路時(shí),ML套件提供xDNN客製處理器疊加,讓設(shè)計(jì)人員從複雜的FPGA設(shè)計(jì)工作中抽身,且有效率地運(yùn)用晶載資源。每個(gè)疊加一般都有配套自己的優(yōu)化指令集,用於運(yùn)作各類型神經(jīng)網(wǎng)路,使用者可透過RESTful API與神經(jīng)網(wǎng)路進(jìn)行互動(dòng),同時(shí)讓自己在偏好的環(huán)境中工作。
對(duì)於在地(on-premise)部署,賽靈思Alveo?加速器卡能克服硬體開發(fā)的挑戰(zhàn),並簡(jiǎn)化將機(jī)器學(xué)習(xí)納入資料中心現(xiàn)有應(yīng)用的作業(yè)流程。
該產(chǎn)業(yè)生態(tài)系支援將機(jī)器學(xué)習(xí)部署到嵌入式或邊緣實(shí)例時(shí),不僅運(yùn)用深鑒科技所提供的剪枝技術(shù),還有其提供的量化器、編譯器和運(yùn)轉(zhuǎn)時(shí)間,為資源受限的嵌入式硬體創(chuàng)建高效能、高效率的神經(jīng)網(wǎng)路(圖三)。Zynq? UltraScale? 9卡和Zynq 7020模組系統(tǒng)等一站式硬體(turnkey hardware)可簡(jiǎn)化硬體開發(fā)流程並加速軟體整合。

圖三 : ML套件提供專為雲(yún)端和邊緣/嵌入式機(jī)器學(xué)習(xí)進(jìn)行優(yōu)化的工具 |
|
此外,有些創(chuàng)新型獨(dú)立軟體廠商已經(jīng)建構(gòu)出能部署在FPGA上的CNN推論疊加。
Mipsology開發(fā)的Zebra是一種能夠輕鬆代替CPU或GPU的CNN推論加速器。它支援多種標(biāo)準(zhǔn)網(wǎng)路(如Resnet50、InceptionV3、Caffenet)和客製框架,並能在極低延遲下達(dá)到優(yōu)異的傳輸量,例如在Resnet50達(dá)到每秒3,700個(gè)影像。
Omnitek DPU是另一個(gè)推論疊加的案例,能在FPGA上運(yùn)作具有極高效能的CNN。例如,在GoogLeNet Inception-v1 CNN上,Omnitek DPU使用8位元整數(shù)處理執(zhí)行224×224的影像推論,在賽靈思Alveo資料中心加速器卡上能完成每秒超過5,300次的推論。
可重配置運(yùn)算滿足未來靈活性的要求
開發(fā)者在部署機(jī)器學(xué)習(xí)時(shí),除了面臨需確保達(dá)到推論效能要求的挑戰(zhàn)外,還必須牢記機(jī)器學(xué)習(xí)和人工智慧的整體技術(shù)環(huán)境正快速變化。今日業(yè)界一流的神經(jīng)網(wǎng)路可能很快會(huì)被更新穎、更快速的網(wǎng)路所取代,但原有的硬體架構(gòu)可能無法良好地支援新網(wǎng)路。
目前,商用機(jī)器學(xué)習(xí)的應(yīng)用往往集中於影像處理及物體或特徵辨識(shí),這類應(yīng)用透過卷積神經(jīng)網(wǎng)路就能處理得很好。隨著開發(fā)者將機(jī)器學(xué)習(xí)功能用於加速字串排序或無關(guān)聯(lián)資料的分析等任務(wù),未來這種情況可能會(huì)改變,因?yàn)槭褂闷渌愋偷纳窠?jīng)網(wǎng)路能夠更有效地處理該類型的作業(yè)負(fù)載,例如隨機(jī)森林(Random Forest)網(wǎng)路或長(zhǎng)短期記憶(LSTM)網(wǎng)路。若要藉由更新硬體來處理不同類型的神經(jīng)網(wǎng)路,就必須確保低延遲下的快速運(yùn)算,然而這可能要數(shù)月或數(shù)年時(shí)間才能做到。
若使用GPU或固定架構(gòu)的客製ASIC建構(gòu)推論引擎,就無法輕鬆或快速地更新硬體。AI目前的發(fā)展速度已超越晶片的發(fā)展速度,因此在開發(fā)之初處?kù)稑I(yè)界一流水準(zhǔn)的客製ASIC也可能在即將部署之際成為過時(shí)元件。
相反地,F(xiàn)PGA的可重配置性和優(yōu)異的資源客製靈活性是讓元件跟上AI發(fā)展速度的關(guān)鍵優(yōu)勢(shì)。我們已知道FPGA適用於無監(jiān)督學(xué)習(xí)的低延遲集群,而無監(jiān)督學(xué)習(xí)是AI的新興分支,特別適用於統(tǒng)計(jì)分析等任務(wù)。
使用ML套件這類的工具來優(yōu)化和編譯網(wǎng)路進(jìn)行FPGA部署,能讓開發(fā)者在不具備指導(dǎo)編譯器決策所需的FPGA專業(yè)技術(shù)之情況下,也能在自己的環(huán)境中進(jìn)行高層級(jí)作業(yè),同時(shí)還能在未來靈活地重新配置硬體,支援未來數(shù)代的神經(jīng)網(wǎng)路。
結(jié)論
FPGA以能提供機(jī)器學(xué)習(xí)從業(yè)者所需的效能加速和未來的靈活性而聞名。它不僅能建構(gòu)高效能、高效率且可立即部署的推論引擎,還能適應(yīng)機(jī)器學(xué)習(xí)領(lǐng)域技術(shù)和市場(chǎng)需求的快速變化。難題在於既要讓機(jī)器學(xué)習(xí)專家充分地發(fā)揮FPGA的架構(gòu)優(yōu)勢(shì),同時(shí)又要建構(gòu)能達(dá)到最佳效能、最高效率的設(shè)計(jì),因此賽靈思產(chǎn)業(yè)生態(tài)系將業(yè)界一流的FPGA工具與便於使用的API相結(jié)合,讓開發(fā)者無需深入理解FPGA設(shè)計(jì),就能充分發(fā)揮FPGA晶片的優(yōu)勢(shì)。
(本文作者Daniel Eaton為賽靈思策略行銷發(fā)展資深經(jīng)理)