From 219ec070cb0d1aab6b2ea8d0428d6aaa9c5c07fb Mon Sep 17 00:00:00 2001 From: Michael McGeagh Date: Mon, 9 Nov 2020 11:11:26 +0000 Subject: MLBEDSW-3402 SupportedOp now returns external name Previously the internal operator type was printed when checking the supported operator checks. This now converts that back to the external type name. Additionally removed dead code and changed the message for cpu-only ops Signed-off-by: Michael McGeagh Change-Id: Ib2b0cbcb49fdf63edb835828e266b079e63bae37 --- ethosu/vela/supported_operators.py | 10 ++++------ ethosu/vela/tflite_mapping.py | 8 ++++++++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ethosu/vela/supported_operators.py b/ethosu/vela/supported_operators.py index ddfb8ed9..04cda1da 100644 --- a/ethosu/vela/supported_operators.py +++ b/ethosu/vela/supported_operators.py @@ -25,6 +25,7 @@ from .numeric_util import is_integer from .operation import get_slice_offsets from .operation import Op from .tensor import check_quantized_tens_scaling_equal +from .tflite_mapping import optype_to_builtintype # Custom decorator function to allow formatting docstrings containing "{}" @@ -36,10 +37,6 @@ def docstring_format_args(args): return docstring -def warn_cpu(op, msg): - print("Warning: {} {}, placing on CPU".format(op.type, msg)) - - class SupportedOperators: # Categorised lists of supported operators npu_pre_ops = set((Op.SplitSliceRead,)) @@ -232,15 +229,16 @@ class SupportedOperators: self.specific_constraints[Op.LeakyRelu].append(SupportedOperators.constraint_alpha_valid) def is_operator_supported(self, op): + ext_type = optype_to_builtintype(op.type) if op.type not in SupportedOperators.supported_operators: if op.type not in (Op.Placeholder, Op.SubgraphInput, Op.Const): - print(f"Info: {op.type} '{op.name}' is not supported on the NPU. Placing on CPU instead") + print(f"Info: {ext_type} '{op.name}' is a CPU only op") return False for constraint in self.generic_constraints + self.specific_constraints[op.type]: valid, extra = constraint(op) if not valid: - print(f"Warning: {op.type} '{op.name}' is not supported on the NPU. Placing on CPU instead") + print(f"Warning: {ext_type} '{op.name}' is not supported on the NPU. Placing on CPU instead") print(f" - {constraint.__doc__}") if extra: print(f" {extra}") diff --git a/ethosu/vela/tflite_mapping.py b/ethosu/vela/tflite_mapping.py index 8a53039a..bbd44b0b 100644 --- a/ethosu/vela/tflite_mapping.py +++ b/ethosu/vela/tflite_mapping.py @@ -689,3 +689,11 @@ builtin_operator_map = { builtin_operator_inv_map = {v[0]: (k, v[1]) for k, v in builtin_operator_map.items()} builtin_operator_inv_map[Op.CustomNpuOp] = (BuiltinOperator.CUSTOM, CustomOptionsSerializer()) + + +def optype_to_builtintype(op_type): + if op_type in builtin_operator_inv_map: + builtin_type = builtin_operator_inv_map[op_type][0] + return next(k for k, v in vars(BuiltinOperator).items() if v == builtin_type) + else: + return "UNKNOWN" -- cgit v1.2.1