Articles

Mi az OpenCL?

A párhuzamos programozásra szolgáló OpenCL szabványt a Khronos Group ipari konzorcium fejlesztette ki a többmagos és heterogén számítási platformok programozásának kihívásaira. Az OpenCL specifikáció egységes programozási modellt és rendszerszintű absztrakciókat határoz meg, amelyeket a szabványnak megfelelő összes hardverplatform támogat. Ez azt jelenti, hogy egy szoftverfejlesztő egyetlen programozási modellt tanulhat meg, és azt közvetlenül használhatja több gyártó eszközein.

Az OpenCL olyan programozási nyelvet és futásidejű API-t biztosít, amely támogatja a fémközeli, hatékony és hordozható szoftverek fejlesztését. Emellett az OpenCL alacsony szintű hardverabsztrakciókat biztosít, amelyek lehetővé teszik az OpenCL implementációk számára, hogy felfedjék a mögöttes hardver számos részletét. Ezek az alacsony szintű absztrakciók az OpenCL specifikációban leírt platform-, memória- és végrehajtási modellek. Az alkalmazásoptimalizáláshoz szükséges annak megértése, hogy ezek a fogalmak hogyan fordíthatók le egy FPGA fizikai megvalósításaira.

Ez a fejezet az OpenCL platformmodelljének és az FPGA-eszközökre való kiterjesztéseinek áttekintését nyújtja. Megmagyarázza az OpenCL platform- és memóriamodell leképezését egy SDAccel generált implementációba. A fejezet kitér arra is, hogy a Xilinx® SDAccel eszközzel hogyan használhatók ki a kortárs FPGA-k a nagy teljesítmény elérése érdekében.