From 2fa654e65cda2bdc7916152df3a19800e9c07802 Mon Sep 17 00:00:00 2001 From: jiangjinsheng Date: Mon, 11 May 2020 15:52:52 +0800 Subject: [PATCH] support vm for floor --- mindspore/ops/_op_impl/tbe/__init__.py | 1 + mindspore/ops/_op_impl/tbe/floor.py | 36 ++++++++++++++++++++++++++ tests/ut/python/ops/test_math_ops.py | 14 ++++++++++ 3 files changed, 51 insertions(+) create mode 100644 mindspore/ops/_op_impl/tbe/floor.py diff --git a/mindspore/ops/_op_impl/tbe/__init__.py b/mindspore/ops/_op_impl/tbe/__init__.py index 14fdaeac4..dc23513b3 100644 --- a/mindspore/ops/_op_impl/tbe/__init__.py +++ b/mindspore/ops/_op_impl/tbe/__init__.py @@ -158,3 +158,4 @@ from .avg_pool_grad import _avg_pool_grad_tbe from .ones_like import _ones_like_tbe from .batch_to_space import _batch_to_space_tbe from .space_to_batch import _space_to_batch_tbe +from .floor import _floor_tbe diff --git a/mindspore/ops/_op_impl/tbe/floor.py b/mindspore/ops/_op_impl/tbe/floor.py new file mode 100644 index 000000000..e02bce4aa --- /dev/null +++ b/mindspore/ops/_op_impl/tbe/floor.py @@ -0,0 +1,36 @@ +# Copyright 2020 Huawei Technologies Co., Ltd +# +# 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. +# ============================================================================ + +"""Floor op""" +from mindspore.ops.op_info_register import op_info_register, TBERegOp, DataType + +floor_op_info = TBERegOp("Floor") \ + .fusion_type("ELEMWISE") \ + .async_flag(False) \ + .binfile_name("floor.so") \ + .compute_cost(10) \ + .kernel_name("floor") \ + .partial_flag(True) \ + .input(0, "x", False, "required", "all") \ + .output(0, "y", False, "required", "all") \ + .dtype_format(DataType.F16_Default, DataType.F16_Default) \ + .dtype_format(DataType.F32_Default, DataType.F32_Default) \ + .get_op_info() + + +@op_info_register(floor_op_info) +def _floor_tbe(): + """Floor TBE register""" + return diff --git a/tests/ut/python/ops/test_math_ops.py b/tests/ut/python/ops/test_math_ops.py index 7ada847aa..30444d4b0 100755 --- a/tests/ut/python/ops/test_math_ops.py +++ b/tests/ut/python/ops/test_math_ops.py @@ -351,6 +351,15 @@ class AssignAdd(nn.Cell): self.inputdata = input_ return self.op(self.inputdata, input_) +class FloorNet(nn.Cell): + def __init__(self): + super(FloorNet, self).__init__() + self.floor = P.Floor() + + def construct(self, x): + return self.floor(x) + + test_case_math_ops = [ ('MatMulGrad', { 'block': GradWrap(NetWithLoss(MatMulNet())), @@ -391,6 +400,11 @@ test_case_math_ops = [ 'desc_inputs': [Tensor(np.array([[1., 0., -2.]], np.float32))], 'desc_bprop': [Tensor(np.array([[1., 0., -2.]], np.float32))], 'skip': ['backward']}), + ('Floor', { + 'block': FloorNet(), + 'desc_inputs': [Tensor(np.array([[1., 0., -2.]], np.float32))], + 'desc_bprop': [Tensor(np.array([[1., 0., -2.]], np.float32))], + 'skip': ['backward']}), ] test_case_lists = [test_case_math_ops] -- GitLab