From 2c0251814cecd4fc02f6da543bdfebab8d9b9dee Mon Sep 17 00:00:00 2001 From: hjchen2 Date: Tue, 19 Mar 2019 17:43:40 +0800 Subject: [PATCH] update --- src/framework/tensor.h | 9 +++++++++ src/pass/memory_optimize.cpp | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/framework/tensor.h b/src/framework/tensor.h index 8e30b4dc46..4fb06c6549 100644 --- a/src/framework/tensor.h +++ b/src/framework/tensor.h @@ -67,6 +67,15 @@ class Tensor : public TensorBase { /*! The internal of two tensors share the same memory block. */ inline Tensor &ShareDataWith(const Tensor &src) { + src.check_memory_size(); + if (holder_.get() != src.holder_.get()) { + *this = src; + } + return *this; + } + + /*! The internal of two tensors share the same memory block. */ + inline Tensor &ShareHolderWith(const Tensor &src) { src.check_memory_size(); if (holder_.get() != src.holder_.get()) { holder_ = src.holder_; diff --git a/src/pass/memory_optimize.cpp b/src/pass/memory_optimize.cpp index 6d6475d7a1..cc754491fa 100644 --- a/src/pass/memory_optimize.cpp +++ b/src/pass/memory_optimize.cpp @@ -131,7 +131,7 @@ void MemoryOptPass::operator()(const framework::ProgramDesc *program, DLOG << node->name; auto *var = scope->Var(node->name); auto *tensor = var->template GetMutable(); - tensor->ShareDataWith(*reuse_tensor); + tensor->ShareHolderWith(*reuse_tensor); } } } -- GitLab