從無(wú)形視覺(jué)到有形芯片的挑戰(zhàn)

時(shí)間:2018-07-20

來(lái)源:網(wǎng)絡(luò)轉(zhuǎn)載

導(dǎo)語(yǔ):人工智能先驅(qū)阿蘭.圖靈曾設(shè)想過(guò)這樣一個(gè)機(jī)器,它擁有電子的大腦,以攝像頭為眼睛,以輪為腳,可以在鄉(xiāng)間漫步,這其實(shí)是阿蘭.圖靈對(duì)人工智能走入生活的一個(gè)憧憬。而在很長(zhǎng)的時(shí)間之內(nèi),由于硬件條件的不成熟,智能只能從無(wú)形的算法入手,隨著深度學(xué)習(xí)研究的深入,在很多領(lǐng)域都取得了里程碑式的進(jìn)展。

【從無(wú)形視覺(jué)到有形芯片的挑戰(zhàn)】人工智能先驅(qū)阿蘭.圖靈曾設(shè)想過(guò)這樣一個(gè)機(jī)器,它擁有電子的大腦,以攝像頭為眼睛,以輪為腳,可以在鄉(xiāng)間漫步,這其實(shí)是阿蘭.圖靈對(duì)人工智能走入生活的一個(gè)憧憬。而在很長(zhǎng)的時(shí)間之內(nèi),由于硬件條件的不成熟,智能只能從無(wú)形的算法入手,隨著深度學(xué)習(xí)研究的深入,在很多領(lǐng)域都取得了里程碑式的進(jìn)展。

然而,要想讓人工智能真正融入人們的生活,則亟需解決算法在端側(cè)落地的問(wèn)題,而芯片,作為銜接算法與場(chǎng)景之間的橋梁,無(wú)可避免地成為了一大挑戰(zhàn)。

大規(guī)模地應(yīng)用深度學(xué)習(xí)還需要解決哪些核心的挑戰(zhàn)呢?總結(jié)了三個(gè)主要問(wèn)題。

第一:如果將AI和神經(jīng)網(wǎng)絡(luò)應(yīng)用到一些行業(yè)中去,必須對(duì)行業(yè)和應(yīng)用場(chǎng)景有非常深入的理解,這些行業(yè)和應(yīng)用場(chǎng)景有很多痛點(diǎn),它們描述問(wèn)題的語(yǔ)言和我們研究AI的語(yǔ)言并不是很兼容的。比如說(shuō)我們講識(shí)別率是99%,大家就會(huì)覺(jué)得這就很準(zhǔn)確了,而我們要表達(dá)的是在多數(shù)情況下我們的識(shí)別率是100%,少數(shù)情況的識(shí)別率是0%,平均下來(lái)才是99%。另一方面,很多行業(yè)如果需要AI的話,并不是應(yīng)用技術(shù),往往需要應(yīng)用完整的解決方案或者系統(tǒng),我們需要做進(jìn)一步深入的工作,才能把技術(shù)轉(zhuǎn)化為系統(tǒng)應(yīng)用起來(lái),也就是讓算法和行業(yè)之間能夠有很好的交流和理解。

第二:目前還沒(méi)有低成本、低功耗,成本很經(jīng)濟(jì)的硬件平臺(tái)。如果有了這樣很好的硬件平臺(tái),應(yīng)用范圍和難度也會(huì)降低很多。在各種行業(yè)中,包括無(wú)人車(chē)、無(wú)人機(jī)或者其它設(shè)備都具有不同的限制,比如功耗、成本,以及散熱性和可靠性等。因此,缺少低成本、低功耗、高性能的硬件平臺(tái)限制了大規(guī)模應(yīng)用AI和神經(jīng)網(wǎng)絡(luò)的解決方案。

第三:近年來(lái),算法發(fā)展非常迅速,帶來(lái)的問(wèn)題是人們的期望也不斷提高,算法的發(fā)展是不是能夠一直跟上期望值的增加呢?比如說(shuō)隨便在一個(gè)應(yīng)用場(chǎng)景只要應(yīng)用神經(jīng)網(wǎng)絡(luò)就能夠達(dá)到很好的性能,這是不能保證的。神經(jīng)網(wǎng)絡(luò)存在解釋性的問(wèn)題,它是一個(gè)黑匣子,用對(duì)了當(dāng)然很好,如果性能很差,為什么差呢?這是很難解釋的一個(gè)問(wèn)題。神經(jīng)網(wǎng)絡(luò)是基于統(tǒng)計(jì)的,針對(duì)很少見(jiàn)的情況,比如說(shuō)在自動(dòng)駕駛中出現(xiàn)車(chē)禍的情況,訓(xùn)練集能否覆蓋這種情況呢?在實(shí)際應(yīng)用中很難給應(yīng)用方解釋我們的方法是非??煽康?。

