透過 FPGA 協同處理器實現深度更深、速度更快的學習
對眾多產業而言,深度學習是一項顛覆性技術,但是其運算需求遠大於標準 CPU。這個問題導致開發者考慮替代架構,不過要從熟悉的 CPU 轉移至更深奧的設計極具挑戰,實非易事。與其翻新現有的基礎結構以支援深度學習,相關組織不如改採混合式 CPU + FPGA 運算架構。
即使從效能觀點來看,也有多個讓人不要全面放棄 CPU 的合理理由。首先,許多此類處理器可有效執行隔離式深度學習的推斷工作負載,因為個別推斷屬於循序運算。但當推斷運算批次或大量出現時,CPU 就難以跟上需求。
GPU 和其他大規模平行架構為循序處理提供替代方案。大規模平行處理十分適合批次處理推斷工作負載,以及具有大量輸入資料集的深度學習模型之訓練。
當然,平行運算通常不足以應付循序處理。針對需要快速循序推斷的應用,例如自動駕駛汽車的電腦視覺,以及其他要求時效性的應用上,GPU 不盡理想。
為了同時滿足低量推斷和大批次處理的要求,整合 FPGA 和多核心 CPU 的裝置是具有吸引力的選項。由於 FPGA 原本即具有大規模平行的性質,因此能夠隨時準備好執行大量深度學習批次。於此同時,CPU 則可處理較小量的循序運算。另外一種方式是讓 FPGA 和 CPU 分擔工作負載,藉此優化類神經網路的效率。
由於這種異質架構具有架構靈活性,所以不必修改現有運算基礎結構就能達成最佳化。
利用 FPGA 實現 AI 加速:內嵌與協同處理
為深入瞭解 FPGA 如何加速深度學習,讓我們看看 FPGA 如何做為內嵌與協同處理運算元素,與多核心 CPU 共同運作,。
做為內嵌處理器,FPGA 位於 CPU 前方並執行資料篩選之類的預處理工作,然後再將輸出傳遞出去進行後續運算。如同圖 1 所示,視覺系統可使用 FPGA 進行內嵌篩選或閥值分割,然後再將像素傳送至 CPU。由於 CPU 僅處理經 FPGA 決定的感興趣區域之像素,因此可增加整體系統輸送量。
做為協同處理器,FPGA 分擔 CPU 的運算工作負載。工作負載可透過多種方式處理,例如讓 FPGA 先執行平行處理,再將輸出傳送回 CPU,或是讓 FPGA 執行所有處理,以便 CPU 專注於通訊和控制工作。
讓我們繼續以電腦視覺為例,圖 2 顯示工作負載如何透過直接記憶體存取 (DMA) 在 FPGA 和 CPU 之間分配。
綜上所述,使用 FPGA 搭配多核心 CPU 能夠滿足低量推斷與較大規模批次處理的需求,同時增加系統輸送量。不過,開發者要能夠在對其現有基礎結構造成最小影響的情況下,才能採用此類解決方案。
新 FPGA 帶來效能躍進和整合彈性
Intel® Stratix® 10 FPGA 提供深度學習效能的加速之道,並可與已部署系統簡便整合。此款 FPGA 可整合最多 550 萬個邏輯元件與一個四核心 64 位元 Arm Cortex-A53 CPU。此外還可提供可程式化 I/O 腳位讓 FPGA 輕鬆接合標準網路與運算技術。
就效能方面而言,Intel Stratix 10 裝置在設計上使用全新 Intel® HyperFlex™ FPGA 架構。這個架構引入超暫存器技術,將可繞道暫存器置於裝置核心的每個路由區段和所有功能模塊輸入(圖 3)。
可繞道暫存器全面優化 FPGA 網狀架構的資料流,有助晶片達到最大效能。因此,相較於前代 FPGA,Intel Stratix 10 裝置可提供兩倍時脈速度,且耗電量減少百分之 70。這項卓越成就讓 FPGA 十分適用於高度要求效能但電源受限的應用上。
就平台整合而言,Intel Stratix 10 FPGA 裝置支援循序與平行快閃介面。此類記憶體在網路平台中甚為常見,對於深度學習極為有用,因為它們可讓開發者選擇最適合其工作負載的配置。舉例來說,Terasic, Inc. 的 DE10-Pro Stratix 10 GX/SX PCIe 主機板可支援各種應用上的多種記憶體類型(圖 4):
- QDR-IV 記憶體模組適用於高頻寬、低延遲的各種應用
- QDR-II+ 記憶體模組適用於低延遲記憶體讀/寫
- DDR4 適用於需要最大記憶體容量的各種應用
DE10-Pro includes x16 PCIe 第 3 代線道可實現高達 128 Gbp 的晶片間資料傳輸速度,四個 QSFP28 連接器全都支援 100 Gigabit 乙太網路。這些介面提供龐大的資料卸載能力,以及快速讀寫記憶體存取。在伺服器或資料中心環境中,這代表工作負載可由運算庫和記憶體資源分擔,以視需求提升深度學習效能。
最後,從軟體的角度觀之,DE10-Pro Stratix 10 GX/SX PCIe 主機板支援 Intel® Open Visual Inference & Neural Network Optimization (Intel® OpenVINO™) 工具組。OpenVINO 是異質執行架構的開發套件,以通用 API 為基礎,抽離 FPGA 程式設計的複雜性。
OpenVINO 包含功能庫、核心和 OpenCV 與 OpenVX 優化呼叫,在電腦視覺與深度學習工作負載方面,展現高達 19 倍的效能強化(圖 5)。
迅捷加速
深度學習工作負載在技術產業促進全面創新,對於資料處理市場尤其影響重大。業界目前正在研究各種新方法,使用專為類神經網路執行所設計的處理器來運算深度學習工作負載。
FPGA 搭載整合式多核心 CPU 提供靈活性與效能,在能夠達成最高輸送量的情況、時機與方式之下,執行深度學習工作負載。無論在人工智慧、次世代網路或任何可使用高效能運算 (HPC) 處理的市場,此產品都能提供因應未來需求的移轉路徑。