高性能運算的需求逐漸高漲
隨著人工智能和深度學習技術的不斷升級,對數據存儲和數據處理的要求越來越大。據麥肯錫的Nicolaus Henke估計,如今90%的可訪問數據兩年前還不存在,而IDC預測,到2020年,全球大數據投資將超過2030億美元,所有這一切都對下一代計算芯片提出了指數級增長的要求。
英特爾一直以來主導的摩爾定律逐漸很難再持續,因為Dennard Scaling規律(單位面積晶體管數不斷增加而功耗保持不變)逐漸失靈了,晶體管體積的縮小并沒有帶來速度的指數增長。所以,未來CPU和GPU已經無法繼續滿足新領域對數據存儲和數據處理的要求,人們不斷探索新的領域來滿足逐漸增加的數據處理的需求。
FPGA如何成為新時代的“寵”兒
最初FPGA是用來做純邏輯設計的,一開始用來替換簡單的數字電路,由于其設計的靈活性,逐漸可以做接口通信。
后來隨著通信行業的蓬勃發展,FPGA由于其并行執行特性,收到了通信行業的青睞,逐漸成為信號處理的寵兒,其并行執行特性和靈活升級的優勢,將ASIC和DSP都競爭下去了。
再后來,軟件工程師也對這個一直以來處于硬件陣營的家伙感興趣了,所以Xilinx為了進一步蠶食CPU的市場,打起來軟件工程師的注意,也就是目前流行的HLS,軟硬件協同設計等新概念。
隨著人工智能和深度學習對運算要求越來越高,人們逐漸認識到并行處理、低延時、低功耗和可重配置的重要性,FPGA本身是一張白紙,藍圖全靠工程師來設計,也正是因為這種無限制,才造就了其功能的無限強大。所以,新時代下,FPGA逐漸成為高性能運算的“寵兒”。
FPGA在高性能運算中的真正優勢
FPGA相比于CPU,最大的優點在于速度,簡單來講,FPGA是靠控制每個時鐘(Cycle)來驅動信號與寄存器傳輸的,也就是說可以通過時鐘來精確控制任務。而且,FPGA是并行執行的,每個Cycle可以同時執行上百萬個數據流任務,所以,和CPU相比,FPGA是通過較慢的時鐘頻率,同時并行執行數據流,而CPU雖然主頻高,但是并行執行能力差,綜合起來對于同樣的代碼,應用程序在FPGA上的運行速度可能比在傳統CPU上運行要快100倍。如圖所示。
FPGA中包含上千萬的可編程邏輯資源,具有并行性和并發性的優點。在設計時,工程師可以利用這種并行體系結構,將設計分解為結構良好的數據執行流。
例如,一幀圖像,如果按照傳統處理方式,可以按像素來處理整個圖像。但是當并行處理時,它被分解成不同的碎片,由不同的進程同時進行處理,然后再拼湊回一起。過程雖然變復雜了,但是速度快了許多,要求輸入數據必須以最優的方式分解,并有效地分配給每個進程,然后將處理后的數據收集并重新組裝,從而大大提高了效率。
在一個普通的CPU中,這一過程涉及到數據從內存中存入和取出,以及使進程對當前內存狀態保持一致的復雜協議。即使是最大的英特爾CPU也只有18個內核。相比之下,在FPGA中,數據流可以被設計,因此它永遠不會離開芯片。數以萬計的并發進程可以同時存在,并且處理的時間得到了優化,因此吞吐量始終是最大的。
通過FPGA實現還有給優勢就是成本。使用FPGA可以節省大量成本,因為提高速度的同時減少了硬件需求,一個FPGA可以執行許多服務器的任務。
最后,FPGA具有強大的新一代互聯互通和增強的靈活性,可以利用最新的技術發展在器件上重新編程。一旦啟動并運行,FPGA就可以隨時改變以滿足不斷變化的業務需求。
FPGA技術面臨的挑戰
FPGA技術面臨的最大挑戰就是其使用的復雜性,FPGA的編程一直以來定位于硬件描述編程,也就是電路設計,而不是簡單的編程。
需要硬件工程師能夠用復雜、底層的硬件定義語言如Verilog、VHDL進行編程。
硬件工程是一門高度專業化的技能,需要多年的經驗才能將知識付諸實踐,硬件配置所需的專業芯片設計技能使FPGA成本一直很高,這也意味著創新是有限。
所以,一直以來FPGA技術作為一種高門檻的設計技術,只有有實力的大型公司才有實力采用FPGA來設計,只有一些能夠創造高額利潤的行業才會采用FPGA技術,如軍品、通信、視頻等領域。
FPGA技術未來將會獨領風騷
雖然FPGA在應用方面門檻較高,但最近人們正在穩步打破這種障礙。例如亞馬遜網絡服務集成FPGA 的F1實例,旨在構建定制的加速器處理計算密集型問題,外界對其發布產生了格外積極的響應。
FPGA廠商和平臺提供商也可以使用不同語言進行編程,如OpenCL,并且FPGA的發展逐漸讓軟件工程師越來越容易在內嵌的基于云的環境下對FPGA進行編程。這可以使用更方便的語言,如GO,它對于來自不同背景和語言的用戶來說更容易,更高效。微軟已經表示,未來它的Azure云服務也將讓開發者能夠使用FPGA。
過去,FPGA只用來處理大量的數據,但價值回報已經足夠高,足以證明投資的深度,或者用于非常復雜和具有挑戰性的問題,例如軍事或金融部門的問題。但隨著FPGA變得越來越容易訪問,該技術適用于任何速度和成本都很重要的項目。
通過FPGA進行的并行計算通過在單個服務器上同時運行大量計算過程,加快了對海量數據的處理和分析工作,意味著FPGA可用于圖像和視頻處理、在線語音識別、實時數據分析、廣告技術以及軟件定義網絡(SDN)。
云FPGA正被用于許多研究方向。安全部門正在用它研究加密算法加速,電信公司用它研究網絡和安全,航空公司用它處理衛星數據和應用機器學習算法,金融服務用它進行硬件加速和確定衍生產品組合的信用風險。
雖然這些使用案例令人興奮,但它們僅僅是FPGA能力的冰山一角,發掘這項技術的全部潛力還需要時間。雖然在硬件世界中新產品層出不窮,但這些產品的創新往往是漸進式的。但是,隨著平臺的出現,并行設計和創新在硬件開發中成為可能,對所有企業,無論大或小,FPGA的使用將變得越來越便宜和現實,也會得到越來越多的應用。
業界對它的使用仍然停留在起步階段,但隨著使用量的增加,FPGA將讓每個企業,無論是單人初創企業還是已經成立的跨國企業,都可以利用高性能并行計算來持續推動技術創新。
-
FPGA
+關注
關注
1630文章
21796瀏覽量
605245 -
人工智能
+關注
關注
1794文章
47642瀏覽量
239682
原文標題:FPGA為什么在高性能運算領域獨領風騷?
文章出處:【微信號:gh_873435264fd4,微信公眾號:FPGA技術聯盟】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論