目前在機器學習領域異構計算得到重視,GPU佔據主流位置,Fpga初現端倪,不知fpga在機器學習的前景如何?


2016 11/7 更新: 加入了伺服器端FPGA與GPU的比較

=====================

本文原來發布在《矽說》專欄,歡迎關注:)

FPGA vs. ASIC,誰將引領移動端人工智慧潮流? - 矽說 silicon talks - 知乎專欄

FPGA vs. ASIC

首先講講FPGA和ASIC的區別。FPGA全稱「可編輯門陣列」(Field Programmable Gate Array),其基本原理是在FPGA晶元內集成大量的數字電路基本門電路以及存儲器,而用戶可以通過燒入FPGA配置文件來來定義這些門電路以及存儲器之間的連線。這種燒入不是一次性的,即用戶今天可以把FPGA配置成一個微控制器MCU,明天可以編輯配置文件把同一個FPGA配置成一個音頻編解碼器。ASIC則是專用集成電路(Application-Specific Integrated Circuit),一旦設計製造完成後電路就固定了,無法再改變。

用於深度學習加速器的FPGA(Xilinx Kintex 7 Ultrascle,左)和ASIC(Movidius Myriad 2,右)

比較FPGA和ASIC就像比較樂高積木和模型。舉例來說,如果你發現最近星球大戰裡面Yoda大師很火,想要做一個Yoda大師的玩具賣,你要怎麼辦呢?有兩種辦法,一種是用樂高積木搭,還有一種是找工廠開模定製。用樂高積木搭的話,只要設計完玩具外形後去買一套樂高積木即可。而找工廠開模的話在設計完玩具外形外你還需要做很多事情,比如玩具的材質是否會散發氣味,玩具在高溫下是否會融化等等,所以用樂高積木來做玩具需要的前期工作比起找工廠開模製作來說要少得多,從設計完成到能夠上市所需要的時間用樂高也要快很多。FPGA和ASIC也是一樣,使用FPGA只要寫完Verilog代碼就可以用FPGA廠商提供的工具實現硬體加速器了,而要設計ASIC則還需要做很多驗證和物理設計(ESD,Package等等),需要更多的時間。如果要針對特殊場合(如軍事和工業等對於可靠性要求很高的應用),ASIC則需要更多時間進行特別設計以滿足需求,但是用FPGA的話可以直接買軍工級的高穩定性FPGA完全不影響開發時間。但是,雖然設計時間比較短,但是樂高積木做出來的玩具比起工廠定製的玩具要粗糙(性能差)許多(下圖),畢竟工廠開模是量身定製。另外,如果出貨量大的話,工廠大規模生產玩具的成本會比用樂高積木做便宜許多。FPGA和ASIC也是如此,在同一時間點上用最好的工藝實現的ASIC的加速器的速度會比用同樣工藝FPGA做的加速器速度快5-10倍,而且一旦量產後ASIC的成本會遠遠低於FPGA方案(便宜10到100倍)。

FPGA vs ASIC :積木vs 手辦

當然,FPGA還有另一大特點,就是可以隨時重新配置,從而在不同的場合實現不同的功能。但是,當把FPGA實現的加速器當作一個商品賣給用戶時,要讓用戶自己去重新配置卻要花一番功夫。回到用樂高積木做玩具的例子,玩具廠商可以宣稱這個Yoda大師由積木搭起來,所以玩家可以把這些積木重新組合成其他角色(比如天行者路克)。但是一般玩家根本不會拆裝積木,怎麼辦?解決方案要麼是把目標市場定為精通積木的專業核心玩家,要麼是在玩具後面加一個開關,一般玩家只要按一下就可以讓積木自動重新組裝。很顯然,第二個方案需要很高的技術門檻。對於FPGA加速器來說,如果要把可重配置作為賣點,要麼是賣給有能力自己開發FPGA的企業用戶(如百度,微軟等公司確實有在開發基於FPGA的深度學習加速器並且在不同的應用場合將FPGA配置為不同的加速器),要麼是開發一套方便易用能將用戶的深度學習網路轉化為FPGA配置文件的編譯器(深鑒等公司正在嘗試)。從目前來看,即使用高端的伺服器來做FPGA編譯都會需要數分鐘的時間,如果編譯在計算能力較弱的移動終端做需要的時間就更長了。對於移動終端用戶來說,如何說服他們嘗試重新配置FPGA並接受長達數十分鐘的時間來編譯網路並配置FPGA仍然是一個問題。

