From 7304efe16ec04b2e5c090b5524438d15afa7a79e Mon Sep 17 00:00:00 2001 From: dayschan <6573942+dayschan@user.noreply.gitee.com> Date: Mon, 20 Jul 2020 20:10:43 +0800 Subject: [PATCH] Add 13 akg/ascend op registers AddN/Equal/GreaterEqual/Less/LessEqual/Log/Neg/Pow/Reciprocal/ReduceMax/ReduceMin/ReduceSum/Square. --- mindspore/ops/_op_impl/akg/ascend/__init__.py | 15 ++++++++ mindspore/ops/_op_impl/akg/ascend/add_n.py | 37 +++++++++++++++++++ mindspore/ops/_op_impl/akg/ascend/equal.py | 35 ++++++++++++++++++ .../ops/_op_impl/akg/ascend/greater_equal.py | 35 ++++++++++++++++++ mindspore/ops/_op_impl/akg/ascend/less.py | 31 ++++++++++++++++ .../ops/_op_impl/akg/ascend/less_equal.py | 35 ++++++++++++++++++ mindspore/ops/_op_impl/akg/ascend/log.py | 34 +++++++++++++++++ mindspore/ops/_op_impl/akg/ascend/neg.py | 37 +++++++++++++++++++ mindspore/ops/_op_impl/akg/ascend/pow.py | 35 ++++++++++++++++++ .../ops/_op_impl/akg/ascend/reciprocal.py | 32 ++++++++++++++++ .../ops/_op_impl/akg/ascend/reduce_max.py | 32 ++++++++++++++++ .../ops/_op_impl/akg/ascend/reduce_min.py | 32 ++++++++++++++++ .../ops/_op_impl/akg/ascend/reduce_sum.py | 37 +++++++++++++++++++ mindspore/ops/_op_impl/akg/ascend/square.py | 35 ++++++++++++++++++ mindspore/ops/op_info_register.py | 9 +++-- 15 files changed, 467 insertions(+), 4 deletions(-) create mode 100644 mindspore/ops/_op_impl/akg/ascend/add_n.py create mode 100644 mindspore/ops/_op_impl/akg/ascend/equal.py create mode 100644 mindspore/ops/_op_impl/akg/ascend/greater_equal.py create mode 100644 mindspore/ops/_op_impl/akg/ascend/less.py create mode 100644 mindspore/ops/_op_impl/akg/ascend/less_equal.py create mode 100644 mindspore/ops/_op_impl/akg/ascend/log.py create mode 100644 mindspore/ops/_op_impl/akg/ascend/neg.py create mode 100644 mindspore/ops/_op_impl/akg/ascend/pow.py create mode 100644 mindspore/ops/_op_impl/akg/ascend/reciprocal.py create mode 100644 mindspore/ops/_op_impl/akg/ascend/reduce_max.py create mode 100644 mindspore/ops/_op_impl/akg/ascend/reduce_min.py create mode 100644 mindspore/ops/_op_impl/akg/ascend/reduce_sum.py create mode 100644 mindspore/ops/_op_impl/akg/ascend/square.py diff --git a/mindspore/ops/_op_impl/akg/ascend/__init__.py b/mindspore/ops/_op_impl/akg/ascend/__init__.py index 06356da1f..d1029e0bc 100644 --- a/mindspore/ops/_op_impl/akg/ascend/__init__.py +++ b/mindspore/ops/_op_impl/akg/ascend/__init__.py @@ -16,17 +16,32 @@ from .abs import _abs_akg from .add import _add_akg +from .add_n import _addn_akg from .batchmatmul import _batchmatmul_akg from .cast import _cast_akg +from .equal import _equal_akg from .exp import _exp_akg from .expand_dims import _expand_dims_akg from .greater import _greater_akg +from .greater_equal import _greater_equal_akg from .inplace_assign import _inplace_assign_akg +from .less import _less_akg +from .less_equal import _less_equal_akg +from .log import _log_akg from .maximum import _maximum_akg from .minimum import _minimum_akg from .mul import _mul_akg +from .neg import _neg_akg +from .pow import _power_akg from .real_div import _real_div_akg +from .reciprocal import _reciprocal_akg +from .reduce_max import _reduce_max_akg +from .reduce_min import _reduce_min_akg +from .reduce_sum import _reduce_sum_akg from .rsqrt import _rsqrt_akg from .select import _select_akg from .sqrt import _sqrt_akg +from .square import _square_akg from .sub import _sub_akg + +# Please insert op register in lexicographical order of the filename. diff --git a/mindspore/ops/_op_impl/akg/ascend/add_n.py b/mindspore/ops/_op_impl/akg/ascend/add_n.py new file mode 100644 index 000000000..efd1fa474 --- /dev/null +++ b/mindspore/ops/_op_impl/akg/ascend/add_n.py @@ -0,0 +1,37 @@ +# 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. +# ============================================================================ + +"""AddN op""" +from mindspore.ops.op_info_register import op_info_register, AkgAscendRegOp, DataType as DT + +op_info = AkgAscendRegOp("AddN") \ + .fusion_type("ELEMWISE") \ + .input(0, "inputs", "dynamic") \ + .output(0, "output") \ + .dtype_format(DT.F16_Default, DT.F16_Default) \ + .dtype_format(DT.F32_Default, DT.F32_Default) \ + .dtype_format(DT.F16_5HD, DT.F16_5HD) \ + .dtype_format(DT.F32_5HD, DT.F32_5HD) \ + .dtype_format(DT.F16_FracZ, DT.F16_FracZ) \ + .dtype_format(DT.F32_FracZ, DT.F32_FracZ) \ + .dtype_format(DT.F16_FracNZ, DT.F16_FracNZ) \ + .dtype_format(DT.F32_FracNZ, DT.F32_FracNZ) \ + .get_op_info() + + +@op_info_register(op_info) +def _addn_akg(): + """AddN Akg register""" + return diff --git a/mindspore/ops/_op_impl/akg/ascend/equal.py b/mindspore/ops/_op_impl/akg/ascend/equal.py new file mode 100644 index 000000000..bda0c700d --- /dev/null +++ b/mindspore/ops/_op_impl/akg/ascend/equal.py @@ -0,0 +1,35 @@ +# 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. +# ============================================================================ + +"""Equal op""" +from mindspore.ops.op_info_register import op_info_register, AkgAscendRegOp, DataType as DT + +op_info = AkgAscendRegOp("Equal") \ + .fusion_type("ELEMWISE") \ + .input(0, "x") \ + .input(1, "y") \ + .output(0, "output") \ + .dtype_format(DT.F16_Default, DT.F16_Default, DT.BOOL_Default) \ + .dtype_format(DT.F32_Default, DT.F32_Default, DT.BOOL_Default) \ + .dtype_format(DT.I32_Default, DT.I32_Default, DT.BOOL_Default) \ + .dtype_format(DT.F16_5HD, DT.F16_5HD, DT.BOOL_5HD) \ + .dtype_format(DT.F32_5HD, DT.F32_5HD, DT.BOOL_5HD) \ + .dtype_format(DT.I32_5HD, DT.I32_5HD, DT.BOOL_5HD) \ + .get_op_info() + +@op_info_register(op_info) +def _equal_akg(): + """Equal Akg register""" + return diff --git a/mindspore/ops/_op_impl/akg/ascend/greater_equal.py b/mindspore/ops/_op_impl/akg/ascend/greater_equal.py new file mode 100644 index 000000000..a5d63ba66 --- /dev/null +++ b/mindspore/ops/_op_impl/akg/ascend/greater_equal.py @@ -0,0 +1,35 @@ +# 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. +# ============================================================================ + +"""GreaterEqual op""" +from mindspore.ops.op_info_register import op_info_register, AkgAscendRegOp, DataType as DT + +op_info = AkgAscendRegOp("GreaterEqual") \ + .fusion_type("ELEMWISE") \ + .input(0, "x") \ + .input(1, "y") \ + .output(0, "output") \ + .dtype_format(DT.F16_Default, DT.F16_Default, DT.BOOL_Default) \ + .dtype_format(DT.F32_Default, DT.F32_Default, DT.BOOL_Default) \ + .dtype_format(DT.I32_Default, DT.I32_Default, DT.BOOL_Default) \ + .dtype_format(DT.F16_5HD, DT.F16_5HD, DT.BOOL_5HD) \ + .dtype_format(DT.F32_5HD, DT.F32_5HD, DT.BOOL_5HD) \ + .dtype_format(DT.I32_5HD, DT.I32_5HD, DT.BOOL_5HD) \ + .get_op_info() + +@op_info_register(op_info) +def _greater_equal_akg(): + """Equal Akg register""" + return diff --git a/mindspore/ops/_op_impl/akg/ascend/less.py b/mindspore/ops/_op_impl/akg/ascend/less.py new file mode 100644 index 000000000..33699d07a --- /dev/null +++ b/mindspore/ops/_op_impl/akg/ascend/less.py @@ -0,0 +1,31 @@ +# 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. +# ============================================================================ + +"""Less op""" +from mindspore.ops.op_info_register import op_info_register, AkgAscendRegOp, DataType as DT + +op_info = AkgAscendRegOp("Less") \ + .fusion_type("ELEMWISE") \ + .input(0, "x") \ + .input(1, "y") \ + .output(0, "output") \ + .dtype_format(DT.F16_Default, DT.F16_Default, DT.BOOL_Default) \ + .dtype_format(DT.F16_5HD, DT.F16_5HD, DT.BOOL_5HD) \ + .get_op_info() + +@op_info_register(op_info) +def _less_akg(): + """Less Akg register""" + return diff --git a/mindspore/ops/_op_impl/akg/ascend/less_equal.py b/mindspore/ops/_op_impl/akg/ascend/less_equal.py new file mode 100644 index 000000000..75e1b9a42 --- /dev/null +++ b/mindspore/ops/_op_impl/akg/ascend/less_equal.py @@ -0,0 +1,35 @@ +# 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. +# ============================================================================ + +"""LessEqual op""" +from mindspore.ops.op_info_register import op_info_register, AkgAscendRegOp, DataType as DT + +op_info = AkgAscendRegOp("LessEqual") \ + .fusion_type("ELEMWISE") \ + .input(0, "x") \ + .input(1, "y") \ + .output(0, "output") \ + .dtype_format(DT.F16_Default, DT.F16_Default, DT.BOOL_Default) \ + .dtype_format(DT.F32_Default, DT.F32_Default, DT.BOOL_Default) \ + .dtype_format(DT.I32_Default, DT.I32_Default, DT.BOOL_Default) \ + .dtype_format(DT.F16_5HD, DT.F16_5HD, DT.BOOL_5HD) \ + .dtype_format(DT.F32_5HD, DT.F32_5HD, DT.BOOL_5HD) \ + .dtype_format(DT.I32_5HD, DT.I32_5HD, DT.BOOL_5HD) \ + .get_op_info() + +@op_info_register(op_info) +def _less_equal_akg(): + """Equal Akg register""" + return diff --git a/mindspore/ops/_op_impl/akg/ascend/log.py b/mindspore/ops/_op_impl/akg/ascend/log.py new file mode 100644 index 000000000..0a6b04df8 --- /dev/null +++ b/mindspore/ops/_op_impl/akg/ascend/log.py @@ -0,0 +1,34 @@ +# 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. +# ============================================================================ + +"""Log op""" +from mindspore.ops.op_info_register import op_info_register, AkgAscendRegOp, DataType as DT + +op_info = AkgAscendRegOp("Log") \ + .fusion_type("ELEMWISE") \ + .input(0, "x") \ + .output(0, "output") \ + .dtype_format(DT.F16_Default, DT.F16_Default) \ + .dtype_format(DT.F32_Default, DT.F32_Default) \ + .dtype_format(DT.F16_5HD, DT.F16_5HD) \ + .dtype_format(DT.F32_5HD, DT.F32_5HD) \ + .dtype_format(DT.F16_FracNZ, DT.F16_FracNZ) \ + .dtype_format(DT.F32_FracNZ, DT.F32_FracNZ) \ + .get_op_info() + +@op_info_register(op_info) +def _log_akg(): + """Log Akg register""" + return diff --git a/mindspore/ops/_op_impl/akg/ascend/neg.py b/mindspore/ops/_op_impl/akg/ascend/neg.py new file mode 100644 index 000000000..dc1a7c7fc --- /dev/null +++ b/mindspore/ops/_op_impl/akg/ascend/neg.py @@ -0,0 +1,37 @@ +# 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. +# ============================================================================ + +"""Neg op""" +from mindspore.ops.op_info_register import op_info_register, AkgAscendRegOp, DataType as DT + +op_info = AkgAscendRegOp("Neg") \ + .fusion_type("ELEMWISE") \ + .input(0, "x") \ + .output(0, "output") \ + .dtype_format(DT.F16_Default, DT.F16_Default) \ + .dtype_format(DT.F32_Default, DT.F32_Default) \ + .dtype_format(DT.I32_Default, DT.I32_Default) \ + .dtype_format(DT.F16_5HD, DT.F16_5HD) \ + .dtype_format(DT.F32_5HD, DT.F32_5HD) \ + .dtype_format(DT.I32_5HD, DT.I32_5HD) \ + .dtype_format(DT.F16_FracNZ, DT.F16_FracNZ) \ + .dtype_format(DT.F32_FracNZ, DT.F32_FracNZ) \ + .dtype_format(DT.I32_FracNZ, DT.I32_FracNZ) \ + .get_op_info() + +@op_info_register(op_info) +def _neg_akg(): + """Neg Akg register""" + return diff --git a/mindspore/ops/_op_impl/akg/ascend/pow.py b/mindspore/ops/_op_impl/akg/ascend/pow.py new file mode 100644 index 000000000..b6c1fdc0a --- /dev/null +++ b/mindspore/ops/_op_impl/akg/ascend/pow.py @@ -0,0 +1,35 @@ +# 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. +# ============================================================================ + +"""Pow op""" +from mindspore.ops.op_info_register import op_info_register, AkgAscendRegOp, DataType as DT + +op_info = AkgAscendRegOp("Pow") \ + .fusion_type("ELEMWISE") \ + .input(0, "x") \ + .input(1, "power") \ + .output(0, "output") \ + .dtype_format(DT.F16_Default, DT.F16_Default, DT.F16_Default) \ + .dtype_format(DT.F32_Default, DT.F32_Default, DT.F32_Default) \ + .dtype_format(DT.I32_Default, DT.I32_Default, DT.I32_Default) \ + .dtype_format(DT.F16_5HD, DT.F16_5HD, DT.F16_5HD) \ + .dtype_format(DT.F32_5HD, DT.F32_5HD, DT.F32_5HD) \ + .dtype_format(DT.I32_5HD, DT.I32_5HD, DT.I32_5HD) \ + .get_op_info() + +@op_info_register(op_info) +def _power_akg(): + """Pow Akg register""" + return diff --git a/mindspore/ops/_op_impl/akg/ascend/reciprocal.py b/mindspore/ops/_op_impl/akg/ascend/reciprocal.py new file mode 100644 index 000000000..0d3823148 --- /dev/null +++ b/mindspore/ops/_op_impl/akg/ascend/reciprocal.py @@ -0,0 +1,32 @@ +# 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. +# ============================================================================ + +"""Reciprocal op""" +from mindspore.ops.op_info_register import op_info_register, AkgAscendRegOp, DataType as DT + +op_info = AkgAscendRegOp("Reciprocal") \ + .fusion_type("ELEMWISE") \ + .input(0, "x") \ + .output(0, "output") \ + .dtype_format(DT.F16_Default, DT.F16_Default) \ + .dtype_format(DT.F32_Default, DT.F32_Default) \ + .dtype_format(DT.F16_5HD, DT.F16_5HD) \ + .dtype_format(DT.F32_5HD, DT.F32_5HD) \ + .get_op_info() + +@op_info_register(op_info) +def _reciprocal_akg(): + """Reciprocal Akg register""" + return diff --git a/mindspore/ops/_op_impl/akg/ascend/reduce_max.py b/mindspore/ops/_op_impl/akg/ascend/reduce_max.py new file mode 100644 index 000000000..a21fd3349 --- /dev/null +++ b/mindspore/ops/_op_impl/akg/ascend/reduce_max.py @@ -0,0 +1,32 @@ +# 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. +# ============================================================================ + +"""ReduceMax op""" +from mindspore.ops.op_info_register import op_info_register, AkgAscendRegOp, DataType as DT + +op_info = AkgAscendRegOp("ReduceMax") \ + .fusion_type("COMMREDUCE") \ + .input(0, "x") \ + .output(0, "output") \ + .attr("axis", "required", "listInt") \ + .attr("keep_dims", "required", "bool") \ + .dtype_format(DT.F16_Default, DT.F16_Default) \ + .dtype_format(DT.F16_5HD, DT.F16_5HD) \ + .get_op_info() + +@op_info_register(op_info) +def _reduce_max_akg(): + """ReduceMax Akg register""" + return diff --git a/mindspore/ops/_op_impl/akg/ascend/reduce_min.py b/mindspore/ops/_op_impl/akg/ascend/reduce_min.py new file mode 100644 index 000000000..cc42c7bd2 --- /dev/null +++ b/mindspore/ops/_op_impl/akg/ascend/reduce_min.py @@ -0,0 +1,32 @@ +# 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. +# ============================================================================ + +"""ReduceMin op""" +from mindspore.ops.op_info_register import op_info_register, AkgAscendRegOp, DataType as DT + +op_info = AkgAscendRegOp("ReduceMin") \ + .fusion_type("COMMREDUCE") \ + .input(0, "x") \ + .output(0, "output") \ + .attr("axis", "required", "listInt") \ + .attr("keep_dims", "required", "bool") \ + .dtype_format(DT.F16_Default, DT.F16_Default) \ + .dtype_format(DT.F16_5HD, DT.F16_5HD) \ + .get_op_info() + +@op_info_register(op_info) +def _reduce_min_akg(): + """ReduceMin Akg register""" + return diff --git a/mindspore/ops/_op_impl/akg/ascend/reduce_sum.py b/mindspore/ops/_op_impl/akg/ascend/reduce_sum.py new file mode 100644 index 000000000..cf5ab6eab --- /dev/null +++ b/mindspore/ops/_op_impl/akg/ascend/reduce_sum.py @@ -0,0 +1,37 @@ +# 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. +# ============================================================================ + +"""ReduceSum op""" +from mindspore.ops.op_info_register import op_info_register, AkgAscendRegOp, DataType as DT + +op_info = AkgAscendRegOp("ReduceSum") \ + .fusion_type("COMMREDUCE") \ + .input(0, "x") \ + .output(0, "output") \ + .attr("axis", "required", "listInt") \ + .attr("keep_dims", "required", "bool") \ + .attr("atomic_add", "optional", "str") \ + .dtype_format(DT.F16_Default, DT.F16_Default) \ + .dtype_format(DT.F32_Default, DT.F32_Default) \ + .dtype_format(DT.F16_5HD, DT.F16_5HD) \ + .dtype_format(DT.F32_5HD, DT.F32_5HD) \ + .dtype_format(DT.F16_FracNZ, DT.F16_FracNZ) \ + .dtype_format(DT.F32_FracNZ, DT.F32_FracNZ) \ + .get_op_info() + +@op_info_register(op_info) +def _reduce_sum_akg(): + """ReduceSum Akg register""" + return diff --git a/mindspore/ops/_op_impl/akg/ascend/square.py b/mindspore/ops/_op_impl/akg/ascend/square.py new file mode 100644 index 000000000..60853bc0e --- /dev/null +++ b/mindspore/ops/_op_impl/akg/ascend/square.py @@ -0,0 +1,35 @@ +# 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. +# ============================================================================ + +"""Square op""" +from mindspore.ops.op_info_register import op_info_register, AkgAscendRegOp, DataType as DT + +op_info = AkgAscendRegOp("Square") \ + .fusion_type("ELEMWISE") \ + .input(0, "x") \ + .output(0, "output") \ + .dtype_format(DT.F16_Default, DT.F16_Default) \ + .dtype_format(DT.F32_Default, DT.F32_Default) \ + .dtype_format(DT.F16_5HD, DT.F16_5HD) \ + .dtype_format(DT.F32_5HD, DT.F32_5HD) \ + .dtype_format(DT.F16_FracNZ, DT.F16_FracNZ) \ + .dtype_format(DT.F32_FracNZ, DT.F32_FracNZ) \ + .get_op_info() + + +@op_info_register(op_info) +def _square_akg(): + """Square Akg register""" + return diff --git a/mindspore/ops/op_info_register.py b/mindspore/ops/op_info_register.py index 6ab915e36..5915b659e 100644 --- a/mindspore/ops/op_info_register.py +++ b/mindspore/ops/op_info_register.py @@ -220,18 +220,19 @@ class AkgRegOp(RegOp): self.imply_type = "AKG" self.processor = processor - def input(self, index=None, name=None, **kwargs): + def input(self, index=None, name=None, param_type=None, **kwargs): """ Register Akg op input information. Args: index (int): Order of the input. Default: None. name (str): Name of the input. Default: None. + param_type (str): Param type of the input. Default: None. kwargs (dict): Other information for the input. """ - param_list = [index, name] - key_list = ["index", "name"] - fn_list = [self._is_int, self._is_string] + param_list = [index, name, param_type] + key_list = ["index", "name", "param_type"] + fn_list = [self._is_int, self._is_string, self._is_string] input_dict = self._check_param(param_list, key_list, fn_list, kwargs) self.inputs.append(input_dict) return self -- GitLab