你的位置:首頁(yè) > 電源管理 > 正文

FPGA與ASIC,誰(shuí)將引領(lǐng)移動(dòng)端人工智能潮流?

發(fā)布時(shí)間:2016-10-17 責任編輯:wenwei

【導讀】人工智能方興未艾,無(wú)數初創(chuàng )公司和老牌公司都在積極開(kāi)發(fā)以人工智能應用為賣(mài)點(diǎn)的智能硬件。目前,強大的云端人工智能服務(wù)(如谷歌的Alpha Go)已經(jīng)初現端倪,同時(shí),人們也希望能把人工智能也帶到移動(dòng)終端,尤其是能夠結合未來(lái)的物聯(lián)網(wǎng)應用。
 
傳統實(shí)現移動(dòng)終端人工智能的方法是通過(guò)網(wǎng)絡(luò )把終端數據全部傳送到云端,之后在云端計算后再把結果發(fā)回移動(dòng)端,例如蘋(píng)果的Siri服務(wù)。然而,這樣的方式會(huì )遇到幾個(gè)問(wèn)題。第一,使用網(wǎng)絡(luò )傳輸數據會(huì )產(chǎn)生延遲,很可能數據計算的結果會(huì )需要等待數秒甚至數十秒才能傳送回終端(使用過(guò)Prisma app處理過(guò)照片的朋友們應該深有體會(huì ))。這樣一來(lái),那些需要立刻得到計算結果的應用就不能用這種方式。例如無(wú)人機上使用的深度學(xué)習躲避障礙物算法,如果它全部在云端執行恐怕計算結果還沒(méi)送回來(lái)無(wú)人機已經(jīng)掉下來(lái)了。第二,一旦使用網(wǎng)絡(luò )傳送數據,那么數據就有被劫持的風(fēng)險。因此,那些要求低計算延遲以及對于數據安全性非常敏感的應用就需要把人工智能算法全部在終端實(shí)現,或者至少在終端完成一些預處理運算然后再把少量運算結果(而不是大量的原始數據)傳送到云端完成最終計算,這就需要移動(dòng)終端硬件能夠快速完成這些運算。另一方面,移動(dòng)端硬件完成這些運算需要的能量又不能太多,否則電池一下就沒(méi)電了(想在手機上配功耗200W+的Nvidia Pascal顯卡肯定不行!)。
 
目前,許多公司正在積極開(kāi)發(fā)能實(shí)現移動(dòng)端人工智能的硬件。對于移動(dòng)端人工智能硬件的實(shí)現方法,有兩大流派,即FPGA派和ASIC派。FPGA流派的代表公司如Xilinx主推的Zynq平臺,而ASIC流派的代表公司有Movidius。兩大流派各有長(cháng)短,下面讓我來(lái)細細分說(shuō)。
 
FPGA vs. ASIC
 
首先講講FPGA和ASIC的區別。FPGA全稱(chēng)“可編輯門(mén)陣列”(Field Programmable Gate Array),其基本原理是在FPGA芯片內集成大量的數字電路基本門(mén)電路以及存儲器,而用戶(hù)可以通過(guò)燒入FPGA配置文件來(lái)來(lái)定義這些門(mén)電路以及存儲器之間的連線(xiàn)。這種燒入不是一次性的,即用戶(hù)今天可以把FPGA配置成一個(gè)微控制器MCU,明天可以編輯配置文件把同一個(gè)FPGA配置成一個(gè)音頻編解碼器。ASIC則是專(zhuān)用集成電路(Application-Specific Integrated Circuit),一旦設計制造完成后電路就固定了,無(wú)法再改變。
 
FPGA與ASIC,誰(shuí)將引領(lǐng)移動(dòng)端人工智能潮流?
用于深度學(xué)習加速器的FPGA(Xilinx Kintex 7 Ultrascle,左)和ASIC(Movidius Myriad 2,右)
 