小結:

我把FPGA和ASIC的比較總結在下面表格里。FPGA上市速度快,但性能較低。ASIC上市速度慢,需要大量時間開發,而且一次性成本(光刻掩模製作成本)遠高於FPGA,但是性能遠高於FPGA且量產後平均成本遠低於FPGA。FPGA可以完全重配置,但是ASIC也有一定的可配置能力,只要在設計的時候就把電路做成某些參數可調的即可。目標市場方面,FPGA成本太高,所以適合對價格不是很敏感的地方,比如企業應用,軍事和工業電子等等(在這些領域可重配置可能真的需要)。而ASIC由於低成本則適合消費電子類應用,而且在消費電子中可配置是否是一個偽需求還有待商榷。我們看到的市場現狀也是如此:使用FPGA做深度學習加速的多是企業用戶,百度、微軟、IBM等公司都有專門做FPGA的團隊為伺服器加速,而做FPGA方案的初創公司Teradeep的目標市場也是伺服器。而ASIC則主要瞄準消費電子,如Movidius。由於移動終端屬於消費電子領域,所以未來使用的方案應當是以ASIC為主。

=====================移動端與伺服器端的分割線==========================

下面討論伺服器端GPU和FPGA的比較。

在Server端, 我想有幾個指標可供對比:

*峰值性能

*靈活性

*平均性能

*功耗和能效比

其實這幾個指標是會互相影響的,不過還是分開說。

峰值性能來說,GPU(10Tflops)遠遠高於FPGA(&<1TFlops)。GPU上面成千上萬個core同時跑在GHz的頻率上還是非常壯觀的,最新的GPU峰值性能可達10TFlops以上。GPU的架構經過仔細設計(例如使用深度流水線,retiming等技巧),在電路實現上是基於標準單元庫而在critical path上可以用手工定製電路,甚至在必要的情形下可以讓半導體fab依據設計需求微調工藝製程,因此可以讓許多core同時跑在非常高的頻率。相對而言,FPGA首先設計資源受到很大的限制,例如GPU如果想多加幾個core只要增加晶元面積就行,但FPGA一旦你型號選定了邏輯資源上限就確定了(浮點運算在FPGA里會佔用很多資源),好漢也會被尿憋死。而且,FPGA裡面的邏輯單元是基於SRAM-查找表,其性能會比GPU裡面的標準邏輯單元差好多。最後,FPGA的布線資源也受限制(有些線必須要繞很遠),不像GPU這樣走ASIC flow可以隨意布線,這也會限制性能。關於這一點,可以參考為什麼ASIC的頻率可以達到GHz,而FPGA只能達到幾百MHz? - 晶元(集成電路)下 @岑川的回答。

除了晶元性能外,GPU相對於FPGA還有一個優勢就是內存介面。GPU的內存介面(傳統的GDDR,最近更是用上了HBM和HBM2)的帶寬遠好於FPGA的傳統DDR介面,而眾所周知伺服器端機器學習演算法需要頻繁訪問內存。