另外,雖然加大數(shù)據(jù)量可以解決一些問(wèn)題,但是能不能夠把所有數(shù)據(jù)都標(biāo)注呢?這也是值得思考的問(wèn)題。AI或者神經(jīng)網(wǎng)絡(luò)距離大規(guī)模應(yīng)用有這樣三個(gè)問(wèn)題,我們今天想談的是第二個(gè)問(wèn)題,能不能先做好硬件平臺(tái)準(zhǔn)備。

在眾多公司中最近幾年最受益于AI發(fā)展的是NVidia。這也說(shuō)明現(xiàn)階段,有了很好的硬件平臺(tái)才能做應(yīng)用,才能讓各種行業(yè)應(yīng)用AI算法。

為什么神經(jīng)網(wǎng)絡(luò)適合專(zhuān)用芯片或者硬件來(lái)加速呢?神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)這幾年有很大發(fā)展,從計(jì)算角度給大家?guī)?lái)了新的挑戰(zhàn)。首先神經(jīng)網(wǎng)絡(luò)運(yùn)算有大規(guī)模的并行性,所有運(yùn)算都有共同基本單元,就是相乘累加,非常適合硬件實(shí)現(xiàn)的運(yùn)算符方式。神經(jīng)網(wǎng)絡(luò)運(yùn)算中間會(huì)產(chǎn)生很多中間結(jié)果,這些中間結(jié)果并不會(huì)被重用,這與之前的通用計(jì)算方式很不同。在神經(jīng)網(wǎng)絡(luò)計(jì)算中,無(wú)論是網(wǎng)絡(luò)的權(quán)重還是數(shù)據(jù)本身,對(duì)硬件帶寬的需求都很高。

這些新的挑戰(zhàn)使得原來(lái)非常強(qiáng)大的CPU并不能高效計(jì)算神經(jīng)網(wǎng)絡(luò),CPU計(jì)算方式還是串行的方式,即使有些指令可以處理多個(gè)數(shù)據(jù)。CPU設(shè)計(jì)花了很多精力優(yōu)化多級(jí)的緩存,可以方便獲取數(shù)據(jù),這對(duì)一般運(yùn)算來(lái)說(shuō)非常好的,但是對(duì)于神經(jīng)網(wǎng)絡(luò)不必要。這些CPU的優(yōu)化,如分支預(yù)測(cè),讓一般運(yùn)算非常高效,對(duì)神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō)額外開(kāi)銷(xiāo),因此用CPU來(lái)訓(xùn)練神經(jīng)網(wǎng)絡(luò)效率是相對(duì)比較低的。因此我們發(fā)現(xiàn)近年來(lái)提出來(lái)很多CPU+X,對(duì)神經(jīng)網(wǎng)絡(luò)做專(zhuān)門(mén)的運(yùn)算加速。

AI片基本上等價(jià)于神經(jīng)網(wǎng)絡(luò)加速,我們需要AI芯片的原因是,通過(guò)硬件工藝的提高已經(jīng)很難大幅度提升計(jì)算性能,而需要專(zhuān)用芯片架構(gòu)提高計(jì)算性能。例如,硬件工藝改進(jìn),隨著三極管數(shù)量增加,頻率更高,功耗不變,這條規(guī)律在2006年的時(shí)候已經(jīng)不成立了;我們所熟知的摩爾定律,在2015、2016年也已經(jīng)終結(jié),單純通過(guò)硬件改善不太可能繼續(xù)提高計(jì)算性能,所以需要新的專(zhuān)用架構(gòu)設(shè)計(jì)來(lái)幫助提高對(duì)神經(jīng)網(wǎng)絡(luò)計(jì)算性能。

神經(jīng)網(wǎng)絡(luò)芯片能采取的針對(duì)措施有以下幾點(diǎn):

1.由于有大量數(shù)據(jù)吞吐,可試圖降低數(shù)據(jù)量,讓芯片上保存更多的片上數(shù)據(jù),存儲(chǔ)計(jì)算中間結(jié)果。

2.由于需平行運(yùn)算很多,盡量用比較簡(jiǎn)單的數(shù)據(jù)類(lèi)型和數(shù)據(jù)大小,實(shí)現(xiàn)大量基本運(yùn)算單元,不需要復(fù)雜的調(diào)度、分支預(yù)測(cè)、配置的管理,盡量減少管理調(diào)度所需芯片面積開(kāi)銷(xiāo)。

