Skip to content

Commit 24c9fbd

Browse files
committed
Polish code
test=develop
1 parent d9b202e commit 24c9fbd

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

paddle/fluid/framework/tensor_util.cc

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ void TensorCopy(const Tensor& src, const platform::Place& dst_place,
3636
auto size = src.numel() * SizeOfType(src.type());
3737

3838
if (platform::is_cpu_place(src_place) && platform::is_cpu_place(dst_place)) {
39+
if (src_ptr == dst_ptr) {
40+
VLOG(3) << "Skip copy the same data async from " << src_place << " to "
41+
<< dst_place;
42+
return;
43+
}
3944
memory::Copy(boost::get<platform::CPUPlace>(dst_place), dst_ptr,
4045
boost::get<platform::CPUPlace>(src_place), src_ptr, size);
4146
}
@@ -71,6 +76,11 @@ void TensorCopy(const Tensor& src, const platform::Place& dst_place,
7176
auto stream =
7277
reinterpret_cast<const platform::CUDADeviceContext&>(ctx).stream();
7378
if (platform::is_same_place(src_place, dst_place)) {
79+
if (src_ptr == dst_ptr) {
80+
VLOG(3) << "Skip copy the same data async from " << src_place << " to "
81+
<< dst_place;
82+
return;
83+
}
7484
memory::Copy(dst_gpu_place, dst_ptr, src_gpu_place, src_ptr, size,
7585
stream);
7686
} else {
@@ -115,7 +125,7 @@ void TensorCopySync(const Tensor& src, const platform::Place& dst_place,
115125
auto size = src.numel() * SizeOfType(src.type());
116126
if (platform::is_cpu_place(src_place) && platform::is_cpu_place(dst_place)) {
117127
if (src_ptr == dst_ptr) {
118-
VLOG(3) << "Skip copy the same data from " << src.place() << " to "
128+
VLOG(3) << "Skip copy the same data from " << src_place << " to "
119129
<< dst_place;
120130
return;
121131
}
@@ -135,14 +145,13 @@ void TensorCopySync(const Tensor& src, const platform::Place& dst_place,
135145
memory::Copy(dst_gpu_place, dst_ptr, src_cpu_place, src_ptr, size, nullptr);
136146
} else if (platform::is_gpu_place(src_place) &&
137147
platform::is_gpu_place(dst_place)) {
138-
auto src_gpu_place = boost::get<platform::CUDAPlace>(src_place);
139-
auto dst_gpu_place = boost::get<platform::CUDAPlace>(dst_place);
140-
if (src_ptr == dst_ptr &&
141-
src_gpu_place.GetDeviceId() == dst_gpu_place.GetDeviceId()) {
142-
VLOG(3) << "Skip copy the same data from " << src.place() << " to "
148+
if (src_ptr == dst_ptr && platform::is_same_place(src_place, dst_place)) {
149+
VLOG(3) << "Skip copy the same data from " << src_place << " to "
143150
<< dst_place;
144151
return;
145152
}
153+
auto src_gpu_place = boost::get<platform::CUDAPlace>(src_place);
154+
auto dst_gpu_place = boost::get<platform::CUDAPlace>(dst_place);
146155
memory::Copy(dst_gpu_place, dst_ptr, src_gpu_place, src_ptr, size, nullptr);
147156
}
148157
#endif

0 commit comments

Comments
 (0)