Heterogeneous Computing Architectures: Challenges and Vision