Skip to main content

透過 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 決定的感興趣區域之像素,因此可增加整體系統輸送量。

圖 1. 做為內嵌處理器,FPGA 可在資料傳至 CPU 之前先行篩選,有助增加整體系統輸送量。(資料來源:National Instruments

做為協同處理器,FPGA 分擔 CPU 的運算工作負載。工作負載可透過多種方式處理,例如讓 FPGA 先執行平行處理,再將輸出傳送回 CPU,或是讓 FPGA 執行所有處理,以便 CPU 專注於通訊和控制工作。

讓我們繼續以電腦視覺為例,圖 2 顯示工作負載如何透過直接記憶體存取 (DMA) 在 FPGA 和 CPU 之間分配。

圖 2. FPGA 協同處理器可以透過直接記憶體存取 (DMA) 分享 CPU 的工作負載,釋出 CPU 空間以進行其他工作。(資料來源:National Instruments

綜上所述,使用 FPGA 搭配多核心 CPU 能夠滿足低量推斷與較大規模批次處理的需求,同時增加系統輸送量。不過,開發者要能夠在對其現有基礎結構造成最小影響的情況下,才能採用此類解決方案。

新 FPGA 帶來效能躍進和整合彈性

Intel® Stratix® 10 FPGA 提供深度學習效能的加速之道,並可與已部署系統簡便整合。此款 FPGA 可整合最多 550 萬個邏輯元件與一個四核心 64 位元 Arm Cortex-A53 CPU。此外還可提供可程式化 I/O 腳位讓 FPGA 輕鬆接合標準網路與運算技術。

就效能方面而言,Intel Stratix 10 裝置在設計上使用全新 Intel® HyperFlex FPGA 架構。這個架構引入超暫存器技術,將可繞道暫存器置於裝置核心的每個路由區段和所有功能模塊輸入(圖 3)。

圖 3. 超暫存器將暫存器置於每個路由區段和所有功能模塊輸入,加倍時脈頻率。(資料來源:Intel® 公司)

可繞道暫存器全面優化 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 適用於需要最大記憶體容量的各種應用

圖 4. Terasic, Inc. 的 DE10-Pro Stratix 10 GX/SX PCIe 主機板支援不同的深度學習使用案例中,所使用的多種記憶體類型。(資料來源:Terasic, Inc.

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)。

圖 5. Open Visual Inference & Neural Network Optimization (OpenVINO) 工具組展現強大的效能優化。(資料來源:Intel® 公司

迅捷加速

深度學習工作負載在技術產業促進全面創新,對於資料處理市場尤其影響重大。業界目前正在研究各種新方法,使用專為類神經網路執行所設計的處理器來運算深度學習工作負載。

FPGA 搭載整合式多核心 CPU 提供靈活性與效能,在能夠達成最高輸送量的情況、時機與方式之下,執行深度學習工作負載。無論在人工智慧、次世代網路或任何可使用高效能運算 (HPC) 處理的市場,此產品都能提供因應未來需求的移轉路徑。

作者簡介

Brandon is a long-time contributor to insight.tech going back to its days as Embedded Innovator, with more than a decade of high-tech journalism and media experience in previous roles as Editor-in-Chief of electronics engineering publication Embedded Computing Design, co-host of the Embedded Insiders podcast, and co-chair of live and virtual events such as Industrial IoT University at Sensors Expo and the IoT Device Security Conference. Brandon currently serves as marketing officer for electronic hardware standards organization, PICMG, where he helps evangelize the use of open standards-based technology. Brandon’s coverage focuses on artificial intelligence and machine learning, the Internet of Things, cybersecurity, embedded processors, edge computing, prototyping kits, and safety-critical systems, but extends to any topic of interest to the electronic design community. Drop him a line at techielew@gmail.com, DM him on Twitter @techielew, or connect with him on LinkedIn.

Profile Photo of Brandon Lewis