Understanding Portability of a High-level Programming Model on Contemporary Heterogeneous Architectures