但是從靈活性來說,FPGA遠好於GPU。FPGA可以根據特定的應用去編程硬體(例如如果應用裡面的加法運算非常多就可以把大量的邏輯資源去實現加法器),但是GPU一旦設計完那就沒法改動了,沒法根據應用去調整硬體資源。目前機器學習大多數適合使用SIMD架構(即只需一條指令可以平行處理大量數據),因此用GPU很適合。但是有些應用是MISD(即單一數據需要用許多條指令平行處理,微軟在2014年ISCA paper裡面就舉了一個MISD用於並行提取feature的例子),這種情況下用FPGA做一個MISD的架構就會比GPU有優勢。不過FPGA的編程對於程序員來說並不容易,所以為了能讓機器學習程序員能方便地使用FPGA往往還需要在FPGA公司提供的編譯器基礎上進行二次開發,這些都是只有大公司才能做。

微軟在2014年ISCA paper裡面就MISD用於並行提取feature的例子

從上面兩條我們可以看出,FPGA實現的機器學習加速器在架構上可以根據特定應用優化所以比GPU有優勢,但是GPU的運行速度(&>1GHz)相比FPGA有優勢(~200MHz)。所以,對於平均性能,看的就是FPGA加速器架構上的優勢是否能彌補運行速度上的劣勢。如果FPGA上的架構優化可以帶來相比GPU架構兩到三個數量級的優勢,那麼FPGA在平均性能上會好於GPU。例如,百度在HotChips上發布的paper顯示,GPU的平均性能相比FPGA在矩陣運算等標準batch data SIMD bench上遠好於FPGA;但是在處理伺服器端的少量多次處理請求(即頻繁請求但每次請求的數據量和計算量都不大)的場合下,平均性能會比GPU更好。

功耗方面,雖然GPU的功耗(200W)遠大於FPGA的功耗(10W),但是如果要比較功耗應該比較在執行效率相同時需要的功耗。如果FPGA的架構優化能做到很好以致於一塊FPGA的平均性能能接近一塊GPU,那麼FPGA方案的總功耗遠小於GPU,散熱問題可以大大減輕。反之,如果需要二十塊FPGA才能實現一塊GPU的平均性能,那麼FPGA在功耗方面並沒有優勢。能效比的比較也是類似,能效指的是完成程序執行消耗的能量,而能量消耗等於功耗乘以程序執行的時間。雖然GPU的功耗遠大於FPGA的功耗,但是如果FPGA執行相同程序需要的時間比GPU長几十倍,那FPGA在能效比上就沒有優勢了;反之如果FPGA上實現的硬體架構優化得很適合特定的機器學習應用,執行演算法所需的時間僅僅是GPU的幾倍或甚至於接近GPU,那麼FPGA的能效比就會比GPU強。


突然意識到我居然是第一個回答這個問題的人…………都提出一年了。深夜編輯改了一些病句和前後矛盾的地方。

前景還是有的。

近兩年xilinx一直在推他們的FPGA用於data center的理念,畢竟FPGA對於單一任務處理(在有足夠的編程水平的情況下)效率上遠好於GPU,而且data center加速卡肯定用大片子,無論是kintex7還是virtex7還是各類ultrascale,價格都高的不得了,因此Xilinx利潤高(霧)。至於微軟之類的公司已經在搞用FPGA做加速卡了,不提。

機器學習這塊,早期有用FPGA做支持向量機的,做fuzzy system的,做adaboost的,做回歸樹的,做隨機森林的,能想到的都有,下面僅舉少數幾例,類似的論文還有不少,谷歌一下,你就知道。

Irick K, DeBole M,
Narayanan V, et al. A hardware efficient support vector machine
architecture for FPGA[C]//Field-Programmable Custom Computing Machines,
2008. FCCM"08. 16th International Symposium on. IEEE, 2008: 304-305.

Wei Y, Bing X, Chareonsak
C. FPGA implementation of AdaBoost algorithm for detection of face
biometrics[C]//Biomedical Circuits and Systems, 2004 IEEE International
Workshop on. IEEE, 2004: S1/6-17-20.

Hiromoto M, Sugano H,
Miyamoto R. Partially parallel architecture for adaboost-based detection
with haar-like features[J]. IEEE Transactions on Circuits and Systems
for Video Technology, 2009, 19(1): 41-52.

