https://hgpu.org/?p=4221
MapCG: writing parallel program portable between CPU and GPU