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