FPGA 云服務:30 倍效率,4 成費用,創業公司擁抱 AI 的計算選擇
由騰訊云基礎產品中心、騰訊架構平臺部組成的騰訊云FPGA聯合團隊在這里向讀者分享,傳統FPGA存在什么樣的問題、FPGA與其他計算硬件平臺的區別是什么?騰訊云FPGA的價值和應用案例有哪些?
FPGA誕生至今已有30余年,此前主要應用于大型互聯網和科技公司,但是并沒有被普及應用。1月20日,騰訊云推出國內首款高性能異構計算基礎設施——FPGA云服務器,將以云服務方式將大型公司才能長期支付使用的FPGA普及到更多企業,企業只需支付相當于通用CPU約40%的費用,性能可提升至通用CPU服務器的30倍以上。
行業背景
隨著AI這股熱潮的發展,業界對人工智能發展的熱情逐漸高漲,人工智能也成為了未來發展的趨勢。中小型企業也期望搭上人工智能這輛列車。FPGA能夠從底層開始變革人工智能的設計邏輯,推動全行業在人工智能領域的創新步伐。不過,過去中小企業部署FPGA面臨諸多問題:FPGA硬件成本高、靈活性差、一次性采購投入大,需要高昂的費用和巨大精力進行FPGA的定制和采購,FPGA硬件交易價格不透明,為保障服務穩定需高額的運維IT成本,并需配備相應的硬件工程師和軟件工程師。
同時企業接下來還會面臨FPGA芯片更新換代帶來的資源閑置流轉問題。雖然FPGA知識產權(FPGAIP,FPGAIntellectualProperty)提供了業務所需的硬件加速功能,但研發周期長,研發投入和風險高,令諸多企業望而卻步。
FPGA是什么
人工智能包括三個要素:算法,計算和數據。人工智能算法目前最主流的是深度學習。計算所對應的硬件平臺有:CPU、GPU、FPGA、ASIC。由于移動互聯網的到來,用戶每天產生大量的數據被入口應用收集:搜索(百度)、通訊(QQ、微信)。我們的QQ、微信業務,用戶每天產生的圖片數量都是數億級別,如果我們把這些用戶產生的數據看成礦藏的話,計算所對應的硬件平臺看成挖掘機,挖掘機的挖掘效率就是各個計算硬件平臺對比的標準。通用處理器(CPU)可提供高度的靈活性和易用性,可以低廉的價格生產,并且適用于多種用途和重復使用。但性能相對缺乏效率。
專用集成電路(ASIC)可提供高性能,但代價是不夠靈活且生產難度更大。這些電路專用于某特定的應用程序,并且生產起來價格昂貴且耗時。
從靈活性而言,介于CPU和ASIC兩者之間的處理器,使用比較多的異構處理器目前有兩個,一個是GPU,一個是FPGA。
FPGA屬于一類更通用的可編程邏輯設備(PLD),FPGA既能提供集成電路的性能優勢,又具備CPU可重新配置的靈活性。簡單來說,FPGA是一種可重新配置的「通用集成電路」。
GPU的靈活性是介于FPGA與CPU之間。GPU的核心數量一般是CPU的成百上千倍,計算能力要比CPU多出幾個數量級,也更適合進行并行計算。但是如果計算里面有大量的分支,或者算法的數據前后存在依賴關系,使得算法無法并行運行,則GPU的性能優勢會被大大減弱。
相比GPU,FPGA的可操控粒度更小,具備更高的靈活度和算法適應性。FPGA能夠簡單地通過使用觸發器(FF)來實現順序邏輯,并通過使用查找表(LUT)來實現組合邏輯。當算法需要并行計算能力時,可以將大部分的邏輯資源都用來做計算,達到更高的計算效率;當算法需要更多的控制流程時,可以將大部分的邏輯資源都用來做控制。(實際的FPGA內部也存在大量的硬核來完成固定的功能)。正是基于FPGA資源的高可控度,可以帶來算法實現時的靈活度。
FPGA全稱「可編輯門陣列」(FieldProgrammableGateArray),其基本原理是在FPGA芯片內集成大量的數字電路基本門電路以及存儲器,而用戶可以通過燒寫FPGA配置文件來來定義這些門電路以及存儲器之間的連線。這種燒入不是一次性的,即用戶今天可以把FPGA配置成一個圖像編解碼器,明天可以編輯配置文件把同一個FPGA配置成一個音頻編解碼器,這個特性可以極大地提高數據中心彈性服務能力。所以說在FPGA可以快速實現為深度學習算法開發的芯片架構,而且成本比設計的專用芯片(ASIC)要便宜,當然性能也沒有專用芯片(ASIC)強。ASIC是一錘子買賣,設計出來要是發現哪里不對基本就沒機會改了,但是FPGA可以通過重新配置來不停地試錯知道獲得最佳方案,所以用FPGA開發的風險也遠遠小于ASIC。
騰訊云FPGA的行業價值
騰訊云帶來的革命性進展是:將FPGA部署時間從數月縮短到數分鐘,企業可按需付費使用FPGA,極大降低FPGA的使用成本,實現高性能FPGA硬件加速處理。企業可以通過FPGA云服務器進行FPGA硬件編程,可將性能提升至通用CPU服務器的30倍以上。同時騰訊云率先在國內提供第三方FPGA知識產權市場,通過騰訊云服務市場,FPGA開發者和使用者可以更高效地交易。
長期以來,FPGA行業內的提供者和使用者一直缺乏交易平臺和信用保證,導致交易環節冗長,很難達成交易。騰訊云服務市場搭建一個簡單可靠的FPGA知識產權交易市常
對于FPGA使用者而言,可以在騰訊云服務市場購買已開發并驗證好的FPGA知識產權功能,可節約長達數月的FPGA研發周期,同時采用按需使用付費的模式,能最大化地節省硬件投入成本。
而FPGA開發者可以通過使用騰訊云FPGA的開發框架,顯著提升研發效率,更專注于核心功能開發,將圖像處理功能、深度學習功能等已有的成熟FPGA知識產權通過簡單封裝適配,集成并投放到騰訊云服務市場,開放給FPGA使用者使用,分攤FPGA知識產權的研發成本。
FPGA應用案例
FPGA應用案例一
·項目背景:隨著移動互聯網的發展,基于用戶社交平臺的騰訊每天用戶上傳的圖片越來越龐大,公司目前用于圖片轉碼的業務主要有QQ相冊、微信及其他業務。圖片格式中有JPEG格式、WEBP格式等,WEBP圖片格式比JPEG圖片格式存儲空間小30%。如果落地存儲采用WEBP格式替代JPEG格式,可以減少三分之一存儲空間;而傳輸分發用WEBP格式,還可以降低傳輸流量,從而提升用戶的圖片下載體驗。而采用WEBP的問題在于WEBP壓縮計算復雜度是JPEG壓縮的10倍以上,采用CPU進行WEBP轉碼成本很高,導致很難在業務中全面推廣。為了增強圖片轉碼能力,我們使用FPGA對圖片轉碼進行加速。
·項目結果:
完成JPEG格式圖片轉成WEBP格式圖片,測試圖片大小為853x640,FPGA處理延時相比CPU降低20倍,FPGA處理性能是CPU機器的6倍,FPGA機型單位成本是CPU機型的1/3。
表1.FPGA和CPU的計算性能對比
•FPGA應用案例二
·項目背景:
傳統上,Google、百度等搜索引擎公司以LogisticRegression(LR)作為預估模型。早在2012年開始,百度開始嘗試將DNN算法作用于搜索廣告,并在2013年5月就開始服務于百度搜索廣告系統。近年來異軍突起的今日頭條在技術上也使用了DNN算法,提高新聞的點擊率。但是DNN算法對系統的計算量明顯增大,如果還是用CPU進行計算,無法滿足系統的延時和吞吐率要求。
DNN算法模型為17*200*20*1的4層模型,要求4000個樣本的DNN計算時延要小于5ms。如果用CPU計算,B6(CPUE5-2620X2)機器的計算時延為120.55ms*,無法滿足要求(計算時間見表2)。因此,我們用FPGA對DNN計算進行加速,使4000個樣本的DNN計算時延小于5ms。
·項目結果:
我們在使用50%的FPGA資源的情況下,將4000個樣本的DNN計算時延減小為1.2ms,吞吐率達到6000集合/s(4000個樣本為1個集合),不僅達到了系統對低延時的要求,而且極大地提高了系統的吞吐能力,處理延時降低100倍,處理吞吐率提高5倍,成本是CPU機型的1/5。說明FPGA在DNN計算加速上有較明顯的優勢。
表2.FPGA和CPU的計算性能對比
FPGA應用案例三
·項目背景:深度學習(DL)近年來在語音識別、圖片分類和識別、推薦算法等領域發揮了越來越大的作用。深度學習基于深度神經網絡理論,用在圖片分類的神經網絡是其中的一個分支:卷積神經網絡(CNN)。隨著移動互聯網的發展,基于用戶社交平臺的騰訊每天用戶上傳的圖片越來越龐大,并且增長速度很快。為了增強圖片檢測的處理能力,降低圖片檢測成本,我們使用FPGA對CNN計算進行加速。
·項目結果:
FPGA完成CNN算法的Alexnet模型,FPGA處理性能是CPU機器的4倍,FPGA機型單位成本是CPU機型的1/3。
小結
當前AI火爆,得益于FPGA的高密度計算能力以及低功耗的特性,FPGA率先在深度學習在線預測方向(廣告推薦、圖片識別、語音識別等)得到了較大規模的部署。用戶也常常將FPGA與GPU進行對比,GPU的易編程性、高吞吐與FPGA的低功耗、易部署等特性也各有千秋。相較于GPU以及ASIC,FPGA的低延時以及可編程性也是其核心競爭能力。
使用騰訊云FPGA云服務,你只需單擊幾下即可在幾分鐘內輕松獲取并部署你的FPGA計算實例。你可以在FPGA實例上編程,為你的應用程序創建自定義硬件加速。我們為你提供可重編程的環境,可以在FPGA實例上多次編程,而無需重新設計硬件,讓你能更加專注于業務發展。