Kentucky OpenCL Application Preprocessor

KOAP, pronounced "cope," is a tool for developing OpenCL applications. Its purpose is to allow the programmer to aggregate and simplify calls to the OpenCL API. KOAP accepts as input a file containing (or including) both the OpenCL program and the host C program. KOAP understands several directives, each of which is prefixed with a $ character. When KOAP is run, these directives are replaced with the requisite OpenCL API calls. As the above logo suggests, KOAP input is significantly less verbose and simpler to write than the OpenCL API calls that KOAP generates.

KOAP achieves its brevity by limiting the flexibility of the API calls. Many arguments generated by KOAP to the API calls are the same for every input. Most of the functionality exposed to the programmer is the ability to set up a generic environment, allocate memory on the OpenCL device, run kernels, and move data between the device and the host.


KOAP is available as a GZip tar file containing the public domain sources. The latest version is KOAP_20130205.tgz, which should be considered as an alpha release.

Version History

20130205: The command-line argument parser has been rewritten. KOAP is now less picky about argument order. KOAP also accepts multiple KOAP files per run. Each KOAP file is processed independently from the rest.

20120125: Build instructions have been added to the README. Other documentation and release cleanup. There are no changes to the code for this release.

20111129: The OpenCL code in the included example was not valid OpenCL. This has been fixed.

20111115: The initial release. There are no known bugs at the time of release.

This page is: http://aggregate.org/KOAP/

The Aggregate. The only thing set in stone is our name.