3.神經(jīng)網(wǎng)絡(luò)運(yùn)算資源調(diào)度優(yōu)化工作讓軟件去做,而不是用硬件實(shí)現(xiàn)復(fù)雜的調(diào)度。那么這個(gè)軟件是指哪些層面的軟件呢?后面可以會(huì)明確地提到。

下面介紹一下已有的神經(jīng)網(wǎng)絡(luò)加速芯片的類(lèi)型,我們可以看到在過(guò)去幾年中,很多層出不窮的xPU出現(xiàn)。

首先是GPU,具有很強(qiáng)大的并行計(jì)算能力,但能耗比較高,也是目前最成熟的一個(gè)軟件工具平臺(tái),有很多開(kāi)源社區(qū)軟件的支持;

其次是DSP,利用一些單指令多數(shù)據(jù)的計(jì)算單元,一次性提供超過(guò)100個(gè)字節(jié)的運(yùn)算,優(yōu)點(diǎn)是低功耗,并具有硬件支持的低開(kāi)銷(xiāo)或無(wú)開(kāi)銷(xiāo)循環(huán)及跳轉(zhuǎn)運(yùn)算。問(wèn)題在于DSP的指令集取決于其廠商與型號(hào),不同型號(hào)的DSP的指令集都是不太一樣的,這樣給學(xué)習(xí)和編程開(kāi)發(fā)造成了較大的困難。

FPGA是一種半定制化的硬件,采用編程方式,對(duì)片內(nèi)門(mén)電路進(jìn)行編程,配置片內(nèi)RAM使用,具有一定的靈活性和可修改性。從編程的角度來(lái)看,F(xiàn)PGA采用硬件描述語(yǔ)言,調(diào)度連接已有的LUT等運(yùn)算單元,開(kāi)發(fā)難度高一些;從功耗和成本來(lái)看,F(xiàn)PGA采用CMOS工藝,功耗低比GPU低,但比DSP之類(lèi)ASIC高。

設(shè)計(jì)AI芯片,主要有哪些挑戰(zhàn)呢?

1.設(shè)定合理恰如其分的目標(biāo)。由于資源的限制,對(duì)行業(yè)理解的限制,設(shè)計(jì)一個(gè)放之四海而皆準(zhǔn)、而全的芯片是很難的,如何去設(shè)定好支持哪些功能,如何設(shè)定好成本、功耗、可靠性的目標(biāo),這是最難的一個(gè)問(wèn)題。另外,整個(gè)芯片設(shè)計(jì)流程周期長(zhǎng)、成本高,并不能在實(shí)施期間隨意更改目標(biāo)。

2.如何設(shè)計(jì)系統(tǒng)架構(gòu),包括指令集的設(shè)計(jì),能夠讓架構(gòu)盡可能滿足更多需求,實(shí)現(xiàn)更多類(lèi)型的神經(jīng)網(wǎng)絡(luò),這是一件不容易的事情。

3.為了讓神經(jīng)網(wǎng)絡(luò)芯片能廣泛可用,需要提供全面的工具支持,提高編程開(kāi)發(fā)效率。而工具鏈的支持也是相當(dāng)復(fù)雜的,需要訓(xùn)練平臺(tái),需要編譯器把神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換成可運(yùn)行模塊下載到芯片中去,需要模擬器在沒(méi)有芯片的時(shí)候可以模擬開(kāi)發(fā),并且能夠調(diào)試分析性能,能夠設(shè)計(jì)出參考模型。這一系列軟件工具鏈的支持,對(duì)AI芯片能否成功起著關(guān)鍵性的作用。

當(dāng)然由于這是一個(gè)非常復(fù)雜的過(guò)程,而任何人的資源都不是無(wú)限的,總是要做一些非常痛苦的抉擇和權(quán)衡,在成本、開(kāi)發(fā)時(shí)間、各種資源條件限制下做一個(gè)權(quán)衡。

對(duì)于神經(jīng)網(wǎng)絡(luò)加速芯片,又會(huì)有哪些具體難題呢?

1.首先要確定支持的網(wǎng)絡(luò)子集。神經(jīng)網(wǎng)絡(luò)多種多樣,新的算法層出不窮,到底要支持到什么程度,支持哪些網(wǎng)絡(luò)結(jié)構(gòu)激活函數(shù)和操作。

2.支持哪些函數(shù)和數(shù)據(jù)類(lèi)型,同時(shí)要考慮是否支持模型壓縮、量化方法,這些都需要在算法層面上對(duì)神經(jīng)網(wǎng)絡(luò)目標(biāo)做很好的設(shè)定。

