adding backward data communication for multigpu