"parallel op set lod after copy "

emailweixu-patch-1
dzhwinter 7 years ago
parent 239fafb0d3
commit f18f3826dc

@ -54,7 +54,7 @@ class Vector : public std::vector<T> {
CopyToCUDA();
PADDLE_ENFORCE_NOT_NULL(
cuda_ptr_, "No data or Insufficient CUDA memory to allocation");
return static_cast<T *>(cuda_ptr_);
return static_cast<T *>(cuda_ptr_.get());
}
/* Get host vector */
@ -127,7 +127,7 @@ void Vector<T>::CopyToCUDA() {
#ifdef PADDLE_WITH_CUDA
if (cuda_size_ < this->size() || cuda_ptr_ == nullptr) {
cuda_ptr_.reset(
memory::Alloc<platform::CUDAPlace>(this->size() * sizeof(T)),
memory::Alloc<platform::CUDAPlace>(place_, this->size() * sizeof(T)),
memory::PlainDeleter<void, platform::CUDAPlace>(place_));
}
cuda_size_ = this->size();

@ -79,7 +79,7 @@ inline void CopyOrShare(const framework::Variable &src,
} else {
Copy(src.Get<LoDTensor>(), dst_place, dst->GetMutable<LoDTensor>());
}
dst->set_lod(src.lod());
dst->GetMutable<LoDTensor>()->set_lod(src.Get<LoDTensor>().lod());
} else if (src.IsType<SelectedRows>()) {
auto &src_sr = src.Get<SelectedRows>();
auto *dst_sr = dst->GetMutable<SelectedRows>();

Loading…
Cancel
Save