Futhark: purely functional GPU-programming with nested parallelism and in-place array updates
Generating performance portable code using rewrite rules: from high-level functional expressions to high-performance OpenCL code