https://hgpu.org/?p=19254
Abstractions for Programming Graphics Processors in High-Level Programming Languages