https://hgpu.org/?p=28739
An approach to performance portability through generic programming