diff --git a/CUDADataFormats/TrackingRecHit/interface/TrackingRecHitSoADevice.h b/CUDADataFormats/TrackingRecHit/interface/TrackingRecHitSoADevice.h index c796725b2e8d0..ab0043930558d 100644 --- a/CUDADataFormats/TrackingRecHit/interface/TrackingRecHitSoADevice.h +++ b/CUDADataFormats/TrackingRecHit/interface/TrackingRecHitSoADevice.h @@ -48,7 +48,10 @@ class TrackingRecHitSoADevice : public cms::cuda::PortableDeviceCollection localCoordToHostAsync(cudaStream_t stream) const { auto ret = cms::cuda::make_host_unique(4 * nHits(), stream); size_t rowSize = sizeof(float) * nHits(); - cudaCheck(cudaMemcpyAsync(ret.get(), view().xLocal(), rowSize * 4, cudaMemcpyDefault, stream)); + + size_t srcPitch = ptrdiff_t(view().yLocal()) - ptrdiff_t(view().xLocal()); + cudaCheck( + cudaMemcpy2DAsync(ret.get(), rowSize, view().xLocal(), srcPitch, rowSize, 4, cudaMemcpyDeviceToHost, stream)); return ret; } //move to utilities