多核、GPU的威脅下,FPGA產業前景幾何?
12-29
看到2011年的一篇文章《FPGA末日來臨?多核處理器便可取代之-FPGA》。裡面提到多核和GPU會對FPGA的產業造成一定影響。我在通信行業工作了幾年,稍微有點了解。通信行業裡面,FPGA目前的現狀,只是做純介面轉換,其他本來可以使用FPGA的地方,最終使用了NP(包分類)、或者多核(上層業務處理,例如cavium)。有說在視頻處理以及安防市場,也在使用多核取代FPGA。當然有些場合只能使用FPGA,例如晶元驗證。我想知道FPGA產業未來前景如何?
補充:1.不是對比FPGA和其他晶元的性能。我說的是很多應用場景用其他晶元(其他晶元技術的進步)替換掉FPGA(當然可以使用FPGA,也能工作好好的)。
2.所使用的晶元牛,和產品賣的好是沒有必然的關係的。公司裡面講究的是投入產出比,在預算範圍內,實現同一個功能的產品,所有方案中,通常採用成本低(包括採購和人力成本)、易開發(快速開發完成)、易維護的方案。3.還有公司不是學校實驗室,做各種FPGA開發板,用FPGA來做各種實驗,公司做的是產品。公司里從決定做的那一刻開始,FPGA的絕大部分功能就已經固定了。4.理論上說在FPGA使用量大的時候會去流片,但根據我這幾年的工作經驗,使用FPGA的公司,要麼就一直使用FPGA,要麼找其他替代晶元,我沒有見過那家公司剛開始使用FPGA然後自己去流片的。當然不是說不存在,我是說這個比例很小。FPGA相比於C代碼的開發難度還是很大的。舉幾個簡單例子:1.多核、NP之類的晶元不需要考慮資源和時許收斂的問題;2.招一個C程序員太容易了,會寫C的程序員數量要遠遠多於FPGA開發人員,而且培養C程序員要容易的多。3.FPGA的編譯時間太長,一顆V7或者S5編譯一次有可能需要12到24小時不等,代碼每次改動都需要重新編譯(雖然使用partition可以稍微縮短時間,但是效果不是那麼好); 4.FPGA的調試難度大,無非就是抓波、添加調試寄存器,兩者都無法繞過編譯時間的問題。
回到我所說的問題,有可能在某些行業,由於某些晶元技術的進步,成本相當的情況下已經能夠實現FPGA的相同的功能,此時FPGA就有被替代的可能。
樓主其實是一個半明白人,我就說說c6678(8核DSP)和GPU與FPGA差距吧。不用考慮,GPU運算能力必然最強,開發最簡單,但是,它大:體積大,功耗大,重量大。他用在雷達基站做信號處理不錯,你敢把它放在導彈上嗎?再說,它雖然快,實施性不好,你敢說你每次運算程序都是一樣的時間嗎?這時間偏差還蠻大的。DSP速度就慢了許多,人家體積小,功耗小,時間準確,不是也有一定的優勢?但是開發起來明顯比較難,8核dsp你也敢說比FPGA簡單!時序約束雖然難,也不至於那麼難吧!可能我是專業做FPGA的,我覺得還dsp6678多核處理難一點兒,可能是我不熟悉。再說FPGA,FPGA除了浮點運算難一點,其他的都還好吧。再說,FPGA運算都是靠IP核,所以編程也不至於那麼難。我以面積換速度,還比上面兩位能快一點兒是不是?GPU運算能力強,不一定什麼都是他快啊!再說,FPGA里有好多介面其他晶元再發展十年也做不了。比如ADC採樣5GSPS時,你什麼晶元敢說能實時處理?還是讓俺FPGA分開幾路,再交給你們把!還有,光纖模塊你們有嗎?匯流排那麼多線,你們有地方結嗎?所以說FPGA就通信領域,雷達領域還是不可替代的。每個晶元都有它的好處,我感覺X86也有它的好處,所以這是它們都還能生存的原因。2014-3-4補充價格知識
一片FPGA Virtex6-240T大約2500-3500
Virtex7中等的價格一般在9000-15000DSP TMS320C6455大約900-11006678大約1800-2200GPU一塊主流處理常用的價位8000-10000
I7處理器價位大家都清楚開玩笑,FPGA雖然可以做處理器做的事情(或者說就是處理器),處理器可不一定能做FPGA做的事情。
一般的計算FPGA當然干不過處理器,但是FPGA用來做計算只是FPGA應用中很小的一個領域。你設計出來個數字電路想上電實驗一下,難道用處理器?
好吧我是在噴那篇文章,題主你不要怪我。拿FPGA跟GPU、CPU比計算能力,這就有點關公戰秦瓊的感覺了。首先計算能力本就不是FPGA的主業,一般大家都是把FPGA跟通用處理器(CPU)和專用集成電路(ASIC)來進行對比的。FPGA能精確地控制時序,這是CPU或GPU做不到的;再有批FPGA開發難度高,開發周期長的,這完全比錯了對象,FPGA再難開發也比ASIC簡單多了;噴FPGA成本高的,拿FPGA跟量產的CPU、GPU比這就是耍流氓了,對於小批量的定製電路設計,FPGA比ASIC流片動輒上千萬的費用不知便宜到哪裡去了。最後,FPGA註定是小眾的晶元,因為如果一個設計需求量大,那就拿去流片做ASIC了,但是在特定領域的地位還是不可替代的,而且通用處理器和FPGA的融合也是趨勢,君不見Xilinx家的zynq裡面已經集成ARM Cortex-A9了么
樓主對這個行業已經了解的話,只說要點CPU和GPU能替的只有計算任務,介面替換不了,這一部分不可能替代。用在計算時FPGA上如果不實現一個可編程處理器,也只在某些計算任務比較單一,邏輯不太複雜的時候能用,功耗和實時性上有時有優勢,拼Gflops和存儲器帶寬與集成CPU GPU的PC或SoC是不能比的。計算量大或者多樣化到一個程度,計算部分必須不用FPGA。視頻或者安防這種應用中,專用SoC除了CPU GPU還有專門的IP搞定介面。用CPU/GPU能實現的圖像演算法當然比FPGA複雜得多。
個人覺得FPGA的開發方式如果升級(提高開發效率),這個東西應該比較有前景。同樣的演算法在RTL級實現和軟體級實現,開發效率/難度差距大。
藝術家和工匠的區別
又是搞不清FPGA是什麼,用來做什麼的文章。說白了FPGA就是一塊空白數字電路,我用來做什麼數字電子設計都行,而且可以反覆燒,反覆改。主要就是應用定型前上電試驗和在線修改,無法支付AISC成本的小批量生產,以及後續產品可能需要經常修改電路設計的。用的人多了,產品設計固定了肯定就不用FPGA了,用設計FPGA的代碼修改設計出AISC來批量化。所以用FPGA和DSP,GPU,CPU,MCU等等專用晶元直接對比本身就是偽命題。
Xeon已經準備集成FPGA了,題主感受一下產業前景。。。
從本人做伺服器的角度回答,FPGA只是在控制主板的上電時序,每種產品都不可或缺;GPU則是在應用在可擴展的高端機型上,配合CPU進行運算。兩者差異顯爾易見,兩者對比,太過勉強。
推薦閱讀:
TAG:現場可編輯邏輯門陣列FPGA | 圖形處理器GPU | 多核 | 安防市場 |