在很多大型計算數據中心需要完成超大規模的數據處理,這意味著需要大量的計算,因此對于系統性能的要求則不斷提升,最開始我們不斷提升處理器的運行頻率、增加處理器核心數量、采用更多的進程服務,但是這些方法會帶來一些其他的問題,比如功耗的增加需要配備更大成本更高的電源、散熱量顯著增加則需要設置更大更好的散熱片或者風扇,這些問題無疑增加了成本。因此最好的方式就是采用FPGA實現硬件加速,然而很多軟件工程師對于硬件開發語言VHDL/Verilog不熟悉無法實現開發流程上的銜接,因此Xilinx推出了全新的SDSoC開發環境,軟件工程使用C/C++語言就可以實現FPGA的硬件加速。
圖1:Xilinx SDSoC從軟件到硬件的開發流程
SDSoC提供給用戶的是一個可以用來完成整個Zynq SoC和MPSoC開發的基于Eclipse的軟件環境,這個環境對那些已經在使用DSP芯片、視頻SoC 和CPU處理器的嵌入式開發人員來說是在熟悉不過的。SDSoC的核心技術則是界首創的全系統優化編譯器,這個編譯器,不僅可以針對基于ARM的處理器系統,也可以針對片內的可編程邏輯。SDSoC開發環境旨在為系統架構師以及軟件開發團隊提供一個可以使用C / C ++來快速配置,并同步生成構建系統所需的各類軟硬件架構的可能。軟硬件統一的編譯器,可以從系統視角出發,帶來最佳的系統構建與連接,優化的存儲器接口和軟件驅動等。如下圖所示是采用SDSoC實現的不同實例的性能提升效果:
不同實例帶來的性能提升:
雙目(攝像頭)圖像采集與3D顯示——292倍
視頻的Sobel濾波處理——30倍
二值神經網絡——1000倍
對于再好的CPU處理器或者更多核心的處理器也很難帶來性能上1000倍的提升,即使30倍也是一大瓶頸,因此無論我們怎樣絞盡腦汁優化C/C++代碼在傳統處理器上性能提升的效果也是非常有限的,所以采用“Xilinx SDSoC + All Programmable SoC + C/C++”才是最佳的解決方案。
-
神經網絡
+關注
關注
42文章
4811瀏覽量
103056
發布評論請先 登錄
評論