From a1d1565fb98888b53176891de39b11b5de177580 Mon Sep 17 00:00:00 2001 From: hedaoyuan Date: Mon, 24 Oct 2016 16:15:00 +0800 Subject: [PATCH] add some comments --- paddle/math/TensorAssign.h | 32 ++++++++++++++------ paddle/math/TensorExpression.h | 7 +++++ paddle/math/tests/CMakeLists.txt | 4 +-- paddle/math/tests/TensorCheck.h | 21 ++++++++----- paddle/math/tests/test_TrainingAlgorithm.cpp | 4 +++ paddle/math/tests/test_lazyAssign.cu | 21 ++++++++----- 6 files changed, 61 insertions(+), 28 deletions(-) diff --git a/paddle/math/TensorAssign.h b/paddle/math/TensorAssign.h index 0dc52a7dc27..12a0244e872 100644 --- a/paddle/math/TensorAssign.h +++ b/paddle/math/TensorAssign.h @@ -1,12 +1,16 @@ -/** - * TensorAssign.h - * - * Author: hedaoyuan (hedaoyuan@baidu.com) - * Created on: 2016-10-08 - * - * Copyright (c) Baidu.com, Inc. All Rights Reserved - * - */ +/* Copyright (c) 2016 Baidu, Inc. 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. */ #pragma once @@ -15,6 +19,10 @@ namespace paddle { +/** + * \brief Tensor Assign Expression(return by lazyAssign, + * and evaluated by AssignEvaluate) + */ template class TensorAssignOp { public: @@ -91,7 +99,11 @@ void AssignGpuEvaluate2(const int height, const int width, } #endif -// At least one assignment expression is required +/** + * \brief Evaluate one or more TensorAssignOp objects. + * + * \note At least one assignment expression is required + */ template void AssignEvaluate(Assign&& assign, AssignOp&& ... args) { const bool useGpu_ = assign.useGpu(); diff --git a/paddle/math/TensorExpression.h b/paddle/math/TensorExpression.h index a98b6bb0d5e..492b74d2195 100644 --- a/paddle/math/TensorExpression.h +++ b/paddle/math/TensorExpression.h @@ -318,12 +318,19 @@ public: return condition(constant(p1), constant(p2)); } + /** + * return a TensorConstant. A TensorConstant object hold a constant value. + */ const TensorConstant, const Derived, T> constant(T p) const { return TensorConstant, const Derived, T> (hppl::unary::constant(p), derived()); } + /** + * return a TensorAssignOp, and use AssignEvaluate to evaluate one or more + * TensorAssignOp objects. + */ template TensorAssignOp lazyAssign(const ExpressionType& expr) const { diff --git a/paddle/math/tests/CMakeLists.txt b/paddle/math/tests/CMakeLists.txt index 35cb9ee5784..633d6b4f1a8 100644 --- a/paddle/math/tests/CMakeLists.txt +++ b/paddle/math/tests/CMakeLists.txt @@ -15,9 +15,9 @@ add_simple_unittest(test_perturbation) add_simple_unittest(test_CpuGpuVector) add_simple_unittest(test_Allocator) if(WITH_GPU) - CUDA_ADD_EXECUTABLE(test_Tensor test_Tensor.cu) - link_paddle_test(test_Tensor) if(COMPILER_SUPPORT_CXX11) + CUDA_ADD_EXECUTABLE(test_Tensor test_Tensor.cu) + link_paddle_test(test_Tensor) CUDA_ADD_EXECUTABLE(test_lazyAssign test_lazyAssign.cu) link_paddle_test(test_lazyAssign) endif() diff --git a/paddle/math/tests/TensorCheck.h b/paddle/math/tests/TensorCheck.h index 8ffe1ea0759..0d874edce08 100644 --- a/paddle/math/tests/TensorCheck.h +++ b/paddle/math/tests/TensorCheck.h @@ -1,11 +1,16 @@ -/** - * test_Tensor.cpp - * - * Author: hedaoyuan (hedaoyuan@baidu.com) - * Created on: 2016-06-06 - * - * Copyright (c) Baidu.com, Inc. All Rights Reserved - */ +/* Copyright (c) 2016 Baidu, Inc. 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 #include "paddle/math/Matrix.h" diff --git a/paddle/math/tests/test_TrainingAlgorithm.cpp b/paddle/math/tests/test_TrainingAlgorithm.cpp index 2c5807d9661..301235d0e82 100644 --- a/paddle/math/tests/test_TrainingAlgorithm.cpp +++ b/paddle/math/tests/test_TrainingAlgorithm.cpp @@ -91,7 +91,11 @@ int VectorCheckErr(const VectorPtr& vector1, const VectorPtr& vector2) { typedef std::function testMatrixFunc; void testCase(testMatrixFunc matrixFunc) { +#ifndef PADDLE_ONLY_CPU for (auto useGpu : {false, true}) { +#else + for (auto useGpu : {false}) { +#endif for (auto size : {1, 32, 64, 128, 512, 1024, 4096, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152}) { LOG(INFO) << " size=" << size << " useGpu=" << useGpu; diff --git a/paddle/math/tests/test_lazyAssign.cu b/paddle/math/tests/test_lazyAssign.cu index 51cc874019d..275510e55ba 100644 --- a/paddle/math/tests/test_lazyAssign.cu +++ b/paddle/math/tests/test_lazyAssign.cu @@ -1,11 +1,16 @@ -/** - * test_lazyAssign.cpp - * - * Author: hedaoyuan (hedaoyuan@baidu.com) - * Created on: 2016-10-15 - * - * Copyright (c) Baidu.com, Inc. All Rights Reserved - */ +/* Copyright (c) 2016 Baidu, Inc. 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 #include "paddle/math/Matrix.h" -- GitLab