From eba7b584fed4a1f55eb9422b390f2d90b8b505e1 Mon Sep 17 00:00:00 2001 From: pangyoki Date: Tue, 31 Jan 2023 12:02:38 +0800 Subject: [PATCH] change no_event GC to fast GC for xpu (#49871) --- .../garbage_collector/garbage_collector.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/paddle/fluid/framework/new_executor/garbage_collector/garbage_collector.cc b/paddle/fluid/framework/new_executor/garbage_collector/garbage_collector.cc index 73e6664f66..8ff8b95283 100644 --- a/paddle/fluid/framework/new_executor/garbage_collector/garbage_collector.cc +++ b/paddle/fluid/framework/new_executor/garbage_collector/garbage_collector.cc @@ -60,7 +60,16 @@ CreateInterpreterCoreGarbageCollector( return std::unique_ptr( new InterpreterCoreEventGarbageCollector(vec_instruction)); } - } else if (platform::is_xpu_place(place) || platform::is_ipu_place(place)) { + } else if (platform::is_xpu_place(place)) { + // Because there is no multi-stream on XPU device, fast GC can + // be used. + // Previously, XPU used no_event GC. But `Wait` in no_event GC + // may cause GC delayed, causing no enough memory problem. + // TODO(pangyoki): Multi-stream allocator and multi-stream GC + // are needed to be adapted for XPU. + return std::unique_ptr( + new InterpreterCoreFastGarbageCollector()); + } else if (platform::is_ipu_place(place)) { return std::unique_ptr( new InterpreterCoreNoEventGarbageCollector()); } else { -- GitLab