From f13bc51b0d1faa0df1d9b76f8ec3dae592c31db0 Mon Sep 17 00:00:00 2001 From: Sebastian Larsson Date: Fri, 4 Apr 2025 09:35:08 +0200 Subject: [PATCH] Arm backend: Convert assert to throw ValueError in op_exp Asserts are converted to proper raises to ensure graph integrity. It should not be possible for exp to have more than 1 input for a correctly formatted graph, but in the node visitor we cannot know for sure that the graph is formatted correctly. torch.exp supports more data types than fp32, which is why it should be checked. Change-Id: I43ec2aa6bed20c871cd1a0f8d97ab12accc29533 Signed-off-by: Sebastian Larsson --- backends/arm/operators/op_exp.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/backends/arm/operators/op_exp.py b/backends/arm/operators/op_exp.py index 4b8232ef6e7..d9f0e4f5197 100644 --- a/backends/arm/operators/op_exp.py +++ b/backends/arm/operators/op_exp.py @@ -36,7 +36,14 @@ def define_node( output: TosaArg, ) -> None: - assert len(node.all_input_nodes) == 1 - assert inputs[0].dtype == output.dtype == ts.DType.FP32 + if len(node.all_input_nodes) != 1: + raise ValueError( + f"Expected 1 input for {self.target}, got {len(node.all_input_nodes)}" + ) + if inputs[0].dtype != ts.DType.FP32 or output.dtype != ts.DType.FP32: + raise ValueError( + f"Input and output for {self.target} need to be FP32, got input dtype: " + f"{inputs[0].dtype} and output dtype: {output.dtype}" + ) tosa_graph.addOperator(TosaOp.Op().EXP, [inputs[0].name], [output.name])