微軟 22 日發表 Project Brainwave,一個基於 FPGA 的低延遲深度學習雲端平台。微軟官方評測顯示,當使用英特爾 Stratix 10 FPGA,Brainwave 不需要任何 batching 就能在大型 GRU(gated recurrent unit)達 39.5 Teraflops 的效能。
微軟表示,該系統為即時 AI 設計──這意味著,它能以極低的延遲在接收資料後立刻處理要求。由於雲端基礎設施需要處理即時資料流,不管是搜尋要求、影片、感測器資料流還是用戶互動,即時 AI 正在變得越來越重要。
Project Brainwave 的系統可分為三層面:
- 高效能分散式系統架構。
- 整合到 FPGA 硬體上的深度神經網路(DNN)引擎。
- 能 low-friction 部署已訓練模型的編譯器和 runtime。
第一點,Project Brainwave 利用微軟數年建立起來的 FPGA 基礎設施。透過把高效能 FPGA 連線到資料中心網路,微軟可為 DNN 提供硬體微服務支援──把一個 DNN 加載到遠端 FPGA,再由一個 loop 中沒有軟體的伺服器呼叫。這套系統架構既降低延遲,因為 CPU 不需要處理傳來的要求;也能達到非常高的吞吐率,FPGA 處理要求的速度能達到網路接受要求的速度。
第二點,Project Brainwave 使用一個非常強大的「軟」DNN 處理單元(即 DPU),並整合到可購買的 FPGA 中。
有許多公司,包括大企業和初創公司,正在開發「硬化」的 DPU。雖然很多晶片有很高的峰值效能,它們卻必須要在設計時就選擇運算子和資料類別,這限制了彈性。Project Brainwave 採取另一條路,提供一個橫跨多種資料類別的設計。理想的資料類別可以在合成時間(synthesis-time)選擇。該設計整合 FPGA 上的 ASIC 數位訊號處理模組與合成邏輯,提供更多、數量上更最佳化的功能單元。該方法在兩個層面上利用了 FPGA 的彈性。首先,定義了高度自訂、窄精度的資料類別,藉此在不犧牲模型精度的情況下提升效能。第二,可把研究創新快速整合到硬體平台設計──通常是幾個星期,這在快速發展的領域特別必要。做為結果,實現了不弱於這些硬編碼 DPU 晶片的效能。
第三點,Project Brainwave 內建一個支援各種深度學習框架的軟體堆。微軟已支援 Microsoft Cognitive Toolkit(註:改名後的 CNTK)和 Google 的 Tensorflow,並計劃相容更多框架。還定義一個基於圖片的中間表達,能轉化常見框架上訓練的模型,編譯到高效能基礎設施。