Chrysos G, Dagritzikos P,
Papaefstathiou I, et al. HC-CART: A parallel system implementation of
data mining classification and regression tree (CART) algorithm on a
multi-FPGA system[J]. ACM Transactions on Architecture and Code
Optimization (TACO), 2013, 9(4): 47.

近兩年則主要是基於FPGA做的CNN,或者實現了其他神秘的小框架,反正現在各類CNN/RNN/某NN框架多得很,互有優缺點,都實現一遍看看誰更好也算個套路。有的FPGA實現非常精簡,能在廉價FPGA晶元開發板上跑,有的實現比較複雜,需要Virtex之類的大型FPGA。總之呢,用FPGA做CNN/RNN之類機器學習加速卡還不算有特別多的工作,畢竟這東西門檻高,一個大型開發板(只考慮原廠)動輒三四萬http://www.digikey.com.cn/search/zh/EK-V7-VC707-G/122-1837-ND?recordId=3903849keywords=vc707,大型設計動輒綜合一個小時(其實不可能一個小時,很多大型應用綜合一下午都有可能),還得搞個高配電腦去玩他。你配個三路GTX1080+6900k來跑caffe,撐死三萬,還能用來打守望先鋒和戰地1,金錢成本高下立判(大公司有錢就能玩FPGA,國內除了專門的方案公司,就是百度之類的;國外則是amazon microsoft等等)。再加上無論是verilog還是VHDL,難學的東西都不是語言而是內功,還是軟硬體結合的內容,因此實在不是很好做。有FPGA設計經驗的人肯定有不少優勢,論文也大多數發在fpga相關會議上。

推薦一個綜述:

Lacey G, Taylor G W, Areibi S. Deep Learning on FPGAs: Past, Present, and Future[J]. arXiv preprint arXiv:1602.04283, 2016.

補充幾個參考文獻:

DiCecco R, Lacey G,
Vasiljevic J, et al. Caffeinated FPGAs: FPGA Framework For Convolutional
Neural Networks[J]. arXiv preprint arXiv:1609.09671, 2016.

這個用的是virtex-7當加速卡,晶元貴不說,還要用到至強處理器來做一些微小的工作,個人認為比較一般。

Tapiador R, Rios-Navarro
A, Linares-Barranco A, et al. Comprehensive Evaluation of OpenCL-based
Convolutional Neural Network Accelerators in Xilinx and Altera FPGAs[J].
arXiv preprint arXiv:1609.09296, 2016.

opencl做fpga的演算法算是一個不錯的方向了。

Chang A X M, Martini B,
Culurciello E. Recurrent Neural Networks Hardware Implementation on
FPGA[J]. arXiv preprint arXiv:1511.05552, 2015.

普度這個工作用的是廉價開發板做的,淘寶貌似賣一千多一塊,我以前還有一塊,挺好的。

Wang C, Yu Q, Gong L, et al. DLAU: A Scalable Deep Learning Accelerator Unit on FPGA[J]. arXiv preprint arXiv:1605.06894, 2016.

這篇是中科大做的,而且也是用廉價的zynq,還可以。

Zhang C, Li P, Sun G, et
al. Optimizing fpga-based accelerator design for deep convolutional
neural networks[C]//Proceedings of the 2015 ACM/SIGDA International
Symposium on Field-Programmable Gate Arrays. ACM, 2015: 161-170.

sigda算fpga領域頂會,這個也使用昂貴的virtex 7來做,vc707一塊板子好幾萬…………

Qiu J, Wang J, Yao S, et
al. Going deeper with embedded fpga platform for convolutional neural
network[C]//Proceedings of the 2016 ACM/SIGDA International Symposium on
Field-Programmable Gate Arrays. ACM, 2016: 26-35.

