未验证 提交 a09058b2 编写于 作者: A Aganlengzi 提交者: GitHub

move inplace_version_counter_ location (#41146)

上级 92faeedf
...@@ -171,6 +171,25 @@ class DenseTensor : public TensorBase, ...@@ -171,6 +171,25 @@ class DenseTensor : public TensorBase,
DenseTensorMeta meta_; DenseTensorMeta meta_;
std::shared_ptr<phi::Allocation> holder_; std::shared_ptr<phi::Allocation> holder_;
public:
/* Temporarily put InplaceVersion inside DenseTensor.
Will move to AutogradMeta as soon as we switch to Eager Dygraph.
*/
class InplaceVersion {
public:
bool IsUnique() const { return inplace_version_ == 0; }
void Bump() { ++inplace_version_; }
uint32_t CurrentVersion() const { return inplace_version_; }
void SetInplaceVersionToZero() { inplace_version_ = 0; }
private:
uint32_t inplace_version_{0};
};
protected:
std::shared_ptr<InplaceVersion> inplace_version_counter_{
std::make_shared<InplaceVersion>()};
#ifndef PADDLE_WITH_CUSTOM_KERNEL #ifndef PADDLE_WITH_CUSTOM_KERNEL
#include "paddle/phi/core/dense_tensor.inl" #include "paddle/phi/core/dense_tensor.inl"
#endif #endif
......
...@@ -21,20 +21,6 @@ limitations under the License. */ ...@@ -21,20 +21,6 @@ limitations under the License. */
Will be adjusted/removed/moved in the near future Will be adjusted/removed/moved in the near future
*/ */
public: public:
/* Temporarily put InplaceVersion inside DenseTensor.
Will move to AutogradMeta as soon as we switch to Eager Dygraph.
*/
class InplaceVersion {
public:
bool IsUnique() const { return inplace_version_ == 0; }
void Bump() { ++inplace_version_; }
uint32_t CurrentVersion() const { return inplace_version_; }
void SetInplaceVersionToZero() { inplace_version_ = 0; }
private:
uint32_t inplace_version_{0};
};
/* @jim19930609: Remove dependency on protobuf after Tensor Unification. /* @jim19930609: Remove dependency on protobuf after Tensor Unification.
*/ */
explicit DenseTensor(paddle::experimental::DataType dtype); explicit DenseTensor(paddle::experimental::DataType dtype);
...@@ -131,9 +117,6 @@ std::vector<DenseTensor> Split(int64_t split_size, int64_t axis) const; ...@@ -131,9 +117,6 @@ std::vector<DenseTensor> Split(int64_t split_size, int64_t axis) const;
std::vector<DenseTensor> Chunk(int64_t chunks, int64_t axis) const; std::vector<DenseTensor> Chunk(int64_t chunks, int64_t axis) const;
protected:
std::shared_ptr<InplaceVersion> inplace_version_counter_{std::make_shared<InplaceVersion>()};
/* @jim19930609: This is a hack /* @jim19930609: This is a hack
In general, it is badly designed to fuse MKLDNN-specific objects into a In general, it is badly designed to fuse MKLDNN-specific objects into a
generic Tensor. generic Tensor.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册