Articles

Wat is OpenCL?

De OpenCL-standaard voor parallel programmeren is ontwikkeld door het industrieconsortium Khronos Group om de uitdagingen van het programmeren van multikern- en heterogene computerplatforms aan te pakken. De OpenCL specificatie definieert een enkelvoudig programmeermodel en een set van abstracties op systeemniveau die worden ondersteund door alle hardware platforms die aan de standaard voldoen. Dit betekent dat een software engineer een enkelvoudig programmeermodel kan leren en het direct kan gebruiken op apparaten van meerdere leveranciers.

OpenCL biedt een programmeertaal en runtime API om de ontwikkeling van close-to-the-metal software te ondersteunen die zowel efficiënt als overdraagbaar is. Bovendien biedt OpenCL hardware-abstracties op laag niveau die OpenCL-implementaties in staat stellen veel details van de onderliggende hardware bloot te leggen. Deze low-level abstracties zijn de platform-, geheugen- en uitvoeringsmodellen beschreven in de OpenCL specificatie. Inzicht in hoe deze concepten zich vertalen naar fysieke implementaties op een FPGA is noodzakelijk voor applicatie-optimalisatie.

Dit hoofdstuk geeft een overzicht van het OpenCL platform model en de uitbreidingen ervan naar FPGA-apparaten. Het legt de mapping uit van het OpenCL platform- en geheugenmodel naar een door SDAccel gegenereerde implementatie. Dit hoofdstuk vermeldt ook hoe hedendaagse FPGA’s kunnen worden gebruikt om hoge prestatieniveaus te bereiken met het Xilinx® SDAccel gereedschap.