From 7b9aa6019882a0f66c903e9b5e14d614fcd6bb54 Mon Sep 17 00:00:00 2001 From: mozga-intel Date: Tue, 19 Jun 2018 12:07:56 +0200 Subject: [PATCH] MKLDNN gausian_random tests --- .../operators/gaussian_random_mkldnn_op.cc | 20 +------------- .../test_gaussian_random_mkldnn_op.py | 26 +++++++++++++++++++ .../unittests/test_gaussian_random_op.py | 13 +++++++++- 3 files changed, 39 insertions(+), 20 deletions(-) create mode 100644 python/paddle/fluid/tests/unittests/test_gaussian_random_mkldnn_op.py diff --git a/paddle/fluid/operators/gaussian_random_mkldnn_op.cc b/paddle/fluid/operators/gaussian_random_mkldnn_op.cc index 2748ad3e6..76b00b396 100644 --- a/paddle/fluid/operators/gaussian_random_mkldnn_op.cc +++ b/paddle/fluid/operators/gaussian_random_mkldnn_op.cc @@ -15,27 +15,9 @@ limitations under the License. */ #include #include "paddle/fluid/operators/mean_op.h" -#include "mkldnn.hpp" -#include "paddle/fluid/framework/tensor.h" -#include "paddle/fluid/operators/math/selected_rows_functor.h" -#include "paddle/fluid/platform/device_context.h" -#include "paddle/fluid/platform/mkldnn_helper.h" - -#include "paddle/fluid/framework/eigen.h" namespace paddle { namespace operators { -using paddle::framework::Tensor; -using paddle::platform::MKLDNNDeviceContext; -using paddle::platform::MKLDNNMemDesc; -using paddle::platform::CPUDeviceContext; - -using mkldnn::memory; // Note: paddle has also "memory" namespace -using mkldnn::primitive; -using mkldnn::softmax_forward; -using mkldnn::prop_kind; -using mkldnn::stream; - using framework::DataLayout; template class GaussianMKLDNNKernel : public paddle::framework::OpKernel { @@ -61,7 +43,7 @@ class GaussianMKLDNNKernel : public paddle::framework::OpKernel { // The format of output is set as the mkldnn's format // TODO(@mozga-intel) The format of matrix sets inside the another layers. tensor->set_layout(DataLayout::kMKLDNN); - tensor->set_format(mkldnn::memory::format::Ohwi16o); + tensor->set_format(mkldnn::memory::format::oihw); } }; } // namespace operators diff --git a/python/paddle/fluid/tests/unittests/test_gaussian_random_mkldnn_op.py b/python/paddle/fluid/tests/unittests/test_gaussian_random_mkldnn_op.py new file mode 100644 index 000000000..3ae877a60 --- /dev/null +++ b/python/paddle/fluid/tests/unittests/test_gaussian_random_mkldnn_op.py @@ -0,0 +1,26 @@ +# Copyright (c) 2018 PaddlePaddle Authors. All Rights Reserved. +# +# 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. + +import unittest + +from test_gaussian_random_op import TestGaussianRandomOp + + +class TestMKLDNN(TestGaussianRandomOp): + def init_kernel_type(self): + self.use_mkldnn = True + + +if __name__ == '__main__': + unittest.main() diff --git a/python/paddle/fluid/tests/unittests/test_gaussian_random_op.py b/python/paddle/fluid/tests/unittests/test_gaussian_random_op.py index 272caceaf..8481500fd 100644 --- a/python/paddle/fluid/tests/unittests/test_gaussian_random_op.py +++ b/python/paddle/fluid/tests/unittests/test_gaussian_random_op.py @@ -25,7 +25,15 @@ class TestGaussianRandomOp(unittest.TestCase): def setUp(self): self.op_type = "gaussian_random" self.inputs = {} - self.attrs = {"shape": [1000, 784], "mean": .0, "std": 1., "seed": 10} + self.use_mkldnn = False + self.init_kernel_type() + self.attrs = { + "shape": [1000, 784], + "mean": .0, + "std": 1., + "seed": 10, + "use_mkldnn": self.use_mkldnn + } self.outputs = ["Out"] @@ -58,6 +66,9 @@ class TestGaussianRandomOp(unittest.TestCase): self.assertAlmostEqual(numpy.mean(tensor), .0, delta=0.1) self.assertAlmostEqual(numpy.std(tensor), 1., delta=0.1) + def init_kernel_type(self): + pass + if __name__ == "__main__": unittest.main() -- GitLab