FPGA在深度學習應用中或将取代GPU
本文來源:AI前線
作者 | Ben Dickson 譯者 | 大小非
人工智能的興起觸發了市場對 GPU 的大量需求,但 GPU 在 AI 場景中的應用面臨使用壽命短、使用成本高等問題。現場可程式設計門陣列 (FPGA) 這一可以定制化硬體處理器反倒是更好的解決方案。随着可程式設計性等問題在 FPGA 上的解決,FPGA 将成為市場人工智能應用的選擇。

現場可程式設計門陣列 (FPGA) 解決了 GPU 在運作深度學習模型時面臨的許多問題
現場可程式設計門陣列 (FPGA) 解決了 GPU 在運作深度學習模型時面臨的許多問題
在過去的十年裡,人工智能的再一次興起使顯示卡行業受益匪淺。英偉達 (Nvidia) 和 AMD 等公司的股價也大幅上漲,因為事實表明,它們的 GPU 在訓練和運作 深度學習模型 方面效果明顯。實際上,英偉達也已經對自己的業務進行了轉型,之前它是一家純粹做 GPU 和遊戲的公司,現在除了作為一家雲 GPU 服務提供商外,英偉達還成立了專業的人工智能研究實驗室。
不過,機器學習軟體公司 Mipsology 的首席執行官兼聯合創始人盧多元奇•拉祖爾 (Ludovic Larzul) 表示,GPU 還存在着一些缺陷,這使其在 AI 應用中面臨着一些挑戰。
Larzul 表示,想要解決這些問題的解決方案便是實作現場可程式設計門陣列 (FPGA),這也是他們公司的研究領域。FPGA 是一種處理器,可以在制造後定制,這使得它比一般處理器更高效。但是,很難對 FPGA 進行程式設計,Larzul 希望通過自己公司開發的新平台解決這個問題。
專業的人工智能硬體已經成為了一個獨立的産業,但對于什麼是深度學習算法的最佳基礎設施,人們仍然沒有定論。如果 Mipsology 成功完成了研究實驗,許多正受 GPU 折磨的 AI 開發者将從中受益。
GPU 深度學習面臨的挑戰
三維圖形是 GPU 擁有如此大的記憶體和計算能力的根本原因,它與 深度神經網絡 有一個共同之處:都需要進行大量矩陣運算。
顯示卡可以并行執行矩陣運算,極大地加快計算速度。圖形處理器可以把訓練神經網絡的時間從幾天、幾周縮短到幾小時、幾分鐘。
随着圖形硬體公司供貨的不斷增加,GPU 在深度學習中的市場需求還催生了大量公共雲服務,這些服務為深度學習項目提供強大的 GPU 虛拟機。
但是顯示卡也受硬體和環境的限制。Larzul 解釋說:“神經網絡訓練通常是在一個确定的環境中進行的,運作神經網絡的系統會在部署中遇到各種限制——這可能會對 GPU 的實際使用造成壓力。”
GPU 需要大量的電力,會産生大量的熱量,并需要使用風扇冷卻。當你在台式工作站、筆記本電腦或機架式伺服器上訓練神經網絡時,這不是什麼大問題。但是,許多部署深度學習模型的環境對 GPU 并不友好,比如自動駕駛汽車、工廠、機器人和許多智慧城市環境,在這些環境中硬體必須忍受熱、灰塵、濕度、運動和電力限制等環境因素。
Larzul 說:“在一些關鍵的應用場景中,比如智慧城市的視訊監控,要求硬體暴露在對 GPU 有不利影響的環境因素 (比如太陽) 下。“ GPU 受半導體技術的限制,導緻它們在高溫下運作時需要及時冷卻,而這并不總是可以實作的。要做到這點需要更多的電力、維護成本等。”
使用壽命也是一個問題。一般來說,GPU 的使用 壽命約為 2-5 年,這對那些每隔幾年就換一次電腦的玩家來說不是什麼大問題。但在其他領域,如汽車行業,需要硬體有更高的耐用性,這就帶來了問題。特别是過多的暴露在惡劣的環境中,再加上高強度的使用,GPU 的使用壽命将會更短。
Larzul 說:“從商業可行性方面考慮,自動駕駛汽車等應用可能需要多達 7-10 個 GPU(其中大多數會在不到四年的時間内失效),對于大多數購車者來說,智能或自動駕駛汽車的成本将變得不切實際。”
機器人、醫療保健和安全系統等其他行業也面臨着類似的挑戰。
FPGA 和深度學習
FPGA 是可定制的硬體裝置,可對其元件進行調節,是以可以針對特定類型的架構 (如 卷積神經網絡) 進行優化。其可定制性特征降低了對電力的需求,并在運算速度和吞吐量方面提供了更高的性能。它們的使用壽命也更長,大約是 GPU 的 2-5 倍,并且對惡劣環境和其它特殊環境因素有更強的适應性。
有一些公司已經在他們的人工智能産品中使用了 FPGA。微軟 就是其中一家,它将基于 FPGA 的機器學習技術作為其 Azure 雲服務産品的一部分來提供。
不過 FPGA 的缺陷是難于程式設計。配置 FPGA 需要具備硬體描述語言 (如 Verilog 或 VHDL) 的知識和專業技能。機器學習程式是用 Python 或 C 等進階語言編寫的,将其邏輯轉換為 FPGA 指令非常困難。在 FPGA 上運作 TensorFlow、PyTorch、Caffe 和其他架構模組化的神經網絡通常需要消耗大量的人力時間和精力。
“要對 FPGA 進行程式設計,你需要組建一支懂得如何開發 FPGA 的硬體工程師團隊,并聘請一位了解神經網絡的優秀架構師,花費幾年時間去開發一個硬體模型,最終編譯運作在 FPGA 上,與此同時你還需要處理 FPGA 使用效率和使用頻率的問題。“Larzul 說。此外你還需要具備廣泛的數學技能,以較低的精度準确地計算模型,并需要一個軟體團隊将 AI 架構模型映射到硬體架構。
Larzul 的公司 Mipsology 希望通過 Zebra 來彌合這一差距。Zebra 是一種軟體平台,開發者可以輕松地将深度學習代碼移植到 FPGA 硬體上。
Larzul 說:“我們提供了一個軟體抽象層,它隐藏了通常需要進階 FPGA 專業知識的複雜性。”“隻需加載 Zebra,輸入一個 Linux 指令,Zebra 就可以工作了——它不需要編譯,不需要對神經網絡進行任何更改,也不需要學習任何新工具。不過你可以保留你的 GPU 用于訓練。”
Zebra 提供了将深度學習代碼轉換為 FPGA 硬體指令的抽象層
AI 硬體前景
Mipsology 的 Zebra 平台是開發者探索在 AI 項目中使用 FPGA 的 衆多方案之一。Xilinx 是 FPGA 領域的上司者,已經開發了 Zebra 并将其內建到了電路闆中。其他公司,如谷歌和特斯拉,也正積極的為其開發專用的 AI 硬體,用于自己的雲産品和邊緣計算産品環境中。
神經形态晶片 方面也有着一些發展,這是一種專門為神經網絡設計的計算機架構。英特爾在神經形态計算領域處于領先地位,已經開發了幾種模型架構,不過該領域仍處于早期發展階段。
還有專門用于特定應用的內建電路 (ASIC),即專為某一特定人工智能需求制造的晶片。但 ASIC 缺乏 FPGA 的靈活性,無法重新程式設計。
Larzul 最後說,“我們決定專注于軟體業務,探索研究提升神經網絡性能和降低延遲的方案。Zebra 運作在 FPGA 上,是以無需更換硬體就可以支援 AI 推理。FPGA 固件的每次重新整理都能給我們帶來更高的性能提升,這得益于其高效性和較短的開發周期。另外,FPGA 的可選擇方案很多,具有很好的市場适應性。”
完
後續會持續更新,帶來Vivado、 ISE、Quartus II 、candence等安裝相關設計教程,學習資源、項目資源、好文推薦等,希望大俠持續關注。
江湖偌大,繼續闖蕩,願大俠一切安好,有緣再見!