比較FPGA和ASIC就像比較樂(lè )高積木和模型。舉例來(lái)說(shuō),如果你發(fā)現最近星球大戰里面Yoda大師很火,想要做一個(gè)Yoda大師的玩具賣(mài),你要怎么辦呢?有兩種辦法,一種是用樂(lè )高積木搭,還有一種是找工廠(chǎng)開(kāi)模定制。用樂(lè )高積木搭的話(huà),只要設計完玩具外形后去買(mǎi)一套樂(lè )高積木即可。而找工廠(chǎng)開(kāi)模的話(huà)在設計完玩具外形外你還需要做很多事情,比如玩具的材質(zhì)是否會(huì )散發(fā)氣味,玩具在高溫下是否會(huì )融化等等,所以用樂(lè )高積木來(lái)做玩具需要的前期工作比起找工廠(chǎng)開(kāi)模制作來(lái)說(shuō)要少得多,從設計完成到能夠上市所需要的時(shí)間用樂(lè )高也要快很多。FPGA和ASIC也是一樣,使用FPGA只要寫(xiě)完Verilog代碼就可以用FPGA廠(chǎng)商提供的工具實(shí)現硬件加速器了,而要設計ASIC則還需要做很多驗證和物理設計(ESD,Package等等),需要更多的時(shí)間。如果要針對特殊場(chǎng)合(如軍事和工業(yè)等對于可靠性要求很高的應用),ASIC則需要更多時(shí)間進(jìn)行特別設計以滿(mǎn)足需求,但是用FPGA的話(huà)可以直接買(mǎi)軍工級的高穩定性FPGA完全不影響開(kāi)發(fā)時(shí)間。但是,雖然設計時(shí)間比較短,但是樂(lè )高積木做出來(lái)的玩具比起工廠(chǎng)定制的玩具要粗糙(性能差)許多(下圖),畢竟工廠(chǎng)開(kāi)模是量身定制。另外,如果出貨量大的話(huà),工廠(chǎng)大規模生產(chǎn)玩具的成本會(huì )比用樂(lè )高積木做便宜許多。FPGA和ASIC也是如此,在同一時(shí)間點(diǎn)上用最好的工藝實(shí)現的ASIC的加速器的速度會(huì )比用同樣工藝FPGA做的加速器速度快5-10倍,而且一旦量產(chǎn)后ASIC的成本會(huì )遠遠低于FPGA方案(便宜10到100倍)。
 
FPGA與ASIC,誰(shuí)將引領(lǐng)移動(dòng)端人工智能潮流?
FPGA vs ASIC :積木vs 手辦
 
當然,FPGA還有另一大特點(diǎn),就是可以隨時(shí)重新配置,從而在不同的場(chǎng)合實(shí)現不同的功能。但是,當把FPGA實(shí)現的加速器當作一個(gè)商品賣(mài)給用戶(hù)時(shí),要讓用戶(hù)自己去重新配置卻要花一番功夫?;氐接脴?lè )高積木做玩具的例子,玩具廠(chǎng)商可以宣稱(chēng)這個(gè)Yoda大師由積木搭起來(lái),所以玩家可以把這些積木重新組合成其他角色(比如天行者路克)。但是一般玩家根本不會(huì )拆裝積木,怎么辦?解決方案要么是把目標市場(chǎng)定為精通積木的專(zhuān)業(yè)核心玩家,要么是在玩具后面加一個(gè)開(kāi)關(guān),一般玩家只要按一下就可以讓積木自動(dòng)重新組裝。很顯然,第二個(gè)方案需要很高的技術(shù)門(mén)檻。對于FPGA加速器來(lái)說(shuō),如果要把可重配置作為賣(mài)點(diǎn),要么是賣(mài)給有能力自己開(kāi)發(fā)FPGA的企業(yè)用戶(hù)(如百度,微軟等公司確實(shí)有在開(kāi)發(fā)基于FPGA的深度學(xué)習加速器并且在不同的應用場(chǎng)合將FPGA配置為不同的加速器),要么是開(kāi)發(fā)一套方便易用能將用戶(hù)的深度學(xué)習網(wǎng)絡(luò )轉化為FPGA配置文件的編譯器(深鑒等公司正在嘗試)。從目前來(lái)看,即使用高端的服務(wù)器來(lái)做FPGA編譯都會(huì )需要數分鐘的時(shí)間,如果編譯在計算能力較弱的移動(dòng)終端做需要的時(shí)間就更長(cháng)了。對于移動(dòng)終端用戶(hù)來(lái)說(shuō),如何說(shuō)服他們嘗試重新配置FPGA并接受長(cháng)達數十分鐘的時(shí)間來(lái)編譯網(wǎng)絡(luò )并配置FPGA仍然是一個(gè)問(wèn)題。
 
小結:
 
