diff --git a/mindspore/ops/_op_impl/tbe/__init__.py b/mindspore/ops/_op_impl/tbe/__init__.py index 14fdaeac48d7acdad80fb0f7bc19c3c4d60da8a5..dc23513b392e939506d34ac14d2e2310d506fe7c 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 0000000000000000000000000000000000000000..e02bce4aa32ff80f667bd936b70af0a38393155f --- /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 7ada847aacf03eae1bf5ccfbd42129683badd810..30444d4b0484bd4d63e75625ce22d8a0c325d6de 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]