異構開發

異構計算被視為計算機處理器繼單核、多核之後的第三個時代,它將實現使用不同類型指令集和體系架構的計算單元,比如CPUGPU之間的“協同計算、彼此加速”,從而突破CPU發展的瓶頸,有效解決能耗、可擴展性等問題。

概念,異構平台對比(GPU FPGA DSP),OpenCL,

概念

異構計算被視為計算機處理器繼單核、多核之後的第三個時代,它將實現使用不同類型指令集和體系架構的計算單元,比如CPUGPU之間的“協同計算、彼此加速”,從而突破CPU發展的瓶頸,有效解決能耗、可擴展性等問題。

異構平台對比(GPU FPGA DSP)

GPU在圖像處理方面進行了專門的最佳化,個人認為可以作為協處理器,套用場景主要在於娛樂等對視覺效果要求較高的方面。
dsp 的優勢在於處理速度快,靈活性高,便於調試和系統升級。DSP專用性較強,數字處理方面比前兩者要優勢更多些。但控制能力較弱,不過這個弱點也在後續發展中慢慢的增強,比如增加外部設備控制部分等。在高速運算場景還是必備的晶片。但是它的主頻到1.2G 已經很難上去的,能做的只是多核 和 協處理器。
而fpga則時序控制精準,固定模組的設計最好採用fpga,比較穩定,但調試起來不是太靈活。fpga只適合做一些prototye,或者一些低速率的東西。
嵌入式計算看好cpu+dsp的soc,通用計算不清楚,目前看來cpu+gpu比較流行。

OpenCL

openCL可以提供比CUDA更細的控制粒度,而且它提供的是利用GPU做通用計算,相比CUDA的圖形接口更加通用,而且可以支持其他硬體設備,如FPGA等。關於CUDA和OpenCL的關係,其實CUDA是一個架構,類似於CPU里的x86,而OpenCL是一個API,類似DirectX和OpenGL,
CUDA架構最主要的包含兩個方面:一個是ISA指令集架構;第二硬體計算引擎。對於編程人員他可以選擇不同的方式來進行編程,他們可以選擇OpenCL API編程也可以選擇C for CUDA語言來編程。而就C for CUDA來說,編程人員在利用C for CUDA語言來編程的時候,無需考慮過多與自身編程目的以外的因素。再拿前文提及的記憶體管理來說,C for CUDA使用Runtime進行管理。不管OpenCL還是C for CUDA語言來編程,最終它都是需要通過一個驅動程式來變成一個PTX的代碼,PTX相當於CUDA的指令集來進行執行,然後交給圖形處理器或者交給硬體來進行執行。

相關詞條

熱門詞條

聯絡我們