Implemented more parrallelisations as well as trying to optimise cudamemcopies