Analysis and Implementation Considerations of Krylov Subspace Methods on Modern Heterogeneous Computing Architectures