Skip to content

Commit 1848358

Browse files
committed
fix copy size
1 parent 788636f commit 1848358

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

paddle/fluid/operators/detail/sendrecvop_utils.cc

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ void SerializeToByteBuffer(const std::string& name, framework::Variable* var,
8282
platform::CPUPlace cpu;
8383
auto& gpu_dev_ctx =
8484
static_cast<const platform::CUDADeviceContext&>(ctx);
85-
auto copy_size = tensor.memory_size();
85+
auto copy_size = tensor.numel() * framework::SizeOfType(tensor.type());
8686
payload = memory::Alloc(cpu, copy_size);
8787

8888
memory::Copy(cpu, payload,
@@ -99,7 +99,7 @@ void SerializeToByteBuffer(const std::string& name, framework::Variable* var,
9999
} else {
100100
payload = tensor.data<void>();
101101
}
102-
payload_size = tensor.memory_size();
102+
payload_size = tensor.numel() * framework::SizeOfType(tensor.type());
103103
e.WriteVarlengthBeginning(VarMsg::kSerializedFieldNumber, payload_size);
104104
} break;
105105
case framework::proto::VarType_Type_SELECTED_ROWS: {
@@ -118,7 +118,8 @@ void SerializeToByteBuffer(const std::string& name, framework::Variable* var,
118118
platform::CPUPlace cpu;
119119
auto& gpu_dev_ctx =
120120
static_cast<const platform::CUDADeviceContext&>(ctx);
121-
auto copy_size = tensor->memory_size();
121+
auto copy_size =
122+
tensor->numel() * framework::SizeOfType(tensor->type());
122123
payload = memory::Alloc(cpu, copy_size);
123124
memory::Copy(cpu, payload,
124125
boost::get<platform::CUDAPlace>(tensor->place()),
@@ -133,7 +134,7 @@ void SerializeToByteBuffer(const std::string& name, framework::Variable* var,
133134
} else {
134135
payload = slr->mutable_value()->data<void>();
135136
}
136-
payload_size = tensor->memory_size();
137+
payload_size = tensor->numel() * framework::SizeOfType(tensor->type());
137138
e.WriteVarlengthBeginning(VarMsg::kSerializedFieldNumber, payload_size);
138139
} break;
139140
default:

paddle/fluid/operators/split_byref_op.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ class SplitByrefOpKernel : public framework::OpKernel<T> {
3232
for (size_t i = 0; i < outs.size(); ++i) {
3333
// NOTE: no need to call mutable_data here to allocate memory.
3434
auto* out = outs[i];
35-
*out = std::move(in->Slice(row_offset, out->dims()[0]));
35+
VLOG(3) << "spliting by ref: " << row_offset << " " << out->dims()[0];
36+
*out = std::move(in->Slice(row_offset, row_offset + out->dims()[0]));
3637
row_offset += out->dims()[0];
3738
}
3839
}

0 commit comments

Comments
 (0)