當今的嵌入式系統設計人員有各種各樣的處理器類型可供選擇,與更熟悉的CPU(中央處理器)相比,FPGA(現場可編程門陣列)和GPU(圖形處理單元)增加了自己的各種優點和缺點。了解這些特性以及 FPGA 和 GPU 如何堆疊可以幫助系統集成商在選擇和安裝處理器時做出正確的選擇,既可以單獨使用,也可以與其他類型的處理器結合使用。
當今的嵌入式系統設計人員有各種各樣的處理器類型可供選擇,與更熟悉的CPU(中央處理器)相比,FPGA(現場可編程門陣列)和GPU(圖形處理單元)增加了自己的各種優點和缺點。了解這些特性以及 FPGA 和 GPU 如何堆疊可以幫助系統集成商在選擇和安裝處理器時做出正確的選擇,既可以單獨使用,也可以與其他類型的處理器結合使用。
FPGA 是算法的硬件實現,由于硬件實現通常比軟件實現運行得更快,因此它們的性能非常好。與 FPGA 不同,GPU 執行軟件;與 FPGA 的硬件實現相比,執行復雜算法需要許多順序 GPU 指令。GPU 的優點是其高內核數,這使得某些并行算法的運行速度比 CPU 快得多,尤其是那些使用浮點計算的算法。1,000 核 GPU 每個時鐘周期可以運行 1,000 次浮點計算。對于信號和圖像處理應用,GPU 是自然而然的選擇。對于高度并行的數學密集型應用,GPU 性能通常優于 CPU,并且在每瓦性能方面接近與 FPGA 相當。
從歷史上看,FPGA 的一個缺點是,與 CPU 和 GPU 相比,它們更難編程。CPU軟件通常使用許多現成的編程語言之一進行編程,例如Java,C或Python。FPGA 使用硬件描述語言 (HDL) (如 Verilog)或超高速集成電路硬件描述語言 (VHDL) 進行編程,后者直接轉換為 FPGA 邏輯單元。GPU 通常使用軟件框架進行編程,使用戶不必專門為 GPU 編寫代碼;相反,代碼是在高級別編寫的。FPGA也是如此:軟件開發框架正在被設計為無需HDL(硬件描述語言)即可實現FPGA編程。FPGA 供應商已經提供了框架,并在其開發環境中構建了工具包,從而消除了對直接 HDL 編程的需求。
異構性/結構連接
嵌入式應用通常需要結合 CPU、FPGA 和 GPU 元素的異構系統架構。雖然傳統的嵌入式應用可能包括單個 CPU 和 GPU 處理元件,但一些處理器密集型平臺集成了多個 CPU、GPU 和 FPGA 引擎,這些引擎在通過高速 PCI Express (PCIe) 或以太網結構背板連接的單個或多個獨立卡上實現,以并行通信和執行任務。或者,NVIDIA提供的一些最新的獨立GPU加速模塊(即Jetson AGX Xavier)在單個系統模塊(SoM)上集成了六個不同的計算引擎,其中包括CPU,GPU,深度學習加速器,視覺加速器,多媒體引擎等。基于這項技術的堅固耐用的商用現貨(COTS)系統的一個例子是Curtiss-Wright的Parvus DuraCOR AGX Xavier小型模塊化任務計算機,它集成了Jetson AGX Xavier的NVIDIA CUDA核心加速圖形處理,人工智能/深度學習推理和邊緣計算功能。(見上文,圖 1。
FPGA 的一個重要特性是其任意 I/O 連接,使其能夠在沒有主機 CPU 的情況下連接到傳感器、網絡或存儲設備。例如,高端雷達系統可能需要許多離散處理元件和計算階段來支持多個高速數據輸入;在這種情況下,FPGA具有一些優勢,因為它們可以直接連接到這些高速傳感器并提供非常高的帶寬。
延遲和確定性
隨著總線速度的提高,預計較新的 CPU 和 GPU 的延遲會降低;但是,FPGA 的延遲更具確定性。對于FPGA,延遲約為1μs是可行的,而CPU延遲往往在50μs左右。
在系統而不是傳統操作系統上使用實時操作系統 (RTOS) 可能有助于確定性,但不一定提供更好的延遲。換句話說,使用 RTOS 可以更好地了解處理器的執行速度,但不一定會導致更快的執行速度。
在為特定應用選擇特定處理器時,許多變量都在起作用。在任何新設計計劃開始時,咨詢您信任的供應商的系統架構師會很有幫助,他們會解決這些問題并每天做出這些類型的決策。正確的選擇可以改變一切。
審核編輯:郭婷
-
處理器
+關注
關注
68文章
19165瀏覽量
229138 -
FPGA
+關注
關注
1626文章
21667瀏覽量
601864 -
gpu
+關注
關注
28文章
4701瀏覽量
128708
發布評論請先 登錄
相關推薦
評論