diff --git a/paddle/fluid/operators/detail/sendrecvop_utils.cc b/paddle/fluid/operators/detail/sendrecvop_utils.cc index 7e3f015dabdb3..7f4da99c3e5a1 100644 --- a/paddle/fluid/operators/detail/sendrecvop_utils.cc +++ b/paddle/fluid/operators/detail/sendrecvop_utils.cc @@ -80,7 +80,9 @@ void SerializeToByteBuffer(const std::string& name, framework::Variable* var, auto& gpu_dev_ctx = static_cast(ctx); auto copy_size = tensor.memory_size(); - payload = memory::Alloc(cpu, copy_size); + // FIXME(typhoonzero): make sure data can be copied use DMA + // before doing the copy. + payload = memory::Alloc(cpu, copy_size, true); memory::Copy(cpu, payload, boost::get(tensor.place()), @@ -116,7 +118,8 @@ void SerializeToByteBuffer(const std::string& name, framework::Variable* var, auto& gpu_dev_ctx = static_cast(ctx); auto copy_size = tensor->memory_size(); - payload = memory::Alloc(cpu, copy_size); + // FIXME(typhoonzero): make sure data can be copied use DMA. + payload = memory::Alloc(cpu, copy_size, true); memory::Copy(cpu, payload, boost::get(tensor->place()), reinterpret_cast(tensor->data()),