From a1bdc65206683618b02751e98fc193a43be0d20a Mon Sep 17 00:00:00 2001 From: wanghuancoder Date: Fri, 25 Nov 2022 18:46:50 +0800 Subject: [PATCH] for xpu multi thread bug test (#48373) * for xpu multi thread bug test --- paddle/phi/backends/xpu/xpu_info.cc | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/paddle/phi/backends/xpu/xpu_info.cc b/paddle/phi/backends/xpu/xpu_info.cc index 4dba0ab94f..978680e958 100644 --- a/paddle/phi/backends/xpu/xpu_info.cc +++ b/paddle/phi/backends/xpu/xpu_info.cc @@ -169,12 +169,19 @@ void MemcpySyncD2D(void* dst, const phi::XPUContext& dev_ctx) { int dev_id = GetXPUCurrentDeviceId(); if (dst_place.device == dev_id && src_place.device == dev_id) { - PADDLE_ENFORCE_XDNN_SUCCESS( - baidu::xpu::api::copy(dev_ctx.x_context(), - static_cast(src), - static_cast(dst), - count), - "copy "); + dev_ctx.Wait(); + char* tmp = new char[count]; + PADDLE_ENFORCE_XPU_SUCCESS( + xpu_memcpy(tmp, src, count, XPUMemcpyKind::XPU_DEVICE_TO_HOST)); + PADDLE_ENFORCE_XPU_SUCCESS( + xpu_memcpy(dst, tmp, count, XPUMemcpyKind::XPU_HOST_TO_DEVICE)); + delete[] tmp; + // PADDLE_ENFORCE_XDNN_SUCCESS( + // baidu::xpu::api::copy(dev_ctx.x_context(), + // static_cast(src), + // static_cast(dst), + // count), + // "copy "); } else { PADDLE_ENFORCE_XPU_SUCCESS( xpu_memcpy_peer(dst_place.device, dst, src_place.device, src, count)); -- GitLab