Heterogeneous computing: challenges and opportunities | Synapse