現場可編程門陣列 (FPGA) 以加速人工智能/機器學習應用而聞名,但它是如何在 FPGA 中實現的,有哪些不同的方法?讓我們探索工程師的設計空間。
人工智能 (AI) 是云和邊緣應用程序中的熱門話題。在許多情況下,人工智能可以實現更安全、更高效和安全的系統。人工智能已經存在很長時間了,它于 1956 年由約翰·麥卡錫 (John McCarthy) 在第一次人工智能會議召開時首次使用。雖然幾十年來進行了大量研究,但僅在最近 5 到 10 年,人工智能系統才從實驗室和研究轉移到產品路線圖和產品中。
在云和邊緣環境中,部署最廣泛的 AI 形式之一是機器學習 (ML)。機器學習是對計算機算法的研究,它允許計算機程序通過經驗自動改進。這方面的一個例子是為 ML 網絡提供帶有標簽的圖像數據集。機器學習算法識別圖像的特征和元素,以便在輸入新的未標記的、以前未見過的圖像時,ML 算法確定圖像包含任何已學習特征和元素的可能性??梢杂柧毚祟?ML 算法來檢測圖像中的對象、處理語音中的關鍵字以及分析傳感器數據的異常情況。典型應用包括視覺引導機器人、車輛自主操作以及工業和安全關鍵系統的預測。
因此,ML 學習算法分為兩個要素,第一個是針對訓練數據集對網絡進行訓練。第二個是訓練網絡領域的部署,這些元素分別稱為訓練和推理。訓練準確的模型需要一個帶標簽的大型數據集,并且通常在基于云的 GPU 上執行以加速訓練過程。設計工程師可以跨從 MCU 到 GPU 和 FPGA 的一系列技術部署訓練有素的網絡。
在 FPGA 中嵌入 AI
幾個非常流行的框架——Caffe、TensorFlow。和 Pytorch——幫助訓練和部署 AI/ML 系統。這些框架用于網絡定義、訓練和推理。
許多基于邊緣的人工智能系統的關鍵要素之一是能夠在確定的時間范圍內執行推理。例如,自動駕駛汽車必須快速檢測車輛、障礙物和行人以防止碰撞。這需要一個既響應又確定的解決方案,響應是因為傳感器數據必須以最小延遲快速處理,確定是因為每個輸入的響應時間必須相同并且不依賴于系統操作條件或資源使用,例如,使用共享 DDR 內存會減慢響應時間。
由于響應性和確定性的要求,基于邊緣的解決方案的開發人員通常以 FPGA 或基于異構 SoC 的解決方案為目標。這些為開發人員提供了可編程邏輯,是實現機器學習網絡的理想選擇,因為它的并行特性支持響應式應用程序和非常確定的解決方案。
在可編程邏輯中實現 ML 推理時,可以采用兩種方法。在使用浮點數學開發和訓練神經網絡時,無論采用哪種方法,FPGA 或異構 SoC 中的實現通常都使用定點實現。從浮點數到定點數的轉換過程稱為量化,推理精度會略有下降;然而,對于大多數應用程序,可以使用量化的權重和激活來執行額外的訓練以恢復準確性。
第一種方法直接在可編程邏輯中實現神經網絡。為推理訓練的權重被加載到網絡中。這可以在運行時或在設計的編譯/綜合期間實現。
這些神經網絡的一個例子是 AMD-Xilinx FINN 網絡,它可用于在 FPGA 中實現量化神經網絡。這些量化神經網絡被實現為具有二進制權重和兩位激活的量化神經網絡。
有了量化神經網絡,神經網絡可以在 FPGA 中實現,資源更少,因為不需要外部 DDR 或 SoC 支持。使該方法成為空間、組件和成本非常寶貴的受限開發的理想選擇。雖然它需要更多的專業知識才能集成到整體解決方案中,但它可能非常有效??赡苁褂么祟惙椒ǖ牡湫褪纠赡苁枪I機械的預測,例如軸承磨損或振動等。
在 FPGA 邏輯中使用神經網絡直接實現的替代方法是使用高度專業化的神經網絡加速器。神經網絡加速器在可編程邏輯中實現,并與具有高帶寬鏈路的 DDR 存儲器以及異構 SoC 中的專用處理器緊密耦合。
在使用神經網絡加速器的應用程序中,它們由軟件應用程序提供網絡和權重/激活和偏差。因此,這使得 ML 推理更容易集成到整個應用程序中。神經網絡加速器的一個例子是 AMD-Xilinx 深度學習單元,它可以與 Pytorch、Caffe 和 TensorFlow 中定義的網絡一起工作,并為應用程序執行所有量化、再訓練和程序生成。這樣可以更輕松地集成到正在開發的應用程序中。這種方法的典型應用是基于視覺的高性能應用,例如視覺引導機器人、智能城市解決方案,當然還有提高汽車 SAE 自主水平。
最高的準確性和性能來自于使用專門的神經網絡加速器,并且易于集成通常提供更好的整體解決方案。因此,這種方法被多家供應商用于他們的 AI 解決方案。這種方法更容易與更高級別的軟件框架和抽象堆棧集成,這是利用整體性能的關鍵,因為 AI 通常只是整體解決方案的一小部分(但很重要)。
最后的想法
很多時候,選擇哪種解決方案取決于最終應用,即使 AI 可能是主要的營銷元素。在現實世界中,人工智能通常只是整個解決方案的一小部分,因為傳感器接口、預處理、執行器驅動和構成解決方案的其他元素也會有自己的限制和要求。
可編程邏輯使開發人員能夠構建具有響應性和確定性的 AI/ML 解決方案。通過將這些解決方案與行業標準框架相結合,開發人員可以使云和邊緣 AI/ML 應用程序更安全、更高效、更安全。
審核編輯黃昊宇
-
FPGA
+關注
關注
1608文章
21367瀏覽量
594633
發布評論請先 登錄
相關推薦
評論