在深度學習領域,GPU加速是應用的主流。當然還有一些人會獨辟蹊徑的選擇一些“非主流”的產品,比如FPGA。
作為新興的加速代表,F(xiàn)PGA與人工智能這個名字緊緊的捆綁在一起,業(yè)界對于FPGA的前景也充滿期待。去年5月,英特爾宣布以167億美元收購FPGA生產商Altera,這也說明了這個芯片巨頭對于FPGA市場發(fā)展的強大信心。
但是,對于許多人來說,F(xiàn)PGA的意義何在,F(xiàn)PGA能夠應用于生產場景中,這些問題都是他們存在于心底的疑惑。而對于FPGA的許多,筆者日前有幸聆聽了英特爾PSG BDM部門劉斌博士的演講,對于FPGA的認識有了進一步的加深。
FPGA存在的意義是什么?
用戶可以從Caffe或者從TensorFlow開始Machine Learning的設計,開始神經網絡CNN的設計,在設計之后不需要真的了解FPGA是怎么開發(fā)的,F(xiàn)PGA的板卡是怎么開發(fā)的,F(xiàn)PGA用什么樣的硬件描述語言,你就可以把你的神經網絡放進FPGA里,得到FPGA的速度和功耗上的優(yōu)勢,這個是我們戰(zhàn)略里面,F(xiàn)PGA所扮演的角色。
為什么FPGA比較適合用于深度學習
首先FPGA是一個可編程的硬件,和我們大部分的處理器不同。因為處理器的硬件結構是固定的。FPGA雖然有非常穩(wěn)定的底層結構但是我們可以組合成非常多類型的數(shù)字電路,并且在里面可以利用一些硬核構成一些相對比較高層的計算結構。
首先FPGA的能效比非常好,其次FPGA有非常好的可編程性,即使在線的情況下,你可以更新你的硬件結構。最后,F(xiàn)PGA本身因為具備類似I/O或者說片上系統(tǒng)的部分功能,可以提供一些基礎架構上的靈活性。
英特爾的FPGA相關產品
英特爾(Altera)傳統(tǒng)來講是一個半導體的廠商,所以在FPGA這個產品線里面我們其實包括以下幾種類型產品。半導體這一側我們主要有叫Max的CPLD系列,Cyclone, Arria 和Stratix的FPGA產品系列,這個是從低到高的。
Cyclone是比較低端的,Arria在中間,Stratix是比較高端的產品系列。每個產品系列里面又有自己的不同的具體的型號, 按照規(guī)模來劃分,那應用的場景會不太一樣。
Cyclone可能是應用在更工業(yè)化的更嵌入設備應用的場景里,Arria是一個功耗成本和性能的一個平衡產品,Stratix是一個超強的計算能力的產品。我們今年年底正在推出Statix 10的工程樣片,第一個工程樣片它的浮點計算能力達到9.2個Tflop,9個Tflops的產品。
Enpirion是我們另外一條產品線,主要是支持一個非常小尺寸的電源的工作,在server或者是在計算領域有很大應用。但產品來講除了器件以外,我們包括了開發(fā)工具,也包括板卡和IP。
如何利用一顆FPGA實現(xiàn)CNN加速
我們選擇CNN作為第一個切入點,因為CNN的網絡運用非常廣泛;另外CNN的網絡也是深度學習一個典型的情況,會不停地往前演進。
FPGA效率達到最高的基本原則是,我里面剛剛講到的乘加單元、存儲器單元,他們能夠盡可能的被使用到。
FPGA在CNN領域面臨的3大挑戰(zhàn)
因為FPGA還很新,那進入這個市場第一個挑戰(zhàn)是怎么樣讓FPGA工作起來。
第二個挑戰(zhàn)是機器學習是一個快變的一個技術領域,所以他的生態(tài)壞境、社區(qū)、軟件都是非常重要的一個方面。那我們作為后來者,特別是跟這種FPGA的團隊
第三個是FPGA還有一些原生的特點,比如開發(fā)周期是比較長。
在演講的最后,在談到為何今天應該采用英特爾FPGA來實現(xiàn)深度學習的時候,劉斌表示:“英特爾FPGA是技術和價值之選;英特爾機器學習戰(zhàn)略將先進的器件(包括FPGA)與優(yōu)化的軟件庫,高階的框架,以及數(shù)據分析平臺整合在一起;英特爾FPGA支持高效的OpenCL編程?!?/p>