1. 程式人生 > >建立FPGA深度學習加速生態圈,為人工智慧賦能

建立FPGA深度學習加速生態圈,為人工智慧賦能

原文: http://www.c114.net/news/212/a989434.html

毫無疑問,如果評選2016年度科技界十大最耀眼熱詞,人工智慧&深度學習必定會華麗麗地上榜。從年初阿爾法狗戰勝世界圍棋冠軍李世石,到年末世界網際網路大會上BAT大佬們的集體AI秀,每一個訊號都在不斷提示著我們,人工智慧時代來了,未來已來,且就在我們身邊。

1956年,約翰·麥卡錫等人出席的達特茅斯會議正式標誌著人工智慧的誕生。經過60年的發展,人工智慧歷經了三次浪潮,發展可謂起起落落。

第一次,達特茅斯會議確立了人工智慧這一術語,第一款感知神經網路軟體和聊天軟體誕生,數學定理被證明,人類第一次進入了人工智慧的狂歡時期。然而,人們很快發現,這些理論和模型只能解決一些非常簡單的問題,他們把問題想得過於簡單,人工智慧隨即進入低谷。

第二次,八十年代Hopfield神經網路和BT訓練演算法的提出,使得人工智慧再次興起,出現了語音識別、語音翻譯模型也為第二次人工智慧的熱潮點燃了希望之火。但這些設想遲遲未能進入人們的生活之中,第二次浪潮也隨之破滅。

第三次,隨著2006年Hinton提出的深度學習技術,以及2012年ImageNet競賽在影象識別領域帶來的突破,人工智慧再次迎來了烈火烹油式的爆發。特別是到了2016年,大資料技術的日臻成熟以及高效能運算和演算法的跨越式進步,為人工智慧的發展帶來了真正的動力。

高效能運算加速深度學習落地,GPU與FPGA各有所長

而這一次人工智慧熱潮的興起,與前兩次有著截然不同的本質區別,其中高效能運算應用加速能力的大幅提升功不可沒。在恆揚資料應用加速部門產品經理張軍看來,深度學習模型是構建在海量的資料和強有力超算能力基礎之上的,傳統計算架構已經無法支撐深度學習大規模平行計算需求,因此,通過底層應用加速計算過程結合深度學習演算法上的優化,是推動人工智慧整個產業鏈發展的重要環節。

目前針對深度學習的分散式加速主要有三種方式:GPU、FPGA和NPU。GPU是最先被引入深度學習領域的,我們熟知的阿爾法狗就是由1920個CPU+280個GPU搭建的超算平臺,作為最早看好深度學習應用加速的公司,英偉達是該領域當仁不讓的領導者,通過打造CUDA平臺,GPU在SIMD單指令多資料流架構中的優勢被全面激發,結合高平行計算和高計算吞吐的特點,GPU可以大規模適用於具備計算密集、高並行、SIMD應用等特點的深度學習訓練模型領域。目前,GPU已經在深度學習訓練模型領域開創性地建立了包含CNN、DNN、RNN、LSTM以及強化學習網路等演算法在內的應用加速平臺和完整的生態系統。

GPU雖火,但從技術上講,也有一定的侷限性。

首先,執行能效比不佳。相比較而言,執行深度學習演算法實現同樣的效能,GPU所需功耗遠大於FPGA,通常情況下,GPU只能達到FPGA能效比的一半或更低。

其次,應用過程中無法充分發揮平行計算優勢。深度學習包含兩個計算環節,即訓練(Off-line)和推理(On-line)環節。GPU在深度學習演算法模型訓練上非常高效,但在推理時一次性只能對於一個輸入項進行處理,平行計算的優勢不能發揮出來。

第三,硬體結構固定不具備可程式設計性。目前來看,深度學習演算法還未完全成熟,演算法還在迭代衍化過程中,若深度學習演算法發生大的變化,GPU無法像FPGA一樣可以靈活的配置硬體結構,快速切入市場。 而以上這些不足,恰恰可以通過FPGA加速的方式來彌補。

可以說,GPU和FPGA在加速深度學習演算法方面各有所長。 據張軍介紹,單純從效能角度來看,目前看FPGA的效能要弱於GPU,但FPGA在效能功耗比方面的表現卻非常驚豔,以恆揚NSA系列深度學習加速卡來看,效能功耗比可以做到70GFlops/W,是英偉達M4的2倍多,是Intel眾核晶片的5倍,優勢還是相當明顯的。這一點,對大型資料中心而言至關重要,可以節省大量伺服器部署及機房建設、用電成本。

從計算優勢來講,目前大家看到在深度學習模型訓練領域基本使用的是SIMD架構,即只需一條指令可以平行處理大量資料,這一點正好可以發揮GPU平行計算優勢,但是容易讓人忽略的是,在完成訓練模型後,深度學習還需要進行推理計算環節,即MISD單一資料需要用多條指令平行處理,而這部分計算,正是FPGA最為擅長的。

