雲端計算中,FPGA是一種什麼樣的存在?

我們這個世界對於雲端計算和大數據的依賴越來越高。對用戶來說這是一件好事,但對雲端的開發者來說,則意味著越來越大的壓力。
這種壓力來自兩個方面。一個是彙聚到雲端的資料量越來越大——據IDC的統計,2016年全球資料存量為16ZB,預計到2020年將超過40ZB,而2025年則會激增至160ZB。與指數級增長的資料量相伴隨的,則是對這些資料計算和處理需要的高速增長,特別是隨著人工智慧(AI)的興起,對雲端計算資源的消費量大大增加。資料量和資料處理要求兩個因素疊加,使得我們對雲端算力需求的增速超出想像。
在過去相當長的一段時間,這個世界上算力提升的動力主要來自於摩爾定律,每18-24個月提升一倍的積體電路性能,奠定了當今這個互聯世界的基石。而時至今日,受制於半導體工藝的極限,摩爾定律定義的速度已經減緩,由其帶來的紅利正在消失。因此在面對雲端計算越來越大的“胃口”時,在摩爾定律之外,人們需要尋找另一個能讓算力加速的支點,這個支點就是新的計算架構。
FPGA的勝出
一個理想的高性能雲端計算加速架構,概括起來需要有以下幾個特性:第一是高吞吐能力,以應對大量資料處理的需要;第二是低延時,能夠對即時聯網設備進行回應;第三是高性能功耗比,為更高密度的雲計算創造可能;最後是靈活性,能夠跟上不斷演化的演算法和應用的腳步。
目前可用於雲端計算加速的架構無非是以下幾種:CPU、GPU、FPGA和AICS。如果按照上述的“任職條件”去仔細篩選,人們發現與其他幾種結構相比,FPGA就是那個要找的Mr. Right!
- 在性能方面,由於FPGA擺脫了馮·諾依曼結構的限制,可以針對特定應用演算法定制硬體架構,具備ASIC高性能的特質,可支援更高的資料吞吐。
- 在延遲性方面,FPGA不但可以實現資料並行,還可以實現流水線並行,可達到微秒級的延時,這也是其與同樣高算力的GPU相比最明顯的一個競爭優勢。
- 在可擴展性方面,基於FPGA的可程式設計性和豐富的IO管腳,其可以在資料中心裡面扮演多面手,除了計算,也可支援和適應存儲、網路等方面演算法的演進發展要求。
- 在功耗方面:更先進的半導體工藝,加之優化的演算法,令FPGA可在特定應用中實現比CPU、GPU更佳的性能功耗比。
- 在靈活性方面:這自然是FPGA與ASIC相比最引以為豪的強項,而且FPGA適於與CPU等計算架構結合形成CPU+FPGA異構計算平臺,讓最合適的架構去做其最擅長計算加速,以實現系統最優。
圖1,不同計算架構的性能比較(資料來源:華為雲)
FPGA上雲之路
正是由於FPGA上述的這些優勢,讓人們將是視為實現雲計算加速的重要技術路徑,FPGA的上“雲”之旅也由此開啟。從FPGA在雲計算中的實際“戰果”來看,它確實沒有讓人們失望!
比如,2014年微軟在一篇論文中,分享了微軟Catapult專案團隊通過在資料中心1632台伺服器中部署FPGA,對必應(Bing)搜尋引擎的檔排名運算進行硬體加速,獲得了高達95%的輸送量提升。這樣的事實,也讓其他雲計算平臺部署FPGA的信心大增。
騰訊是國內較早嘗試FPGA計算加速的互聯網公司,在他們的JPEG至WebP網路圖片的轉碼嘗試中,FPGA處理延時相比CPU降低20倍,處理性能則是CPU的6倍,而FPGA單位成本僅為通用CPU的1/3。由此,騰訊也成為了FPGA雲計算加速最積極的擁躉之一。
近年來隨著AI應用的興起,越來越多的公司開始嘗試將FPGA應用在雲端深度學習演算法加速中,且頗有斬獲。如百度從2013年就開始嘗試將FPGA應用在DNN,RNN,CNN,LSTM等深度學習模型中,目前百度已經開放了基於FPGA的深度卷積神經網路加速服務,單卡提供3Tops的定點計算能力,支援典型深度卷積網路運算元,為VggNet、GoogLeNet、ResNet等提供高效加速。可見,今天AI已經成為加速FPGA在雲計算中部署的重要推手。
圖2,FPGA在網路圖片轉碼加速應用中,與CPU相比優勢明顯(圖片來源:騰訊雲)
FPGA雲端服務
隨著FPGA在雲計算中越來越受寵,一種基於FPGA的新型的雲服務也應運而生,這就是FPGA雲服務。它已經成為亞馬遜、百度雲、騰訊雲、華為雲等雲計算頭部玩家的一致選擇。
FPGA雲伺服器就是在雲計算環境中配備FPGA的計算實例,使用者可以通過購買FPGA實例,快速讓自己特定的應用實現FPGA硬體加速。可以說,雲計算廠商在引入FPGA之初,可能是為了滿足自己一個或幾個特定雲計算加速所需,而在廣泛部署之後會發現,完全可以將FPGA計算資源“打包”起來,作為一種可以變現的雲服務,銷售給雲計算用戶。
而對於雲計算用戶來說,就像當初購買雲伺服器而無需自己運維一個複雜的IT計算系統一樣,現在當需要在某個應用演算法中採用FPGA進行加速時,也不需要去構架和開發自己的FPGA硬體系統,而通過購買雲計算廠商的FPGA雲服務即可實現!
FPGA雲服務的出現不僅讓雲計算廠商可變現的服務組合更為豐富,往深一層去想,此舉也會對未來FPGA的應用開發生態產生深刻影響,進一步降低FPGA用戶的門檻,讓FPGA加速服務觸手可及。實際上,已經有“不差錢”的雲服務廠商在沿著這個方向去發力。
綜上所述,從當初在一眾計算架構比拼中脫穎而出,到在實戰中證明自己的實力,再到今天成為新興雲服務的核心,FPGA在雲計算中的存在感越來越強,而這一切僅僅是個開始。未來你還有什麼奇思妙想需要“加速”,盡可以來一試。
圖3,為了因應雲計算所需,安富利開發的基於Xilinx FPGA的加速解決方案(圖片來源:安富利)