diff --git a/paddle/fluid/memory/allocation/naive_best_fit_allocator.cc b/paddle/fluid/memory/allocation/naive_best_fit_allocator.cc index dbea74e7e0f09383a07a8625d1969cf16d6a8f55..6306ad5ffc844ba680b982d9dd6a1a8368935c15 100644 --- a/paddle/fluid/memory/allocation/naive_best_fit_allocator.cc +++ b/paddle/fluid/memory/allocation/naive_best_fit_allocator.cc @@ -135,6 +135,11 @@ void *Alloc(const platform::XPUPlace &place, size_t size) { "Baidu Kunlun Card is properly installed.", ret)); ret = xpu_malloc(reinterpret_cast(&p), size); + if (ret != XPU_SUCCESS) { + std::cout << "xpu memory malloc(" << size << ") failed, try again\n"; + xpu_wait(); + ret = xpu_malloc(reinterpret_cast(&p), size); + } PADDLE_ENFORCE_EQ( ret, XPU_SUCCESS, platform::errors::External(