根據賽靈思全球戰略與市場營銷高階副總裁Steve Glasev介紹,他認為FPGA未來在超級資料中心將成主流應用,尤其是在深度學習方面,在這方面GPU強在訓練,而FPGA強在推斷。一旦需要大規模部署訓練模型,就必須大幅度提高效率,這需要新的推斷引擎來提升效率,比如3到4倍,同時還要最小限度損失精確性,這正是FPGA的強項。他預測,未來至少95%的機器學習計算都是用於推斷,只有不到5%是用於模型訓練,這是兩者的區別。

另外,不同架構的FPGA由於底層DSP有所不同,因此在不同領域的利用率和計算效率也有所不同。

從靈活性來說,GPU一旦設計完成就無法根據應用去調整硬體資源,但FPGA可以根據特定的應用給硬體程式設計,能針對任何新型應用和演算法進行硬體優化。正是這種特有的可重配置和可重程式設計特性,FPGA能在一秒之內快速切換成不同的設計方案,面對下一個工作負載進行硬體優化,成為超大規模資料中心應用提供高度靈活、複雜多變的和高能效的最佳計算方案。

打造深度學習生態閉環,為人工智慧賦能

作為第二代分散式計算聯盟創始成員以及OpenPower組織聯盟成員,恆揚資料與賽靈思、IBM在分散式計算領域有著深入密切合作。據恆揚資料張軍介紹,2015年起,恆揚就關注到在全球7大超級資料中心,特別是在機器學習、深度學習領域,FPGA會成為主流應用之一,今年10月百度宣佈設計出用以加速機器學習推斷的賽靈思 UltraScale FPGA池以及11月AWS大會上Amazon EC2 F1例項,更加堅定了我們的想法。

比如Amazon EC2 F1例項,它是第一個用於FPGA應用加速的可程式設計硬體雲實例,使用者可以選擇最高整合8塊高效能16nm Xilinx UltraScale+ VU9P FPGA的方式,將FPGA架設在雲端,類似於Vivado HLS/SDSoC remote server模式,使用者只需要購買雲服務,即可獲得相應的開發工具,包括整合深度學習主流框架的應用開發套件、應用函式庫、配置管理工具等等,進行開發、模擬、除錯、編譯等工作,定製FPGA硬體加速,從而大幅降低開發難度,縮減開發時間,讓雲服務使用者更加便捷地加速深度學習推斷、基因分析、金融分析、視訊處理、大資料、安全等工作負載。

目前,恆揚非常看好類似的應用,正在與國內的幾大資料中心展開聯手合作,我們致力於與賽靈思聯手,與超大資料中心進行深度合作,挖掘FPGA在深度學習中的潛能。

如果說與資料中心展開深入合作是恆揚建立深度學習生態圈組合拳的第一記重拳,那麼豐富自身演算法庫,與行業應用深入結合,形成完整的商業閉環,則是恆揚的第二記重拳。相比較而言,FPGA的開發難度是比較高的,它要求開發人員必需對底層硬體程式語言例如Verilog非常熟悉,即便是使用類C的OpenCL進行開發,對軟體開發人員而言,還是具有一定難度,因此必須整合快速開發工具、演算法庫、演算法框架整合包及參考設計樣板,為應用深度學習演算法開發人員和平臺設計人員提供最快速、最便捷的開發和部署途徑。目前,恆揚重點開發的演算法庫包括CNN卷積神經網路、壓縮演算法、視訊影象縮放等,下一步恆揚還將逐步完善對主流caffe、tensorflow演算法框架的支援,將體系進一步完善化。

在完善演算法的同時,將技術與行業緊密結合,打通商業閉環也是恆揚重點佈局的方向。FPGA的特性決定了它在某些特定行業應用上具有得天獨厚的優勢,例如在醫療領域,醫學影像比普通影象紋理更多,解析度更高,相關性更大,儲存空間要求更大,必須嚴格確保臨床應用的可靠性,其壓縮、分割等影象預處理、影象分析及影象理解等要求更高。這些特點恰恰可以充分發揮FPGA的優勢,通過FPGA加速影象壓縮排程,刪除冗餘,提高壓縮比、並確保影象診斷的可靠性。類似的醫療領域應用還有基因測序加速。

再比如在金融領域,由於採用流水線邏輯體系結構,資料流處理要求低延時,高可靠,這在金融交易風險建模演算法應用中是極大的關鍵點,FPGA正具備了此種優勢。類似的行業和領域還有很多,比如視訊轉碼直播、內容過濾、視訊安防等等。

除了在雲端構建恆揚深度學習生態圈外,對於特定的不適合放在雲端的終端應用,如無人機、自動駕駛、機器人,恆揚也開始逐步探索,我們相信,在智慧時代,FPGA會扮演越來越重要的角色,成為變革全球經濟的重要技術手段,更多地改變我們的學習、工作和娛樂方式。