diff --git a/paddle/fluid/operators/reader/buffered_reader.cc b/paddle/fluid/operators/reader/buffered_reader.cc index d5a7c50d95cb82009e8055f0279d858f690059a5..971db8b37d8409185a4e81d1e77b0fc53534e9f5 100644 --- a/paddle/fluid/operators/reader/buffered_reader.cc +++ b/paddle/fluid/operators/reader/buffered_reader.cc @@ -85,6 +85,10 @@ void BufferedReader::ReadAsync(size_t i) { memory::Copy(boost::get(place_), gpu_ptr, boost::get(cpu_place), cpu_ptr, size, stream); + else if ((platform::is_gpu_place(cpu_place))) + memory::Copy(boost::get(place_), gpu_ptr, + boost::get(cpu_place), cpu_ptr, + size, stream); else // if cpu place is not pinned, async copy is slower than sync copy, // so we use sync copy instead.