diff --git a/paddle/math/TensorAssign.h b/paddle/math/TensorAssign.h index 0dc52a7dc27c96f9052e22bb2ef0ac75297a2f45..12a0244e8728ed5885237a4b9599aa5395102646 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 a98b6bb0d5e139507c808f079420f23909107f44..492b74d2195a55babe9d52908b47333eaee8f075 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 35cb9ee5784752543e211c90c721045d8a127a5d..633d6b4f1a86cea850039dda796f50eb8b6b3096 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 8ffe1ea075940b48da5459f743b15d748e4abf3d..0d874edce08096381294f3d67c0f5ab9d0131dec 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 2c5807d9661187dede8deff676321a0d24ba3de2..301235d0e82bd0722711091d884fb25f8b5e4ae0 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 51cc874019dc91496ca4a69239085d0717095213..275510e55bab934cdf3b430fe626c0a0c74f2110 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"