Guo K, Sui L, Qiu J, et
al. Angel-Eye: A Complete Design Flow for Mapping CNN onto Customized
Hardware[C]//VLSI (ISVLSI), 2016 IEEE Computer Society Annual Symposium
on. IEEE, 2016: 24-29.

國內做的!deephi不知道你們了解不了解這個公司。挺好的,而且也是基於zynq,基於zynq就有了性價比,中科大那個如果不是做的外包,則八成有可能是因為資金不足選了zynq。


對做學術的來說,此坑勉強可跳

對做產品的來說,深坑,千萬別進

FPGA有什麼優點?大家常說它性能功耗比高,同樣的性能,它的功耗比ASIC低;同樣的功耗,它的性能比ASIC好。但是,這裡面其實有個陷阱,它的對比對象並不是所有ASIC,而是通用CPU。另外還有一種ASIC是針對應用定製的,這種定製ASIC性能功耗比遠高於FPGA。於是FPGA就變成了一種介於通用CPU和定製ASIC之間的產品。這就比較尷尬了:這兩者都會擠壓FPGA的市場。

先說說FPGA的各項所謂優勢:

1. 可編程性。在這點上, 通用CPU/GPU &>&> FPGA &> 定製ASIC。通用CPU/GPU直接寫軟體就好了,FPGA需要寫VHDL之類的,定製ASIC則一旦造出來就改不了了

2. 性能。在這點上,不嚴格的講,GPU/定製ASIC &> FPGA &>= 通用CPU。定製ASIC一般根據場景不同會定製成不同的性能,所以不一定會很快。FPGA則需要看型號,小FPGA是很差的,大板能做到TFLOPS,但動輒幾萬人刀,而GTX1080 GPU只需要5000就有8TFLOPS。另外現在的通用CPU其實很強大的,單CPU已經能達到500GFLOPS了

3. 功耗。 GPU &> 通用CPU &> FPGA &> 定製ASIC。這裡FPGA也需要區別大小板,大板一般也要幾十W,而定製ASIC則在mW級

現在我們再看看應用場景:

1. Training。訓練DNN模型(這裡用DNN代表所有深度模型)時,現在大家一般是GPU訓練,有少部分土豪也用CPU(如Google,因為CPU機器太多)。因為訓練一般不需要太擔心功耗問題,而CPU/GPU上的工具鏈是最完善的。

2. Prediction。分兩種場景,一種是伺服器端,像Google image search這一類;另一種是終端,如無人機,手機這些設備。

1)伺服器場景一般就直接上GPU了,因為目前CPU性能還是差點,延時不好控制。當然,現在MKL DNN出來應該會有越來越多人用CPU做prediction。(因為prediction時候GPU並不能發揮最大性能,跟CPU其實差別並不是特別大。現在差別大的最大原因是CPU上的DNN實現太差)。FPGA可能有點用,但是用起來太費勁,而且也太貴,除非萬不得已(比如CPU,GPU都沒辦法達到延時要求,但這時候可能又會有相應的ASIC來填這個空白),否則不會有人用的。

2) 終端場景下,GPU和通用CPU因為功耗的問題,一般都不好用,所以最好的方式還是定製ASIC。FPGA在相同性能下,功耗還是比定製ASIC高一兩個數量級的,所以很難想像有人會在手機里放一塊FPGA...。更靠譜的應該還是ARM加上一個mW級的定製ASIC

綜上,我不認為FPGA在深度學習方面會有太多應用。搞學術的灌水也就得了,做產品的千萬別跳這個坑。


還沒有在知乎掛過人。不過現在知乎的某些小白真理解能力和文盲差不多……難怪教育部要重新培養大學生的「聽說讀寫」新四會。

首先這Y來了一句:

我這表示一臉懵逼,有點正常閱讀能力的人從哪裡看出來我不知道OpenCL的?

哎作為在中國大陸最早開始宣傳FPGA的OpenCL Design Flow的人,Altera多次授予的優秀教師,居然就這樣被人罵垃圾了。

