Fully automated transformation of hardware-agnostic, data-parallel programs for host-driven executions on GPUs