From e190d3fd3680c807464654f101e8775012e471b3 Mon Sep 17 00:00:00 2001 From: Ilya Lavrenov Date: Wed, 5 Feb 2014 19:35:00 +0400 Subject: [PATCH] added perf test --- modules/core/include/opencv2/core/mat.hpp | 2 -- modules/core/perf/opencl/perf_arithm.cpp | 22 +++++++++++++ modules/core/src/umatrix.cpp | 12 +++---- modules/core/test/ocl/test_matrix_expr.cpp | 49 +++------------------------- modules/superres/src/input_array_utility.cpp | 1 - 5 files changed, 31 insertions(+), 55 deletions(-) diff --git a/modules/core/include/opencv2/core/mat.hpp b/modules/core/include/opencv2/core/mat.hpp index 99e7694..db1e8fa 100644 --- a/modules/core/include/opencv2/core/mat.hpp +++ b/modules/core/include/opencv2/core/mat.hpp @@ -1222,8 +1222,6 @@ public: //! per-element matrix multiplication by means of matrix expressions UMat mul(InputArray m, double scale=1) const; - //! computes cross-product of 2 3D vectors - UMat cross(InputArray m) const; //! computes dot-product double dot(InputArray m) const; diff --git a/modules/core/perf/opencl/perf_arithm.cpp b/modules/core/perf/opencl/perf_arithm.cpp index dc5cc07..ec9bb26 100644 --- a/modules/core/perf/opencl/perf_arithm.cpp +++ b/modules/core/perf/opencl/perf_arithm.cpp @@ -706,6 +706,28 @@ OCL_PERF_TEST_P(NormFixture, Norm, SANITY_CHECK(res, 1e-5, ERROR_RELATIVE); } +///////////// UMat::dot //////////////////////// + +typedef Size_MatType UMatDotFixture; + +OCL_PERF_TEST_P(UMatDotFixture, UMatDot, + ::testing::Combine(OCL_PERF_ENUM(OCL_SIZE_1, OCL_SIZE_2, OCL_SIZE_3), OCL_TEST_TYPES)) +{ + const Size_MatType_t params = GetParam(); + const Size srcSize = get<0>(params); + const int type = get<1>(params); + double r = 0.0; + + checkDeviceMaxMemoryAllocSize(srcSize, type); + + UMat src1(srcSize, type), src2(srcSize, type); + declare.in(src1, src2, WARMUP_RNG); + + OCL_TEST_CYCLE() r = src1.dot(src2); + + SANITY_CHECK(r, 1e-5, ERROR_RELATIVE); +} + ///////////// Repeat //////////////////////// typedef Size_MatType RepeatFixture; diff --git a/modules/core/src/umatrix.cpp b/modules/core/src/umatrix.cpp index bb9bbb4..1dd7b4d 100644 --- a/modules/core/src/umatrix.cpp +++ b/modules/core/src/umatrix.cpp @@ -551,14 +551,6 @@ int UMat::checkVector(int _elemChannels, int _depth, bool _requireContinuous) co ? (int)(total()*channels()/_elemChannels) : -1; } - -UMat UMat::cross(InputArray) const -{ - CV_Error(CV_StsNotImplemented, ""); - return UMat(); -} - - UMat UMat::reshape(int _cn, int _newndims, const int* _newsz) const { if(_newndims == dims) @@ -819,6 +811,8 @@ UMat UMat::mul(InputArray m, double scale) const return dst; } +#ifdef HAVE_OPENCL + static bool ocl_dot( InputArray _src1, InputArray _src2, double & res ) { int type = _src1.type(), depth = CV_MAT_DEPTH(type); @@ -861,6 +855,8 @@ static bool ocl_dot( InputArray _src1, InputArray _src2, double & res ) return false; } +#endif + double UMat::dot(InputArray m) const { CV_Assert(m.sameSize(*this) && m.type() == type()); diff --git a/modules/core/test/ocl/test_matrix_expr.cpp b/modules/core/test/ocl/test_matrix_expr.cpp index 33be862..167026d 100644 --- a/modules/core/test/ocl/test_matrix_expr.cpp +++ b/modules/core/test/ocl/test_matrix_expr.cpp @@ -1,48 +1,9 @@ -/*M/////////////////////////////////////////////////////////////////////////////////////// -// -// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING. -// -// By downloading, copying, installing or using the software you agree to this license. -// If you do not agree to this license, do not download, install, -// copy or use the software. -// -// -// License Agreement -// For Open Source Computer Vision Library -// -// Copyright (C) 2010-2012, Institute Of Software Chinese Academy Of Science, all rights reserved. -// Copyright (C) 2010-2012, Advanced Micro Devices, Inc., all rights reserved. -// Copyright (C) 2010-2012, Multicoreware, Inc., all rights reserved. +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level directory +// of this distribution and at http://opencv.org/license.html. + +// Copyright (C) 2014, Advanced Micro Devices, Inc., all rights reserved. // Third party copyrights are property of their respective owners. -// -// @Authors -// Jia Haipeng, jiahaipeng95@gmail.com -// -// Redistribution and use in source and binary forms, with or without modification, -// are permitted provided that the following conditions are met: -// -// * Redistribution's of source code must retain the above copyright notice, -// this list of conditions and the following disclaimer. -// -// * Redistribution's in binary form must reproduce the above copyright notice, -// this list of conditions and the following disclaimer in the documentation -// and/or other materials provided with the distribution. -// -// * The name of the copyright holders may not be used to endorse or promote products -// derived from this software without specific prior written permission. -// -// This software is provided by the copyright holders and contributors "as is" and -// any express or implied warranties, including, but not limited to, the implied -// warranties of merchantability and fitness for a particular purpose are disclaimed. -// In no event shall the Intel Corporation or contributors be liable for any direct, -// indirect, incidental, special, exemplary, or consequential damages -// (including, but not limited to, procurement of substitute goods or services; -// loss of use, data, or profits; or business interruption) however caused -// and on any theory of liability, whether in contract, strict liability, -// or tort (including negligence or otherwise) arising in any way out of -// the use of this software, even if advised of the possibility of such damage. -// -//M*/ #include "test_precomp.hpp" #include "opencv2/ts/ocl_test.hpp" diff --git a/modules/superres/src/input_array_utility.cpp b/modules/superres/src/input_array_utility.cpp index 6b306d2..9f4f229 100644 --- a/modules/superres/src/input_array_utility.cpp +++ b/modules/superres/src/input_array_utility.cpp @@ -223,7 +223,6 @@ namespace break; case _InputArray::UMAT: - case _InputArray::UEXPR: src.getUMat().convertTo(dst, depth, scale); break; -- 2.7.4