PoCL is a portable open source (MIT-licensed) implementation of
the OpenCL standard (1.2 with some 2.0 and 3.0 features supported).
In addition to being an easily portable multi-device (truely
heterogeneous) open-source OpenCL implementation, a major goal of
this project is improving interoperability for diversity of OpenCL-
capable devices by integrating them to a single centrally orchestrated
platform. Another key goal is to enhance performance portability of
OpenCL programs across device types utilizing runtime and compiler
Upstream PoCL currently supports various CPUs, NVIDIA GPUs via libcuda,
HSA-supported GPUs and TCE ASIPs (experimental, see: http://openasip.org). It is also known to have multiple (private)
adaptations in active production use.