https://hgpu.org/?p=7724
Encapsulated synchronization and load-balance in heterogeneous programming