我把FPGA和ASIC的比較總結在下面表格里。FPGA上市速度快,但性能較低。ASIC上市速度慢,需要大量時(shí)間開(kāi)發(fā),而且一次性成本(光刻掩模制作成本)遠高于FPGA,但是性能遠高于FPGA且量產(chǎn)后平均成本遠低于FPGA。FPGA可以完全重配置,但是ASIC也有一定的可配置能力,只要在設計的時(shí)候就把電路做成某些參數可調的即可。目標市場(chǎng)方面,FPGA成本太高,所以適合對價(jià)格不是很敏感的地方,比如企業(yè)應用,軍事和工業(yè)電子等等(在這些領(lǐng)域可重配置可能真的需要)。而ASIC由于低成本則適合消費電子類(lèi)應用,而且在消費電子中可配置是否是一個(gè)偽需求還有待商榷。我們看到的市場(chǎng)現狀也是如此:使用FPGA做深度學(xué)習加速的多是企業(yè)用戶(hù),百度、微軟、IBM等公司都有專(zhuān)門(mén)做FPGA的團隊為服務(wù)器加速,而做FPGA方案的初創(chuàng )公司Teradeep的目標市場(chǎng)也是服務(wù)器。而ASIC則主要瞄準消費電子,如Movidius。由于移動(dòng)終端屬于消費電子領(lǐng)域,所以未來(lái)使用的方案應當是以ASIC為主。
 
FPGA與ASIC,誰(shuí)將引領(lǐng)移動(dòng)端人工智能潮流?
 
SoC+IP模式
 
說(shuō)到這里,不少讀者可能有疑問(wèn):現在深度學(xué)習的網(wǎng)絡(luò )結構日新月異,但是ASIC上市速度那么慢而且一旦制作完成(流片)就無(wú)法更改,如何能跟上深度學(xué)習的發(fā)展速度呢?針對這個(gè)問(wèn)題,我想首先需要厘清一個(gè)概念,即用于深度學(xué)習加速的ASIC到底要做什么?有人認為神經(jīng)網(wǎng)絡(luò )ASIC就是真的實(shí)現一個(gè)神經(jīng)網(wǎng)絡(luò )結構在芯片上,因此網(wǎng)絡(luò )結構一改(例如從12層變成15層,或者權重參數變一下)該ASIC就不能用了。其實(shí)這樣的理解是不對的:ASIC加速器做的是幫助CPU快速完成深度學(xué)習中的運算(例如卷積),當CPU在執行人工智能算法時(shí)只要遇到這種運算就交給加速器去做。因此只要神經(jīng)網(wǎng)絡(luò )的主要運算不變,則ASIC加速器完全可以使用。網(wǎng)絡(luò )結構會(huì )影響ASIC加速器的性能,一種ASIC加速器可能是針對GoogleNet優(yōu)化過(guò)的所以執行GoogleNet會(huì )特別快;當你換到VGG Net的時(shí)候這款ASIC還是可以用的,只是執行效率相比執行GoogleNet時(shí)要打個(gè)折扣,不過(guò)無(wú)論如何都要比CPU快得多。
 
至于A(yíng)SIC上市時(shí)間慢的問(wèn)題,目前也是有辦法可以解決的,就是使用SoC+IP的方法。既然設計ASIC一家公司做太花時(shí)間,那能不能外包甚至眾籌呢?完全可以!許多SoC芯片就是這樣做出來(lái)的。這里首先要向大家介紹SoC的概念。SoC全稱(chēng)是“片上系統(System-on-chip)”,亦即集成了許多不同模塊的芯片。就拿多媒體應用的芯片舉例,早些年每一個(gè)多媒體應用的模塊(音頻編解碼,MPEG播放編解碼,3D加速等等)自己都是一塊ASIC。后來(lái)電子業(yè)界發(fā)現每個(gè)模塊都做ASIC成本太高,而且最后電子產(chǎn)品的體積也很難做小,不如把所有的模塊都集成到同一塊芯片上。這塊芯片集成了多個(gè)模塊,并由一個(gè)中央控制單元通過(guò)總線(xiàn)控制每個(gè)模塊的運作,就是SoC。例如,現在高通公司的Snapdragon就是一塊典型的SoC,上面集成了GPU,視頻/音頻編解碼,相機圖像信號處理單元(ISP),GPS以及有線(xiàn)/無(wú)線(xiàn)連接單元等等。SoC上面的每一個(gè)模塊都可以稱(chēng)為IP,這些IP既可以是自己公司設計的(如Snapdragon上面的調制解調器就是高通自己設計的),也可以是購買(mǎi)其他公司的設計并整合到自己的芯片上,例如蘋(píng)果A系列處理器里用的GPU就使用了Imagination的PowerVR IP。SoC+IP提供了一種靈活而快速的模式,可以想象如果蘋(píng)果不是購買(mǎi)IP而是自己組建團隊慢慢做GPU,其A系列處理器芯片上市的時(shí)間至少要被延遲一年。
 
FPGA與ASIC,誰(shuí)將引領(lǐng)移動(dòng)端人工智能潮流?
高通的Snapdragon SoC,芯片上集成了眾多IP
 
