何為FPGA?竟讓這麼多公司為之瘋狂

2021-09-23 13:04:29 字數 1462 閱讀 7794

你還沒聽過fpga?那你一定是好久沒有更新自己在企業級it領域的知識了。今天筆者就和大家聊聊何為fpga?fpga主要應用場景是什麼?有人說fpga是替代傳統cpu和gpu的未來,你信嗎?

fpga全稱現場可程式設計門陣列(field-programmable gate array),最初作為專用積體電路領域中的一種半定製電路而出現的,具有一定的可程式設計性,可同時進行資料並行和任務平行計算,在處理特定應用時有更加明顯的效率。

實際上,英特爾、紫光、浪潮等企業均已開始布局fpga

當然,最著名的應該就屬英特爾豪擲167億美元,收購altera,這也是英特爾公司歷史上最大規模的一筆收購。而英特爾收購altera主要為的就是fpga。而根據後來英特爾在idf展會中展出的整合了fpga晶元的至強e5 2600 v4處理器來看,167億美元收購可謂物有所值:至強處理器在fpga晶元的幫助下每瓦效能提公升了70%。

紫光是另一家希望通過收購手段直接接觸fpga最新科技的公司,繼尋求併購美光失利、收購硬碟大廠威騰(wd)破局後,紫光或將收購美國萊迪思半導體(lattice semiconductor)股份,為搶進fpga市場做布局。

那麼,fpga吸引如此多廠商為之瘋狂的原因究竟是什麼?

從應用場景角度分析,我們可以看到隨著谷歌的阿爾法狗打敗了人類圍棋冠軍後,深度學習已經從神壇走下來,越來越多的人開始認識到深度學習可能會改變未來的生活,成為未來科技發展的方向;而fpga設計工具使其對深度學習領域經常使用的上層軟體相容性更強,fpga正是助力深度學習的一大技術。

但是,如果說fpga是繼任傳統cpu與gpu的未來,就有些誇大其詞。且不論cpu與gpu技術已經成熟,擁有完善的生態鏈,cpu與fpga的結構也有所不同。cpu中擁有控制取指、解碼等流程,處理可信具備處理各式各樣千奇百怪的指令要求的能力;

cpu架構

相比之下fpga就不能向cpu一樣靈活的處理各種沒有見過的指令,只能根據乙個固定的模式來處理輸入的資料然後輸出,這也是為什麼fpga經常被看作一種行家專屬的架構。

fpga架構

不同於cpu的是,fpga和gpu內都有大量的計算單元,因此它們的計算能力都很強。在進行神經網路運算的時候,兩者的速度會比cpu快很多。但是gpu由於架構固定硬體原生支援的指令固定了,而fpga則是可程式設計的。

gaxpy演算法效能對比(單位:微秒)(來自:程式設計師)

我們可以看到,fpga的應用領域主要是深度學習和神經網路演算法,而傳統的cpu更關注的是「通用」,gpu雖然更注重計算速度,但是其指令仍然是固定的。而fpga的出現之所以風靡全球,就是因為其可程式設計性,這讓fpga在深度學習領域擁有了得天獨厚的優勢。這樣也就不奇怪谷歌為了發展深度學習,自己研發了名為tpu的自有晶元。正如谷歌資料中心負責人霍爾澤所言:谷歌研發自有晶元是為了解決哪些省為解決的問題。

筆者認為,當市場需求發生變化,技術一定會隨之發展,當深度學習成為熱門領域時,與之最匹配的fpga也應聲成為廠商追逐的焦點。

spring mvc 為什麼這麼多xml

作用 spring web mvc 使用dispatcherservlet 分發request,一般我們都需要乙個web.xml 來定義這項工作。dispatcher org.springframework.web.servlet.dispatcherservlet 1 contextconfigl...

spring mvc 為什麼這麼多xml

作用 spring web mvc 使用dispatcherservlet 分發request,一般我們都需要乙個web.xml 來定義這項工作。dispatcher org.springframework.web.servlet.dispatcherservlet 1 contextconfigl...

前端框架這麼多,該如何選擇?

有過前端開發經驗的同僚們可能會想到 要有可復用的元件,要控制質量做測試和靜態檢查,要有元件隔離的樣式方便實現responsive,要打包部署方便,最好學起來不要太複雜,方便能力建設 節省招聘成本等等。接下來,我們將從元件復用 測試和學習曲線這三個主要的方面對angular4,ember.js,vue...