我表示:I am angry!

看來這知乎的討論質量是日益下降,不光是社會問題下,這技術問題裡面這號人也越來越多了。

分割線,繼續掛人————————————————————————————————

雖然作為Altera一手「捧」出來的人,對Xilinx一向是不甚關心。但Altera和Xilinx在OpenCL的這方面的工具誰先出我還是知道的。事實上就是因為Xilinx當初主要精力在搞HLS而忽略了OpenCL,導致到現在OpenCL都是Altera(Intel PSG)更佔優勢。為了再確認一下,我去查了一下Xilinx開發發力宣傳OpenCL 是從SDAccel開始。這都到2014年底了Xilinx推出針對OpenCL、C和 C++的SDAccel開發環境 當然,誰都可以宣稱自己支持。只不過是做出來的工具達不到可發布的版本而遲遲不能發布而已。

哎呀哎呀!好厲害啊!搞衛星的中科院「科研人員」啊,好自豪好高大上啊。我是不是應該跪舔一下啊?不過扯了半天,從S3到V5,你丫到底用過OpenCL沒有啊?怎麼沒見您老正面回應一下啊?(我個人傾向於認為他沒用過,以為真的用過Xilinx的OpenCL 那套東西就知道這玩意有多麼的呵呵。用過了以後轉投到Altera陣營不少)?

看出這哥們的思路了嗎?明明是自己閱讀理解能力差,誤讀了我文章的意思,以為我不知道現在FPGA可以支持OpenCL Design Flow,被我輕輕的打臉兩次以後還是不知悔改。逼得我只有不留情面的給懟了一把以後開始四處轉進。最後把自己所給搬出來炫耀一下自己也是「老資格」的。一路上轉進如風,就是死不認錯。真不愧是「煮熟的鴨子——嘴硬」。之前有些人指責我們科研人員「有知識沒文化」,我向來是非常不屑的。不過今天這位給我們完美的詮釋了一下什麼叫「有知識沒文化」。各位要引以為戒啊。

本來還想繼續釣釣魚,看能不能釣點什麼東西出來。不過時間是寶貴的,還要繼續為人類的發展和祖國的崛起而科研。為避免這種無知和腦殘的問題繼續出現,所以先把這丫預防性拉黑一把。

以下是正文分割線——————————————————————

明天正好要去做FPGA異構計算的報告,今天刷到這個問題,按自己的認識說兩句。

其實看需求。

如果是像用機器學習來干點別的事情,或者說應用機器學習來解決問題。很顯然,GPU完爆FPGA。因為在GPU上開發和調試比FPGA容易太多了。即使現在有了OpenCL這樣一個牛逼的工具,GPU上調試難度依然低得多。實際上我們都是先在GPU上調試過了,再上FPGA優化。 如果只是像用機器學習來做個什麼分類、什麼識別,但又覺得CPU速度太慢想加速運算的,那直接就用GPU來加速就好了。另外@Emphasis 也提到了一般來說GPU可比FPGA便宜,不搞研究的時候還可以用來打遊戲,利用效率多高。

那麼FPGA的優勢在哪裡?就是能效,換言之就是消耗每焦耳完成的操作要比GPU高很多(如果優化得好的話)。所以在大規模的實用系統中使用FPGA最大的好處就是省電費,降低運營成本。也就是說如果從應用考慮得要有降低用電成本的需求才應該去考慮。

那麼為什麼我們還要繼續用FPGA呢?因為總要為廣大的FPGAer們再開闢條出路唄,而且這樣的文章在ACM/SIGDA International Symposium on Field-Programmable Gate Arrays這類FPGA專門會議上是很受歡迎的,為了廣大FPGAer們把蛋糕做大嘛(所以即使我們的論文英語寫得shi一樣,還是被FCCM收了……)。

分割線————————————————————————————

然後FPGA果然沒中,被一個審稿人怒噴英語水平是extremely poor……