3.設(shè)計(jì)芯片結(jié)構(gòu),比如片上內(nèi)存和片下內(nèi)存,片上內(nèi)存當(dāng)然越多越好,但是成本高,功耗和測(cè)試時(shí)間都會(huì)增加。盡量讓硬件本身簡(jiǎn)易化,只完成神經(jīng)網(wǎng)絡(luò)加速,把任務(wù)調(diào)度、任務(wù)優(yōu)化交給軟件去完成。這些最終都需要對(duì)開(kāi)發(fā)者透明,需要由中間件工具鏈來(lái)做優(yōu)化,這也是工作量非常大的一項(xiàng)工作。

4.最后還要提供很多參考模型和設(shè)計(jì),完成具體應(yīng)用場(chǎng)景中的功能示例。

這是一個(gè)非常簡(jiǎn)化的開(kāi)發(fā)AI芯片的流程,從需求(MRD)開(kāi)始,首先是算法的研發(fā),要明確哪些神經(jīng)網(wǎng)絡(luò)模型是最重要的,是需要支持的,是否能夠滿足應(yīng)用場(chǎng)景的要求;之后會(huì)生成很多參考模型,實(shí)現(xiàn)GoldenC,在設(shè)計(jì)的時(shí)候可以參考C的實(shí)現(xiàn);右邊是芯片設(shè)計(jì)的過(guò)程,實(shí)現(xiàn)架構(gòu)設(shè)計(jì),實(shí)現(xiàn)核心神經(jīng)網(wǎng)絡(luò)相關(guān)的編程,同時(shí)芯片需要訪問(wèn)內(nèi)存,訪問(wèn)接口,需要IP集成,集成之后需要進(jìn)行驗(yàn)證,并需要實(shí)現(xiàn)FPGA平臺(tái)去做實(shí)際驗(yàn)證;之后是后端設(shè)計(jì),包括邏輯綜合、布局布線等;然后進(jìn)行流片(Tapeout),這需要之前各種驗(yàn)證都已經(jīng)做得很充分之后,流片之后修改的機(jī)會(huì)就很少了,而且流片經(jīng)濟(jì)成本和時(shí)間非常高。最后需要把硬件芯片放在一個(gè)硬件平臺(tái)上,啟動(dòng)起來(lái)之后能夠開(kāi)發(fā)中間件運(yùn)行軟件。左邊是軟件相關(guān)工作,包括訓(xùn)練平臺(tái)、編譯器、模擬器和調(diào)試器,最終做到應(yīng)用,再測(cè)試??梢钥闯觯麄€(gè)流程的工程量非常巨大。

第一代芯片在2017年流片,目前已經(jīng)生產(chǎn)出來(lái)了,它支持單路高清視頻進(jìn)行30幀的物體檢測(cè)、跟蹤和識(shí)別。第二代芯片支持6~8路的物體檢測(cè)識(shí)別,包括像素級(jí)的分割和識(shí)別。

這是第二代芯片架構(gòu),能達(dá)到像素級(jí)別的識(shí)別,這是今年在拉斯維加斯的車(chē)上實(shí)測(cè)的結(jié)果,另外一個(gè)是在三藩市實(shí)時(shí)運(yùn)行的結(jié)果,包括物體分割和檢測(cè)。

總結(jié)一下,在未來(lái)10-20年AI功能將無(wú)處不在,AI芯片將是非常必要的基礎(chǔ)設(shè)施,只有芯片成功才能讓AI算法真正在生活中得到大規(guī)模應(yīng)用。我們相信我們公司會(huì)堅(jiān)定地致力于“算法+芯片”,把算法和芯片兩者結(jié)合,做一些創(chuàng)新的、有趣的工作,把AI算法真正推向大家的生活中去。

中傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:

凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。

關(guān)注伺服與運(yùn)動(dòng)控制公眾號(hào)獲取更多資訊

關(guān)注直驅(qū)與傳動(dòng)公眾號(hào)獲取更多資訊

關(guān)注中國(guó)傳動(dòng)網(wǎng)公眾號(hào)獲取更多資訊

最新新聞
查看更多資訊

娓娓工業(yè)

廣州金升陽(yáng)科技有限公司

熱搜詞
  • 運(yùn)動(dòng)控制
  • 伺服系統(tǒng)
  • 機(jī)器視覺(jué)
  • 機(jī)械傳動(dòng)
  • 編碼器
  • 直驅(qū)系統(tǒng)
  • 工業(yè)電源
  • 電力電子
  • 工業(yè)互聯(lián)
  • 高壓變頻器
  • 中低壓變頻器
  • 傳感器
  • 人機(jī)界面
  • PLC
  • 電氣聯(lián)接
  • 工業(yè)機(jī)器人
  • 低壓電器
  • 機(jī)柜
回頂部
點(diǎn)贊 0
取消 0