From cb1d1f167c95b0c7ded6cb2c68d65de35765c6a5 Mon Sep 17 00:00:00 2001 From: Yi Wang Date: Tue, 18 Jul 2017 15:35:51 -0700 Subject: [PATCH] Add unit test --- paddle/framework/eigen_test.cc | 37 ++++++++++++++++++++++++++++++++++ paddle/framework/tensor.h | 15 +++++++++++--- 2 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 paddle/framework/eigen_test.cc diff --git a/paddle/framework/eigen_test.cc b/paddle/framework/eigen_test.cc new file mode 100644 index 0000000000..c5f27a3298 --- /dev/null +++ b/paddle/framework/eigen_test.cc @@ -0,0 +1,37 @@ +/* + Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserve. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#include "paddle/framework/eigen.h" + +#include + +#include "paddle/framework/tensor.h" + +TEST(Eigen, Tensor) { + using paddle::platform::Tensor; + using paddle::platform::EigenTensor; + using paddle::platform::make_ddim; + + Tensor t; + float* p = t.mutable_data(make_ddim({1, 2, 3}), CPUPlace()); + for (int i = 0; i < 1 * 2 * 3; i++) { + p[i] = static_cast(i); + } + + EigenTensor::Type et = EigenTensor::From(t); + // TODO: check the content of et. +} + +TEST(Eigen, Vector) {} + +TEST(Eigen, Matrix) {} diff --git a/paddle/framework/tensor.h b/paddle/framework/tensor.h index 1235b53227..405393fb11 100644 --- a/paddle/framework/tensor.h +++ b/paddle/framework/tensor.h @@ -20,7 +20,6 @@ limitations under the License. */ #include #include "paddle/framework/ddim.h" #include "paddle/framework/enforce.h" -#include "paddle/framework/tensor_types.h" #include "paddle/memory/memory.h" #include "paddle/platform/place.h" #include "unsupported/Eigen/CXX11/Tensor" @@ -35,6 +34,18 @@ struct CastToPyBufferImpl; namespace framework { class Tensor { + template + friend struct paddle::pybind::details::CastToPyBufferImpl; + + template + friend struct EigenTensor; + + template + friend struct EigenVector; + + template + friend struct EigenMatrix; + public: Tensor() : offset_(0) {} @@ -191,8 +202,6 @@ class Tensor { std::shared_ptr holder_; // holds the memory block if allocated. DDim dims_; size_t offset_; // marks the begin of tensor data area. - template - friend struct paddle::pybind::details::CastToPyBufferImpl; }; } // namespace framework -- GitLab