最近FPGA又頻頻被各AI領域的巨頭看好,比如微軟、百度、科大訊飛都對FPGA應用前景有所期待。那么如果讓你選擇FPGA作為AI計算系統的主力軍,你會有什么樣的顧慮?
這幾天,已經退役的AlphaGo又強行刷了一波頭條,不是又跟哪位世界高手對決,而是“新狗”通過無監督式學習,僅用3天時間就戰勝了李世石版的AlphaGo,然后用了21天時間戰勝了柯潔版本AlphaGo。AlphaGo讓我們真真切切地看到了AI計算的強大。
目前,在AI計算平臺使用最廣泛的兩種加速部件是GPU和FPGA。GPU可適用于具備計算密集、高并行、SIMD(SingleInstructionMultipleData,單指令多數據流)應用等特點的深度學習訓練模型領域,并且GPU創建了包含CNN、DNN、RNN、LSTM以及強化學習網絡等算法在內的應用加速平臺和生態系統。
但是,最近FPGA又頻頻被各AI領域的巨頭看好,比如微軟、百度、科大訊飛都對FPGA應用前景有所期待。那么如果讓你選擇FPGA作為AI計算系統的主力軍,你會有什么樣的顧慮?
顧慮一:FPGA有啥優勢?什么樣的場景更適合FPGA?
首先,深度學習包含兩個計算環節,即訓練和推理環節。GPU在深度學習算法模型訓練上非常高效,但在推理時對于小批量數據,并行計算的優勢不能發揮出來。而FPGA同時擁有流水線并行和數據并行,因此處理任務時候延遲更低。例如處理一個數據包有10個步驟,FPGA可以搭建一個10級流水線,流水線的不同級在處理不同的數據包,每個數據包流經10級之后處理完成。每處理完成一個數據包,就能馬上輸出。通常來說,FPGA加速只需要微秒級的PCIe延遲。當Intel推出通過QPI快速通道互聯的Xeon+FPGA之后,CPU和FPGA之間的延遲甚至可以降到100納秒以下。
其次,FPGA是可編程芯片,算法燒錄更加靈活。目前來看,深度學習算法還未完全成熟,算法還在迭代衍化過程中,若深度學習算法發生大的變化,FPGA是軟件定義硬件,可以靈活切換算法,快速切入市場。
未來至少95%的機器學習計算都是用于推斷,只有不到5%是用于模型訓練,而FPGA正是強在推斷。大幅提升推斷效率的同時,還能最小限度損失精確性,這正是FPGA的強項。
顧慮二:FPGA的計算性能能不能滿足我的需求?
與CPU和GPU不同,FPGA是一種典型的非諾依曼架構,是硬件適配軟件的模式,它能夠根據系統資源和算法特征靈活的調整并行度,達到最優的適配,因此能效比高于CPU和GPU。
以浪潮F10A為例,這是目前業界支持OpenCL的最高密度最高性能的FPGA加速設備,基于Altera的Arria10芯片,單芯片峰值運算能力達到了1.5TFlops,功耗卻只需35W,每瓦特性能達到42GFlops。同時,F10A設計為高密度的半高半長PCI-E插卡,同時具有靈活的板卡內存配置,最大支持32G雙通道內存,是業內同等FPGA卡內存容量的4-8倍。此外,F10A支持2個10Gb光口,可以實現數據直接從網絡到板卡處理,無需經過CPU,大大減低了傳輸延時。
測試數據顯示,在語音識別應用下,浪潮F10A較CPU性能加速2.87倍,而功耗相當于CPU的15.7%,性能功耗比提升18倍。
顧慮三:FPGA的開發周期得1年以上吧,這不能滿足我的業務上線需求?
傳統的FPGA的開發類似于芯片的開發,采用硬件描述語言(HDL)開發,HDL開發帶來的問題就會像芯片設計一樣周期會比較長,從架構設計、到仿真驗證、再到最終完成,需要一年左右的開發時間。
但是互聯網的業務迭代速度極快,在幾個月時間內就可能完成龐大用戶群的積累,因此業務對于數據中心的要求是“快”—計算力平臺的升級要盡量快地滿足業務的發展,因此FPGA的傳統開發模式動輒以半年或年為單位的開發周期難以滿足需求。
為此浪潮嘗試通過OpenCL高級語言開發方式,它把底層的硬件如總線、IO接口、訪存控制器等和底層軟件如驅動、函數調用等全部封裝,變成標準單元提供上層支持,用戶只需要關注算法本身,OpenCL開發的邏輯通過編譯工具直接映射到FPGA中,開發周期從至少1年縮短至4個月以內。
顧慮四:對于O經驗的公司,怎樣快速上線FPGA應用?
或許你還是有些顧慮,即時開發效率大幅提升、開發周期大大縮短,但是對于技術和團隊儲備不足的中小型AI企業來說,FPGA仍是“高不可攀”的AI加速部件。如果,有一種方案能夠將軟件、算法和硬件板卡整合,以軟硬一體化的形式,提供FaaS(FPGAasaService)服務。你還有什么顧慮么?
目前,浪潮正在針對市場上需求最迫切的幾種應用場景進行算法的移植開發,在圖像壓縮、文本數據壓縮及神經網絡加速等應用開發出業界領先的IP,省去客戶的算法開發周期,最小化FPGA落地門檻、最大化FPGA落地效率。
神經網絡加速方案:基于浪潮F10A的AI線上推理加速方案,針對CNN卷積神經網絡的相關算法進行優化和固化,可加速ResNet等神經網絡,能夠應用于圖片分類、對象檢測和人臉識別等應用場景。
實測數據顯示,在進行ResNet殘差網絡的圖片識別分類任務時,浪潮F10A加速方案圖片處理速度可達每秒742張,Top-5識別準確率達到99.6%,相比同檔次GPU能效比提升3倍以上。而與通用CPU對比,在處理這種高并行、小計算量的任務時,F10A的優勢將更明顯。
WebP圖片轉碼壓縮加速方案:針對圖片數據的壓縮應用,嵌入基于FPGA計算環境下的WebP編解碼優化算法,通過充分利用硬件流水設計和任務級并行,大大提升WebP圖像壓縮編碼算法的處理性能,能夠實現JPEG-WebP圖片格式的快速轉換,比傳統實現方式的整體處理效率平均高9.13倍左右,最高性能可比CPU提高14倍。
數據壓縮加速方案:為解決傳統壓縮架構的弊端,浪潮GZip算法加速方案充分利用板卡硬件流水設計和任務級并行,大幅提升了壓縮任務的吞吐量并有效降低CPU的負載,壓縮率(壓縮率=1-壓縮后文件/壓縮前文件)最高可達94.8%,壓縮速度達到1.2GB/s,10倍于傳統方案的壓縮效率。
顧慮五:我是做云的,FPGA咋管理?支持虛擬機么?
FaaS不僅僅是指板卡與軟件算法的一體化服務,同時還可以支持公有云及在線遠程管理和更新。浪潮FPGA解決方案能夠支持動態邏輯的在線可重構、靜態邏輯的遠程更新,并且通過優化的監控管理機制,提升板卡遠程監控管理的可靠性,通過它們可以實時的監控FPGA芯片的溫度、板卡風扇轉速、板卡內存特性等從而調整FPGA的工作頻率。
同時浪潮FPGA也支持虛擬機的直接訪問,板卡本身也加入了很多RAS(可靠性、可用性、可擴展性)特性,如高可靠內存訪問等,支持并行(FPP)和串行(AS)雙加載模式,任何一種模式加載出現故障,都可以快速切換到另一種模式加載,保證了板卡大規模服務的可用性。
有了這些特性,就可以利用浪潮FPGA方案,快速搭建FPGA云所需要的基礎底層計算平臺,不論是對外提供公有云服務,還是對內實現FPGA計算力快速分配都能夠既高效又可靠。
顧慮六:我可不想當小白鼠,有誰用過了?
對于FPGA這種新興的AI計算設備,“觀望”往往是明智的選擇,畢竟不是每家公司都想要作為新技術的小白鼠,而當有第一個吃螃蟹的人出現后,“跟進”則成為“飛豬”的必然之路。
目前,浪潮FPGA已經在百度、阿里巴巴、騰訊、網易、科大訊飛取得批量的落地應用或深度測試,FPGA在人工智能線上推理的能效優勢已經得到大部分互聯網和AI公司的認可。
那么,FPGA可以應用在哪些領域?我們可以聽聽騰訊云FPGA團隊負責人怎么說:
在機器學習領域、金融領域、大數據領域、基因檢測領域都存在比較大的數據量需要分析計算,這些是FPGA可以發揮高吞吐優勢的領域。
網絡安全領域有更安全、更低延時的需求,這些場景也可以發揮FPGA低延時的優勢。
超大規模圖像處理,這些圖片的處理都使用FPGA來進行處理加速,都可以得到滿意的效果。
現在比較熱門的自然語言處理和語音識別這些也都是FPGA可以發揮優勢的場景。
當FPGA成為一種計算力服務,有著高效的硬件、成熟的IP和云化管理,你還在顧慮什么?
浪潮擁有國內領先的FPGA軟硬件開發團隊,浪潮正聯合Intel及BAT、科大訊飛、網易等AI領先企業深入研發基于FPGA的通用系統方案,包括深度學習、網絡加速、存儲優化等,并將方案推廣到其它應用領域和客戶。未來,CPU+FPGA或許將作為新的異構加速模式,被越來越多的應用領域采用。
評論
查看更多