FPGA受青睞的原因分析
首先,編程FPGA的軟件棧已經演進了,尤其是在Altera的幫助下,FPGA增加了對OpenCL開發環境的支持。但不是每個人都是OpenCL的狂熱粉絲。
先有Nvidia為其Tesla GPU加速器創建了自己的CUDA并行編程環境。再有SRC計算機公司不但早在2002年就為國防和智能領域提供混合CPU-FPGA系統,到了2016年年中,進一步將自己研發的Carte編程環境進入了商業市場,這個編程環境可以使C和Fortran程序自動轉換為FPGA的硬件描述語言(HDL)。
另一個推動FPGA被采用的因素是隨著芯片制造技術難以持續縮進,多核CPU性能的提高越來越艱難。 雖然CPU的性能獲得了大跳躍,但主要用于擴展CPU的性能吞吐量,而不是單個CPU內核的個體性能。(我們知道架構增強是有難度的)。但是FPGA和GPU加速器的每瓦性能都有了令人信服的改進。
根據微軟的運行測試,在執行深度學習算法的時候,CPU-FPGA和CPU-GPU混合計算在的每瓦性能也不相伯仲。GPU在運行中更熱和有類似的每瓦性能表現,但是同時他們也帶來了更強的工作能力。
提高了每瓦性能解析了為什么世界上最強大的超級計算機在20世紀90年代后期轉移到并行集群,并且解析了為什么現在他們轉向了混合機器,而不是英特爾的下一個以 CPU-GPU為混合主力的Xeon Phi的處理器“Knights Landing (簡稱KNL)。
在Altera FPGA協處理器和Xeon Phi處理器Knights Landing的幫助下,英特爾不但可以保持自己的在高端的競爭優勢。并且在與Nvidia 、IBM和 Mellanox組成的Open power聯盟競爭中繼續領先。
英特爾堅信超大規模計算,云端和HPC市場的工作負載會快速成長。為促進其計算業務繼續蓬勃發展。這情況下只能成為FPGA的賣家,否則別人就會搶去這唯一的出路。
但英特爾并不是這樣跟大家說。他們說:“我們不認為這是一種防守戰或者其他,”英特爾的CEO Brian Krzanich在Altera收購消息后的新聞發布會上說。
“我們認為物聯網和數據中心都是龐大的。這些也是我們的客戶想要構建的產品。我們30%的云端工作負載將在這些產品上,這是基于我們對如何看待趨勢變化以及市場發展的預測。
這是用來證明這些工作負載能以一種或另一種方式轉移到硅中。我們認為最好的做法是使用有業界最佳性能和成本優勢的Xeon處理器和FPGA組合。這將給工業領域帶來更好的產品和性能。而在IoT中,這將擴展到潛在市場對抗ASIC和ASSP;而在數據中心中,則會將workload轉移到硅,推動云的快速增長。
Krzanich解釋道:“你可以把FPGA想象成一堆gate,且能夠隨時編程。根據他們的想法,其算法會隨著時間的推移和學習變得更聰明。FPGA可以用作多個領域的加速器,可以在進行加密的同時進行面部搜索,而且能在基本上在微秒內重新編程FPGA。這比大規模的單個定制部件的成本低得多且具備更高的靈活性。”
FPGA在AI中的優勢
現在流行的AI(人工智能)模型基本上都是由人工神經網絡構成。這些人工神經網絡運行起來都需要龐大的計算。下圖是一個簡單的人工神經網絡結構,可以用它來理解AI需要的計算量。這個簡單的模型只有4個輸入和和三個輸出,每過圓圈代表一個神經單元,相當于一個神經細胞。而每個箭頭代表至少一個乘法和加法運算。所以這個超級簡單的神經網絡每運行一次需要超過18次乘法和加法運算。而上一篇文章演示用的例子則復雜得多,它由16層神經網絡構成。其中第一層神經網絡需要大約9千萬次乘法和加法運算,而第二層神經網絡則需要約19億次乘法和加法。
對于這些龐大的計算,傳統計算機的CPU架構已經很難滿足要求,很多AI計算都會使用GPU來加速。原本GPU設計出來是為了加快3D圖像的處理,它不必像CPU那樣需要執行復雜的控制指令,可以把大部分的硬件資源用于計算,所以它的計算能力要遠高于集成度相當的CPU。下圖中綠色部分的ALU是CPU的計算單元,而同樣面積的GPU則幾乎被綠色的計算單元占滿。也正因為計算能上的巨大差異,前段時間很火的比特幣挖礦大量使用了顯卡中的GPU來計算。同樣也是因為AI應用方面的潛力再加上比特幣挖礦的需求,GPU供應商英偉達的股票價格節節攀升。
新的CPU架構也不甘落后,紛紛加強了計算能力,比如Intel的AVX擴展指令可以同時處理512bit的計算,硬件上相當于8個32bit的的計算單元。ARM的VFPv3也是專注于計算能力的提升,VFPv3包含了32個64bit的計算單元。當前的CPU基本上都含有多個內核,所以在一顆CPU中總的運算單元大概幾十個到上百個。類似的,FPGA也內嵌了這些硬件計算資源,而且應用時間更早。舉個例子,Lattice ECP3-150是10年前(2007年)就已經推出的產品,它內嵌了320個DSP硬核,相當于80個32bit的運算單元。而Intel的AVX是2008年才出現。從計算能力上比較,FPGA與新架構的CPU能力相當。雖然計算能力上不及GPU,但是如果考慮功耗的問題,那么FPGA可以甩開GPU好幾條街。下面把一些常見的CPU, GPU的性能和功耗列出來供參考。為了便于比較,計算能力統一用G-flops來表示,1 G-flops相當于每秒能完成10億次浮點運算。為什么要浮點運算呢?因為AI神經網絡從輸入到輸出需要經歷很多次乘法和加法運算,很容易產生大數字。如果使用整數來表示,32bit最高范圍是10的9次方,超過這個范圍就會發生溢出錯誤。而浮點運算因為是用科學記數法來表示,32bit浮點數最高范圍可以到10的38次方,保證絕大部分AI運算不會溢出。
從上面的數據不難看出FPGA兼顧了高運算能力和低功耗的優點。至于GPU,雖然運算能力最強,但是它的功耗幾乎相當于半個電飯鍋,比較適合在實驗室里訓練AI。如果放在移動設備上,相當于背著半個電飯鍋到處跑,簡直就是一背鍋俠。一旦AI模型訓練好,需要在移動設備上運行,那么FPGA無疑是非常好的選擇。
僅極少數手機搭載過FPGA芯片
根據富比士(Forbes)報導,Chipworks表示,這款FPGA芯片是由美國萊迪思半導體(Lattice Semiconductor)所生產,型號為“ICE5LP4K”,主要設計作為配置在手機這類低功耗的裝置中。FPGA芯片在經制造及安裝至某裝置中后,將能夠被進行重新配置。
值得注意的是,這類芯片導入資料中心領域則是被運用在加速機器學習(ML)應用上。在智能型手機領域,除了蘋果首次將FPGA芯片導入iPhone設計外,最大競爭對手三星電子(Samsung Electronics)早在2014年推出Galaxy S5旗艦機時便開始采用萊迪思半導體的FPGA芯片,當時三星未說明搭載這款FPGA芯片的功用,不過到了Galaxy S6便未再采用。
對于iPhone 7搭載FPGA芯片,市場研究公司Tirias Research首席分析師Kevin Krewell表示蘋果此舉一反常態,讓智能型手機新內建FPGA芯片將增加額外的生產成本,至今僅少數手機有搭載FPGA芯片。
iPhone 7首搭載FPGA芯片
Krewell認為,蘋果首度在iPhone上搭載FPGA芯片,準備以此芯片來運行機器學習演算法,有可能是未來將推出與先進健康偵測有關的功能。
其他方面也可能作為尚未發布的虛擬實境(VR)或擴增實境(AR)功能所需的額外影像處理之用。但也有可能該FPGA芯片只是一個臨時的應急解決方案,可能蘋果最終會在未來的iPhone中改搭載一款專門的芯片。
由于蘋果未對外透露該FPGA芯片的功用,因此目前外界仍不清楚該FPGA芯片配置起了何種功用,或iPhone 7是否已有在運用這款芯片,但基于該FPGA芯片可再程式化的本質,未來蘋果可能會透過將iPhone 7韌體升級的方式,來改變提升這款芯片的功能。
蘋果在iPhone 7系列中新增更多AI元素,例如iPhone 7搭載的先進相機鏡頭的技術即源自于新款影像訊號處理器的運算視覺演算法,此為蘋果內部自有設計專利。
在AI研發上蘋果則與Google走不同的路線,更加注重裝置本身而非云端運算,蘋果的理由是將資料上傳至云端,不比直接在裝置上運算更具安全及隱私性。
FPGA芯片發展潛力
除了萊迪思半導體外,英特爾(Intel)旗下Altera及賽靈思(Xilinx)兩家大型FPGA芯片制造商也生產許多適合用于資料中心的FPGA芯片,這類資料中心便是FPGA芯片開始普及的應用領域,因為FPGA芯片在該領域能夠加速機器學習軟件。基于此芯片潛力,這也是為何英特爾會在2015年以167億美元買下Altera的一大主因。
英特爾一直渴望維持該公司在全球資料中心處理器市場的領導地位,因此已開始將其服務器處理器與Altera的FPGA芯片進行配對整合;微軟(Microsoft)同樣大舉投資于生產自有客制化FPGA芯片,借以強化該公司資料中心的AI運算能力。
-
FPGA
+關注
關注
1630文章
21796瀏覽量
606012 -
AI
+關注
關注
87文章
31519瀏覽量
270334 -
iPhone7
+關注
關注
1文章
1350瀏覽量
41640
發布評論請先 登錄
相關推薦
評論