對于深度學(xué)習加速器而言,做成IP也是一個(gè)加速上市速度的模式。當深度加速器成為IP時(shí),它就不再自己做成ASIC,而是成為SoC的一部分,當SoC需要做深度學(xué)習相關(guān)運算時(shí)就交給加速器去做。而且做成IP對于加速器來(lái)說(shuō)能夠更靈活地滿(mǎn)足客戶(hù)的需求。例如,某加速器IP設計可以實(shí)現100GFlops的運算速度并消耗功耗150 mW,這時(shí)A客戶(hù)說(shuō)我們需要算得快一點(diǎn)的加速器(150 Gflops),而且不在乎功耗(300 mW也可以)和芯片面積,那么IP公司可以根據客戶(hù)的需求快速微調自己的設計并在一兩個(gè)月內交付(由于并不需要真正生產(chǎn)芯片,只需要交付設計)。但是如果加速器已經(jīng)做成ASIC,那要改動(dòng)設計就必須重新做一塊芯片,這個(gè)過(guò)程牽扯到耗時(shí)巨大的物理設計和驗證,改動(dòng)完的芯片上市時(shí)間可能是一年之后了。在SoC+IP的模式下,IP公司可以專(zhuān)注于加速器的前端設計并且根據客戶(hù)的需求量體裁衣,大公司則做自己擅長(cháng)的后端以及芯片/封裝級驗證,可以說(shuō)是大公司和小公司都可以揚長(cháng)避短,各取所需,最終實(shí)現快速加速器設計迭代(如半年甚至一個(gè)季度一次)并跟上深度學(xué)習發(fā)展的步伐。從性能角度來(lái)說(shuō),深度學(xué)習加速器如果做成IP則和同一芯片上的CPU進(jìn)行數據通訊時(shí)可以使用高帶寬的片上互聯(lián),但是如果做成ASIC則必須走帶寬比較低功耗也比較大的芯片外互聯(lián),因此深度學(xué)習加速器作為IP成為SoC的一部分對于系統的整體性能也有所提升。
 
目前,做深度學(xué)習加速器IP的老牌公司有Ceva,Cadence等等。這些公司的設計大多是基于已有的DSP架構,設計比較保守。當然,也有一些初創(chuàng )公司看到了深度學(xué)習加速器IP這塊市場(chǎng)并試圖用全新的加速器架構設計來(lái)滿(mǎn)足應用的需求,如Kneron。對于做IP的初創(chuàng )公司我個(gè)人持樂(lè )觀(guān)態(tài)度,因為首先深度學(xué)習相關(guān)加速器IP確實(shí)有市場(chǎng)需求,例如微軟在用于A(yíng)R設備HoloLens的處理器HPU中,主要運算單元都是使用買(mǎi)來(lái)的加速器IP。其次,做IP并不和大的芯片公司(如NVidia, Intel)構成競爭關(guān)系,所以壓力比較小。最后,由于做IP需要的資源較少,產(chǎn)品上市時(shí)間較快,因此維持運營(yíng)對資本的壓力比較小,風(fēng)險也比直接做芯片要小,可以說(shuō)是一個(gè)比較穩妥的方案。
 
FPGA與ASIC,誰(shuí)將引領(lǐng)移動(dòng)端人工智能潮流?
深度加速器IP市場(chǎng)既有沿用傳統架構的老牌廠(chǎng)商(Ceva, Cadence)也有使用創(chuàng )新架構的初創(chuàng )公司(Kneron)
 
結語(yǔ)
 
FPGA和ASIC在實(shí)現深度學(xué)習加速器方面各有所長(cháng),FPGA的可配置性更適合企業(yè)、軍工等應用,而ASIC的高性能和低成本則適合消費電子領(lǐng)域(包括移動(dòng)終端)。為了實(shí)現快速迭代,ASIC可以采用SoC+IP的模式,而這種模式也使得沒(méi)有資源量產(chǎn)芯片的中小公司可以專(zhuān)注于深度學(xué)習加速器IP的架構和前端設計,并在人工智能市場(chǎng)上占有一席之地。
 
 
推薦閱讀:

電容對超聲波,誰(shuí)能解決指紋識別傳感器三大尷尬點(diǎn)?
減少PCB板電磁干擾的4個(gè)設計技巧
“激光充電”能否打破無(wú)線(xiàn)充電這根雞肋!
在汽車(chē)電子系統中如何選擇多通道同步降壓轉換器?
可穿戴醫療的三大痛點(diǎn)與六大突破要點(diǎn)




 
要采購開(kāi)關(guān)么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書(shū)下載更多>>
熱門(mén)搜索
?

關(guān)閉

?

關(guān)閉

久久无码人妻精品一区二区三区_精品少妇人妻av无码中文字幕_98精品国产高清在线看入口_92精品国产自产在线观看481页