當前位置:編程學習大全網 - 編程語言 - 為什麽在FPGA上使用OpenCL

為什麽在FPGA上使用OpenCL

對異構計算的需求導致出現了新程序語言,推動新硬件的開發。壹個例子就是蘋果公司首創的OpenCL。OpenCL是壹種編程框架,可在異構平臺(包括CPU、GPU、DSP、FPGA和其他類型的處理器)上執行。OpenCL包括壹種開發核心程序(在硬件器件上執行的功能)以及定義和控制各種平臺的應用程序接口(API)的語言。OpenCL支持基於任務的並行計算以及基於數據的並行計算。

在過去十年左右,處理器硬件頻率遇到了所謂的功率墻,使得處理器無法進壹步提高頻率。近幾年中,您最後壹次聽說英特爾等CPU制造商以時鐘速度宣傳處理器性能是什麽時候?相反,CPU制造商壹直都在忙著往CPU中添加更多的處理內核,增強其指令集,保證系統可以同時執行多條指令,提高程序執行速度,而無需提高時鐘頻率。軟件公司也壹直忙於開發壹種通過計算機代碼組(即“線程”)以真正的並行方式執行程序的軟件。在並行計算中,線程是在單獨的處理器內核,而不是以前的偽並行處理器(線程不是在單獨的處理器內核上執行,而是被操作系統進行了時間分割,表面上看是並行運行的)上執行的。

FPGA在本質上是並行的,因此,與OpenCL並行計算能力完全吻合。FPGA提供了壹種流水線並行方法,可通過在任務中應用推拉配置,利用先前任務中的不同數據(無論是否存在主機交互)完成任務。這是典型數據級並行或任務並行的又壹選擇。OpenCL支持您在熟悉的C程序語言環境中,利用OpenCL提供的多種功能來編寫代碼。您無需學習FPGA設計人員的底層HDL編碼工作,即可將這些內核程序發送至FPGA。通常,使用OpenCL編寫FPGA代碼,可以為軟件開發人員和系統設計人員帶來壹些優勢。

? 簡單方便的進行開發:大多數軟件開發人員都對C編程語言十分熟悉,而對低層HDL語言並不十分了解。OpenCL使您能夠在更高層面上編程,讓更多的軟件開發人員都能采用您的系統。

? 代碼分析:您可以使用OpenCL分析代碼,確定性能關鍵的部分,通過FPGA中的內核進行硬件加速。

? 性能:每瓦性能指標是系統設計的最終目標。使用FPGA,您可以在高能效解決方案中均衡的實現高性能。

? 效率:FPGA是壹種精細粒度並行體系結構,使用OpenCL,只生成所需要的邏輯,功耗是其他硬件方案的五分之壹。

? 異構系統:使用OpenCL,可以針對FPGA、CPU、GPU和DSP無縫開發內核程序,從而實現真正的異構系統設計。

? 代碼重用:軟件開發的“聖杯”是實現代碼重用。通常,代碼重用是軟件開發人員和系統設計人員難以企及的目標。OpenCL內核支持代碼移植,可用於不同項目、不同系列、不同代的FPGA,延長代碼的生命周期。

目前,OpenCL是由技術聯盟科納斯組織負責開發和維護的。大多數FPGA制造商都可以為FPGA的OpenCL開發提供軟件開發套件(SDK)。

  • 上一篇:軟件開發前景怎麽樣(軟件開發未來發展前景)
  • 下一篇:脈沖是如何控制伺服電機的
  • copyright 2024編程學習大全網