所以英語太shi還是不行……


從另一角度說說這事。問過一個xilinx華南的朋友,他說他們有三分之一的出貨量是三家大客戶,華為,騰訊和阿里。華為很好理解,大量的設備和海思的驗證都需要FPGA(所以他們和海思的關係很複雜,又愛又恨)。騰訊和阿里拿這麼多FPGA就,他們又不直接賣硬體,就只能是用於自家的數據業務了,應該不只是大數據處理加速或者研究深度學習,還有大型集群的通訊互聯等定製伺服器的用途。而且據他說騰訊和阿里的硬體設計能力很強,能夠自己做方案,不需要額外的原廠支持;而美國良心廠和浪潮就很渣了,用公版方案還一堆問題。


@李一雷 的答案已經分析的非常詳細非常用心,手動再點贊。

我就講點結論吧。

做演算法設計就用gpu,工具齊全驗證速度快。

訓練模型也用gpu,在可見的未來里用顯卡做訓練肯定是投入產出比最高的,因為配套軟體完善,並行計算優化成熟。

做工程產品(只需要做inference, 而不需要訓練),幾年內fpga會是主流,它能保證較快研發速度與不錯的產品性能。對產品來說,搶佔市場的速度很重要。

長期來看,fpga的性能比不上asic,成本也很可觀。一旦asic方案成熟,產量上去,成本壓力必然迫使產品從fpga轉向asic方案。

似乎算是給公司打了個小廣告,純自發無組織。只是因為自己學過光電做過fpga也寫過cuda,也有很多朋友做晶元ic微電子,見過裡面各種坑,所以其實在學校的時候就有了以上的感受,雖然做晶元這條路確實成本高昂困難重重,但應該會是一條「對且有意義」的路。

ps. 從樓主的問題上看,此處的「機器學習」應用應該特指的是深度神經網路模型,所以以上的回答都基於此,不一定適用於其他模型。


謝邀,最近有很多雲計算廠商也開始進入FPGA領域,AWS在去年年底推出了F1,最多的套件包含8個FPGA晶元,其中晶元採用16nm Xilinx UltraScale Plus FPGA,同時提供4TB的NVMe SSD,而且FPGA之間通過PCIe網路互聯。

國內的阿里雲也推出了FPGA加速解決方案,最低僅消耗 33 W 就能提供超過 1.5 TFLOPS 計算性能,單位能耗計算能力達 45 GFLOPS/W。性能也不差,單塊 FPGA 的方案相當於 64 個 2.5Ghz broadwell CPU 物理核的性能,而延遲只有 CPU 的一半。

這些服務大大降低了FPGA的門檻,高端FPGA動輒幾千上萬一片,有經驗的FPGA工程師+硬體工程師僱傭成本也是很高的。

所以從這個角度上來講,FPGA在成本上的優勢會比GPU更適應深度學習,成本是制約技術普及的最大因素嘛。

如果SSD能進一步降價,FPGA +SSD的組合或許是未來最划算的高性能計算方式之一了。


中國應該從Deep Learning的ASIC開始,緊跟世界處理器研發步伐。CPU、GPU早就無法追趕了。

要投資,就投這個。為國為民,功德無量。


有了intel和opencl啥問題都能解決了……就看廣告怎麼做了


推薦閱讀:

GPU編程的IO瓶頸如何解決?
CPU 和 GPU 的溫度是怎麼計算的?
買Mac Pro 或 iMac?
這個是色階嗎?有時候電腦也出現這種情況,跟顯卡的64bit/128bit有什麼區別?小米2,魅族mx以及mx2手機對應的GPU呢?
不斷擴充的 SIMD 指令集會不會讓 CPU 從 GPU 手中奪回失去的並行計算市場?

TAG:機器學習 | 現場可編輯邏輯門陣列FPGA | 圖形處理器GPU | 晶元集成電路 | 處理器 |