From 8f1f9aaa58175b17cd2e505bfcdb0e40c955ea72 Mon Sep 17 00:00:00 2001 From: Patrik Gustavsson Date: Mon, 28 Jun 2021 07:41:58 +0200 Subject: MLBEDSW-4838 Added basic TOSA support. Added basic TOSA support, enabling Vela to read and compile a .tosa file corresponding to CONV2D + Rescale + Clamp, and writing it to an optimized .tflite file. The optimized .tflite file, will in this case, hold a commandstream where the Rescale and Clamp has been fused into the CONV2D. The optimized tflite file is not output from Vela. -Added support to read .tosa file into Vela internal structure. - Added tosa_reader.py, tosa_mapper.py and helper files stored under tosa/ - Support for this limited to ~10 ops -Added reader_util.py for functions common for TOSA and TFLite -Added tosa_graph_optimiser.py -Added support to fuse Rescale into convolution -Modified handling for padding -Added support to fuse Clamp to previous op -Added graph_optimiser_util.py -Moved functions common for TOSA/TFLite graph optimization to this file. -Renamed graph_optimiser.py to tflite_graph_optmiser.py -Added separate tosa_supported_operators.py -Added supported_operator_util.py -For functions in common for TOSA/TFLite Signed-off-by: Patrik Gustavsson Change-Id: Ic3c540504ec8c5eb4771397fdc6882050ecf33ab --- ethosu/vela/high_level_command_stream_generator.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'ethosu/vela/high_level_command_stream_generator.py') diff --git a/ethosu/vela/high_level_command_stream_generator.py b/ethosu/vela/high_level_command_stream_generator.py index 6fcf80cb..b3ea9d49 100644 --- a/ethosu/vela/high_level_command_stream_generator.py +++ b/ethosu/vela/high_level_command_stream_generator.py @@ -109,7 +109,9 @@ def generate_high_level_commands_for_sched_op(sched_op, schedule): # Create activation function if needed for op in ps.ops: if op.type.is_relu_op() or op.type in (Op.Tanh, Op.Sigmoid): - ps.primary_op.activation = create_activation_function(op.type) + ps.primary_op.activation = create_activation_function( + op.type, min=op.attrs.get("min", None), max=op.attrs.get("max", None) + ) # Generate commands for the Op that produces this Op's IFM, if applicable if cascade_info is None or cascade_info.start == sched_op.index: -- cgit v1.2.1