AI晶元是否就是用硬體描述語言HDL去實現機器學習演算法?


謝邀。簡答回答,不是。

針對不同的任務,適合的機器學習演算法會不一樣。比如,各種network的構造都不一樣,而且還有CNN、RNN這種區別。

開發一個AI晶元,不可能只適用於一種結構的network。都希望在一個AI晶元上能跑多種網路結構,如resnet,alexnet,inception等等。所以,我們用HDL設計的,不是演算法本身。

用HDL設計AI晶元,主要包括三個層面的東西。

1。基本的算術單元,如MAC。這個和CPU類似吧。

2。這些Unit的組織結構,以及如何對這些unit進行並行化以實現DL的基本計算。如conv、pool等操作。這可以類比向量處理器中的VLIW架構,或者SIMD指令之類的概念。不過,針對DL演算法,數據都是多維的tensor,已經不是向量了。

3。數據存儲結構。如何組織memory的結構,以給計算部分提供足夠的數據和參數。這是SOC級別的架構。

總之,目前,DL演算法不像MP3、h264之類的編解碼演算法已經成為固定計算過程,還不可能直接用HDL實現演算法。

————————————————————————————————

更新一下,前面說的絕對了點,是針對做DL加速器來說的。DL加速器不面向特定某個網路,不面向特定某個演算法,所以,是個可編程的架構。

但是,也有例外。比如,當一個演算法在一個應用領域的精度足夠用了的時候,完全可以直接硬體化,留一些可配置項即可。這個時候,就是用HDL直接實現演算法了。比如,做特定的語音識別(不涉及語義理解,只做命令詞識別),用MFCC+CNN+viterbi decoder這種結構,可以直接完全硬體化,實現為ASIC。缺點就是,無法應對演算法升級,比如直接CTC做語音識別的演算法。


題主概念有點混淆。

hdl是硬體描述語言,這個概念本身說的已經很清楚了,硬體描述四個字是關鍵。就是說這個語言是對硬體結構的描述,幾乎每一句話都可能對應一部分電路結構。比如你寫一個+,可能電路里就會綜合出來一個加法器,是實實在在以晶體管組合而成的電路結構。

而加速晶元指的是,晶元本身的體系結構,包括微結構,指令集等等一系列的硬體設計,其能夠高效的支持人工智慧演算法。而硬體描述語言只是用來把這個結構描述出來,讓EDA工具能夠看懂,並真正把你想要的晶元畫出來而已。

所以hdl本身跟演算法流程可以說沒什麼關係。

突然有事要忙,先寫這麼多吧。意思差不多到了,可能措辭或者描述存在不嚴密的地方,有人看了再更吧。


兩件事情。

AI晶元是指能高效實現 AI演算法 的計算過程 的晶元。

而實現AI演算法的硬體架構可以大致分為兩類,一類是徹底的Fix的處理器,也就是實現了一個特定的計算過程。一類是徹底的用可編程處理器,可實現通用的計算。一般都是在這兩者之間折衷。

硬體描述語言HDL只是設計描述硬體電路的一種工具。


這取決於題主所說的「AI晶元」是基於什麼樣的硬體平台來實現的。如果是用FPGA實現的AI晶元,那麼可以說是,因為FPGA本身就是硬體可編程的,不同的演算法用HDL,或者用高級語言實現之後綜合到FPGA上運行。

而其他諸如DSP,可編程硬體加速器,GPU等等,都是通過工具鏈將軟體實現的演算法映射到這些硬體平台上運行,這個時候氏不需要用HDL進行硬體編程的


不請自來。AI晶元大體可以分為兩種:通用晶元和專用晶元。通用晶元會實現一些CNN、RNN等的加速模塊,不特意針對某種任務;專用晶元指的是為某項任務專門設計的晶元,比如支持語音識別或者人臉識別。而且AI晶元通常是不支持學習的,只是把GPU訓練好的模型在上面跑。


AI晶元指的是適合運行AI程序的晶元。

硬體描述語言(HDL)是開發晶元所用的語言。

機器學習演算法是運行在晶元上的軟體。


推薦閱讀:

華為會開發伺服器晶元么?
相同架構,相同頻率,相同工藝,相同緩存的cpu性能是否相同?還有什麼別的影響性能的因素嗎?
請各位說說看龍芯有前景嗎?
國產FPGA現狀?
計算機的時序是不是歸根結底都來自於CPU晶元(大黑塊)內部的那個晶振?

TAG:人工智慧 | 機器學習 | 晶元集成電路 |