自定義AI加速走勢高漲 將引起更加廣泛的關(guān)注
自定義AI加速走勢高漲。在云計(jì)算領(lǐng)域,阿里巴巴繼亞馬遜、谷歌之后,推出了自己的定制加速器。Facebook也參與其中,微軟在Graphcore中持有大量股份。英特爾(Intel)和Mobileye在汽車領(lǐng)域擁有強(qiáng)大的邊緣人工智能(AI),而無線基礎(chǔ)設(shè)施開發(fā)商正在為5G的小電池和基站增加AI功能。所有這些應(yīng)用程序都依賴于大量靈活性和對未來的檢驗(yàn),以便在快速發(fā)展的環(huán)境中獲得長期的相關(guān)性。
但是有許多應(yīng)用程序,對于它們來說,功率、成本或透明的使用模型是更重要的度量標(biāo)準(zhǔn)。一個農(nóng)業(yè)監(jiān)視器在一個偏僻的地方,一個微波語音控制器,交通傳感器分布在一個大城市。對于這些問題,一個通用的解決方案,甚至一個通用的AI解決方案,都可能是多余的。所以,一個特定的應(yīng)用程序的AI功能將會更加引人注目。
在人工智能時代之前,你會立刻想到一個硬件加速器——它可以做任何它必須做的事情,但比在CPU上運(yùn)行一個軟件要快得多。這就是人工智能加速器的作用。它可能仍然是以軟件驅(qū)動的,但與通用CPU方式不同。軟件是在大型平臺(如TensorFlow或Torch)上用Python開發(fā)的,然后通過多個步驟編譯到目標(biāo)加速器上。
這就是神奇之處。只要加速器保持在神經(jīng)網(wǎng)絡(luò)架構(gòu)的一般范圍內(nèi),它就可以像你希望的那樣狂野。它可以支持多個卷積引擎,每個引擎又由SRAM作為一個整體來支持,同時還支持本地內(nèi)存,以優(yōu)化對操作的優(yōu)先順序的訪問。
它可能支持專業(yè)功能池等常用操作。為了提高速度和性能,它通常會在不同的推理階段支持不同的字寬,并在處理稀疏數(shù)組時支持專門的優(yōu)化。這兩個領(lǐng)域都是神經(jīng)網(wǎng)絡(luò)架構(gòu)的創(chuàng)新熱點(diǎn),一些架構(gòu)師甚至嘗試使用單比特權(quán)值——如果一個權(quán)值只能是1或0,那么你就不需要在卷積和稀疏性增加中進(jìn)行乘法運(yùn)算了!
所有這些的挑戰(zhàn)在于,當(dāng)你想要致力于最終架構(gòu)時,你會發(fā)現(xiàn)有太多的旋鈕,以至于很難知道從哪里開始,或者你是否真正探索了全部的可能性空間。更加復(fù)雜的是,你需要在大范圍的大型測試用例(大圖像、語音樣本等等)上測試和描述。
用C語言而不是RTL來運(yùn)行大部分測試是常識,因?yàn)樗萊TL運(yùn)行速度快幾個數(shù)量級,而且比RTL更容易調(diào)優(yōu)。此外,神經(jīng)網(wǎng)絡(luò)算法可以通過高級合成(HLS)很好地映射,因此你的C模型可以不僅僅是一個模型,它還可以是生成RTL。你可以探索你正在考慮的選擇的能力、性能和區(qū)域含義——多個卷積處理器、本地內(nèi)存、字寬、廣播更新。所有這些都具有快速的周轉(zhuǎn)時間,允許你更充分地探索可能的優(yōu)化范圍。