From 1a6308eb9b023a737ecc6735e152a555e974bfc2 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Sat, 31 Jan 2026 12:09:15 +0100 Subject: [PATCH 01/50] Add FP32 operators for MicroLlama on Snitch (untiled) Add support for FP32 operators required by MicroLlama model: - RMSNorm: Fused RMS normalization - HardSwish: Activation function - Div: Element-wise division - Mul: Element-wise multiplication - MatMul: Matrix multiplication - Add: Element-wise addition (FP32 support) - Reshape, Transpose, Concat, Gather: Shape operations Components added: - Generic: Parsers, TypeCheckers, Layers, Bindings - Snitch Templates: FloatAdd, FloatDiv, FloatHardSwish, FloatMul, FloatRMSNorm, FloatMatMul, Reshape, Transpose, Gather - Snitch Kernels: C implementations for all FP32 operators - Test data: Hardswish, RMSNorm_fused kernels, microLlama_fp32_1 model This enables running MicroLlama FP32 model on Snitch in untiled mode: python testRunner_snitch.py -t Tests/Models/microLlama/microLlama_fp32_1 --- Deeploy/Targets/Generic/Bindings.py | 3 + Deeploy/Targets/Generic/Layers.py | 28 ++ Deeploy/Targets/Generic/Parsers.py | 47 +++- Deeploy/Targets/Generic/TypeCheckers.py | 51 ++++ Deeploy/Targets/Snitch/Bindings.py | 122 +++++++- Deeploy/Targets/Snitch/Parsers.py | 264 +++++++++++++++++- Deeploy/Targets/Snitch/Platform.py | 151 ++++++++-- .../Snitch/Templates/FloatAddTemplate.py | 46 +++ .../Snitch/Templates/FloatDivTemplate.py | 49 ++++ .../Templates/FloatHardSwishTemplate.py | 30 ++ .../Snitch/Templates/FloatMatMulTemplate.py | 30 ++ .../Snitch/Templates/FloatMulTemplate.py | 48 ++++ .../Snitch/Templates/FloatRMSNormTemplate.py | 31 ++ .../Snitch/Templates/FloatSoftmaxTemplate.py | 4 +- .../Snitch/Templates/GatherTemplate.py | 18 ++ .../Snitch/Templates/MatMulTemplate.py | 58 ++++ .../Snitch/Templates/ReshapeTemplate.py | 44 +++ .../Snitch/Templates/TransposeTemplate.py | 36 +++ .../Tests/Kernels/FP32/Hardswish/inputs.npz | Bin 0 -> 1288 bytes .../Tests/Kernels/FP32/Hardswish/network.onnx | 14 + .../Tests/Kernels/FP32/Hardswish/outputs.npz | Bin 0 -> 1290 bytes .../Kernels/FP32/RMSNorm_fused/inputs.npz | Bin 0 -> 2312 bytes .../Kernels/FP32/RMSNorm_fused/network.onnx | Bin 0 -> 220 bytes .../Kernels/FP32/RMSNorm_fused/outputs.npz | Bin 0 -> 2314 bytes .../microLlama_fp32_1/activations.npz | Bin 0 -> 355738 bytes .../microLlama/microLlama_fp32_1/inputs.npz | Bin 0 -> 9138 bytes .../microLlama/microLlama_fp32_1/network.onnx | Bin 0 -> 2186293 bytes .../microLlama/microLlama_fp32_1/outputs.npz | Bin 0 -> 526 bytes DeeployTest/testUtils/typeMapping.py | 6 +- TargetLibraries/Generic/inc/macros.h | 6 + .../Snitch/inc/DeeploySnitchMath.h | 5 + TargetLibraries/Snitch/inc/kernel/Add.h | 21 ++ TargetLibraries/Snitch/inc/kernel/Div.h | 44 +++ TargetLibraries/Snitch/inc/kernel/HardSwish.h | 34 +++ TargetLibraries/Snitch/inc/kernel/Mul.h | 44 +++ TargetLibraries/Snitch/inc/kernel/RMSNrom.h | 31 ++ TargetLibraries/Snitch/inc/kernel/Softmax.h | 2 +- TargetLibraries/Snitch/inc/macros.h | 9 + TargetLibraries/Snitch/src/Add_fp32.c | 102 +++++++ TargetLibraries/Snitch/src/CycleCounter.c | 19 +- TargetLibraries/Snitch/src/Div_fp32.c | 89 ++++++ TargetLibraries/Snitch/src/Gemm_fp32.c | 199 +------------ TargetLibraries/Snitch/src/HardSwish.c | 46 +++ TargetLibraries/Snitch/src/Mul_fp32.c | 86 ++++++ TargetLibraries/Snitch/src/RMSNrom_fp32.c | 50 ++++ 45 files changed, 1643 insertions(+), 224 deletions(-) create mode 100644 Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/GatherTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/MatMulTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py create mode 100644 Deeploy/Targets/Snitch/Templates/TransposeTemplate.py create mode 100644 DeeployTest/Tests/Kernels/FP32/Hardswish/inputs.npz create mode 100644 DeeployTest/Tests/Kernels/FP32/Hardswish/network.onnx create mode 100644 DeeployTest/Tests/Kernels/FP32/Hardswish/outputs.npz create mode 100644 DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/inputs.npz create mode 100644 DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/network.onnx create mode 100644 DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/outputs.npz create mode 100644 DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/activations.npz create mode 100644 DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/inputs.npz create mode 100644 DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/network.onnx create mode 100644 DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/outputs.npz create mode 100644 TargetLibraries/Snitch/inc/kernel/Add.h create mode 100644 TargetLibraries/Snitch/inc/kernel/Div.h create mode 100644 TargetLibraries/Snitch/inc/kernel/HardSwish.h create mode 100644 TargetLibraries/Snitch/inc/kernel/Mul.h create mode 100644 TargetLibraries/Snitch/inc/kernel/RMSNrom.h create mode 100644 TargetLibraries/Snitch/src/Add_fp32.c create mode 100644 TargetLibraries/Snitch/src/Div_fp32.c create mode 100644 TargetLibraries/Snitch/src/HardSwish.c create mode 100644 TargetLibraries/Snitch/src/Mul_fp32.c create mode 100644 TargetLibraries/Snitch/src/RMSNrom_fp32.c diff --git a/Deeploy/Targets/Generic/Bindings.py b/Deeploy/Targets/Generic/Bindings.py index 308b179aef..c40c812048 100644 --- a/Deeploy/Targets/Generic/Bindings.py +++ b/Deeploy/Targets/Generic/Bindings.py @@ -286,6 +286,9 @@ BasicConcatBindings = [ NodeBinding(ConcatChecker([PointerClass(type), PointerClass(type)], [PointerClass(type)]), ConcatTemplate.referenceTemplate, BasicTransformer) for type in IntegerDataTypes +] + [ + NodeBinding(ConcatChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + ConcatTemplate.referenceTemplate, BasicTransformer) ] BasicQuantBindings = [ diff --git a/Deeploy/Targets/Generic/Layers.py b/Deeploy/Targets/Generic/Layers.py index cc733937cc..26dd5746c9 100644 --- a/Deeploy/Targets/Generic/Layers.py +++ b/Deeploy/Targets/Generic/Layers.py @@ -709,3 +709,31 @@ def computeOps(self): numPx = opRep['dim_im_out_x'] return numPx * opsPerPx + + +class RMSNormLayer(ONNXLayer): + + def __init__(self, maps: List[NodeMapper]): + super().__init__(maps) + + def computeOps(self): + # RMSNorm: square, mean, sqrt, div, mul + size = self.mapper.parser.operatorRepresentation['size'] + lastDimLength = self.mapper.parser.operatorRepresentation['lastDimLength'] + batch_size = size // lastDimLength + + # square + sum + mean + eps + sqrt + div + mul + ops = size + batch_size * lastDimLength + batch_size * 4 + size * 2 + return ops + + +class HardSwishLayer(ONNXLayer): + + def __init__(self, maps: List[NodeMapper]): + super().__init__(maps) + + def computeOps(self): + # HardSwish(x) = x * clip(x/6 + 0.5, 0, 1) + # Operations: div + add + clip + mul + size = self.mapper.parser.operatorRepresentation['size'] + return size * 4 diff --git a/Deeploy/Targets/Generic/Parsers.py b/Deeploy/Targets/Generic/Parsers.py index ad787d9e4b..b140e08f48 100644 --- a/Deeploy/Targets/Generic/Parsers.py +++ b/Deeploy/Targets/Generic/Parsers.py @@ -471,23 +471,62 @@ def __init__(self): super().__init__() def parseNode(self, node: gs.Node) -> bool: - ret = all([len(node.inputs) == 2, len(node.outputs) == 1]) - return ret def parseNodeCtxt(self, ctxt: NetworkContext, node: gs.Node, channels_first: bool = True) -> Tuple[NetworkContext, bool]: - data_in_1 = ctxt.lookup(node.inputs[0].name) data_in_2 = ctxt.lookup(node.inputs[1].name) data_out = ctxt.lookup(node.outputs[0].name) + self.operatorRepresentation['data_in_1'] = data_in_1.name self.operatorRepresentation['data_in_2'] = data_in_2.name self.operatorRepresentation['data_out'] = data_out.name - self.operatorRepresentation['size'] = np.prod(data_in_1.shape) + self.operatorRepresentation['size'] = np.prod(data_out.shape) + + # Check if broadcasting is needed + shape1 = list(data_in_1.shape) + shape2 = list(data_in_2.shape) + out_shape = list(data_out.shape) + + need_broadcast = (shape1 != out_shape) or (shape2 != out_shape) + self.operatorRepresentation['need_broadcast'] = need_broadcast + + if need_broadcast: + # Calculate strides for broadcasting + ndim = len(out_shape) + + # Compute strides for input 1 + strides1 = [1] * ndim + for i in range(ndim - 1, -1, -1): + if i < len(shape1) and shape1[i] == out_shape[i]: + if i == ndim - 1: + strides1[i] = 1 + else: + strides1[i] = strides1[i + 1] * shape1[i + 1] if ( + i + 1 < len(shape1) and shape1[i + 1] == out_shape[i + 1]) else strides1[i + 1] + else: + strides1[i] = 0 # Broadcast dimension + + # Compute strides for input 2 + strides2 = [1] * ndim + for i in range(ndim - 1, -1, -1): + if i < len(shape2) and shape2[i] == out_shape[i]: + if i == ndim - 1: + strides2[i] = 1 + else: + strides2[i] = strides2[i + 1] * shape2[i + 1] if ( + i + 1 < len(shape2) and shape2[i + 1] == out_shape[i + 1]) else strides2[i + 1] + else: + strides2[i] = 0 # Broadcast dimension + + self.operatorRepresentation['ndim'] = ndim + self.operatorRepresentation['strides1'] = strides1 + self.operatorRepresentation['strides2'] = strides2 + self.operatorRepresentation['out_shape'] = out_shape return ctxt, True diff --git a/Deeploy/Targets/Generic/TypeCheckers.py b/Deeploy/Targets/Generic/TypeCheckers.py index c2c8d436f8..6b3ff546b3 100644 --- a/Deeploy/Targets/Generic/TypeCheckers.py +++ b/Deeploy/Targets/Generic/TypeCheckers.py @@ -102,6 +102,20 @@ def _inferSignedness(self, inputs: List[VariableBuffer], return [False] +class FloatAddChecker(SignPropTypeChecker): + + def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): + super().__init__(input_types, output_types) + + def _inferNumLevels(self, inputs: List[VariableBuffer], + operatorRepresentation: OperatorRepresentation) -> List[int]: + return [2**(self.input_types[0].referencedType.typeWidth)] + + def _inferSignedness(self, inputs: List[VariableBuffer], + operatorRepresentation: OperatorRepresentation) -> List[bool]: + return [True] + + class GatherChecker(SignPropTypeChecker): def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): @@ -610,3 +624,40 @@ def _inferNumLevels(self, inputs: List[VariableBuffer], def _inferSignedness(self, inputs: List[VariableBuffer], operatorRepresentation: OperatorRepresentation) -> List[bool]: return [True] + + +class RMSNormChecker(SignPropTypeChecker): + + def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): + super().__init__(input_types, output_types) + + def _inferNumLevels(self, inputs: List[VariableBuffer], + operatorRepresentation: OperatorRepresentation) -> List[int]: + # RMSNorm: square, mean, sqrt, reciprocal, multiply + # Output precision similar to input + return [2**(self.input_types[0].referencedType.typeWidth)] + + def _inferSignedness(self, inputs: List[VariableBuffer], + operatorRepresentation: OperatorRepresentation) -> List[bool]: + # RMSNorm output can be signed (depending on input signedness) + if inputs[0]._signed: + return [True] + else: + return [False] + + +class HardSwishChecker(SignPropTypeChecker): + + def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): + super().__init__(input_types, output_types) + + def _inferNumLevels(self, inputs: List[VariableBuffer], + operatorRepresentation: OperatorRepresentation) -> List[int]: + return [2**(self.input_types[0].referencedType.typeWidth)] + + def _inferSignedness(self, inputs: List[VariableBuffer], + operatorRepresentation: OperatorRepresentation) -> List[bool]: + if inputs[0]._signed: + return [True] + else: + return [False] diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 25b150b553..e442f63038 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -11,12 +11,20 @@ from Deeploy.CommonExtensions.DataTypes import float32_t, int8_t, int32_t, uint8_t from Deeploy.DeeployTypes import CodeTransformation, NodeBinding from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration -from Deeploy.Targets.Generic.Templates import iNoNormTemplate -from Deeploy.Targets.Generic.TypeCheckers import AddChecker, GEMMChecker, RQAddChecker, SoftmaxChecker, iNoNormChecker +from Deeploy.Targets.Generic.Templates import ConcatTemplate, iNoNormTemplate +from Deeploy.Targets.Generic.TypeCheckers import AddChecker, ConcatChecker, DivChecker, GatherChecker, GEMMChecker, \ + HardSwishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ + TransposeChecker, iNoNormChecker from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma -from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, RQAddTemplate, iSoftmaxTemplate +from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ + MatMulTemplate, ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate +from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate +from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate +from Deeploy.Targets.Snitch.Templates.FloatHardSwishTemplate import referenceTemplate as FloatHardSwishTemplate +from Deeploy.Targets.Snitch.Templates.FloatMulTemplate import referenceTemplate as FloatMulTemplate +from Deeploy.Targets.Snitch.Templates.FloatRMSNormTemplate import referenceTemplate as FloatRMSNormTemplate from Deeploy.Targets.Snitch.Templates.FloatSoftmaxTemplate import FloatSoftmax_Template from Deeploy.Targets.Snitch.Templates.GemmTemplate import SnitchGemm_Template from Deeploy.Targets.Snitch.Templates.RqGemmTemplate import SnitchRqGemm_Template @@ -45,6 +53,7 @@ ArgumentStructGeneration(), MemoryManagementGeneration("L1"), MemoryAwareFunctionCallClosure(writeback = False, generateStruct = True), + MemoryManagementGeneration("L2"), MemoryManagementGeneration() ]) @@ -69,7 +78,18 @@ SnitchAddBindings = [ NodeBinding(AddChecker([PointerClass(_type), PointerClass(_type)], [PointerClass(int32_t)]), AddTemplate.referenceTemplate, TiledTransformer) for _type in [int8_t] +] + [ + # fp32 support + NodeBinding(AddChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatAddTemplate, TiledTransformer) +] + +# Basic (non-tiled) FP32 Add Bindings +BasicAddBindings = [ + NodeBinding(AddChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatAddTemplate, BasicTransformer) ] + SnitchGemmBindings = [ NodeBinding( GEMMChecker([PointerClass(int8_t), PointerClass(int8_t), @@ -90,3 +110,99 @@ PointerClass(int32_t) ], [PointerClass(int8_t)]), SnitchRqGemm_Template, TiledTransformer) ] + +# RMSNorm Bindings (Tiled) +SnitchRMSNormBindings = [ + NodeBinding(RMSNormChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatRMSNormTemplate, TiledTransformer) +] + +# RMSNorm Bindings (Non-tiled) +BasicRMSNormBindings = [ + NodeBinding(RMSNormChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatRMSNormTemplate, BasicTransformer) +] + +# HardSwish Bindings (Tiled) +SnitchHardSwishBindings = [ + NodeBinding(HardSwishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, + TiledTransformer) +] + +# HardSwish Bindings (Non-tiled) +BasicHardSwishBindings = [ + NodeBinding(HardSwishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, + BasicTransformer) +] + +# Div Bindings (Tiled) +SnitchDivBindings = [ + NodeBinding(DivChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatDivTemplate, TiledTransformer) +] + +# Div Bindings (Non-tiled) +BasicDivBindings = [ + NodeBinding(DivChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatDivTemplate, BasicTransformer) +] + +# Mul Bindings (Tiled) +SnitchMulBindings = [ + NodeBinding(MulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatMulTemplate, TiledTransformer) +] + +# Mul Bindings (Non-tiled) +BasicMulBindings = [ + NodeBinding(MulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatMulTemplate, BasicTransformer) +] + +# MatMul Bindings (Tiled) +SnitchMatMulBindings = [ + NodeBinding(MatMulChecker([PointerClass(int8_t), PointerClass(int8_t)], [PointerClass(int32_t)]), + MatMulTemplate.referenceTemplate, TiledTransformer), + NodeBinding(MatMulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + FloatMatMulTemplate.referenceTemplate, TiledTransformer) +] + +# Concat Bindings (Tiled) +SnitchConcatBindings = [ + NodeBinding(ConcatChecker([PointerClass(int8_t), PointerClass(int8_t)], [PointerClass(int8_t)]), + ConcatTemplate.referenceTemplate, TiledTransformer), + NodeBinding(ConcatChecker([PointerClass(int32_t), PointerClass(int32_t)], [PointerClass(int32_t)]), + ConcatTemplate.referenceTemplate, TiledTransformer), + NodeBinding(ConcatChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), + ConcatTemplate.referenceTemplate, TiledTransformer) +] + +# Transpose Bindings (Tiled) +SnitchTransposeBindings = [ + NodeBinding(TransposeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), TransposeTemplate.referenceTemplate, + TiledTransformer), + NodeBinding(TransposeChecker([PointerClass(int32_t)], [PointerClass(int32_t)]), TransposeTemplate.referenceTemplate, + TiledTransformer), + NodeBinding(TransposeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), + TransposeTemplate.referenceTemplate, TiledTransformer) +] + +# Reshape Bindings (Tiled) +SnitchReshapeBindings = [ + NodeBinding(ReshapeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), ReshapeTemplate.referenceTemplate, + TiledTransformer), + NodeBinding(ReshapeChecker([PointerClass(int32_t)], [PointerClass(int32_t)]), ReshapeTemplate.referenceTemplate, + TiledTransformer), + NodeBinding(ReshapeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), ReshapeTemplate.referenceTemplate, + TiledTransformer) +] + +# Gather Bindings (Tiled) +SnitchGatherBindings = [ + NodeBinding(GatherChecker([PointerClass(int8_t), PointerClass(int32_t)], [PointerClass(int8_t)]), + GatherTemplate.referenceTemplate, TiledTransformer), + NodeBinding(GatherChecker([PointerClass(int32_t), PointerClass(int32_t)], [PointerClass(int32_t)]), + GatherTemplate.referenceTemplate, TiledTransformer), + NodeBinding(GatherChecker([PointerClass(float32_t), PointerClass(int32_t)], [PointerClass(float32_t)]), + GatherTemplate.referenceTemplate, TiledTransformer) +] diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 0051994686..6976d8d356 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -4,10 +4,11 @@ from typing import Tuple +import numpy as np import onnx_graphsurgeon as gs -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.Targets.Generic.Parsers import GEMMParser, RQGEMMParser +from Deeploy.DeeployTypes import NetworkContext, NodeParser +from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser class SnitchGEMMParser(GEMMParser): @@ -72,3 +73,262 @@ def parseNodeCtxt(self, return ctxt, False return newCtxt, True + + +class SnitchRMSNormParser(NodeParser): + + def __init__(self): + super().__init__() + + def parseNode(self, node: gs.Node) -> bool: + if node.op != 'RMSNorm': + return False + if len(node.inputs) != 2 or len(node.outputs) != 1: + return False + eps = node.attrs.get('eps', node.attrs.get('epsilon', 1e-6)) + self.operatorRepresentation['eps'] = f"{float(eps):.10e}f" + return True + + def parseNodeCtxt(self, + ctxt: NetworkContext, + node: gs.Node, + channels_first: bool = True) -> Tuple[NetworkContext, bool]: + data_in = ctxt.lookup(node.inputs[0].name) + weight = ctxt.lookup(node.inputs[1].name) + data_out = ctxt.lookup(node.outputs[0].name) + + self.operatorRepresentation['data_in'] = data_in.name + self.operatorRepresentation['weight'] = weight.name + self.operatorRepresentation['data_out'] = data_out.name + self.operatorRepresentation['input_shape'] = list(data_in.shape) + self.operatorRepresentation['weight_shape'] = list(weight.shape) + self.operatorRepresentation['output_shape'] = list(data_out.shape) + self.operatorRepresentation['size'] = int(np.prod(data_in.shape)) + self.operatorRepresentation['lastDimLength'] = int(data_in.shape[-1]) + self.operatorRepresentation['input_ndim'] = len(data_in.shape) + self.operatorRepresentation['weight_ndim'] = len(weight.shape) + + return ctxt, True + + +class HardSwishParser(NodeParser): + + def __init__(self): + super().__init__() + + def parseNode(self, node: gs.Node) -> bool: + """Parse HardSwish node.""" + + if node.op != 'HardSwish': + return False + + # Check basic structure: 1 input and 1 output + if len(node.inputs) != 1 or len(node.outputs) != 1: + return False + + return True + + def parseNodeCtxt(self, + ctxt: NetworkContext, + node: gs.Node, + channels_first: bool = True) -> Tuple[NetworkContext, bool]: + """Parse HardSwish node with network context.""" + + # Get input and output buffers + data_in = ctxt.lookup(node.inputs[0].name) + data_out = ctxt.lookup(node.outputs[0].name) + + # Store buffer names + self.operatorRepresentation['data_in'] = data_in.name + self.operatorRepresentation['data_out'] = data_out.name + + # Calculate size for memory allocation + self.operatorRepresentation['size'] = int(np.prod(data_in.shape)) + + return ctxt, True + + +class SnitchAddParser(AddParser): + """ + Inherits from GenericAddParser and adds support for Broadcasting. + + Compatibility: + - No broadcasting: Uses the Add_fp32() fast path. + - With broadcasting: Uses the Add_fp32_broadcast() generic version. + """ + + def __init__(self): + super().__init__() + + def parseNodeCtxt(self, + ctxt: NetworkContext, + node: gs.Node, + channels_first: bool = True) -> Tuple[NetworkContext, bool]: + # Call parent method to retrieve basic information + ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) + if not ret: + return ctxt, False + + # Retrieve shape information + data_in_1 = ctxt.lookup(node.inputs[0].name) + data_in_2 = ctxt.lookup(node.inputs[1].name) + data_out = ctxt.lookup(node.outputs[0].name) + + shape1 = list(data_in_1.shape) + shape2 = list(data_in_2.shape) + out_shape = list(data_out.shape) + + # Correct 'size' to match the output shape (after broadcasting) + self.operatorRepresentation['size'] = int(np.prod(out_shape)) + + # Broadcasting information + self.operatorRepresentation['shape1'] = shape1 + self.operatorRepresentation['shape2'] = shape2 + self.operatorRepresentation['out_shape'] = out_shape + self.operatorRepresentation['ndim'] = len(out_shape) + + # Determine if broadcasting is needed + need_broadcast = (shape1 != shape2) + self.operatorRepresentation['need_broadcast'] = need_broadcast + + if need_broadcast: + strides1, strides2 = self._compute_broadcast_strides(shape1, shape2, out_shape) + self.operatorRepresentation['strides1'] = strides1 + self.operatorRepresentation['strides2'] = strides2 + + return ctxt, True + + def _compute_broadcast_strides(self, shape1, shape2, out_shape): + """ + Calculates strides after broadcasting (following ONNX/NumPy rules). + + Principles: + - Align dimensions from right to left. + - When a dimension is 1, set stride to 0 to achieve the broadcasting effect. + + Example: + shape1=[8,8,8], shape2=[8] + → pad2=[1,1,8] + → strides1=[64,8,1], strides2=[0,0,1] + """ + ndim = len(out_shape) + + # Right-align and pad to the same number of dimensions + pad1 = [1] * (ndim - len(shape1)) + shape1 + pad2 = [1] * (ndim - len(shape2)) + shape2 + + def calc_strides(padded_shape, out_shape): + strides = [] + stride = 1 + for i in range(ndim - 1, -1, -1): + if padded_shape[i] == 1 and out_shape[i] > 1: + strides.insert(0, 0) # Broadcast dimension stride=0 + else: + strides.insert(0, stride) + + # Update stride multiplier only if the current dimension is essentially used (size > 1) + stride *= padded_shape[i] if padded_shape[i] > 1 else 1 + return strides + + strides1 = calc_strides(pad1, out_shape) + strides2 = calc_strides(pad2, out_shape) + + return strides1, strides2 + + +class SnitchDivParser(DivParser): + """ + Snitch-specific Div Parser. + Inherits from Generic DivParser and adds shape/broadcasting information. + """ + + def __init__(self): + super().__init__() + + def parseNodeCtxt(self, + ctxt: NetworkContext, + node: gs.Node, + channels_first: bool = True) -> Tuple[NetworkContext, bool]: + """ + Extend Generic parser to add shape and broadcasting information. + """ + # Call parent method first + ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) + + if not ret: + return ctxt, False + + # Get shape information + data_in_1 = ctxt.lookup(node.inputs[0].name) + data_in_2 = ctxt.lookup(node.inputs[1].name) + data_out = ctxt.lookup(node.outputs[0].name) + + shape1 = list(data_in_1.shape) + shape2 = list(data_in_2.shape) + out_shape = list(data_out.shape) + + # Store shape information + self.operatorRepresentation['shape1'] = shape1 + self.operatorRepresentation['shape2'] = shape2 + self.operatorRepresentation['out_shape'] = out_shape + + # Calculate sizes + self.operatorRepresentation['size1'] = int(np.prod(shape1)) + self.operatorRepresentation['size2'] = int(np.prod(shape2)) + + # Update output size (may differ due to broadcasting) + self.operatorRepresentation['size'] = int(np.prod(out_shape)) + + # Check if scalar broadcasting (input2 is scalar) + self.operatorRepresentation['is_scalar'] = (self.operatorRepresentation['size2'] == 1) + + return ctxt, True + + +class SnitchMulParser(MulParser): + """ + Snitch-specific Mul Parser. + Inherits from Generic MulParser and adds shape/broadcasting information. + """ + + def __init__(self): + super().__init__() + + def parseNodeCtxt(self, + ctxt: NetworkContext, + node: gs.Node, + channels_first: bool = True) -> Tuple[NetworkContext, bool]: + """ + Extend Generic parser to add shape and broadcasting information. + """ + # Call parent method first + ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) + + if not ret: + return ctxt, False + + # Get shape information + data_in_1 = ctxt.lookup(node.inputs[0].name) + data_in_2 = ctxt.lookup(node.inputs[1].name) + data_out = ctxt.lookup(node.outputs[0].name) + + shape1 = list(data_in_1.shape) + shape2 = list(data_in_2.shape) + out_shape = list(data_out.shape) + + # Store shape information + self.operatorRepresentation['shape1'] = shape1 + self.operatorRepresentation['shape2'] = shape2 + self.operatorRepresentation['out_shape'] = out_shape + + # Calculate sizes + self.operatorRepresentation['size1'] = int(np.prod(shape1)) + self.operatorRepresentation['size2'] = int(np.prod(shape2)) + + # Update output size (may differ due to broadcasting) + self.operatorRepresentation['size'] = int(np.prod(out_shape)) + + # Check if scalar broadcasting (input2 is scalar) + self.operatorRepresentation['is_scalar'] = (self.operatorRepresentation['size2'] == 1) + + return ctxt, True diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index d62d1c3802..32bf53190f 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -2,46 +2,69 @@ # # SPDX-License-Identifier: Apache-2.0 -from typing import List +from typing import List, Type import numpy as np +from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicGatherBindings, BasicLayerNormBindings, BasicMatMulBindings, \ - BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding -from Deeploy.Targets.Generic.Layers import AddLayer, GatherLayer, GEMMLayer, LayerNormLayer, MatMulLayer, PadLayer, \ - ReshapeLayer, RQGEMMLayer, RQIntegerDivLayer, SoftmaxLayer, iNoNormLayer -from Deeploy.Targets.Generic.Parsers import AddParser, GatherParser, MatMulParser, Pad1DParser, Pad2DParser, \ - RQAddParser, RQIntegerDivParser, SoftmaxParser, UnsqueezeParser, iLayerNormParser, iNoNormParser, iSoftmaxParser +from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicGatherBindings, BasicLayerNormBindings, \ + BasicMatMulBindings, BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding, \ + BasicTransposeBindings +from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ + LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ + SoftmaxLayer, TransposeLayer, iNoNormLayer +from Deeploy.Targets.Generic.Parsers import AddParser, ConcatParser, GatherParser, MatMulParser, Pad1DParser, Pad2DParser, \ + ReshapeParser, RQAddParser, RQIntegerDivParser, SoftmaxParser, TransposeParser, UnsqueezeParser, iLayerNormParser, \ + iNoNormParser, iSoftmaxParser from Deeploy.Targets.Generic.Templates import AllocateTemplate as BasicAllocateTemplate from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass, GEMMRequantMergePass, \ IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass from Deeploy.Targets.PULPOpen.Platform import RQAddMapper -from Deeploy.Targets.Snitch.Parsers import SnitchGEMMParser, SnitchRQGEMMParser +from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ + BasicRMSNormBindings, SnitchAddBindings, SnitchGemmBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ + SnitchRQAddBindings, SnitchRqGemmBindings +from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchDivParser, SnitchGEMMParser, SnitchMulParser, \ + SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate -from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchGemmTilingReadyBindings, \ - SnitchiNoNormTilingReadyBindings, SnitchiSoftmaxTilingReadyBindings, SnitchRQAddTilingReadyBindings, \ - SnitchRqGemmTilingReadyBindings +# ============================================================================= +# Mappers for UNTILED mode (using BasicBindings with BasicTransformer) +# These are used by generateNetwork.py (testRunner_snitch.py) +# ============================================================================= GatherMapper = NodeMapper(GatherParser(), BasicGatherBindings) Pad1DMapper = NodeMapper(Pad1DParser(), BasicPad1DBindings) Pad2DMapper = NodeMapper(Pad2DParser(), BasicPad2DBindings) UnsqueezeMapper = NodeMapper(UnsqueezeParser(), BasicReshapeBindings) +ReshapeMapper = NodeMapper(ReshapeParser(), BasicReshapeBindings) +TransposeMapper = NodeMapper(TransposeParser(), BasicTransposeBindings) +ConcatMapper = NodeMapper(ConcatParser(), BasicConcatBindings) RQIntegerDivMapper = NodeMapper(RQIntegerDivParser(), [BasicRQIntegerDivBinding]) -MatMulMapper = NodeMapper(MatMulParser(), BasicMatMulBindings) -GemmMapper = NodeMapper(SnitchGEMMParser(), SnitchGemmTilingReadyBindings) -RqGemmMapper = NodeMapper(SnitchRQGEMMParser(), SnitchRqGemmTilingReadyBindings) -iSoftmaxMapper = NodeMapper(iSoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) -SoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) -iNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormTilingReadyBindings) +# These use TiledTransformer but work in both modes (original upstream behavior) +GemmMapper = NodeMapper(SnitchGEMMParser(), SnitchGemmBindings) +RqGemmMapper = NodeMapper(SnitchRQGEMMParser(), SnitchRqGemmBindings) +iSoftmaxMapper = NodeMapper(iSoftmaxParser(), SnitchiSoftmaxBindings) +SoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxBindings) +iNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormBindings) iLayerNormMapper = NodeMapper(iLayerNormParser(), BasicLayerNormBindings) -RQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddTilingReadyBindings) -AddMapper = NodeMapper(AddParser(), SnitchAddTileReadyBindings) +RQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddBindings) +AddMapper = NodeMapper(AddParser(), SnitchAddBindings) + +# New operators for microLlama - using BasicBindings for untiled mode +RMSNormMapper = NodeMapper(SnitchRMSNormParser(), BasicRMSNormBindings) +HardSwishMapper = NodeMapper(HardSwishParser(), BasicHardSwishBindings) +MatMulMapper = NodeMapper(MatMulParser(), BasicMatMulBindings) +DivMapper = NodeMapper(SnitchDivParser(), BasicDivBindings) +MulMapper = NodeMapper(SnitchMulParser(), BasicMulBindings) +# ============================================================================= +# SnitchMapping - for UNTILED mode (generateNetwork.py) +# Uses BasicBindings for new operators, TiledTransformer bindings for original ops +# ============================================================================= SnitchMapping = { 'RQIntegerDiv': RQIntegerDivLayer([RQIntegerDivMapper]), 'Gather': GatherLayer([GatherMapper]), @@ -56,6 +79,72 @@ 'iLayerNorm': LayerNormLayer([iLayerNormMapper]), 'RequantizedAdd': AddLayer([RQAddMapper]), 'Add': AddLayer([AddMapper]), + 'RMSNorm': RMSNormLayer([RMSNormMapper]), + 'HardSwish': HardSwishLayer([HardSwishMapper]), + 'Div': DivLayer([DivMapper]), + 'Mul': MulLayer([MulMapper]), + 'Reshape': ReshapeLayer([ReshapeMapper]), + 'Transpose': TransposeLayer([TransposeMapper]), + 'Concat': ConcatLayer([ConcatMapper]), +} + +# ============================================================================= +# Import TilingReadyBindings for TILED mode (testMVP.py) +# These will be used by TilerDeployerWrapper +# ============================================================================= +from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ + SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ + SnitchHardSwishTilingReadyBindings, SnitchiNoNormTilingReadyBindings, SnitchiSoftmaxTilingReadyBindings, \ + SnitchMatMulTilingReadyBindings, SnitchMulTilingReadyBindings, SnitchReshapeTilingReadyBindings, \ + SnitchRMSNormTilingReadyBindings, SnitchRQAddTilingReadyBindings, SnitchRqGemmTilingReadyBindings, \ + SnitchTransposeTilingReadyBindings + +# ============================================================================= +# Tiled Mappers - for TILED mode (testMVP.py via TilerDeployerWrapper) +# ============================================================================= +TiledGatherMapper = NodeMapper(GatherParser(), SnitchGatherTilingReadyBindings) +TiledUnsqueezeMapper = NodeMapper(UnsqueezeParser(), SnitchReshapeTilingReadyBindings) +TiledReshapeMapper = NodeMapper(ReshapeParser(), SnitchReshapeTilingReadyBindings) +TiledTransposeMapper = NodeMapper(TransposeParser(), SnitchTransposeTilingReadyBindings) +TiledConcatMapper = NodeMapper(ConcatParser(), SnitchConcatTilingReadyBindings) +TiledMatMulMapper = NodeMapper(MatMulParser(), SnitchMatMulTilingReadyBindings) +TiledRMSNormMapper = NodeMapper(SnitchRMSNormParser(), SnitchRMSNormTilingReadyBindings) +TiledHardSwishMapper = NodeMapper(HardSwishParser(), SnitchHardSwishTilingReadyBindings) +TiledDivMapper = NodeMapper(SnitchDivParser(), SnitchDivTilingReadyBindings) +TiledMulMapper = NodeMapper(SnitchMulParser(), SnitchMulTilingReadyBindings) +TiledGemmMapper = NodeMapper(SnitchGEMMParser(), SnitchGemmTilingReadyBindings) +TiledRqGemmMapper = NodeMapper(SnitchRQGEMMParser(), SnitchRqGemmTilingReadyBindings) +TilediSoftmaxMapper = NodeMapper(iSoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) +TiledSoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) +TilediNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormTilingReadyBindings) +TiledRQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddTilingReadyBindings) +TiledAddMapper = NodeMapper(AddParser(), SnitchAddTileReadyBindings) + +# ============================================================================= +# SnitchTiledMapping - for TILED mode (testMVP.py) +# Uses TilingReadyBindings for all operators +# ============================================================================= +SnitchTiledMapping = { + 'RQIntegerDiv': RQIntegerDivLayer([RQIntegerDivMapper]), + 'Gather': GatherLayer([TiledGatherMapper]), + 'Pad': PadLayer([Pad1DMapper, Pad2DMapper]), + 'Unsqueeze': ReshapeLayer([TiledUnsqueezeMapper]), + 'MatMul': MatMulLayer([TiledMatMulMapper]), + 'Gemm': GEMMLayer([TiledGemmMapper]), + 'RQGemm': RQGEMMLayer([TiledRqGemmMapper]), + 'iSoftmax': SoftmaxLayer([TilediSoftmaxMapper]), + 'Softmax': SoftmaxLayer([TiledSoftmaxMapper]), + 'iNoNorm': iNoNormLayer([TilediNoNormMapper]), + 'iLayerNorm': LayerNormLayer([iLayerNormMapper]), + 'RequantizedAdd': AddLayer([TiledRQAddMapper]), + 'Add': AddLayer([TiledAddMapper]), + 'RMSNorm': RMSNormLayer([TiledRMSNormMapper]), + 'HardSwish': HardSwishLayer([TiledHardSwishMapper]), + 'Div': DivLayer([TiledDivMapper]), + 'Mul': MulLayer([TiledMulMapper]), + 'Reshape': ReshapeLayer([TiledReshapeMapper]), + 'Transpose': TransposeLayer([TiledTransposeMapper]), + 'Concat': ConcatLayer([TiledConcatMapper]), } @@ -105,6 +194,12 @@ class SnitchConstantBuffer(ConstantBuffer): allocTemplate = AllocateTemplate.snitchL2GlobalAllocateTemplate deallocTemplate = FreeTemplate.snitchL2GlobalTemplate + def __init__(self, name: str = '', shape = [1], values = [0]): + super().__init__(name, shape, values) + # Initialize _type with a default value to prevent AttributeError + # The actual type will be set later via annotateType + self._type: Type[Pointer] = PointerClass(VoidType) + def _bufferRepresentation(self): operatorRepresentation = super()._bufferRepresentation() @@ -163,3 +258,21 @@ def __init__(self, transientBuffer = SnitchTransientBuffer, includeList: List[str] = _includeList): super().__init__(engines, variableBuffer, constantBuffer, structBuffer, transientBuffer) + + +class SnitchTiledClusterEngine(DeploymentEngine): + + def __init__(self, name: str, Mapping = SnitchTiledMapping, initCode = "", includeList = _includeList) -> None: + super().__init__(name, Mapping, initCode, includeList) + + +class SnitchTiledPlatform(DeploymentPlatform): + + def __init__(self, + engines = [SnitchTiledClusterEngine("SnitchCluster")], + variableBuffer = SnitchVariableBuffer, + constantBuffer = SnitchConstantBuffer, + structBuffer = SnitchStructBuffer, + transientBuffer = SnitchTransientBuffer, + includeList: List[str] = _includeList): + super().__init__(engines, variableBuffer, constantBuffer, structBuffer, transientBuffer) diff --git a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py new file mode 100644 index 0000000000..5c5675c58f --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py @@ -0,0 +1,46 @@ +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 +# Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py + +from typing import Dict, List, Tuple + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation + + +class _FloatAddTemplate(NodeTemplate): + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + # Always initialize these variables to avoid Mako errors + operatorRepresentation.setdefault('need_broadcast', False) + operatorRepresentation.setdefault('ndim', 0) + operatorRepresentation.setdefault('strides1_str', '{}') + operatorRepresentation.setdefault('strides2_str', '{}') + operatorRepresentation.setdefault('out_shape_str', '{}') + + # If broadcasting is required, generate the stride array strings + if operatorRepresentation['need_broadcast']: + strides1 = operatorRepresentation['strides1'] + strides2 = operatorRepresentation['strides2'] + out_shape = operatorRepresentation['out_shape'] + operatorRepresentation['strides1_str'] = '{' + ', '.join(map(str, strides1)) + '}' + operatorRepresentation['strides2_str'] = '{' + ', '.join(map(str, strides2)) + '}' + operatorRepresentation['out_shape_str'] = '{' + ', '.join(map(str, out_shape)) + '}' + + return ctxt, operatorRepresentation, [] + + +referenceTemplate = _FloatAddTemplate(""" +// Snitch FP32 Add (Name: ${nodeName}, Op: ${nodeOp}) +% if need_broadcast: +{ + uint32_t strides1[${ndim}] = ${strides1_str}; + uint32_t strides2[${ndim}] = ${strides2_str}; + uint32_t out_shape[${ndim}] = ${out_shape_str}; + Add_fp32_broadcast(${data_in_1}, ${data_in_2}, ${data_out}, out_shape, strides1, strides2, ${ndim}, ${size}); +} +% else: +Add_fp32(${data_in_1}, ${data_in_2}, ${data_out}, ${size}); +% endif +""") diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py new file mode 100644 index 0000000000..ee35255e24 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -0,0 +1,49 @@ +# ~/Deeploy/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py + +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation + + +class FloatDivTemplate(NodeTemplate): + """Template for FP32 Div operation with dynamic template selection.""" + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + # Check if scalar broadcasting + is_scalar = operatorRepresentation.get('is_scalar', False) + + # Dynamically select template based on is_scalar flag + if is_scalar: + # Use scalar broadcasting version + self.templateStr = FloatDivScalarTemplateStr + else: + # Use element-wise version + self.templateStr = FloatDivTemplateStr + + return ctxt, operatorRepresentation, [] + + +# Template for element-wise division +FloatDivTemplateStr = r""" +Div_fp32(${input1}, ${input2}, ${output}, ${size}); +""" + +# Template for scalar broadcasting (optimized) +FloatDivScalarTemplateStr = r""" +{ + float32_t scalar = ${input2}[0]; + Div_fp32_scalar(${input1}, scalar, ${output}, ${size}); +} +""" + +# Create reference template with default (element-wise) +referenceTemplate = FloatDivTemplate(FloatDivTemplateStr) diff --git a/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py new file mode 100644 index 0000000000..1615282437 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py @@ -0,0 +1,30 @@ +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +import numpy as np + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation + + +class FloatHardSwishTemplate(NodeTemplate): + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + data_in = ctxt.lookup(operatorRepresentation["data_in"]) + operatorRepresentation["size"] = int(np.prod(data_in.shape)) + + return ctxt, operatorRepresentation, [] + + +FloatHardSwishTemplateStr = r""" +HardSwish_fp32(${data_in}, ${data_out}, ${size}); +""" + +referenceTemplate = FloatHardSwishTemplate(FloatHardSwishTemplateStr) diff --git a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py new file mode 100644 index 0000000000..0cd0a649e1 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py @@ -0,0 +1,30 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from Deeploy.DeeployTypes import NodeTemplate + +# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency +referenceTemplate = NodeTemplate(""" +// Matmul (Name: ${nodeName}, Op: ${nodeOp}) +if (snrt_cluster_core_idx() == 0) { + ${A_type.typeName} ref_${data_out}_${A} = ${A}; + ${B_type.typeName} ref_${data_out}_${B} = ${B}; + ${data_out_type.typeName} ref_${data_out}_${data_out} = ${data_out}; + + for(uint32_t i=0; i<${batch}; i++){ + MatMul_fp${A_type.referencedType.typeWidth}_fp${B_type.referencedType.typeWidth}_fp${data_out_type.referencedType.typeWidth}( + ref_${data_out}_${A}, + ref_${data_out}_${B}, + ref_${data_out}_${data_out}, + ${M}, + ${N}, + ${O} + ); + + ref_${data_out}_${A} += ${M} * ${N}; + ref_${data_out}_${B} += ${N} * ${O}; + ref_${data_out}_${data_out} += ${M} * ${O}; + } +} +""") diff --git a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py new file mode 100644 index 0000000000..7a970e6411 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py @@ -0,0 +1,48 @@ +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation + + +class FloatMulTemplate(NodeTemplate): + """Template for FP32 Mul operation with dynamic template selection.""" + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + # Check if scalar broadcasting + is_scalar = operatorRepresentation.get('is_scalar', False) + + # Dynamically select template based on is_scalar flag + if is_scalar: + # Use scalar broadcasting version + self.templateStr = FloatMulScalarTemplateStr + else: + # Use element-wise version + self.templateStr = FloatMulTemplateStr + + return ctxt, operatorRepresentation, [] + + +# Template for element-wise multiplication +# Note: MulParser uses A, B, C for input1, input2, output respectively +FloatMulTemplateStr = r""" +Mul_fp32(${A}, ${B}, ${C}, ${size}); +""" + +# Template for scalar broadcasting (optimized) +FloatMulScalarTemplateStr = r""" +{ + float32_t scalar = ${B}[0]; + Mul_fp32_scalar(${A}, scalar, ${C}, ${size}); +} +""" + +# Create reference template with default (element-wise) +referenceTemplate = FloatMulTemplate(FloatMulTemplateStr) diff --git a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py new file mode 100644 index 0000000000..8ae4d95e01 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py @@ -0,0 +1,31 @@ +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +import numpy as np + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation + + +class FloatRMSNormTemplate(NodeTemplate): + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + data_in = ctxt.lookup(operatorRepresentation["data_in"]) + operatorRepresentation["lastDimLength"] = data_in.shape[-1] + operatorRepresentation["size"] = int(np.prod(data_in.shape)) + + return ctxt, operatorRepresentation, [] + + +FloatRMSNormTemplateStr = r""" +RMSNorm_fp32(${data_in}, ${weight}, ${data_out}, ${size}, ${lastDimLength}, ${eps}); +""" + +referenceTemplate = FloatRMSNormTemplate(FloatRMSNormTemplateStr) diff --git a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py index 216ff35b9a..a8f32b32e3 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py @@ -25,8 +25,8 @@ def alignToContext(self, ctxt: NetworkContext, FloatSoftmaxTemplateStr = r""" - uint32_t batch_size = ${size} / ${lastDimLength}; - uint32_t compute_num = 1; //snrt_cluster_compute_core_num(); + int32_t batch_size = ${size} / ${lastDimLength}; + int32_t compute_num = 1; //snrt_cluster_compute_core_num(); int32_t ldI = compute_num * ${input_samples}; int32_t batch_offset = ${seq_len} * ${input_samples}; diff --git a/Deeploy/Targets/Snitch/Templates/GatherTemplate.py b/Deeploy/Targets/Snitch/Templates/GatherTemplate.py new file mode 100644 index 0000000000..fa4f6a2a86 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/GatherTemplate.py @@ -0,0 +1,18 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from Deeploy.DeeployTypes import NodeTemplate + +# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency +referenceTemplate = NodeTemplate(""" +// Gather (Name: ${nodeName}, Op: ${nodeOp}) +<% +width = int(data_in_type.referencedType.typeWidth/8) +%> +if (snrt_cluster_core_idx() == 0) { +for (uint32_t i=0; i<${batch}; ++i) { + memcpy(${data_out} + i * ${axis_length}, ${data_in} + i * ${batch_length} + ${index} * ${axis_length}, ${axis_length} * ${width}); +} +} +""") diff --git a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py new file mode 100644 index 0000000000..bce916ea60 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py @@ -0,0 +1,58 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation + + +class _MatMulTemplate(NodeTemplate): + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + A = ctxt.lookup(operatorRepresentation['A']) + B = ctxt.lookup(operatorRepresentation['B']) + C = ctxt.lookup(operatorRepresentation['data_out']) + operatorRepresentation['A_offset'] = 0 + operatorRepresentation['B_offset'] = 0 + operatorRepresentation['C_offset'] = 0 + if hasattr(A, "_signed") and hasattr(A, "nLevels"): + operatorRepresentation['A_offset'] = (A._signed == 0) * int(A.nLevels / 2) + if hasattr(B, "_signed") and hasattr(B, "nLevels"): + operatorRepresentation['B_offset'] = (B._signed == 0) * int(B.nLevels / 2) + if hasattr(C, "_signed") and hasattr(C, "nLevels"): + operatorRepresentation['C_offset'] = -(C._signed == 0) * int(C.nLevels / 2) + + return ctxt, operatorRepresentation, [] + + +# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency +referenceTemplate = _MatMulTemplate(""" +// MatMul (Name: ${nodeName}, Op: ${nodeOp}) +if (snrt_cluster_core_idx() == 0) { + ${A_type.typeName} ref_${data_out}_${A} = ${A}; + ${B_type.typeName} ref_${data_out}_${B} = ${B}; + ${data_out_type.typeName} ref_${data_out}_${data_out} = ${data_out}; + + for(uint32_t i=0;i<${batch};i++){ + MatMul_s${A_type.referencedType.typeWidth}_s${B_type.referencedType.typeWidth}_s${data_out_type.referencedType.typeWidth}( + ref_${data_out}_${A}, + ref_${data_out}_${B}, + ref_${data_out}_${data_out}, + ${M}, + ${N}, + ${O}, + ${A_offset}, ${B_offset}, ${C_offset} + ); + + ref_${data_out}_${A} += ${M} * ${N}; + ref_${data_out}_${B} += ${N} * ${O}; + ref_${data_out}_${data_out} += ${M} * ${O}; + } +} +""") diff --git a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py new file mode 100644 index 0000000000..a99573b27b --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py @@ -0,0 +1,44 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, VariableBuffer + + +class _SnitchReshapeTemplate(NodeTemplate): + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + # SCHEREMO: Selectively mark 'indices' dead, since we don't need them + if 'indices' in operatorRepresentation.keys(): + ctxt.globalObjects[operatorRepresentation['indices']]._deploy = False + ctxt.globalObjects[operatorRepresentation['indices']]._live = False + + # Same for "shape" + if "shape" in operatorRepresentation.keys(): + ctxt.globalObjects[operatorRepresentation["shape"]]._deploy = False + ctxt.globalObjects[operatorRepresentation["shape"]]._live = False + + bufferIn = ctxt.lookup(operatorRepresentation['data_in']) + assert isinstance(bufferIn, VariableBuffer) + bufferOut = ctxt.lookup(operatorRepresentation['data_out']) + assert isinstance(bufferOut, VariableBuffer) + + # Link aliases to each buffer + bufferIn.aliases.add(bufferOut.name) + bufferOut.aliases.add(bufferIn.name) + + return ctxt, operatorRepresentation, [] + + +# Use snrt_cluster_core_idx() == 0 instead of SINGLE_CORE macro to avoid core_id dependency +referenceTemplate = _SnitchReshapeTemplate(""" +// Reshape (Name: ${nodeName}, Op: ${nodeOp}) +if (snrt_cluster_core_idx() == 0) { ${data_out} = ${data_in}; } +""") diff --git a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py new file mode 100644 index 0000000000..5e33f85aa0 --- /dev/null +++ b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py @@ -0,0 +1,36 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from Deeploy.DeeployTypes import NodeTemplate + +# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency +referenceTemplate = NodeTemplate(""" +// Transpose ${data_in_shape} -> ${data_out_shape} (Name: ${nodeName}, Op: ${nodeOp}) +if (snrt_cluster_core_idx() == 0) { +${data_out_type.typeName} dummy_${data_out} = ${data_out}; +<% + dimStr = '' + accessStr = '' + shapeStr = '' + for dim in data_in_shape: + dimStr += '['+str(dim)+']' +%> +% for idx, i in enumerate(perm[:-1]): +<% + shapeStr += '['+str(data_in_shape[idx+1])+']' +%> +% endfor +% for idx, i in enumerate(perm): +<% + shape = data_out_shape[idx] + accessStr += '[i_'+str(idx)+']' +%> +for(uint32_t i_${i} = 0; i_${i}<${shape}; i_${i}++){ +% endfor +*dummy_${data_out}++ = ((${data_in_type.referencedType.typeName} (*)${shapeStr})${data_in})${accessStr}; +% for idx, i in enumerate(perm): +} +% endfor +} +""") diff --git a/DeeployTest/Tests/Kernels/FP32/Hardswish/inputs.npz b/DeeployTest/Tests/Kernels/FP32/Hardswish/inputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..eec4cee60044fd83c5f2d6d4605d95c29ba9fa80 GIT binary patch literal 1288 zcmbW1X;70_6o$XBii%Zs8KF?cu(=}?A@|%O#Eb+)QE;KrK(Hx7z$D0`r7++yBGn3N z1;HvcDl+I;rdloe&K0ml9F=86gyI5K7#$EPqM^%_=uH3hPv5i6dCvL$MunT2*>UgX z&WU!u?#wmgIAd9HcHHNxv~=x4Ra%ySoB0kJAB{(&N+UN!L~RmqySUv#MWQA_EnMLy z4BqZ1^mP+%PgQHxa@E#UwIb2T#qwlL;w0B7rscbuU{scd0Z)s-J}d>@wJLnw^oGcuY1y2X zIA%L~5H+U-%<`!lglY#-_Ol<8mj}^-B?J5l=~Oab=Fe*4_G7$H0%?f0WjR|Yq&Jpf z-$r{>Ta}~MF@G%Di%11=E)D~cx;SSE%}nluXcXf11_`FG4`Ozej$l=74mS@7gDV0?_=n!h zS%)kZS7k23Y4Nww-c!e4e-sHts-3j3>3gE)KQ_s9X(I zdz{!a+jF2VFyOYFoA9gDj*6VxvF+P&u-F(4`_%2=(xRpotN!4-#~6Nmr5|5)wPNmo z3!hc95O$om21!E)^qb!cR$8y1&Uuzd9WT&&pOa9l>Oq066+3B>0jiGQczyF_@RO<` zT4>K_{nCX6&pu%ll?ogS?g2$m50Pm<;Zim!wJ(nmjD(mfEnvMFCKH z@E|0gno9rdv!I!=i&=#I2yT9m57~wJ;N6`M!qRd2#G?cPHqWBF0>|L+^)v7`$sO;8 zH^AfjH}G)oC|{D7iKl9XL^k&@EjCGIc;O;sr9`qBr*>j}{4`2*rljb1E9T*P1zjg< zVU6J$t~=XHimI=PBzMoC+buztSNh--Ukx6mXHhvJr;VG|fKK7gIKy*LwiVKLp&7lB9l{ESGB7G!U}9(bU*`4R cql`UQVC?@|SyZ^Wg%JoQBVcm=^v=%y0ppY&w*UYD literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Kernels/FP32/Hardswish/network.onnx b/DeeployTest/Tests/Kernels/FP32/Hardswish/network.onnx new file mode 100644 index 0000000000..7a146e5541 --- /dev/null +++ b/DeeployTest/Tests/Kernels/FP32/Hardswish/network.onnx @@ -0,0 +1,14 @@ + +hardswish_test_fp32: +* +inputoutputHardSwish_node" HardSwishhardswish_graph_fp32Z +input + + + +€b +output + + + +€B \ No newline at end of file diff --git a/DeeployTest/Tests/Kernels/FP32/Hardswish/outputs.npz b/DeeployTest/Tests/Kernels/FP32/Hardswish/outputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..074c937f5ba8e460f806d0b50d526ce4c81ba304 GIT binary patch literal 1290 zcmbVMdr*{B6#rn6ltM)*)C3j@R$d8ekivJ*4G|H90TjY8bQe~bcrGly2xbkCK;(@X ztUTl)3K9&VqThE`$v|wCd_V{TCI*u;Wg4TT&RF|x&Gc9Q^t<=Wz4v#|{oQlUA163K zWMt0#4IAd!yhj&RMhqjE31iMArz=y^mG35{>^EQ*>RG{4xD`+y6c!k~-GJG{WJqG< zY0;^Y^r-CX^iyMwbh zQ~ZBm;^pH29-lMl9GeJ@zk5^D2!DJl%paR<{VB<;fMVMwRIOkkVYUG;ebR`26U9Uq zwo0(M&%3Zaz6Ix3^^%$W=g@4~DL!4fjz-IU@XbRdY>=#sKUvy|_h)C=RLgwy%YRJj zW#{pAbqdC1okyibA~my*zc*7)ym@YU1DR~=+@6l2I zN%9`lCZ6H)J2Y4t-+;^7roqu`MDIWE>HxWSxC}pXK|HG10oiR6;NyN7_WAL6c1H%f zE*vCk^BeHvvt~@Iw8v{L71(9I50`#e2hE%8=rMUA-xECyw%RFjlW?dwK1E~`KGcF; zz!P6TD&%W-_XJ34IM&-f9W4_2S%HgUDBA6uBm;e(lxsbM#zTk>v!^lT37c-lpTU{G1amO6nmE4@~$$ z#~jQWXXurz5*Tf&0-J5;Fp_tnFm{oT7KK2fYatDxZRncuH9l#)%kKT46$QQ9LuG7C zcMbOBSVQlcvq)on>8@H0@|g!wTU7^zb}}rrIz%29EvJINclb79WT_^nJ&(Z>aTHdM z*kI7|wGiuYmSnb8k_+2M$%<`=d$#72pQF0SOo;}&ZYEJhjWw(?&A{L$1>CvPj`8X* zAvQro6#<9|pIrm#C1ZI0-~?D+OQrQrp?LL`23JM)U{Nk&$3P_?Djz2AXit)OpGK&h z2>0rA@}S;sJCRzn)A1KFs5R%%WmJu7))opmZ+v6w5NM;UA>rW>e(QBkpX+pS9d20L z2E(}r$i(^x>>b=lu0EY5A(K7G6uOW*ZF||p{)h3>{YfJ8+z8BtN3f=O3LY+<<|CeV zq1MU`zNv5pN3k17%Ae7XzugQkqyL02`ugFOQ!*%DW?^Yy863E!!AOrSxNk`d*4^n~ zqiiemwNt&O0-=W4)lIm*{4ppu=d<61Rpa+ZH8`OC6hbF7*xisxLc=KgTPKH7_k4PJ ze7F8h!KrXEH-bk$t5y)nG+1wNmse?>VWh7eel1VOqD8s5(xn+=2RV#;A*IJoiy-e- zARgJpL)^_gT5WYtuOt5HBnAf<7@CXzt9$7p{0AxnVe@Y<3l5lLEHDPT@xE^5^!@BF Ds=E}U literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/inputs.npz b/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/inputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..9d14ca82f70c79c9e431ba6db56c7c19d808c6b6 GIT binary patch literal 2312 zcmbVOYgo+t7M_|eB19C9$YmNtu~Dk||JEO=sK!);Zn`p}%|KA#^ByuT_TMiPjQ>j!cPUpyZp7ZT|Iq$kX>s{;HS|47CJzs4C??0Hq3%huR zm5<=@hC_=tfwwJK79M62EQ?a%>HHvv7l((#ND;4hlx$MrMet&T{sEzWAwo+-p=iqz z;e12kmYpGCAwI#IcZT=}4D&WVJ3<4#^Py57S-|&x&a(N2!#;Pu;U2^P4 z(e&dz0pxa9!27D5G~>ojnm4N!PDWTmw^t`Me>V~)u4<<5#-2d0oRok5TAr+{{$Cq~Kn6B?-Sd8Q*M7 zqaj*TFigK4cFposjQ2}K@iAw}v_6F!Uau#Sj|Y*bdI5*hRuh3X1I96?MDMmU z$Sfc(Tokyt_EJ9sLVZsiLI;BkyrLojn~WkD6`jIWhRVTxP8m6BB*3R5%82jFN^qg$ zIbu@-?+b*=B~oWlth&nV)z6^1?d8mQ=@1rndDHMG*T`984%~~>P&Ob&qfj2+*$@ch zoX-=_Y)#x3z=snLs+nm6yFgjC7}wv-r&}s&X!yEvoRF1HvwJ(909%Y>K;i7?t;Y1pGe+6;>eU;Cpd?by?AEvGeu8H1XGb`z}gI2 z(?I`|q+`Jtj-;ody4^7--pj)H*fo${C&kLcCD6FD1g%AS5VTO6txeg3&HXy4rgxXA zY3AYV-PMSJ$;{D#MEogTtiB1WFgApuV0To}J%DF4zL4Msf6CRE!4ijV z;v!7rqHb-(_?8=ZD(fxn5xIlEl{@hYJB=G$7ZGQ>DiUMuiw1!P#Ck_C^W5PWelRU1 zDM!Y_j+`X;_GUjsZn%t&6J_Z3j1SR?e3A@o>mKg}u1XS`-jV3SopAzm_tsGxf|CZ~%kd=CQ2i(`^LA3(u0bDTD~ z0M-szqI13{Nh+{p?Cu+(kC_%5Z#NSd*P0R--Aa*WfsNMlimW|nQBUt{+0X!7+ zH`<%22gWat5Ye{j$eXsFW(R(wr(Wyf{(YN3QG1Q-_g#bw9JYX`YZfWjmw>zJ3{bOJ zhZ@qccvcKxxqK?rTNElbtnOs?C!GU}pY<_ij5ef?T1)HSd(rE;$*^1O0>z}%OyIfwZ|D}ABZCHPos(E zEfxG^+(qTtLFAEJ8CDDbz`l>>`1Yt9wKY9WqMj-s?T9svUJy9vMK~C1R0uWDV2byb6E2T_ZX> zFhq2*462WX1Fh3y-^#2}D%lLG)QXe~wApiQV&wO`;@zJo1+_Mr}zu!tn zaDhBH1!$C94Gk@AjM?YoFvB*9v2W(Hs>QD%ymK#oeLWI9%mv_VS_~HIyKsDtDTGBQ zg7>s0R0~hXnqO3vS3Vt}&n}yT$WaL@n9f8+Jb-!mmr*w2Iets<<1BM4Nk^+XHy}|{ z9*w`oHTM6G1v`zQ@@hHh%ambFG9TBbCSr@HoLd?n1_w9p#zk5x@P%q(>A)IP{M5+R z{}PXV<)cw&T?QKL{tEFj9mZ_NVmxHvPFU?0u5pzw)wDDKjke{`c25%|30ZPxId0Rw zhII)7oF_}d6+KTtP~roZPOB>J2XkN(n$1k#QJIQzp2nlQ&3)BbfC z2POwW<<=fpsaAr@X*v-1n-R*T19V2dKFUozF^k$TMrG^JDJqFXS37bNdll6Q{Qo6h fen^xbNv<+n{wrl9_UanLgvxg_|6a>~$eDiwp4K0r literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/network.onnx b/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/network.onnx new file mode 100644 index 0000000000000000000000000000000000000000..25a7a9b683baa30af58fa435dbcca1a61f239f2f GIT binary patch literal 220 zcmdqD=;>)I>5+f&&8UVS5R8Q#a5o0nVwN1#Fk%L0_02a z1o;O0ft2Uvr=%*eLwQ=fT+FEj#iD!7+e{ZQGFmYR3Bim_FG?)P0Gq3&$H5`M=ma&< pOM!u*!5$xul7>1$NQg^-gHecwi;05+hLdEtpiaUj>%=6$3jpPkG%ElA literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/outputs.npz b/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/outputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..6167f740420ebf0e05c0ef307e4b6e7bd7d8246e GIT binary patch literal 2314 zcmbVOX*|{W8b9_WO&BIMh?~76Yts4u9-l}~QX*+mBeE36mZUMZnrxliuG3;jD3Zvu zU5ayl&k<9ON?BVl(qtKH5-pZ4GcWF|`{sV1?elz}=gsrt`Fy@EP7;zTtiPen>Yont zN|0r-=0l#P!U{bU8FnagRY=$oF_z+A?EL2ZbRN7d?#?dXiLs(sG5WrK2lqwj+i2;t z{VnuYYU%rjMnpz;Hp%YqTP$ zbZAkw4;%7gJE71rg_@hE&`rfXaKOq7!X(G&bNdAl-aky8)kf)w&}cH1K7q@8I&qb| zB39cZppH&1;Sc(uWW!DToPHNxm-!_mv zyh)5&5{3l@OK`{L>(FBKfQ&?cLC*6kveUeao;J3}VS7{f$?pt!yi0=nlWCaV@QD8F zKs%{U&4;?{nz(W75S=ltz+b<U~;f2+_aGO=j-aX|zZgBc3BIWXEACcD4u76I&F8 zU$`sqPVE8=&b)+0Rz}p#vXx9XeFPC>P3-%UiRnLb1Yyf&Q1@jQfA#WxjIyqht+J;j zZPZOCoIY`ZR%I%xl_f#EjVX*I=|OlnpxqT7JWuDL@S6{$_f#*`CAlCC8KGtJZH%|E z47M9R#m)9SrZ77lTer-TnwL@dSm`MwIlJQKccoPD!!EESg_yP}lJH}Gg@(t^@QITH zX^6W)^x}@gDvM@xit0ug#tfQT>xryt2{FGgMAWYloFYfbrdh{SEZJ0#(j zWD&ZmS;M}DAS@0d5UdYVPvbOT zpto8O+t0;k%G0FMWA#P`cNvplqFUP7tW1{frN58m5VFw6oW-WrTU4YLUN zq;nKA9J9z(OKoPqq9VGB4MU;60@!zT;i4WL^43Ke6ArUMWR-yncN$V1cN-|Wn+pmN zohb8il6rv&rYMDDSx*VrSLTq^)I(@3FoWj21_=6!1ENtL%4PEDS9=0M`A>0tWnMsB zHZOwg=oKhuvRa_it19e{XYgXH7mc?`L(jI`pb~Ncg){ePT~#0Rpg0#?6>~ADc@&Py zCbQMN>M&k)3;3!OYZGp>M?;%GpCMYHY zWO0%>EY3TH`QKI3rDA@l_BsW%-F}1MHeJXX$-|pUg<#3;CY$unfVE-(XlP_&HP0Cx zm!-nctQX93zwisTnv>@$@4-yk2X$q)fqP;WWqVwv?EXebzMTc@j$}e=*?YM7Zi@Xb zKOUyC`)RSvI0;*BM>SsGWMa(a;6^SR^NhzJYajqWjGsUz_BiZLu!6zYiJ(w>6n@jV z#LuX##JmI3Ov4ZtKaA8vZfhjnI8}o+zo=oNl06)2J&wyPYH(LzAMwiXCldb-Lt)@7 z{l4T!(v?z!6$%vFrPkwUhCkgqTtt3Z^8h${2GCuVVYK!+?Gn`W8Ch&ixwyTO63YM(*rC&;C8OikUdF7G+KO>{p*hh?-g% zh^_F48wO&whMLy6?Sds(TvsCxCjNl;90P1@S%viMC%R`zC&~@Kr2A|=Fp+0ORzImG zhF>IYKhY$(bb2{nqj6XjvjF-de?|r?fLk04jvPKUdsTuxEy-}KvqG?DZ!}z~lM=QV zaWHK|_qt}zPmI)8i?MORHV8Mog)zE7OH!oCOv@tZo^Svo>m1aNYQvuMH=(}iF8N@; z4FfgvL5~QTPt%d`XV6||MxhNR-O6Ee_ZBK_<$!PbEZHNU3_5`X6?|l%pwk7kQm&zN z!U5E<6k*Iv1g(Ck4ZhyRaP`V@CO)SEnlrO8Z0?u*0~`gOwIY(VUrx|nBO{D-s1k^~ zm0(t%30R*Kk|W(wsGYYO)#b`jW>=}eU#|cr1By}7));)&TcNpK3c8o~3hqRoz(0&t zvDZ5v-|m#OZIV`FSZQpO%kw9BBNKweo^WceY5=WUw?cx65*|LQf$iM0v_4Kl7&(!E z)g}8uQH%?jrwnO>V=WmNaw82=61JOo1lZP6)K3(RGTM!JsmG19582~C_3mPahXE=- z;^Iu12qZ+V&^0w)Wj=5n>Ob=sok3^J{kj}g8{ZGM^K~ Y=JS8GjEj?$^gJUrXV!C-|CgTm58whcCIA2c literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/activations.npz b/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/activations.npz new file mode 100644 index 0000000000000000000000000000000000000000..d077979636ff7de35c03b12c1df7ae2e35a19937 GIT binary patch literal 355738 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 literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/inputs.npz b/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/inputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..89c505c6693900de9c18101aa892f42b817402ff GIT binary patch literal 9138 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 B@m>G` literal 0 HcmV?d00001 diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/outputs.npz b/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/outputs.npz new file mode 100644 index 0000000000000000000000000000000000000000..07fda6854dc56be62ead10027bc9e4eab42d2308 GIT binary patch literal 526 zcmbV}F-yZx6op@`iWEV?j3VhEQ7FYiwNM0|L@1UZIMk(-Ce=aOlBNX-HJt=kb$8H7 zbXNy6I68F|>FOflAF%q}wu6g{FZpuLJvZ+qaII`)R9Ax)Q_nYMx2-89Oe$Sf8(yv9 z6_yf}+M%YV`?V`siyKx+o_jaGh>*m<&+sW%yQNB++w9rb!|uTjp9Mw zA+PTjYYz27GH!6Mq!!~w%lOxd-l=vt{~d%ckjD4WZJ5Cy^@1=&Cm;~WJ1{%+5BM%z z4eKaA2Jh59977(S$b3kEWNGyJi|^n+&?MiP!e5Zz Ty print(f"Warning: Empty input array for type inference for {values}!") return default - if isInteger(values): + # First check the numpy dtype - if it's a float type, use float even if values are integer-like + # This handles cases like [0.0, 0.0] which would otherwise be incorrectly typed as uint8_t + if np.issubdtype(values.dtype, np.floating): + return minimalFloatType(values) + elif isInteger(values): return minimalIntegerType(values) else: return minimalFloatType(values) diff --git a/TargetLibraries/Generic/inc/macros.h b/TargetLibraries/Generic/inc/macros.h index d97cfecb7c..0b5a0e51fb 100644 --- a/TargetLibraries/Generic/inc/macros.h +++ b/TargetLibraries/Generic/inc/macros.h @@ -7,22 +7,28 @@ #ifndef __DEEPLOY_BASIC_MATH_MACROS_HEADER_ #define __DEEPLOY_BASIC_MATH_MACROS_HEADER_ +#ifndef MAX #define MAX(a, b) \ ({ \ __typeof__(a) _a = (a); \ __typeof__(b) _b = (b); \ _a > _b ? _a : _b; \ }) +#endif +#ifndef MIN #define MIN(a, b) \ ({ \ __typeof__(a) _a = (a); \ __typeof__(b) _b = (b); \ _a < _b ? _a : _b; \ }) +#endif +#ifndef CLAMP #define CLAMP(x, low, high) \ (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x))) +#endif #define inf 1.0f / 0.0f diff --git a/TargetLibraries/Snitch/inc/DeeploySnitchMath.h b/TargetLibraries/Snitch/inc/DeeploySnitchMath.h index e44d3c20c6..1305ba6bff 100644 --- a/TargetLibraries/Snitch/inc/DeeploySnitchMath.h +++ b/TargetLibraries/Snitch/inc/DeeploySnitchMath.h @@ -23,8 +23,13 @@ #include "snrt.h" +#include "kernel/Add.h" +#include "kernel/Div.h" #include "kernel/Gemm.h" +#include "kernel/HardSwish.h" #include "kernel/MatMul.h" +#include "kernel/Mul.h" +#include "kernel/RMSNrom.h" #include "kernel/RQGemm.h" #include "kernel/RQMatMul.h" #include "kernel/Softmax.h" diff --git a/TargetLibraries/Snitch/inc/kernel/Add.h b/TargetLibraries/Snitch/inc/kernel/Add.h new file mode 100644 index 0000000000..7a65e82712 --- /dev/null +++ b/TargetLibraries/Snitch/inc/kernel/Add.h @@ -0,0 +1,21 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __DEEPLOY_MATH_ADD_KERNEL_HEADER_ +#define __DEEPLOY_MATH_ADD_KERNEL_HEADER_ + +#include "DeeploySnitchMath.h" + +void Add_fp32(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, uint32_t size); + +void Add_fp32_broadcast(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, + uint32_t *out_shape, uint32_t *strides1, + uint32_t *strides2, uint32_t ndim, uint32_t size); + +void Add_fp32_lastdim(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, + uint32_t outer_size, uint32_t inner_size); + +#endif // __DEEPLOY_MATH_ADD_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/inc/kernel/Div.h b/TargetLibraries/Snitch/inc/kernel/Div.h new file mode 100644 index 0000000000..e9b257a634 --- /dev/null +++ b/TargetLibraries/Snitch/inc/kernel/Div.h @@ -0,0 +1,44 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __DEEPLOY_MATH_DIV_FP32_KERNEL_HEADER_ +#define __DEEPLOY_MATH_DIV_FP32_KERNEL_HEADER_ + +#include "DeeploySnitchMath.h" + +/* + * Element-wise Division (FP32) + * + * Computes: output[i] = input1[i] / input2[i] + * + * input1: Numerator tensor (float32) + * input2: Denominator tensor (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements + * + * multi-core = yes + * parallelization = element-wise + */ +void Div_fp32(float32_t *input1, float32_t *input2, float32_t *output, + uint32_t size); + +/* + * Element-wise Division with scalar broadcasting (FP32) + * + * Computes: output[i] = input1[i] / scalar + * + * input1: Numerator tensor (float32) + * scalar: Scalar denominator (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements + * + * multi-core = yes + * parallelization = element-wise + */ +void Div_fp32_scalar(float32_t *input1, float32_t scalar, float32_t *output, + uint32_t size); + +#endif // __DEEPLOY_MATH_DIV_FP32_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/inc/kernel/HardSwish.h b/TargetLibraries/Snitch/inc/kernel/HardSwish.h new file mode 100644 index 0000000000..a0cfdaac12 --- /dev/null +++ b/TargetLibraries/Snitch/inc/kernel/HardSwish.h @@ -0,0 +1,34 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __DEEPLOY_MATH_HARDSWISH_KERNEL_HEADER_ +#define __DEEPLOY_MATH_HARDSWISH_KERNEL_HEADER_ + +#include "DeeploySnitchMath.h" + +/* + * HardSwish Activation Function + * + * Computes: HardSwish(x) = x * clip(x/6 + 0.5, 0, 1) + * + * Piecewise form: + * - When x <= -3: output = 0 + * - When -3 < x < 3: output = x * (x/6 + 0.5) + * - When x >= 3: output = x + * + * This is a computationally efficient approximation of Swish/SiLU activation + * commonly used in mobile neural networks and transformer models. + * + * data_in: Input tensor (FP32) + * data_out: Output tensor (FP32, same shape as input) + * size: Total number of elements + * + * multi-core = yes + * parallelization = element-wise + */ +void HardSwish_fp32(float32_t *data_in, float32_t *data_out, uint32_t size); + +#endif // __DEEPLOY_MATH_HARDSWISH_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/inc/kernel/Mul.h b/TargetLibraries/Snitch/inc/kernel/Mul.h new file mode 100644 index 0000000000..d851e2e3bf --- /dev/null +++ b/TargetLibraries/Snitch/inc/kernel/Mul.h @@ -0,0 +1,44 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __DEEPLOY_MATH_MUL_FP32_KERNEL_HEADER_ +#define __DEEPLOY_MATH_MUL_FP32_KERNEL_HEADER_ + +#include "DeeploySnitchMath.h" + +/* + * Element-wise Multiplication (FP32) + * + * Computes: output[i] = input1[i] * input2[i] + * + * input1: First input tensor (float32) + * input2: Second input tensor (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements + * + * multi-core = yes + * parallelization = element-wise + */ +void Mul_fp32(float32_t *input1, float32_t *input2, float32_t *output, + uint32_t size); + +/* + * Element-wise Multiplication with scalar broadcasting (FP32) + * + * Computes: output[i] = input1[i] * scalar + * + * input1: Input tensor (float32) + * scalar: Scalar multiplier (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements + * + * multi-core = yes + * parallelization = element-wise + */ +void Mul_fp32_scalar(float32_t *input1, float32_t scalar, float32_t *output, + uint32_t size); + +#endif // __DEEPLOY_MATH_MUL_FP32_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/inc/kernel/RMSNrom.h b/TargetLibraries/Snitch/inc/kernel/RMSNrom.h new file mode 100644 index 0000000000..16e25cd38c --- /dev/null +++ b/TargetLibraries/Snitch/inc/kernel/RMSNrom.h @@ -0,0 +1,31 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __DEEPLOY_MATH_RMSNORM_KERNEL_HEADER_ +#define __DEEPLOY_MATH_RMSNORM_KERNEL_HEADER_ + +#include "DeeploySnitchMath.h" + +/* + * RMS Normalization (Root Mean Square Normalization) + * + * Computes: output[i] = (input[i] / rms) * weight[i] + * where rms = sqrt(mean(input^2) + eps) + * + * data_in: Input tensor [batch, seq, hidden] or flattened [size] + * weight: Weight tensor [hidden_dim] + * data_out: Output tensor (same shape as input) + * size: Total number of elements (batch * seq * hidden) + * lastDimLength: Hidden dimension size + * eps: Epsilon for numerical stability (typically 1e-6) + * + * multi-core = yes + * parallelization = vector-wise (across batch * sequence) + */ +void RMSNorm_fp32(float32_t *data_in, float32_t *weight, float32_t *data_out, + uint32_t size, uint32_t lastDimLength, float32_t eps); + +#endif // __DEEPLOY_MATH_RMSNORM_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/inc/kernel/Softmax.h b/TargetLibraries/Snitch/inc/kernel/Softmax.h index c2d7596e7a..3795bb4f3b 100644 --- a/TargetLibraries/Snitch/inc/kernel/Softmax.h +++ b/TargetLibraries/Snitch/inc/kernel/Softmax.h @@ -9,7 +9,7 @@ #include "DeeploySnitchMath.h" -void softmax_fp32(float *input, float *output, int32_t ldI, +void Softmax_fp32(float *input, float *output, int32_t ldI, int32_t batch_offset, int32_t batch_size, int32_t seq_len, int32_t input_samples); diff --git a/TargetLibraries/Snitch/inc/macros.h b/TargetLibraries/Snitch/inc/macros.h index bc1191d25a..04bef2394b 100644 --- a/TargetLibraries/Snitch/inc/macros.h +++ b/TargetLibraries/Snitch/inc/macros.h @@ -8,10 +8,19 @@ #define __DEEPLOY_MATH_MACROS_HEADER_ #define INT_LOG2(x) __builtin_ctz(x) + +#ifndef CLAMP #define CLAMP(x, low, high) \ (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x))) +#endif + +#ifndef MIN #define MIN(a, b) ((a) < (b) ? (a) : (b)) +#endif + +#ifndef MAX #define MAX(a, b) ((a) > (b) ? (a) : (b)) +#endif // JUNGVI: The following macros are here to ensure compatibility with some // PULP-NN kernels diff --git a/TargetLibraries/Snitch/src/Add_fp32.c b/TargetLibraries/Snitch/src/Add_fp32.c new file mode 100644 index 0000000000..235b258511 --- /dev/null +++ b/TargetLibraries/Snitch/src/Add_fp32.c @@ -0,0 +1,102 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "DeeploySnitchMath.h" + +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +void Add_fp32(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, + uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t chunkSize = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start, num_elements; + if (core_id < remainder) { + num_elements = chunkSize + 1; + start = core_id * num_elements; + } else { + num_elements = chunkSize; + start = core_id * chunkSize + remainder; + } + + uint32_t end = start + num_elements; + + for (uint32_t i = start; i < end; i++) { + pOut[i] = pIn1[i] + pIn2[i]; + } +} + +void Add_fp32_broadcast(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, + uint32_t *out_shape, uint32_t *strides1, + uint32_t *strides2, uint32_t ndim, uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t chunkSize = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start, num_elements; + if (core_id < remainder) { + num_elements = chunkSize + 1; + start = core_id * num_elements; + } else { + num_elements = chunkSize; + start = core_id * chunkSize + remainder; + } + + uint32_t end = start + num_elements; + + for (uint32_t i = start; i < end; i++) { + uint32_t idx1 = 0; + uint32_t idx2 = 0; + uint32_t tmp = i; + + for (int32_t d = ndim - 1; d >= 0; d--) { + uint32_t coord = tmp % out_shape[d]; + tmp /= out_shape[d]; + idx1 += coord * strides1[d]; + idx2 += coord * strides2[d]; + } + + pOut[i] = pIn1[idx1] + pIn2[idx2]; + } +} + +void Add_fp32_lastdim(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, + uint32_t outer_size, uint32_t inner_size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + uint32_t size = outer_size * inner_size; + + uint32_t chunkSize = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start, num_elements; + if (core_id < remainder) { + num_elements = chunkSize + 1; + start = core_id * num_elements; + } else { + num_elements = chunkSize; + start = core_id * chunkSize + remainder; + } + + uint32_t end = start + num_elements; + + for (uint32_t i = start; i < end; i++) { + uint32_t inner_idx = i % inner_size; + pOut[i] = pIn1[i] + pIn2[inner_idx]; + } +} diff --git a/TargetLibraries/Snitch/src/CycleCounter.c b/TargetLibraries/Snitch/src/CycleCounter.c index 3861c421c1..8a99c312e6 100644 --- a/TargetLibraries/Snitch/src/CycleCounter.c +++ b/TargetLibraries/Snitch/src/CycleCounter.c @@ -6,10 +6,15 @@ #include "DeeploySnitchMath.h" +// Define ENABLE_INSTR_COUNTER to enable instruction counting (causes warnings +// in gvsoc) #define ENABLE_INSTR_COUNTER + static uint32_t timer_init[NUM_CORES] __attribute__((section(".l1"))); static uint32_t timer_end[NUM_CORES] __attribute__((section(".l1"))); +#ifdef ENABLE_INSTR_COUNTER static uint32_t instr_init[NUM_CORES] __attribute__((section(".l1"))); static uint32_t instr_end[NUM_CORES] __attribute__((section(".l1"))); +#endif static uint32_t running[NUM_CORES] __attribute__((section(".l1"))); @@ -17,11 +22,13 @@ void ResetTimer() { snrt_reset_perf_counter(SNRT_PERF_CNT0); uint32_t const core_id = snrt_global_core_idx(); uint32_t _timer_init = read_csr(mcycle); - uint32_t _instr_init = read_csr(minstret); timer_init[core_id] = _timer_init; - instr_init[core_id] = _instr_init; timer_end[core_id] = _timer_init; +#ifdef ENABLE_INSTR_COUNTER + uint32_t _instr_init = read_csr(minstret); + instr_init[core_id] = _instr_init; instr_end[core_id] = _instr_init; +#endif running[core_id] = 0; } @@ -31,7 +38,9 @@ void StartTimer() { } uint32_t const core_id = snrt_global_core_idx(); timer_init[core_id] = read_csr(mcycle); +#ifdef ENABLE_INSTR_COUNTER instr_init[core_id] = read_csr(minstret); +#endif running[core_id] = 1; } @@ -41,7 +50,9 @@ void StopTimer() { } uint32_t const core_id = snrt_global_core_idx(); timer_end[core_id] = read_csr(mcycle); +#ifdef ENABLE_INSTR_COUNTER instr_end[core_id] = read_csr(minstret); +#endif running[core_id] = 0; } @@ -55,6 +66,7 @@ uint32_t getCycles() { } uint32_t getInstr(void) { +#ifdef ENABLE_INSTR_COUNTER uint32_t const core_id = snrt_global_core_idx(); if (running[core_id]) { @@ -62,4 +74,7 @@ uint32_t getInstr(void) { } else { return instr_end[core_id] - instr_init[core_id]; } +#else + return 0; // Instruction counting disabled +#endif } \ No newline at end of file diff --git a/TargetLibraries/Snitch/src/Div_fp32.c b/TargetLibraries/Snitch/src/Div_fp32.c new file mode 100644 index 0000000000..07c3d3c5d4 --- /dev/null +++ b/TargetLibraries/Snitch/src/Div_fp32.c @@ -0,0 +1,89 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "DeeploySnitchMath.h" + +/* + * Element-wise Division (FP32) + * + * Computes: output[i] = input1[i] / input2[i] + * + * Supports ONNX broadcasting rules: + * - If input2 is scalar (size=1): divides all elements of input1 by input2[0] + * - If both have same size: element-wise division + * + * input1: Numerator tensor (float32) + * input2: Denominator tensor (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements in input1 + * + * multi-core = yes + * parallelization = element-wise across input1 + */ +void Div_fp32(float32_t *input1, float32_t *input2, float32_t *output, + uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + // Parallelize across elements + uint32_t elements_per_core = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start_elem, num_elems; + if (core_id < remainder) { + num_elems = elements_per_core + 1; + start_elem = core_id * num_elems; + } else { + num_elems = elements_per_core; + start_elem = core_id * elements_per_core + remainder; + } + + // Check if input2 is a scalar (size=1, broadcasted) + // Note: This assumes the parser has set input2_size correctly + // For now, we assume element-wise division (same size) + for (uint32_t i = start_elem; i < start_elem + num_elems; i++) { + output[i] = input1[i] / input2[i]; + } +} + +/* + * Element-wise Division with scalar broadcasting (FP32) + * + * Computes: output[i] = input1[i] / scalar + * + * input1: Numerator tensor (float32) + * scalar: Scalar denominator (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements in input1 + * + * multi-core = yes + * parallelization = element-wise + */ +void Div_fp32_scalar(float32_t *input1, float32_t scalar, float32_t *output, + uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t elements_per_core = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start_elem, num_elems; + if (core_id < remainder) { + num_elems = elements_per_core + 1; + start_elem = core_id * num_elems; + } else { + num_elems = elements_per_core; + start_elem = core_id * elements_per_core + remainder; + } + + float32_t inv_scalar = 1.0f / scalar; // Compute inverse once + + for (uint32_t i = start_elem; i < start_elem + num_elems; i++) { + output[i] = input1[i] * inv_scalar; + } +} diff --git a/TargetLibraries/Snitch/src/Gemm_fp32.c b/TargetLibraries/Snitch/src/Gemm_fp32.c index 9a79538e12..8dac98ef67 100644 --- a/TargetLibraries/Snitch/src/Gemm_fp32.c +++ b/TargetLibraries/Snitch/src/Gemm_fp32.c @@ -11,231 +11,50 @@ void gemm_fp32_transB_opt(uint32_t M, uint32_t N, uint32_t K, float32_t *A, uint32_t ldA, float32_t *B, uint32_t ldB, float32_t *C, uint32_t ldC, float32_t *Y, uint32_t BETA, uint32_t setup_SSR) { + (void)setup_SSR; uint32_t compute_id = snrt_global_compute_core_idx(); uint32_t A_offset = K * compute_id; uint32_t C_offset = N * compute_id; - // Unrolling factor of most inner loop. - // Should be at least as high as the FMA delay - // for maximum utilization - const uint32_t unroll = 8; - - // SSR strides and bounds only have to be configured - // once in the beginning - if (setup_SSR) { - // First matrix is not stored in transposed format - const uint32_t ssr0_b[4] = {unroll, K, N / unroll, M}; - const uint32_t ssr0_i[4] = {0, sizeof(float32_t), 0, - sizeof(float32_t) * ldA}; - - // Second matrix is stored in transposed format - const uint32_t ssr1_b[4] = {unroll, K, N / unroll, M}; - const uint32_t ssr1_i[4] = {sizeof(float32_t) * K, sizeof(float32_t), - sizeof(float32_t) * K * unroll, 0}; - - snrt_ssr_loop_3d(SNRT_SSR_DM0, ssr0_b[1], ssr0_b[2], ssr0_b[3], ssr0_i[1], - ssr0_i[2], ssr0_i[3]); - - snrt_ssr_repeat(SNRT_SSR_DM0, unroll); - snrt_ssr_loop_4d(SNRT_SSR_DM1, ssr1_b[0], ssr1_b[1], ssr1_b[2], ssr1_b[3], - ssr1_i[0], ssr1_i[1], ssr1_i[2], ssr1_i[3]); - } - - // SSR start address need to be configured each time - - snrt_ssr_read(SNRT_SSR_DM0, SNRT_SSR_4D, &A[A_offset]); - snrt_ssr_read(SNRT_SSR_DM1, SNRT_SSR_4D, B); - snrt_ssr_enable(); - - // check dimensions and values of a and b - - // Kernel progresses by 1 values each step - // const uint32_t n_frep = K - 1; for (uint32_t m = 0; m < M; m++) { - uint32_t n = 0; - for (uint32_t n0 = 0; n0 < N / unroll; n0++) { - float c[unroll]; - - // Load intermediate result - if (BETA) { - c[0] = C[C_offset + m * ldC + n + 0]; - c[1] = C[C_offset + m * ldC + n + 1]; - c[2] = C[C_offset + m * ldC + n + 2]; - c[3] = C[C_offset + m * ldC + n + 3]; - c[4] = C[C_offset + m * ldC + n + 4]; - c[5] = C[C_offset + m * ldC + n + 5]; - c[6] = C[C_offset + m * ldC + n + 6]; - c[7] = C[C_offset + m * ldC + n + 7]; - } else { - c[0] = 0.0; - c[1] = 0.0; - c[2] = 0.0; - c[3] = 0.0; - c[4] = 0.0; - c[5] = 0.0; - c[6] = 0.0; - c[7] = 0.0; - } - - asm volatile( - "frep.o %[n_frep], 8, 0, 0 \n" - "fmadd.s %[c0], ft0, ft1, %[c0] \n" - "fmadd.s %[c1], ft0, ft1, %[c1] \n" - "fmadd.s %[c2], ft0, ft1, %[c2] \n" - "fmadd.s %[c3], ft0, ft1, %[c3] \n" - "fmadd.s %[c4], ft0, ft1, %[c4] \n" - "fmadd.s %[c5], ft0, ft1, %[c5] \n" - "fmadd.s %[c6], ft0, ft1, %[c6] \n" - "fmadd.s %[c7], ft0, ft1, %[c7] \n" - : [c0] "+f"(c[0]), [c1] "+f"(c[1]), [c2] "+f"(c[2]), [c3] "+f"(c[3]), - [c4] "+f"(c[4]), [c5] "+f"(c[5]), [c6] "+f"(c[6]), [c7] "+f"(c[7]) - : [n_frep] "r"(K - 1) - : "ft0", "ft1", "ft2"); - - // Store results back - Y[C_offset + m * ldC + n + 0] = c[0]; - Y[C_offset + m * ldC + n + 1] = c[1]; - Y[C_offset + m * ldC + n + 2] = c[2]; - Y[C_offset + m * ldC + n + 3] = c[3]; - Y[C_offset + m * ldC + n + 4] = c[4]; - Y[C_offset + m * ldC + n + 5] = c[5]; - Y[C_offset + m * ldC + n + 6] = c[6]; - Y[C_offset + m * ldC + n + 7] = c[7]; - n += unroll; - } - - // Clean up of leftover columns - snrt_ssr_disable(); - for (; n < N; n++) { + for (uint32_t n = 0; n < N; n++) { float32_t c; if (BETA) { c = C[C_offset + m * ldC + n]; } else { - c = 0.0; + c = 0.0f; } for (uint32_t k = 0; k < K; k++) { - c += A[A_offset + k + m * ldA] * B[k + n * ldB]; + c += A[A_offset + m * ldA + k] * B[n * ldB + k]; } Y[C_offset + m * ldC + n] = c; } - snrt_ssr_enable(); } - snrt_ssr_disable(); } void gemm_fp32_opt(uint32_t M, uint32_t N, uint32_t K, float32_t *A, uint32_t ldA, float32_t *B, uint32_t ldB, float32_t *C, uint32_t ldC, float32_t *Y, uint32_t BETA, uint32_t setup_SSR) { + (void)setup_SSR; + uint32_t compute_id = snrt_global_compute_core_idx(); uint32_t A_offset = K * compute_id; uint32_t C_offset = N * compute_id; - // Unrolling factor of most inner loop. - // Should be at least as high as the FMA delay - // for maximum utilization - const uint32_t unroll = 8; - - // SSR strides and bounds only have to be configured - // once in the beginning - if (setup_SSR) { - // First matrix is not stored in transposed format - const uint32_t ssr0_b[4] = {unroll, K, N / unroll, M}; - const uint32_t ssr0_i[4] = {0, sizeof(float32_t), 0, - sizeof(float32_t) * ldA}; - - // Second matrix is not stored in transposed format - const uint32_t ssr1_b[4] = {unroll, K, N / unroll, M}; - const uint32_t ssr1_i[4] = {sizeof(float32_t), sizeof(float32_t) * ldB, - sizeof(float32_t) * unroll, 0}; - - snrt_ssr_loop_3d(SNRT_SSR_DM0, ssr0_b[1], ssr0_b[2], ssr0_b[3], ssr0_i[1], - ssr0_i[2], ssr0_i[3]); - - snrt_ssr_repeat(SNRT_SSR_DM0, unroll); - snrt_ssr_loop_4d(SNRT_SSR_DM1, ssr1_b[0], ssr1_b[1], ssr1_b[2], ssr1_b[3], - ssr1_i[0], ssr1_i[1], ssr1_i[2], ssr1_i[3]); - } - - // SSR start address need to be configured each time - - snrt_ssr_read(SNRT_SSR_DM0, SNRT_SSR_4D, &A[A_offset]); - snrt_ssr_read(SNRT_SSR_DM1, SNRT_SSR_4D, B); - snrt_ssr_enable(); - - // check dimensions and values of a and b - - // Kernel progresses by 1 values each step - // const uint32_t n_frep = K - 1; for (uint32_t m = 0; m < M; m++) { - uint32_t n = 0; - for (uint32_t n0 = 0; n0 < N / unroll; n0++) { - float c[unroll]; - - // Load intermediate result - if (BETA) { - c[0] = C[C_offset + m * ldC + n + 0]; - c[1] = C[C_offset + m * ldC + n + 1]; - c[2] = C[C_offset + m * ldC + n + 2]; - c[3] = C[C_offset + m * ldC + n + 3]; - c[4] = C[C_offset + m * ldC + n + 4]; - c[5] = C[C_offset + m * ldC + n + 5]; - c[6] = C[C_offset + m * ldC + n + 6]; - c[7] = C[C_offset + m * ldC + n + 7]; - } else { - c[0] = 0.0; - c[1] = 0.0; - c[2] = 0.0; - c[3] = 0.0; - c[4] = 0.0; - c[5] = 0.0; - c[6] = 0.0; - c[7] = 0.0; - } - - asm volatile( - "frep.o %[n_frep], 8, 0, 0 \n" - "fmadd.s %[c0], ft0, ft1, %[c0] \n" - "fmadd.s %[c1], ft0, ft1, %[c1] \n" - "fmadd.s %[c2], ft0, ft1, %[c2] \n" - "fmadd.s %[c3], ft0, ft1, %[c3] \n" - "fmadd.s %[c4], ft0, ft1, %[c4] \n" - "fmadd.s %[c5], ft0, ft1, %[c5] \n" - "fmadd.s %[c6], ft0, ft1, %[c6] \n" - "fmadd.s %[c7], ft0, ft1, %[c7] \n" - : [c0] "+f"(c[0]), [c1] "+f"(c[1]), [c2] "+f"(c[2]), [c3] "+f"(c[3]), - [c4] "+f"(c[4]), [c5] "+f"(c[5]), [c6] "+f"(c[6]), [c7] "+f"(c[7]) - : [n_frep] "r"(K - 1) - : "ft0", "ft1", "ft2"); - - // Store results back - Y[C_offset + m * ldC + n + 0] = c[0]; - Y[C_offset + m * ldC + n + 1] = c[1]; - Y[C_offset + m * ldC + n + 2] = c[2]; - Y[C_offset + m * ldC + n + 3] = c[3]; - Y[C_offset + m * ldC + n + 4] = c[4]; - Y[C_offset + m * ldC + n + 5] = c[5]; - Y[C_offset + m * ldC + n + 6] = c[6]; - Y[C_offset + m * ldC + n + 7] = c[7]; - n += unroll; - } - - // Clean up of leftover columns - snrt_ssr_disable(); - for (; n < N; n++) { + for (uint32_t n = 0; n < N; n++) { float32_t c; if (BETA) { c = C[C_offset + m * ldC + n]; } else { - c = 0.0; + c = 0.0f; } for (uint32_t k = 0; k < K; k++) { - c += A[A_offset + k + m * ldA] * B[k * ldB + n]; + c += A[A_offset + m * ldA + k] * B[k * ldB + n]; } Y[C_offset + m * ldC + n] = c; } - snrt_ssr_enable(); } - snrt_ssr_disable(); } diff --git a/TargetLibraries/Snitch/src/HardSwish.c b/TargetLibraries/Snitch/src/HardSwish.c new file mode 100644 index 0000000000..b7e9679c64 --- /dev/null +++ b/TargetLibraries/Snitch/src/HardSwish.c @@ -0,0 +1,46 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "DeeploySnitchMath.h" + +void HardSwish_fp32(float32_t *data_in, float32_t *data_out, uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + // Parallelize by dividing work across cores + uint32_t chunk_size = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start, end; + if (core_id < remainder) { + chunk_size += 1; + start = core_id * chunk_size; + } else { + start = core_id * chunk_size + remainder; + } + end = start + chunk_size; + + // HardSwish(x) = x * clip(x/6 + 0.5, 0, 1) + // Piecewise: + // x <= -3: output = 0 + // -3 < x < 3: output = x * (x/6 + 0.5) + // x >= 3: output = x + + for (uint32_t i = start; i < end; i++) { + float32_t x = data_in[i]; + float32_t clip_val = x / 6.0f + 0.5f; + + // Clamp to [0, 1] + if (clip_val < 0.0f) { + clip_val = 0.0f; + } else if (clip_val > 1.0f) { + clip_val = 1.0f; + } + + data_out[i] = x * clip_val; + } +} diff --git a/TargetLibraries/Snitch/src/Mul_fp32.c b/TargetLibraries/Snitch/src/Mul_fp32.c new file mode 100644 index 0000000000..80d6bc9b33 --- /dev/null +++ b/TargetLibraries/Snitch/src/Mul_fp32.c @@ -0,0 +1,86 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "DeeploySnitchMath.h" + +/* + * Element-wise Multiplication (FP32) + * + * Computes: output[i] = input1[i] * input2[i] + * + * Supports ONNX broadcasting rules: + * - If input2 is scalar (size=1): multiplies all elements of input1 by + * input2[0] + * - If both have same size: element-wise multiplication + * + * input1: First input tensor (float32) + * input2: Second input tensor (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements in input1 + * + * multi-core = yes + * parallelization = element-wise across input1 + */ +void Mul_fp32(float32_t *input1, float32_t *input2, float32_t *output, + uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + // Parallelize across elements + uint32_t elements_per_core = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start_elem, num_elems; + if (core_id < remainder) { + num_elems = elements_per_core + 1; + start_elem = core_id * num_elems; + } else { + num_elems = elements_per_core; + start_elem = core_id * elements_per_core + remainder; + } + + // Element-wise multiplication + for (uint32_t i = start_elem; i < start_elem + num_elems; i++) { + output[i] = input1[i] * input2[i]; + } +} + +/* + * Element-wise Multiplication with scalar broadcasting (FP32) + * + * Computes: output[i] = input1[i] * scalar + * + * input1: Input tensor (float32) + * scalar: Scalar multiplier (float32) + * output: Output tensor (same shape as input1) + * size: Total number of elements in input1 + * + * multi-core = yes + * parallelization = element-wise + */ +void Mul_fp32_scalar(float32_t *input1, float32_t scalar, float32_t *output, + uint32_t size) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t elements_per_core = size / numThreads; + uint32_t remainder = size % numThreads; + + uint32_t start_elem, num_elems; + if (core_id < remainder) { + num_elems = elements_per_core + 1; + start_elem = core_id * num_elems; + } else { + num_elems = elements_per_core; + start_elem = core_id * elements_per_core + remainder; + } + + for (uint32_t i = start_elem; i < start_elem + num_elems; i++) { + output[i] = input1[i] * scalar; + } +} diff --git a/TargetLibraries/Snitch/src/RMSNrom_fp32.c b/TargetLibraries/Snitch/src/RMSNrom_fp32.c new file mode 100644 index 0000000000..9c615ce923 --- /dev/null +++ b/TargetLibraries/Snitch/src/RMSNrom_fp32.c @@ -0,0 +1,50 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "DeeploySnitchMath.h" +#include + +void RMSNorm_fp32(float32_t *data_in, float32_t *weight, float32_t *data_out, + uint32_t size, uint32_t lastDimLength, float32_t eps) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t num_vectors = size / lastDimLength; + + // Parallelize across vectors (batch * sequence dimension) + uint32_t vectors_per_core = num_vectors / numThreads; + uint32_t remainder = num_vectors % numThreads; + + uint32_t start_vec, num_vecs; + if (core_id < remainder) { + num_vecs = vectors_per_core + 1; + start_vec = core_id * num_vecs; + } else { + num_vecs = vectors_per_core; + start_vec = core_id * vectors_per_core + remainder; + } + + for (uint32_t v = start_vec; v < start_vec + num_vecs; v++) { + float32_t *in_ptr = data_in + v * lastDimLength; + float32_t *out_ptr = data_out + v * lastDimLength; + + // Compute sum of squares + float32_t sum_sq = 0.0f; + for (uint32_t i = 0; i < lastDimLength; i++) { + sum_sq += in_ptr[i] * in_ptr[i]; + } + + // Compute RMS with epsilon + float32_t rms = sqrtf(sum_sq / (float32_t)lastDimLength + eps); + float32_t inv_rms = 1.0f / rms; + + // Apply normalization and weight + for (uint32_t i = 0; i < lastDimLength; i++) { + out_ptr[i] = in_ptr[i] * inv_rms * weight[i]; + } + } +} From 1bdf9c939a8d9420b6455e2ae6c2ec68084a772c Mon Sep 17 00:00:00 2001 From: lee2716 Date: Sat, 31 Jan 2026 12:11:34 +0100 Subject: [PATCH 02/50] Add tiling support for MicroLlama on Snitch Add SnitchTiledPlatform with TileConstraints for FP32 operators: - FloatDivTileConstraint: Division tiling with scalar broadcast - FloatMulTileConstraint: Multiplication tiling with scalar broadcast - ReshapeTileConstraint: Pass-through tiling for reshape Updates: - SnitchClusterTiling with tiled code transformation passes - Tiler.py with new tile constraints registration - platformMapping.py adds Snitch_tiled platform - testRunner_tiled_snitch.py for tiled model testing - CI workflows for both untiled and tiled Snitch --- .../workflows/ci-platform-snitch-tiled.yml | 22 ++- .github/workflows/ci-platform-snitch.yml | 24 ++- CMakeLists.txt | 8 +- .../SnitchClusterTiling.py | 24 ++- .../TileConstraints/FloatDivTileConstraint.py | 112 ++++++++++++++ .../TileConstraints/FloatMulTileConstraint.py | 112 ++++++++++++++ .../TileConstraints/ReshapeTileConstraint.py | 143 ++++++++++++++++++ .../Snitch/TileConstraints/__init__.py | 3 + Deeploy/Targets/Snitch/Tiler.py | 42 ++++- DeeployTest/testUtils/platformMapping.py | 9 +- 10 files changed, 485 insertions(+), 14 deletions(-) create mode 100644 Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py create mode 100644 Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py create mode 100644 Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py diff --git a/.github/workflows/ci-platform-snitch-tiled.yml b/.github/workflows/ci-platform-snitch-tiled.yml index 5390d8ad16..4ebb9aba9a 100644 --- a/.github/workflows/ci-platform-snitch-tiled.yml +++ b/.github/workflows/ci-platform-snitch-tiled.yml @@ -35,4 +35,24 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - pytest-marker: "kernels and singlebuffer and l2" + tests-config: | + [ + {"name":"Kernels/Integer/Add/Large","L1":[5000,10000]}, + {"name":"Kernels/Integer/Softmax/Large","L1":[5000,10000]}, + + {"name":"Kernels/FP32/Softmax/Regular","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/RMSNorm_fused","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/MatMul","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/Add/Regular","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/Hardswish","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/Div","L1":[2000,5000,10000]}, + + {"name":"Kernels/FP32/GEMM/Regular","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/GEMM/TransB","L1":[2000,5000,10000]}, + + {"name":"Kernels/Integer/iNoNorm","L1":[5000,10000]}, + {"name":"Kernels/Integer/Add/Regular_RQ","L1":[5000,10000]}, + {"name":"Kernels/Integer/GEMM/Regular_RQPerRow","L1":[2000,5000]} + ] + simulators: | + gvsoc diff --git a/.github/workflows/ci-platform-snitch.yml b/.github/workflows/ci-platform-snitch.yml index c1ae694148..f3a1f8722f 100644 --- a/.github/workflows/ci-platform-snitch.yml +++ b/.github/workflows/ci-platform-snitch.yml @@ -35,4 +35,26 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - pytest-marker: "kernels" + test-names: | + Kernels/FP32/Softmax/Regular + Kernels/FP32/RMSNorm_fused + Kernels/FP32/MatMul + Kernels/FP32/Add/Regular + Kernels/FP32/Hardswish + Kernels/FP32/Div + + Kernels/Integer/Add/Large + Kernels/Integer/Add/Regular + + Kernels/Integer/Softmax/Large + Kernels/Integer/Softmax/Regular + + Kernels/Integer/MatMul/Regular + + Kernels/Integer/iNoNorm + Kernels/Integer/GEMM/Regular_RQPerRow + Kernels/Integer/Add/Regular_RQ + Kernels/Integer/GEMM/TransB_RQ + num-cores: 9 + simulators: | + gvsoc diff --git a/CMakeLists.txt b/CMakeLists.txt index 4c8a024c15..6e271584bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,8 +20,8 @@ if(TOOLCHAIN STREQUAL GCC) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) endif() -set(platform MemPool CACHE STRING "Platform (MemPool, SoftHier, QEMU, Siracusa, Siracusa_w_neureka, PULP-Open, GAP9, Generic, Snitch)") -set_property(CACHE platform PROPERTY STRINGS MemPool SoftHier QEMU Siracusa Siracusa_w_neureka PULP-Open GAP9 Generic Snitch) +set(platform MemPool CACHE STRING "Platform (MemPool, SoftHier, QEMU, Siracusa, Siracusa_w_neureka, PULP-Open, GAP9, Generic, Snitch, Snitch_tiled)") +set_property(CACHE platform PROPERTY STRINGS MemPool SoftHier QEMU Siracusa Siracusa_w_neureka PULP-Open GAP9 Generic Snitch Snitch_tiled) if(platform STREQUAL MemPool) message(STATUS "Building for platform 'MemPool'") @@ -42,6 +42,8 @@ elseif(platform STREQUAL Generic) message(STATUS "Building for platform 'Generic'") elseif(platform STREQUAL Snitch) message(STATUS "Building for platform 'Snitch'") +elseif(platform STREQUAL Snitch_tiled) + message(STATUS "Building for platform 'Snitch_tiled'") elseif(platform STREQUAL SoftHier) message(STATUS "Building for platform 'SoftHier'") elseif(platform STREQUAL Chimera) @@ -243,7 +245,7 @@ if(platform STREQUAL GAP9) endif() -if(platform STREQUAL Snitch) +if(platform STREQUAL Snitch OR platform STREQUAL Snitch_tiled) if(TOOLCHAIN STREQUAL LLVM) set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_LIST_DIR}/cmake/snitch/toolchain_llvm.cmake) diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py index e8204f6ae2..a3e10ed188 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py @@ -23,15 +23,31 @@ class SnitchClusterTilingDB(DoubleBufferingTilingCodeGeneration): class ProfilingSnitchClusterTilingSB(SingleBufferingTilingCodeGeneration, ProfilingSingleBufferingTilingMixIn): _printCycleDifference = NodeTemplate(r""" - printf("%s%u][Core %d] %s%u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ - ${measurementsEnd}[${profileIdxVar}] - ${measurementsStart}[${profileIdxVar}], ${suffixStr}); + printf("%s%u][Core %d] %s%6u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ + ${measurement}, ${suffixStr}); + """) + + _printCycleContribution = NodeTemplate(r""" + uint32_t total = ${measurementInput} + ${measurementKernel} + ${measurementOutput}; + uint32_t dma = ${measurementInput} + ${measurementOutput}; + float overhead_percentage = (total == 0) ? 0 : dma * 100.0f / total; + float kernel_percentage = (total == 0) ? 0 : ${measurementKernel} * 100.0f / total; + printf("%s%u][Core %d] Total :%6u cycles (%2.1f%% Kernel + %2.1f%% Overhead, %u + %u)\n", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), total, kernel_percentage, overhead_percentage, ${measurementKernel}, dma); """) class ProfilingSnitchClusterTilingDB(DoubleBufferingTilingCodeGeneration, ProfilingDoubleBufferingTilingMixIn): _printCycleDifference = NodeTemplate(r""" - printf("%s%u][Core %d] %s%u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ - ${measurementsEnd}[${profileIdxVar}] - ${measurementsStart}[${profileIdxVar}], ${suffixStr}); + printf("%s%u][Core %d] %s%6u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ + ${measurement}, ${suffixStr}); + """) + + _printCycleContribution = NodeTemplate(r""" + uint32_t total = ${measurementInput} + ${measurementKernel} + ${measurementOutput}; + uint32_t dma = ${measurementInput} + ${measurementOutput}; + float overhead_percentage = (total == 0) ? 0 : dma * 100.0f / total; + float kernel_percentage = (total == 0) ? 0 : ${measurementKernel} * 100.0f / total; + printf("%s%u][Core %d] Total :%6u cycles (%2.1f%% Kernel + %2.1f%% Overhead, %u + %u)\n", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), total, kernel_percentage, overhead_percentage, ${measurementKernel}, dma); """) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py new file mode 100644 index 0000000000..b9b07be30a --- /dev/null +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -0,0 +1,112 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +import numpy as np + +from Deeploy.AbstractDataTypes import PointerClass +from Deeploy.CommonExtensions.DataTypes import uint16_t +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint +from Deeploy.TilingExtension.TileConstraint import TileConstraint +from Deeploy.TilingExtension.TilerModel import TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme + + +class FloatDivTileConstraint(TileConstraint): + """Tile constraint for FP32 Div operation supporting scalar broadcasting.""" + + dataIn1Name = "input1" + dataIn2Name = "input2" + dataOutName = "output" + + @classmethod + def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: + + inputBuffer1Name = parseDict[cls.dataIn1Name] + inputBuffer2Name = parseDict[cls.dataIn2Name] + outputBufferName = parseDict[cls.dataOutName] + + input1Shape = ctxt.lookup(inputBuffer1Name).shape + input2Shape = ctxt.lookup(inputBuffer2Name).shape + + # Add tensor dimensions to model + tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) + tilerModel.addTensorDimToModel(ctxt, outputBufferName) + + # Check if input2 is scalar (total size == 1) + is_scalar = np.prod(input2Shape) == 1 + + if is_scalar: + # Scalar broadcasting: input2 is a scalar, don't tile it + # Only add input2 dimensions if it has more than 0 dims + if len(input2Shape) > 0: + tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) + # Constrain scalar to remain untiled (size 1) + for dim in range(len(input2Shape)): + input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + tilerModel.addConstraint(input2DimVar == input2Shape[dim]) + + # Input1 and output must have same dimensions + for dim in range(len(input1Shape)): + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + tilerModel.addConstraint(inputDim1Var == outputDimVar) + else: + # Element-wise: both inputs must have same shape + tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) + + for dim in range(len(input1Shape)): + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + + tilerModel.addConstraint(inputDim1Var == inputDim2Var) + tilerModel.addConstraint(inputDim1Var == outputDimVar) + + return tilerModel + + @classmethod + def serializeTilingSolution( + cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], + targetMemLevel: str, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: + outputCubes = [cube.rectangle for cube in absoluteOutputCubes] + + addrNames = [cls.dataIn1Name, cls.dataIn2Name, cls.dataOutName] + inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, + operatorRepresentation, addrNames) + + replacements = {"size": []} + replacementTypes = {"size": PointerClass(uint16_t)} + + # Check if scalar broadcasting + input2Name = operatorRepresentation[cls.dataIn2Name] + input2Shape = ctxt.lookup(input2Name).shape + is_scalar = np.prod(input2Shape) == 1 + + for cube in outputCubes: + newSize = np.prod(cube.dims) + replacements["size"].append(newSize) + + inputLoadSchedule = [] + outputLoadSchedule = [] + + for cube in outputCubes: + if is_scalar: + # For scalar, load the entire scalar tensor (size 1) + scalarCube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: scalarCube}) + else: + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) + + for out in outputCubes: + outputLoadSchedule.append({cls.dataOutName: out}) + + tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) + variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) + + return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py new file mode 100644 index 0000000000..99df639004 --- /dev/null +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -0,0 +1,112 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +import numpy as np + +from Deeploy.AbstractDataTypes import PointerClass +from Deeploy.CommonExtensions.DataTypes import uint16_t +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint +from Deeploy.TilingExtension.TileConstraint import TileConstraint +from Deeploy.TilingExtension.TilerModel import TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme + + +class FloatMulTileConstraint(TileConstraint): + """Tile constraint for FP32 Mul operation supporting scalar broadcasting.""" + + dataIn1Name = "A" + dataIn2Name = "B" + dataOutName = "C" + + @classmethod + def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: + + inputBuffer1Name = parseDict[cls.dataIn1Name] + inputBuffer2Name = parseDict[cls.dataIn2Name] + outputBufferName = parseDict[cls.dataOutName] + + input1Shape = ctxt.lookup(inputBuffer1Name).shape + input2Shape = ctxt.lookup(inputBuffer2Name).shape + + # Add tensor dimensions to model + tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) + tilerModel.addTensorDimToModel(ctxt, outputBufferName) + + # Check if input2 is scalar (total size == 1) + is_scalar = np.prod(input2Shape) == 1 + + if is_scalar: + # Scalar broadcasting: input2 is a scalar, don't tile it + # Only add input2 dimensions if it has more than 0 dims + if len(input2Shape) > 0: + tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) + # Constrain scalar to remain untiled (size 1) + for dim in range(len(input2Shape)): + input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + tilerModel.addConstraint(input2DimVar == input2Shape[dim]) + + # Input1 and output must have same dimensions + for dim in range(len(input1Shape)): + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + tilerModel.addConstraint(inputDim1Var == outputDimVar) + else: + # Element-wise: both inputs must have same shape + tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) + + for dim in range(len(input1Shape)): + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + + tilerModel.addConstraint(inputDim1Var == inputDim2Var) + tilerModel.addConstraint(inputDim1Var == outputDimVar) + + return tilerModel + + @classmethod + def serializeTilingSolution( + cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], + targetMemLevel: str, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: + outputCubes = [cube.rectangle for cube in absoluteOutputCubes] + + addrNames = [cls.dataIn1Name, cls.dataIn2Name, cls.dataOutName] + inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, + operatorRepresentation, addrNames) + + replacements = {"size": []} + replacementTypes = {"size": PointerClass(uint16_t)} + + # Check if scalar broadcasting + input2Name = operatorRepresentation[cls.dataIn2Name] + input2Shape = ctxt.lookup(input2Name).shape + is_scalar = np.prod(input2Shape) == 1 + + for cube in outputCubes: + newSize = np.prod(cube.dims) + replacements["size"].append(newSize) + + inputLoadSchedule = [] + outputLoadSchedule = [] + + for cube in outputCubes: + if is_scalar: + # For scalar, load the entire scalar tensor (size 1) + scalarCube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: scalarCube}) + else: + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) + + for out in outputCubes: + outputLoadSchedule.append({cls.dataOutName: out}) + + tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) + variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) + + return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py new file mode 100644 index 0000000000..1bafa36e3b --- /dev/null +++ b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py @@ -0,0 +1,143 @@ +# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# +# SPDX-License-Identifier: Apache-2.0 + +from typing import Dict, List, Tuple + +import numpy as np + +from Deeploy.AbstractDataTypes import PointerClass +from Deeploy.CommonExtensions.DataTypes import uint16_t +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint +from Deeploy.TilingExtension.TileConstraint import TileConstraint +from Deeploy.TilingExtension.TilerModel import TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme + + +class ReshapeTileConstraint(TileConstraint): + """Tile constraint for Reshape operation - a NOP that just reinterprets data layout.""" + + @staticmethod + def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: + + inputBufferName = parseDict['data_in'] + outputBufferName = parseDict['data_out'] + + pointer: List[str] = [] + + for key, value in parseDict.items(): + if not isinstance(value, str): + continue + + if ctxt.is_global(value) or ctxt.is_local(value): + pointer.append(value) + + # Add I/O dimensions to the model as variables + for bufferName in [inputBufferName, outputBufferName]: + _buffer = ctxt.lookup(bufferName) + tilerModel.addTensorDimToModel(ctxt, bufferName) + + for idx, shapeDim in enumerate(_buffer.shape): + tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) <= shapeDim) + + # Constrain total elements to be equal + inputBuffer = ctxt.lookup(inputBufferName) + outputBuffer = ctxt.lookup(outputBufferName) + + # For reshape, we want the tiles to have the same total number of elements + # This is automatically satisfied if we tile based on output and compute input from that + + # Remove unused tensors from deployment + for bufferName in pointer: + if bufferName not in [inputBufferName, outputBufferName]: + ctxt.lookup(bufferName)._deploy = False + + return tilerModel + + @classmethod + def serializeTilingSolution( + cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], + targetMemLevel: str, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: + outputCubes = [cube.rectangle for cube in absoluteOutputCubes] + + addrNames = ['data_in', 'data_out'] + inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, + operatorRepresentation, addrNames) + + # For reshape, input and output have the same data, just different interpretations + # We need to compute the corresponding input cube for each output cube + inputName = operatorRepresentation['data_in'] + outputName = operatorRepresentation['data_out'] + inputShape = ctxt.lookup(inputName).shape + outputShape = ctxt.lookup(outputName).shape + + replacements = {"size": []} + replacementTypes = {"size": PointerClass(uint16_t)} + + inputLoadSchedule = [] + outputLoadSchedule = [] + + for cube in outputCubes: + # Calculate the flat offset and size for the output cube + outSize = np.prod(cube.dims) + replacements["size"].append(outSize) + + # For reshape, we need to map output cube to input cube + # Calculate flat index range for output cube + outOffset = 0 + outStrides = [] + stride = 1 + for dim in reversed(outputShape): + outStrides.insert(0, stride) + stride *= dim + + for i, (off, dim) in enumerate(zip(cube.offset, cube.dims)): + outOffset += off * outStrides[i] + + # Convert flat offset to input coordinates + inStrides = [] + stride = 1 + for dim in reversed(inputShape): + inStrides.insert(0, stride) + stride *= dim + + inOffset = [] + remaining = outOffset + for i, stride in enumerate(inStrides): + inOffset.append(remaining // stride) + remaining = remaining % stride + + # Calculate input cube dimensions + # For simplicity, treat as 1D cube in input space + inCubeDims = list(inputShape) + inCubeOffset = [0] * len(inputShape) + + # Set the last dimension to the size, and offset based on flat index + totalSize = outSize + if len(inputShape) > 0: + # Compute proper input cube that covers the same elements + # Use a simple approach: linearize the input + inCubeOffset = list(inOffset) + inCubeDims = [1] * len(inputShape) + inCubeDims[-1] = min(totalSize, inputShape[-1] - inCubeOffset[-1]) + remaining = totalSize - inCubeDims[-1] + + for i in range(len(inputShape) - 2, -1, -1): + if remaining <= 0: + break + inCubeDims[i] = min(remaining // np.prod(inputShape[i + 1:]) + 1, inputShape[i]) + remaining -= (inCubeDims[i] - 1) * np.prod(inputShape[i + 1:]) + + inputCube = HyperRectangle(tuple(inCubeOffset), tuple(inCubeDims)) + inputLoadSchedule.append({"data_in": inputCube}) + + for out in outputCubes: + outputLoadSchedule.append({"data_out": out}) + + tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) + variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) + + return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/TileConstraints/__init__.py b/Deeploy/Targets/Snitch/TileConstraints/__init__.py index 947a6fd82a..aece19d881 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/__init__.py +++ b/Deeploy/Targets/Snitch/TileConstraints/__init__.py @@ -3,5 +3,8 @@ # SPDX-License-Identifier: Apache-2.0 from . import * +from .FloatDivTileConstraint import * +from .FloatMulTileConstraint import * from .iNoNormTileConstraint import * from .iSoftmaxTileConstraint import * +from .ReshapeTileConstraint import * diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index 475a425779..5a5f4d0bf4 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -3,10 +3,21 @@ # SPDX-License-Identifier: Apache-2.0 from Deeploy.Targets.Generic.TileConstraints.AddTileConstraint import AddTileConstraint -from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings, SnitchGemmBindings, SnitchiNoNormBindings, \ - SnitchiSoftmaxBindings, SnitchRQAddBindings, SnitchRqGemmBindings +from Deeploy.Targets.Generic.TileConstraints.ConcatTileConstraint import ConcatTileConstraint +from Deeploy.Targets.Generic.TileConstraints.iHardswishTileConstraint import iHardswishTileConstraint +from Deeploy.Targets.Generic.TileConstraints.iRMSNormTileConstraint import iRMSNormTileConstraint +from Deeploy.Targets.Generic.TileConstraints.TransposeTileConstraint import TransposeTileConstraint +from Deeploy.Targets.PULPOpen.TileConstraints.GatherTileConstraint import GatherTileConstraint +from Deeploy.Targets.PULPOpen.TileConstraints.MatMulTileConstraint import MatMulTileConstraint +from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings, SnitchConcatBindings, SnitchDivBindings, \ + SnitchGatherBindings, SnitchGemmBindings, SnitchHardSwishBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ + SnitchMatMulBindings, SnitchMulBindings, SnitchReshapeBindings, SnitchRMSNormBindings, SnitchRQAddBindings, \ + SnitchRqGemmBindings, SnitchTransposeBindings from Deeploy.Targets.Snitch.TileConstraints import iNoNormTileConstraint, iSoftmaxTileConstraint +from Deeploy.Targets.Snitch.TileConstraints.FloatDivTileConstraint import FloatDivTileConstraint +from Deeploy.Targets.Snitch.TileConstraints.FloatMulTileConstraint import FloatMulTileConstraint from Deeploy.Targets.Snitch.TileConstraints.GemmTileConstraint import GemmTileConstraint +from Deeploy.Targets.Snitch.TileConstraints.ReshapeTileConstraint import ReshapeTileConstraint from Deeploy.Targets.Snitch.TileConstraints.RqGemmTileConstraint import RqGemmTileConstraint from Deeploy.TilingExtension.TilerExtension import TilingReadyNodeBindings @@ -23,3 +34,30 @@ SnitchAddTileReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchAddBindings, tileConstraint = AddTileConstraint()) + +SnitchRMSNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRMSNormBindings, + tileConstraint = iRMSNormTileConstraint()) + +SnitchHardSwishTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchHardSwishBindings, + tileConstraint = iHardswishTileConstraint()) + +SnitchDivTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchDivBindings, + tileConstraint = FloatDivTileConstraint()) + +SnitchMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMulBindings, + tileConstraint = FloatMulTileConstraint()) + +SnitchMatMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMatMulBindings, + tileConstraint = MatMulTileConstraint()) + +SnitchConcatTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchConcatBindings, + tileConstraint = ConcatTileConstraint()) + +SnitchTransposeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchTransposeBindings, + tileConstraint = TransposeTileConstraint()) + +SnitchReshapeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchReshapeBindings, + tileConstraint = ReshapeTileConstraint()) + +SnitchGatherTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchGatherBindings, + tileConstraint = GatherTileConstraint()) diff --git a/DeeployTest/testUtils/platformMapping.py b/DeeployTest/testUtils/platformMapping.py index 9d526906f9..5e63a5cfb7 100644 --- a/DeeployTest/testUtils/platformMapping.py +++ b/DeeployTest/testUtils/platformMapping.py @@ -26,12 +26,12 @@ from Deeploy.Targets.PULPOpen.Deployer import PULPDeployer from Deeploy.Targets.PULPOpen.Platform import MemoryPULPPlatform, MemoryPULPPlatformWrapper, PULPOptimizer, PULPPlatform from Deeploy.Targets.Snitch.Deployer import SnitchDeployer -from Deeploy.Targets.Snitch.Platform import SnitchOptimizer, SnitchPlatform +from Deeploy.Targets.Snitch.Platform import SnitchOptimizer, SnitchPlatform, SnitchTiledPlatform from Deeploy.Targets.SoftHier.Deployer import SoftHierDeployer from Deeploy.Targets.SoftHier.Platform import SoftHierOptimizer, SoftHierPlatform _SIGNPROP_PLATFORMS = ["Apollo3", "Apollo4", "QEMU-ARM", "Generic", "MemPool", "SoftHier"] -_NONSIGNPROP_PLATFORMS = ["Siracusa", "Siracusa_w_neureka", "PULPOpen", "Snitch", "Chimera", "GAP9"] +_NONSIGNPROP_PLATFORMS = ["Siracusa", "Siracusa_w_neureka", "PULPOpen", "Snitch", "Snitch_tiled", "Chimera", "GAP9"] _PLATFORMS = _SIGNPROP_PLATFORMS + _NONSIGNPROP_PLATFORMS @@ -70,6 +70,9 @@ def mapPlatform(platformName: str) -> Tuple[DeploymentPlatform, bool]: elif platformName == "Snitch": Platform = SnitchPlatform() + elif platformName == "Snitch_tiled": + Platform = SnitchTiledPlatform() + elif platformName == "SoftHier": Platform = SoftHierPlatform() @@ -241,7 +244,7 @@ def mapDeployer(platform: DeploymentPlatform, default_channels_first = default_channels_first, deeployStateDir = deeployStateDir) - elif isinstance(platform, (SnitchPlatform)): + elif isinstance(platform, (SnitchPlatform, SnitchTiledPlatform)): if loweringOptimizer is None: loweringOptimizer = SnitchOptimizer From 35d51efd0ed1d993162db21dd0d608852c19c154 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 11:47:27 +0100 Subject: [PATCH 03/50] Fix Snitch tiled platform by unifying mapping to use TilingReadyBindings Previously the Snitch platform had separate tiled/untiled mappings (SnitchMapping vs SnitchTiledMapping), but mapPlatform() only returned SnitchPlatform with the untiled mapping, causing tiled tests to fail with missing tileConstraint. Unified to a single mapping using TilingReadyBindings for all operators, matching the upstream pattern used by PULPOpen. --- CMakeLists.txt | 2 - Deeploy/Targets/Snitch/Platform.py | 144 +++++------------------ DeeployTest/testUtils/platformMapping.py | 7 +- 3 files changed, 31 insertions(+), 122 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e271584bd..6bb752edb5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,8 +42,6 @@ elseif(platform STREQUAL Generic) message(STATUS "Building for platform 'Generic'") elseif(platform STREQUAL Snitch) message(STATUS "Building for platform 'Snitch'") -elseif(platform STREQUAL Snitch_tiled) - message(STATUS "Building for platform 'Snitch_tiled'") elseif(platform STREQUAL SoftHier) message(STATUS "Building for platform 'SoftHier'") elseif(platform STREQUAL Chimera) diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index 32bf53190f..bb37c8a2fe 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -9,9 +9,8 @@ from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicGatherBindings, BasicLayerNormBindings, \ - BasicMatMulBindings, BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding, \ - BasicTransposeBindings +from Deeploy.Targets.Generic.Bindings import BasicLayerNormBindings, BasicPad1DBindings, BasicPad2DBindings, \ + BasicRQIntegerDivBinding from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ SoftmaxLayer, TransposeLayer, iNoNormLayer @@ -22,49 +21,41 @@ from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass, GEMMRequantMergePass, \ IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass -from Deeploy.Targets.PULPOpen.Platform import RQAddMapper -from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ - BasicRMSNormBindings, SnitchAddBindings, SnitchGemmBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ - SnitchRQAddBindings, SnitchRqGemmBindings from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchDivParser, SnitchGEMMParser, SnitchMulParser, \ SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate +from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ + SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ + SnitchHardSwishTilingReadyBindings, SnitchiNoNormTilingReadyBindings, SnitchiSoftmaxTilingReadyBindings, \ + SnitchMatMulTilingReadyBindings, SnitchMulTilingReadyBindings, SnitchReshapeTilingReadyBindings, \ + SnitchRMSNormTilingReadyBindings, SnitchRQAddTilingReadyBindings, SnitchRqGemmTilingReadyBindings, \ + SnitchTransposeTilingReadyBindings -# ============================================================================= -# Mappers for UNTILED mode (using BasicBindings with BasicTransformer) -# These are used by generateNetwork.py (testRunner_snitch.py) -# ============================================================================= -GatherMapper = NodeMapper(GatherParser(), BasicGatherBindings) +# Mappers without tiling-ready equivalents Pad1DMapper = NodeMapper(Pad1DParser(), BasicPad1DBindings) Pad2DMapper = NodeMapper(Pad2DParser(), BasicPad2DBindings) -UnsqueezeMapper = NodeMapper(UnsqueezeParser(), BasicReshapeBindings) -ReshapeMapper = NodeMapper(ReshapeParser(), BasicReshapeBindings) -TransposeMapper = NodeMapper(TransposeParser(), BasicTransposeBindings) -ConcatMapper = NodeMapper(ConcatParser(), BasicConcatBindings) - RQIntegerDivMapper = NodeMapper(RQIntegerDivParser(), [BasicRQIntegerDivBinding]) - -# These use TiledTransformer but work in both modes (original upstream behavior) -GemmMapper = NodeMapper(SnitchGEMMParser(), SnitchGemmBindings) -RqGemmMapper = NodeMapper(SnitchRQGEMMParser(), SnitchRqGemmBindings) -iSoftmaxMapper = NodeMapper(iSoftmaxParser(), SnitchiSoftmaxBindings) -SoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxBindings) -iNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormBindings) iLayerNormMapper = NodeMapper(iLayerNormParser(), BasicLayerNormBindings) -RQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddBindings) -AddMapper = NodeMapper(AddParser(), SnitchAddBindings) - -# New operators for microLlama - using BasicBindings for untiled mode -RMSNormMapper = NodeMapper(SnitchRMSNormParser(), BasicRMSNormBindings) -HardSwishMapper = NodeMapper(HardSwishParser(), BasicHardSwishBindings) -MatMulMapper = NodeMapper(MatMulParser(), BasicMatMulBindings) -DivMapper = NodeMapper(SnitchDivParser(), BasicDivBindings) -MulMapper = NodeMapper(SnitchMulParser(), BasicMulBindings) - -# ============================================================================= -# SnitchMapping - for UNTILED mode (generateNetwork.py) -# Uses BasicBindings for new operators, TiledTransformer bindings for original ops -# ============================================================================= + +# All other mappers use TilingReadyBindings (works for both tiled and untiled) +GatherMapper = NodeMapper(GatherParser(), SnitchGatherTilingReadyBindings) +UnsqueezeMapper = NodeMapper(UnsqueezeParser(), SnitchReshapeTilingReadyBindings) +ReshapeMapper = NodeMapper(ReshapeParser(), SnitchReshapeTilingReadyBindings) +TransposeMapper = NodeMapper(TransposeParser(), SnitchTransposeTilingReadyBindings) +ConcatMapper = NodeMapper(ConcatParser(), SnitchConcatTilingReadyBindings) +MatMulMapper = NodeMapper(MatMulParser(), SnitchMatMulTilingReadyBindings) +GemmMapper = NodeMapper(SnitchGEMMParser(), SnitchGemmTilingReadyBindings) +RqGemmMapper = NodeMapper(SnitchRQGEMMParser(), SnitchRqGemmTilingReadyBindings) +iSoftmaxMapper = NodeMapper(iSoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) +SoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) +iNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormTilingReadyBindings) +RQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddTilingReadyBindings) +AddMapper = NodeMapper(AddParser(), SnitchAddTileReadyBindings) +RMSNormMapper = NodeMapper(SnitchRMSNormParser(), SnitchRMSNormTilingReadyBindings) +HardSwishMapper = NodeMapper(HardSwishParser(), SnitchHardSwishTilingReadyBindings) +DivMapper = NodeMapper(SnitchDivParser(), SnitchDivTilingReadyBindings) +MulMapper = NodeMapper(SnitchMulParser(), SnitchMulTilingReadyBindings) + SnitchMapping = { 'RQIntegerDiv': RQIntegerDivLayer([RQIntegerDivMapper]), 'Gather': GatherLayer([GatherMapper]), @@ -88,65 +79,6 @@ 'Concat': ConcatLayer([ConcatMapper]), } -# ============================================================================= -# Import TilingReadyBindings for TILED mode (testMVP.py) -# These will be used by TilerDeployerWrapper -# ============================================================================= -from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ - SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ - SnitchHardSwishTilingReadyBindings, SnitchiNoNormTilingReadyBindings, SnitchiSoftmaxTilingReadyBindings, \ - SnitchMatMulTilingReadyBindings, SnitchMulTilingReadyBindings, SnitchReshapeTilingReadyBindings, \ - SnitchRMSNormTilingReadyBindings, SnitchRQAddTilingReadyBindings, SnitchRqGemmTilingReadyBindings, \ - SnitchTransposeTilingReadyBindings - -# ============================================================================= -# Tiled Mappers - for TILED mode (testMVP.py via TilerDeployerWrapper) -# ============================================================================= -TiledGatherMapper = NodeMapper(GatherParser(), SnitchGatherTilingReadyBindings) -TiledUnsqueezeMapper = NodeMapper(UnsqueezeParser(), SnitchReshapeTilingReadyBindings) -TiledReshapeMapper = NodeMapper(ReshapeParser(), SnitchReshapeTilingReadyBindings) -TiledTransposeMapper = NodeMapper(TransposeParser(), SnitchTransposeTilingReadyBindings) -TiledConcatMapper = NodeMapper(ConcatParser(), SnitchConcatTilingReadyBindings) -TiledMatMulMapper = NodeMapper(MatMulParser(), SnitchMatMulTilingReadyBindings) -TiledRMSNormMapper = NodeMapper(SnitchRMSNormParser(), SnitchRMSNormTilingReadyBindings) -TiledHardSwishMapper = NodeMapper(HardSwishParser(), SnitchHardSwishTilingReadyBindings) -TiledDivMapper = NodeMapper(SnitchDivParser(), SnitchDivTilingReadyBindings) -TiledMulMapper = NodeMapper(SnitchMulParser(), SnitchMulTilingReadyBindings) -TiledGemmMapper = NodeMapper(SnitchGEMMParser(), SnitchGemmTilingReadyBindings) -TiledRqGemmMapper = NodeMapper(SnitchRQGEMMParser(), SnitchRqGemmTilingReadyBindings) -TilediSoftmaxMapper = NodeMapper(iSoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) -TiledSoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) -TilediNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormTilingReadyBindings) -TiledRQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddTilingReadyBindings) -TiledAddMapper = NodeMapper(AddParser(), SnitchAddTileReadyBindings) - -# ============================================================================= -# SnitchTiledMapping - for TILED mode (testMVP.py) -# Uses TilingReadyBindings for all operators -# ============================================================================= -SnitchTiledMapping = { - 'RQIntegerDiv': RQIntegerDivLayer([RQIntegerDivMapper]), - 'Gather': GatherLayer([TiledGatherMapper]), - 'Pad': PadLayer([Pad1DMapper, Pad2DMapper]), - 'Unsqueeze': ReshapeLayer([TiledUnsqueezeMapper]), - 'MatMul': MatMulLayer([TiledMatMulMapper]), - 'Gemm': GEMMLayer([TiledGemmMapper]), - 'RQGemm': RQGEMMLayer([TiledRqGemmMapper]), - 'iSoftmax': SoftmaxLayer([TilediSoftmaxMapper]), - 'Softmax': SoftmaxLayer([TiledSoftmaxMapper]), - 'iNoNorm': iNoNormLayer([TilediNoNormMapper]), - 'iLayerNorm': LayerNormLayer([iLayerNormMapper]), - 'RequantizedAdd': AddLayer([TiledRQAddMapper]), - 'Add': AddLayer([TiledAddMapper]), - 'RMSNorm': RMSNormLayer([TiledRMSNormMapper]), - 'HardSwish': HardSwishLayer([TiledHardSwishMapper]), - 'Div': DivLayer([TiledDivMapper]), - 'Mul': MulLayer([TiledMulMapper]), - 'Reshape': ReshapeLayer([TiledReshapeMapper]), - 'Transpose': TransposeLayer([TiledTransposeMapper]), - 'Concat': ConcatLayer([TiledConcatMapper]), -} - class SnitchVariableBuffer(VariableBuffer): @@ -258,21 +190,3 @@ def __init__(self, transientBuffer = SnitchTransientBuffer, includeList: List[str] = _includeList): super().__init__(engines, variableBuffer, constantBuffer, structBuffer, transientBuffer) - - -class SnitchTiledClusterEngine(DeploymentEngine): - - def __init__(self, name: str, Mapping = SnitchTiledMapping, initCode = "", includeList = _includeList) -> None: - super().__init__(name, Mapping, initCode, includeList) - - -class SnitchTiledPlatform(DeploymentPlatform): - - def __init__(self, - engines = [SnitchTiledClusterEngine("SnitchCluster")], - variableBuffer = SnitchVariableBuffer, - constantBuffer = SnitchConstantBuffer, - structBuffer = SnitchStructBuffer, - transientBuffer = SnitchTransientBuffer, - includeList: List[str] = _includeList): - super().__init__(engines, variableBuffer, constantBuffer, structBuffer, transientBuffer) diff --git a/DeeployTest/testUtils/platformMapping.py b/DeeployTest/testUtils/platformMapping.py index 5e63a5cfb7..2608d5b795 100644 --- a/DeeployTest/testUtils/platformMapping.py +++ b/DeeployTest/testUtils/platformMapping.py @@ -26,7 +26,7 @@ from Deeploy.Targets.PULPOpen.Deployer import PULPDeployer from Deeploy.Targets.PULPOpen.Platform import MemoryPULPPlatform, MemoryPULPPlatformWrapper, PULPOptimizer, PULPPlatform from Deeploy.Targets.Snitch.Deployer import SnitchDeployer -from Deeploy.Targets.Snitch.Platform import SnitchOptimizer, SnitchPlatform, SnitchTiledPlatform +from Deeploy.Targets.Snitch.Platform import SnitchOptimizer, SnitchPlatform from Deeploy.Targets.SoftHier.Deployer import SoftHierDeployer from Deeploy.Targets.SoftHier.Platform import SoftHierOptimizer, SoftHierPlatform @@ -70,9 +70,6 @@ def mapPlatform(platformName: str) -> Tuple[DeploymentPlatform, bool]: elif platformName == "Snitch": Platform = SnitchPlatform() - elif platformName == "Snitch_tiled": - Platform = SnitchTiledPlatform() - elif platformName == "SoftHier": Platform = SoftHierPlatform() @@ -244,7 +241,7 @@ def mapDeployer(platform: DeploymentPlatform, default_channels_first = default_channels_first, deeployStateDir = deeployStateDir) - elif isinstance(platform, (SnitchPlatform, SnitchTiledPlatform)): + elif isinstance(platform, (SnitchPlatform)): if loweringOptimizer is None: loweringOptimizer = SnitchOptimizer From 76a4678a3cfdbf8fbaaff874d9bdf62ec4d8402e Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 15:53:30 +0100 Subject: [PATCH 04/50] add full microllama model in ci test --- .github/workflows/ci-platform-snitch-tiled.yml | 4 +++- .github/workflows/ci-platform-snitch.yml | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-platform-snitch-tiled.yml b/.github/workflows/ci-platform-snitch-tiled.yml index 4ebb9aba9a..697da454ea 100644 --- a/.github/workflows/ci-platform-snitch-tiled.yml +++ b/.github/workflows/ci-platform-snitch-tiled.yml @@ -52,7 +52,9 @@ jobs: {"name":"Kernels/Integer/iNoNorm","L1":[5000,10000]}, {"name":"Kernels/Integer/Add/Regular_RQ","L1":[5000,10000]}, - {"name":"Kernels/Integer/GEMM/Regular_RQPerRow","L1":[2000,5000]} + {"name":"Kernels/Integer/GEMM/Regular_RQPerRow","L1":[2000,5000]}, + + {"name":"Models/microLlama/microLlama_fp32_1","L1":[10000,20000]} ] simulators: | gvsoc diff --git a/.github/workflows/ci-platform-snitch.yml b/.github/workflows/ci-platform-snitch.yml index f3a1f8722f..4a9efae2c5 100644 --- a/.github/workflows/ci-platform-snitch.yml +++ b/.github/workflows/ci-platform-snitch.yml @@ -55,6 +55,8 @@ jobs: Kernels/Integer/GEMM/Regular_RQPerRow Kernels/Integer/Add/Regular_RQ Kernels/Integer/GEMM/TransB_RQ + + Models/microLlama/microLlama_fp32_1 num-cores: 9 simulators: | gvsoc From c222810e4dbde386ad2103426f7986bc3c8a5b60 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:00:24 +0100 Subject: [PATCH 05/50] add comments with information about operations --- Deeploy/Targets/Generic/Layers.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Deeploy/Targets/Generic/Layers.py b/Deeploy/Targets/Generic/Layers.py index 26dd5746c9..11e3a6a4de 100644 --- a/Deeploy/Targets/Generic/Layers.py +++ b/Deeploy/Targets/Generic/Layers.py @@ -712,6 +712,21 @@ def computeOps(self): class RMSNormLayer(ONNXLayer): + """Layer support for the ONNX RMSNormalization operator. + + Supported opset: 23 + + It is computed as follows: + - XSquared = Mul(X, X) + - XSquaredMean = ReduceMean(XSquared) + - MeanSquareEpsilon = Add(XSquaredMean, epsilon) + - RMS = Sqrt(MeanSquareEpsilon) + - Normalized = Div(X, RMS) + - Y = Mul(Normalized, Scale) + + For more details, this is the official ONNX documentation: + https://onnx.ai/onnx/operators/onnx__RMSNormalization.html#rmsnormalization-23 + """ def __init__(self, maps: List[NodeMapper]): super().__init__(maps) From 497e9c1ac536cbdc8b0f704af7b0fe0250d66d1d Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:16:58 +0100 Subject: [PATCH 06/50] generalize RMSNorm to support full ONNX spec --- Deeploy/Targets/Generic/Parsers.py | 8 +++++-- Deeploy/Targets/Snitch/Parsers.py | 23 +++++++++++++++++-- .../Snitch/Templates/FloatRMSNormTemplate.py | 10 +++++++- 3 files changed, 36 insertions(+), 5 deletions(-) diff --git a/Deeploy/Targets/Generic/Parsers.py b/Deeploy/Targets/Generic/Parsers.py index b140e08f48..f0f2f9b5c4 100644 --- a/Deeploy/Targets/Generic/Parsers.py +++ b/Deeploy/Targets/Generic/Parsers.py @@ -70,8 +70,12 @@ def parseNodeCtxt(self, for idx, outputNode in enumerate(node.outputs): self.operatorRepresentation[outputs[idx]] = ctxt.lookup(outputNode.name).name - self.operatorRepresentation['size'] = np.prod(ctxt.lookup(node.inputs[0].name).shape) - self.operatorRepresentation['lastDimLength'] = ctxt.lookup(node.inputs[0].name).shape[-1] + input_shape = list(ctxt.lookup(node.inputs[0].name).shape) + self.operatorRepresentation['size'] = np.prod(input_shape) + self.operatorRepresentation['lastDimLength'] = input_shape[-1] + self.operatorRepresentation['inputSize'] = int(np.prod(input_shape)) + self.operatorRepresentation['NormalizedAxesSize'] = int(input_shape[-1]) + self.operatorRepresentation['scale'] = node.inputs[1].values return ctxt, True diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 6976d8d356..57af4c8a95 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -87,6 +87,14 @@ def parseNode(self, node: gs.Node) -> bool: return False eps = node.attrs.get('eps', node.attrs.get('epsilon', 1e-6)) self.operatorRepresentation['eps'] = f"{float(eps):.10e}f" + + stash_type = node.attrs.get('stash_type', 1) + if stash_type != 1: + raise ValueError(f"RMSNorm: only stash_type=1 (FP32) is supported, got {stash_type}") + + axis = node.attrs.get('axis', -1) + self.operatorRepresentation['axis'] = axis + return True def parseNodeCtxt(self, @@ -103,11 +111,22 @@ def parseNodeCtxt(self, self.operatorRepresentation['input_shape'] = list(data_in.shape) self.operatorRepresentation['weight_shape'] = list(weight.shape) self.operatorRepresentation['output_shape'] = list(data_out.shape) - self.operatorRepresentation['size'] = int(np.prod(data_in.shape)) - self.operatorRepresentation['lastDimLength'] = int(data_in.shape[-1]) self.operatorRepresentation['input_ndim'] = len(data_in.shape) self.operatorRepresentation['weight_ndim'] = len(weight.shape) + input_shape = list(data_in.shape) + axis = self.operatorRepresentation['axis'] + if axis < 0: + axis = len(input_shape) + axis + + self.operatorRepresentation['inputSize'] = int(np.prod(input_shape)) + self.operatorRepresentation['NormalizedAxesSize'] = int(np.prod(input_shape[axis:])) + self.operatorRepresentation['scale'] = node.inputs[1].values + + # Keep old keys for C template compatibility + self.operatorRepresentation['size'] = int(np.prod(input_shape)) + self.operatorRepresentation['lastDimLength'] = int(input_shape[-1]) + return ctxt, True diff --git a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py index 8ae4d95e01..629c1bb4f3 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py @@ -18,8 +18,16 @@ def alignToContext(self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: data_in = ctxt.lookup(operatorRepresentation["data_in"]) + input_shape = list(data_in.shape) + + axis = operatorRepresentation.get("axis", -1) + if axis < 0: + axis = len(input_shape) + axis + operatorRepresentation["lastDimLength"] = data_in.shape[-1] - operatorRepresentation["size"] = int(np.prod(data_in.shape)) + operatorRepresentation["size"] = int(np.prod(input_shape)) + operatorRepresentation["inputSize"] = int(np.prod(input_shape)) + operatorRepresentation["NormalizedAxesSize"] = int(np.prod(input_shape[axis:])) return ctxt, operatorRepresentation, [] From bf5ddb737c5410ee3e38bd58a83067c5a4714f96 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:30:22 +0100 Subject: [PATCH 07/50] Fix broadcast stride calculation for inputs with different ranks in AddParser --- Deeploy/Targets/Generic/Parsers.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Deeploy/Targets/Generic/Parsers.py b/Deeploy/Targets/Generic/Parsers.py index f0f2f9b5c4..47b7e3b2dc 100644 --- a/Deeploy/Targets/Generic/Parsers.py +++ b/Deeploy/Targets/Generic/Parsers.py @@ -503,27 +503,31 @@ def parseNodeCtxt(self, # Calculate strides for broadcasting ndim = len(out_shape) + # Pad shapes from the left to match ndim (ONNX broadcasts from right) + padded_shape1 = [1] * (ndim - len(shape1)) + shape1 + padded_shape2 = [1] * (ndim - len(shape2)) + shape2 + # Compute strides for input 1 strides1 = [1] * ndim for i in range(ndim - 1, -1, -1): - if i < len(shape1) and shape1[i] == out_shape[i]: + if padded_shape1[i] == out_shape[i]: if i == ndim - 1: strides1[i] = 1 else: - strides1[i] = strides1[i + 1] * shape1[i + 1] if ( - i + 1 < len(shape1) and shape1[i + 1] == out_shape[i + 1]) else strides1[i + 1] + strides1[i] = strides1[i + 1] * padded_shape1[i + 1] if ( + padded_shape1[i + 1] == out_shape[i + 1]) else strides1[i + 1] else: strides1[i] = 0 # Broadcast dimension # Compute strides for input 2 strides2 = [1] * ndim for i in range(ndim - 1, -1, -1): - if i < len(shape2) and shape2[i] == out_shape[i]: + if padded_shape2[i] == out_shape[i]: if i == ndim - 1: strides2[i] = 1 else: - strides2[i] = strides2[i + 1] * shape2[i + 1] if ( - i + 1 < len(shape2) and shape2[i + 1] == out_shape[i + 1]) else strides2[i + 1] + strides2[i] = strides2[i + 1] * padded_shape2[i + 1] if ( + padded_shape2[i + 1] == out_shape[i + 1]) else strides2[i + 1] else: strides2[i] = 0 # Broadcast dimension From 7e3659d725821774b3c8fb6d28ccbb8f10c5dcb3 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:32:09 +0100 Subject: [PATCH 08/50] delete unused function --- Deeploy/Targets/Generic/TypeCheckers.py | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/Deeploy/Targets/Generic/TypeCheckers.py b/Deeploy/Targets/Generic/TypeCheckers.py index 6b3ff546b3..c08c3c4a86 100644 --- a/Deeploy/Targets/Generic/TypeCheckers.py +++ b/Deeploy/Targets/Generic/TypeCheckers.py @@ -102,20 +102,6 @@ def _inferSignedness(self, inputs: List[VariableBuffer], return [False] -class FloatAddChecker(SignPropTypeChecker): - - def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): - super().__init__(input_types, output_types) - - def _inferNumLevels(self, inputs: List[VariableBuffer], - operatorRepresentation: OperatorRepresentation) -> List[int]: - return [2**(self.input_types[0].referencedType.typeWidth)] - - def _inferSignedness(self, inputs: List[VariableBuffer], - operatorRepresentation: OperatorRepresentation) -> List[bool]: - return [True] - - class GatherChecker(SignPropTypeChecker): def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): From 28280fbc5ef432e5daf7ef5e34e6f0dc227954a1 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:41:20 +0100 Subject: [PATCH 09/50] delete the comment --- Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py index ee35255e24..c71cd0a507 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -1,5 +1,3 @@ -# ~/Deeploy/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py - # SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 From ac5d541d443c116b324da6fb439583f40231ddac Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:42:23 +0100 Subject: [PATCH 10/50] update year to 2026 --- Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py index 0cd0a649e1..dc21d633ed 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 202666666 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 From c90b35ceb9c5a091332b86e9a466bedb1178e712 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:46:14 +0100 Subject: [PATCH 11/50] Fix: Revert batch_size type to uint32_t based on review --- Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py index a8f32b32e3..a7bf0f61c7 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py @@ -25,10 +25,10 @@ def alignToContext(self, ctxt: NetworkContext, FloatSoftmaxTemplateStr = r""" - int32_t batch_size = ${size} / ${lastDimLength}; - int32_t compute_num = 1; //snrt_cluster_compute_core_num(); - int32_t ldI = compute_num * ${input_samples}; - int32_t batch_offset = ${seq_len} * ${input_samples}; + uint32_t batch_size = ${size} / ${lastDimLength}; + uint32_t compute_num = 1; //snrt_cluster_compute_core_num(); + uint32_t ldI = compute_num * ${input_samples}; + uint32_t batch_offset = ${seq_len} * ${input_samples}; // JUNGVI: This implementation is broken and has memory leak. if (snrt_hartid() == 0){ From 5669c2819bef8622d0d652e115fc4a3331800f88 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:47:22 +0100 Subject: [PATCH 12/50] update year to 2026 --- Deeploy/Targets/Snitch/Templates/GatherTemplate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/Templates/GatherTemplate.py b/Deeploy/Targets/Snitch/Templates/GatherTemplate.py index fa4f6a2a86..fafde9c663 100644 --- a/Deeploy/Targets/Snitch/Templates/GatherTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/GatherTemplate.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 From cf4d9bd5bd057b809a6018924979ab99896858bf Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 16:59:56 +0100 Subject: [PATCH 13/50] update year to 2026 --- Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py index a99573b27b..a9c8add375 100644 --- a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 From c04bd6aa9acb7175be4b03986d00bac9bcbe569d Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 17:02:12 +0100 Subject: [PATCH 14/50] remove code duplication --- .../Snitch/Templates/ReshapeTemplate.py | 37 +------------------ 1 file changed, 2 insertions(+), 35 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py index a9c8add375..487503d4f6 100644 --- a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py @@ -2,43 +2,10 @@ # # SPDX-License-Identifier: Apache-2.0 -from typing import Dict, List, Tuple - -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, VariableBuffer - - -class _SnitchReshapeTemplate(NodeTemplate): - - def __init__(self, templateStr): - super().__init__(templateStr) - - def alignToContext(self, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - - # SCHEREMO: Selectively mark 'indices' dead, since we don't need them - if 'indices' in operatorRepresentation.keys(): - ctxt.globalObjects[operatorRepresentation['indices']]._deploy = False - ctxt.globalObjects[operatorRepresentation['indices']]._live = False - - # Same for "shape" - if "shape" in operatorRepresentation.keys(): - ctxt.globalObjects[operatorRepresentation["shape"]]._deploy = False - ctxt.globalObjects[operatorRepresentation["shape"]]._live = False - - bufferIn = ctxt.lookup(operatorRepresentation['data_in']) - assert isinstance(bufferIn, VariableBuffer) - bufferOut = ctxt.lookup(operatorRepresentation['data_out']) - assert isinstance(bufferOut, VariableBuffer) - - # Link aliases to each buffer - bufferIn.aliases.add(bufferOut.name) - bufferOut.aliases.add(bufferIn.name) - - return ctxt, operatorRepresentation, [] - +from Deeploy.Targets.Generic.Templates.ReshapeTemplate import _ReshapeTemplate # Use snrt_cluster_core_idx() == 0 instead of SINGLE_CORE macro to avoid core_id dependency -referenceTemplate = _SnitchReshapeTemplate(""" +referenceTemplate = _ReshapeTemplate(""" // Reshape (Name: ${nodeName}, Op: ${nodeOp}) if (snrt_cluster_core_idx() == 0) { ${data_out} = ${data_in}; } """) From bdc550eb1e718cde915eb059b8df61b294f8a68c Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 17:11:11 +0100 Subject: [PATCH 15/50] remove code duplication --- Deeploy/Targets/Snitch/Bindings.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index e442f63038..75efb22f77 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -18,8 +18,9 @@ from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma +from Deeploy.Targets.Generic.Templates import TransposeTemplate from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ - MatMulTemplate, ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate + MatMulTemplate, ReshapeTemplate, RQAddTemplate, iSoftmaxTemplate from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate from Deeploy.Targets.Snitch.Templates.FloatHardSwishTemplate import referenceTemplate as FloatHardSwishTemplate From b53ff7526969f535281bd215922a26a561df5393 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 17:12:13 +0100 Subject: [PATCH 16/50] update year to 2026 --- .../Targets/Snitch/TileConstraints/FloatDivTileConstraint.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py index b9b07be30a..e2de98535d 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 From b3556240a0b21d882012a4f3c26dfb02510716ba Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 17:13:18 +0100 Subject: [PATCH 17/50] update year to 2026 --- .../Targets/Snitch/TileConstraints/FloatMulTileConstraint.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py index 99df639004..e3c7f1f974 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 From 53061343d5ce485c90fdb39677c8f90d2df81ad0 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 3 Feb 2026 17:18:14 +0100 Subject: [PATCH 18/50] recover the Gemm_fp32 --- .../TileConstraints/ReshapeTileConstraint.py | 2 +- TargetLibraries/Snitch/src/Gemm_fp32.c | 199 +++++++++++++++++- 2 files changed, 191 insertions(+), 10 deletions(-) diff --git a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py index 1bafa36e3b..01a7e7e406 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 diff --git a/TargetLibraries/Snitch/src/Gemm_fp32.c b/TargetLibraries/Snitch/src/Gemm_fp32.c index 8dac98ef67..9a79538e12 100644 --- a/TargetLibraries/Snitch/src/Gemm_fp32.c +++ b/TargetLibraries/Snitch/src/Gemm_fp32.c @@ -11,50 +11,231 @@ void gemm_fp32_transB_opt(uint32_t M, uint32_t N, uint32_t K, float32_t *A, uint32_t ldA, float32_t *B, uint32_t ldB, float32_t *C, uint32_t ldC, float32_t *Y, uint32_t BETA, uint32_t setup_SSR) { - (void)setup_SSR; uint32_t compute_id = snrt_global_compute_core_idx(); uint32_t A_offset = K * compute_id; uint32_t C_offset = N * compute_id; + // Unrolling factor of most inner loop. + // Should be at least as high as the FMA delay + // for maximum utilization + const uint32_t unroll = 8; + + // SSR strides and bounds only have to be configured + // once in the beginning + if (setup_SSR) { + // First matrix is not stored in transposed format + const uint32_t ssr0_b[4] = {unroll, K, N / unroll, M}; + const uint32_t ssr0_i[4] = {0, sizeof(float32_t), 0, + sizeof(float32_t) * ldA}; + + // Second matrix is stored in transposed format + const uint32_t ssr1_b[4] = {unroll, K, N / unroll, M}; + const uint32_t ssr1_i[4] = {sizeof(float32_t) * K, sizeof(float32_t), + sizeof(float32_t) * K * unroll, 0}; + + snrt_ssr_loop_3d(SNRT_SSR_DM0, ssr0_b[1], ssr0_b[2], ssr0_b[3], ssr0_i[1], + ssr0_i[2], ssr0_i[3]); + + snrt_ssr_repeat(SNRT_SSR_DM0, unroll); + snrt_ssr_loop_4d(SNRT_SSR_DM1, ssr1_b[0], ssr1_b[1], ssr1_b[2], ssr1_b[3], + ssr1_i[0], ssr1_i[1], ssr1_i[2], ssr1_i[3]); + } + + // SSR start address need to be configured each time + + snrt_ssr_read(SNRT_SSR_DM0, SNRT_SSR_4D, &A[A_offset]); + snrt_ssr_read(SNRT_SSR_DM1, SNRT_SSR_4D, B); + snrt_ssr_enable(); + + // check dimensions and values of a and b + + // Kernel progresses by 1 values each step + // const uint32_t n_frep = K - 1; for (uint32_t m = 0; m < M; m++) { - for (uint32_t n = 0; n < N; n++) { + uint32_t n = 0; + for (uint32_t n0 = 0; n0 < N / unroll; n0++) { + float c[unroll]; + + // Load intermediate result + if (BETA) { + c[0] = C[C_offset + m * ldC + n + 0]; + c[1] = C[C_offset + m * ldC + n + 1]; + c[2] = C[C_offset + m * ldC + n + 2]; + c[3] = C[C_offset + m * ldC + n + 3]; + c[4] = C[C_offset + m * ldC + n + 4]; + c[5] = C[C_offset + m * ldC + n + 5]; + c[6] = C[C_offset + m * ldC + n + 6]; + c[7] = C[C_offset + m * ldC + n + 7]; + } else { + c[0] = 0.0; + c[1] = 0.0; + c[2] = 0.0; + c[3] = 0.0; + c[4] = 0.0; + c[5] = 0.0; + c[6] = 0.0; + c[7] = 0.0; + } + + asm volatile( + "frep.o %[n_frep], 8, 0, 0 \n" + "fmadd.s %[c0], ft0, ft1, %[c0] \n" + "fmadd.s %[c1], ft0, ft1, %[c1] \n" + "fmadd.s %[c2], ft0, ft1, %[c2] \n" + "fmadd.s %[c3], ft0, ft1, %[c3] \n" + "fmadd.s %[c4], ft0, ft1, %[c4] \n" + "fmadd.s %[c5], ft0, ft1, %[c5] \n" + "fmadd.s %[c6], ft0, ft1, %[c6] \n" + "fmadd.s %[c7], ft0, ft1, %[c7] \n" + : [c0] "+f"(c[0]), [c1] "+f"(c[1]), [c2] "+f"(c[2]), [c3] "+f"(c[3]), + [c4] "+f"(c[4]), [c5] "+f"(c[5]), [c6] "+f"(c[6]), [c7] "+f"(c[7]) + : [n_frep] "r"(K - 1) + : "ft0", "ft1", "ft2"); + + // Store results back + Y[C_offset + m * ldC + n + 0] = c[0]; + Y[C_offset + m * ldC + n + 1] = c[1]; + Y[C_offset + m * ldC + n + 2] = c[2]; + Y[C_offset + m * ldC + n + 3] = c[3]; + Y[C_offset + m * ldC + n + 4] = c[4]; + Y[C_offset + m * ldC + n + 5] = c[5]; + Y[C_offset + m * ldC + n + 6] = c[6]; + Y[C_offset + m * ldC + n + 7] = c[7]; + n += unroll; + } + + // Clean up of leftover columns + snrt_ssr_disable(); + for (; n < N; n++) { float32_t c; if (BETA) { c = C[C_offset + m * ldC + n]; } else { - c = 0.0f; + c = 0.0; } for (uint32_t k = 0; k < K; k++) { - c += A[A_offset + m * ldA + k] * B[n * ldB + k]; + c += A[A_offset + k + m * ldA] * B[k + n * ldB]; } Y[C_offset + m * ldC + n] = c; } + snrt_ssr_enable(); } + snrt_ssr_disable(); } void gemm_fp32_opt(uint32_t M, uint32_t N, uint32_t K, float32_t *A, uint32_t ldA, float32_t *B, uint32_t ldB, float32_t *C, uint32_t ldC, float32_t *Y, uint32_t BETA, uint32_t setup_SSR) { - (void)setup_SSR; - uint32_t compute_id = snrt_global_compute_core_idx(); uint32_t A_offset = K * compute_id; uint32_t C_offset = N * compute_id; + // Unrolling factor of most inner loop. + // Should be at least as high as the FMA delay + // for maximum utilization + const uint32_t unroll = 8; + + // SSR strides and bounds only have to be configured + // once in the beginning + if (setup_SSR) { + // First matrix is not stored in transposed format + const uint32_t ssr0_b[4] = {unroll, K, N / unroll, M}; + const uint32_t ssr0_i[4] = {0, sizeof(float32_t), 0, + sizeof(float32_t) * ldA}; + + // Second matrix is not stored in transposed format + const uint32_t ssr1_b[4] = {unroll, K, N / unroll, M}; + const uint32_t ssr1_i[4] = {sizeof(float32_t), sizeof(float32_t) * ldB, + sizeof(float32_t) * unroll, 0}; + + snrt_ssr_loop_3d(SNRT_SSR_DM0, ssr0_b[1], ssr0_b[2], ssr0_b[3], ssr0_i[1], + ssr0_i[2], ssr0_i[3]); + + snrt_ssr_repeat(SNRT_SSR_DM0, unroll); + snrt_ssr_loop_4d(SNRT_SSR_DM1, ssr1_b[0], ssr1_b[1], ssr1_b[2], ssr1_b[3], + ssr1_i[0], ssr1_i[1], ssr1_i[2], ssr1_i[3]); + } + + // SSR start address need to be configured each time + + snrt_ssr_read(SNRT_SSR_DM0, SNRT_SSR_4D, &A[A_offset]); + snrt_ssr_read(SNRT_SSR_DM1, SNRT_SSR_4D, B); + snrt_ssr_enable(); + + // check dimensions and values of a and b + + // Kernel progresses by 1 values each step + // const uint32_t n_frep = K - 1; for (uint32_t m = 0; m < M; m++) { - for (uint32_t n = 0; n < N; n++) { + uint32_t n = 0; + for (uint32_t n0 = 0; n0 < N / unroll; n0++) { + float c[unroll]; + + // Load intermediate result + if (BETA) { + c[0] = C[C_offset + m * ldC + n + 0]; + c[1] = C[C_offset + m * ldC + n + 1]; + c[2] = C[C_offset + m * ldC + n + 2]; + c[3] = C[C_offset + m * ldC + n + 3]; + c[4] = C[C_offset + m * ldC + n + 4]; + c[5] = C[C_offset + m * ldC + n + 5]; + c[6] = C[C_offset + m * ldC + n + 6]; + c[7] = C[C_offset + m * ldC + n + 7]; + } else { + c[0] = 0.0; + c[1] = 0.0; + c[2] = 0.0; + c[3] = 0.0; + c[4] = 0.0; + c[5] = 0.0; + c[6] = 0.0; + c[7] = 0.0; + } + + asm volatile( + "frep.o %[n_frep], 8, 0, 0 \n" + "fmadd.s %[c0], ft0, ft1, %[c0] \n" + "fmadd.s %[c1], ft0, ft1, %[c1] \n" + "fmadd.s %[c2], ft0, ft1, %[c2] \n" + "fmadd.s %[c3], ft0, ft1, %[c3] \n" + "fmadd.s %[c4], ft0, ft1, %[c4] \n" + "fmadd.s %[c5], ft0, ft1, %[c5] \n" + "fmadd.s %[c6], ft0, ft1, %[c6] \n" + "fmadd.s %[c7], ft0, ft1, %[c7] \n" + : [c0] "+f"(c[0]), [c1] "+f"(c[1]), [c2] "+f"(c[2]), [c3] "+f"(c[3]), + [c4] "+f"(c[4]), [c5] "+f"(c[5]), [c6] "+f"(c[6]), [c7] "+f"(c[7]) + : [n_frep] "r"(K - 1) + : "ft0", "ft1", "ft2"); + + // Store results back + Y[C_offset + m * ldC + n + 0] = c[0]; + Y[C_offset + m * ldC + n + 1] = c[1]; + Y[C_offset + m * ldC + n + 2] = c[2]; + Y[C_offset + m * ldC + n + 3] = c[3]; + Y[C_offset + m * ldC + n + 4] = c[4]; + Y[C_offset + m * ldC + n + 5] = c[5]; + Y[C_offset + m * ldC + n + 6] = c[6]; + Y[C_offset + m * ldC + n + 7] = c[7]; + n += unroll; + } + + // Clean up of leftover columns + snrt_ssr_disable(); + for (; n < N; n++) { float32_t c; if (BETA) { c = C[C_offset + m * ldC + n]; } else { - c = 0.0f; + c = 0.0; } for (uint32_t k = 0; k < K; k++) { - c += A[A_offset + m * ldA + k] * B[k * ldB + n]; + c += A[A_offset + k + m * ldA] * B[k * ldB + n]; } Y[C_offset + m * ldC + n] = c; } + snrt_ssr_enable(); } + snrt_ssr_disable(); } From 32d88c00011e797de656a3f057f6e9d9b7c405d5 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 4 Feb 2026 14:57:28 +0100 Subject: [PATCH 19/50] improve multicore transpose --- Deeploy/Targets/Snitch/Bindings.py | 13 +- Deeploy/Targets/Snitch/Platform.py | 13 +- .../Snitch/Templates/TransposeTemplate.py | 121 ++++++++++++++---- 3 files changed, 120 insertions(+), 27 deletions(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 75efb22f77..641afef6a4 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -18,9 +18,8 @@ from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma -from Deeploy.Targets.Generic.Templates import TransposeTemplate from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ - MatMulTemplate, ReshapeTemplate, RQAddTemplate, iSoftmaxTemplate + MatMulTemplate, ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate from Deeploy.Targets.Snitch.Templates.FloatHardSwishTemplate import referenceTemplate as FloatHardSwishTemplate @@ -188,6 +187,16 @@ TransposeTemplate.referenceTemplate, TiledTransformer) ] +# Transpose Bindings (Non-tiled, multi-core) +BasicSnitchTransposeBindings = [ + NodeBinding(TransposeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), TransposeTemplate.referenceTemplate, + BasicTransformer), + NodeBinding(TransposeChecker([PointerClass(int32_t)], [PointerClass(int32_t)]), TransposeTemplate.referenceTemplate, + BasicTransformer), + NodeBinding(TransposeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), + TransposeTemplate.referenceTemplate, BasicTransformer) +] + # Reshape Bindings (Tiled) SnitchReshapeBindings = [ NodeBinding(ReshapeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), ReshapeTemplate.referenceTemplate, diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index bb37c8a2fe..6dfc2f4afb 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -9,8 +9,8 @@ from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicLayerNormBindings, BasicPad1DBindings, BasicPad2DBindings, \ - BasicRQIntegerDivBinding +from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicGatherBindings, BasicLayerNormBindings, \ + BasicMatMulBindings, BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ SoftmaxLayer, TransposeLayer, iNoNormLayer @@ -21,6 +21,10 @@ from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass, GEMMRequantMergePass, \ IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass +from Deeploy.Targets.PULPOpen.Platform import RQAddMapper +from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ + BasicRMSNormBindings, BasicSnitchTransposeBindings, SnitchAddBindings, SnitchGemmBindings, \ + SnitchiNoNormBindings, SnitchiSoftmaxBindings, SnitchRQAddBindings, SnitchRqGemmBindings from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchDivParser, SnitchGEMMParser, SnitchMulParser, \ SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate @@ -34,6 +38,11 @@ # Mappers without tiling-ready equivalents Pad1DMapper = NodeMapper(Pad1DParser(), BasicPad1DBindings) Pad2DMapper = NodeMapper(Pad2DParser(), BasicPad2DBindings) +UnsqueezeMapper = NodeMapper(UnsqueezeParser(), BasicReshapeBindings) +ReshapeMapper = NodeMapper(ReshapeParser(), BasicReshapeBindings) +TransposeMapper = NodeMapper(TransposeParser(), BasicSnitchTransposeBindings) +ConcatMapper = NodeMapper(ConcatParser(), BasicConcatBindings) + RQIntegerDivMapper = NodeMapper(RQIntegerDivParser(), [BasicRQIntegerDivBinding]) iLayerNormMapper = NodeMapper(iLayerNormParser(), BasicLayerNormBindings) diff --git a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py index 5e33f85aa0..9d2d3954ac 100644 --- a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py @@ -2,33 +2,108 @@ # # SPDX-License-Identifier: Apache-2.0 -from Deeploy.DeeployTypes import NodeTemplate +from typing import Dict, List, Tuple -# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency -referenceTemplate = NodeTemplate(""" -// Transpose ${data_in_shape} -> ${data_out_shape} (Name: ${nodeName}, Op: ${nodeOp}) -if (snrt_cluster_core_idx() == 0) { -${data_out_type.typeName} dummy_${data_out} = ${data_out}; -<% - dimStr = '' - accessStr = '' - shapeStr = '' - for dim in data_in_shape: - dimStr += '['+str(dim)+']' -%> -% for idx, i in enumerate(perm[:-1]): -<% - shapeStr += '['+str(data_in_shape[idx+1])+']' -%> +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, _Template + +# Two-stage header: <%text>${ escapes produce ${dimLen_N} template variables +# that survive the first render and get resolved during the second render +# (by operatorRepresentation in untiled mode, or TilingVariableReplacement in tiled mode) +_tileHeader = NodeTemplate(""" +const uint32_t _core_idx = snrt_cluster_core_idx(); +const uint32_t _core_num = snrt_cluster_compute_core_num(); + +% for i in range(numDims): +uint32_t dimLen_${i} = <%text>${${dimLenPtr[i]}<%text>}; % endfor +""") + +_tileForLoop = NodeTemplate(""" +const uint32_t _baseChunk_${i} = dimLen_${i} / _core_num; +const uint32_t _leftover_${i} = dimLen_${i} - _baseChunk_${i} * _core_num; +const uint32_t _offset_${i} = _baseChunk_${i} * _core_idx + (_core_idx < _leftover_${i} ? _core_idx : _leftover_${i}); +const uint32_t _chunk_${i} = _core_idx < _leftover_${i} ? _baseChunk_${i} + 1 : _baseChunk_${i}; +for(uint32_t i_${i} = _offset_${i}; i_${i} < _offset_${i} + _chunk_${i}; i_${i}++) { +""") + +_forLoop = NodeTemplate(""" +for(uint32_t i_${i} = 0; i_${i} < dimLen_${i}; i_${i}++) { +""") + + +class SnitchTransposeTemplate(NodeTemplate): + + def __init__(self, templateStr: str): + self._indirectTemplate = _Template(templateStr) + self.subTemplates = {} + self.subTemplateGenerators = {} + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + shapeStr = "" + dimStr = "" + accessStr = "" + outAccessStr = "" + outShapeStr = "" + perm = operatorRepresentation['perm'] + data_in_shape = ctxt.lookup(operatorRepresentation['data_in']).shape + data_out_shape = ctxt.lookup(operatorRepresentation['data_out']).shape + + for idx, i in enumerate(perm[:-1]): + shapeStr += '[' + f"dimLen_{idx+1}" + ']' + outShapeStr += '[' + f"dimLen_{perm[idx+1]}" + ']' + + for dim in data_in_shape: + dimStr += '[' + str(dim) + ']' + + for idx, i in enumerate(perm): + accessStr += '[i_' + str(idx) + ']' + outAccessStr += '[i_' + str(i) + ']' + + fRep = operatorRepresentation.copy() + + fRep['shapeStr'] = shapeStr + fRep['outShapeStr'] = outShapeStr + fRep['outAccessStr'] = outAccessStr + fRep['dimStr'] = dimStr + fRep['accessStr'] = accessStr + fRep['data_out_shape'] = data_out_shape + + # Select the best dimension to parallelize: + # prefer dimensions >= 8 for good load balancing, otherwise pick the largest + parallelDims = [idx for idx, dim in enumerate(data_out_shape) if dim >= 8] + if len(parallelDims) > 0: + parallelDim = parallelDims[0] + else: + parallelDim = data_out_shape.index(max(data_out_shape)) + + forLoops = [] + dimLenPtrs = [] + for idx, i in enumerate(perm): + operatorRepresentation[f"dimLen_{idx}"] = data_in_shape[idx] + dimLenPtrs.append(f"dimLen_{idx}") + if idx != parallelDim: + forLoops.append(_forLoop.generate({"i": i})) + else: + forLoops.append(_tileForLoop.generate({"i": i})) + + fRep['forLoops'] = forLoops + fRep['tileHeader'] = _tileHeader.generate({"numDims": len(perm), "dimLenPtr": dimLenPtrs}) + fRep['parallelDim'] = parallelDim + + self.template = _Template(self._indirectTemplate.render(**fRep)) + + return ctxt, operatorRepresentation, [] + + +referenceTemplate = SnitchTransposeTemplate(""" +// Transpose ${data_in_shape} -> ${data_out_shape} (Name: ${nodeName}, Op: ${nodeOp}) +if (snrt_is_compute_core()) { +${tileHeader} % for idx, i in enumerate(perm): -<% - shape = data_out_shape[idx] - accessStr += '[i_'+str(idx)+']' -%> -for(uint32_t i_${i} = 0; i_${i}<${shape}; i_${i}++){ +${forLoops[idx]} % endfor -*dummy_${data_out}++ = ((${data_in_type.referencedType.typeName} (*)${shapeStr})${data_in})${accessStr}; +((${data_in_type.referencedType.typeName} (*)${outShapeStr})<%text>${data_out})${outAccessStr} = ((${data_in_type.referencedType.typeName} (*)${shapeStr})<%text>${data_in})${accessStr}; % for idx, i in enumerate(perm): } % endfor From 7092e3585a7b51c81db4919dec15f2480b7cc967 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 4 Feb 2026 15:31:31 +0100 Subject: [PATCH 20/50] format: run make format on Snitch platform code --- Deeploy/Targets/Snitch/Bindings.py | 55 +++++--- .../SnitchClusterSynch.py | 8 +- .../SnitchCoreFilter.py | 8 +- .../SnitchProfileExecutionBlock.py | 8 +- Deeploy/Targets/Snitch/DMA/SnitchDma.py | 10 +- Deeploy/Targets/Snitch/DataTypes.py | 4 +- Deeploy/Targets/Snitch/Deployer.py | 15 ++- Deeploy/Targets/Snitch/Parsers.py | 9 +- Deeploy/Targets/Snitch/Platform.py | 122 ++++++++++++++---- .../Targets/Snitch/Templates/AddTemplate.py | 4 +- .../Snitch/Templates/FloatAddTemplate.py | 4 +- .../Snitch/Templates/FloatDivTemplate.py | 4 +- .../Templates/FloatHardSwishTemplate.py | 4 +- .../Snitch/Templates/FloatMulTemplate.py | 4 +- .../Snitch/Templates/FloatRMSNormTemplate.py | 4 +- .../Snitch/Templates/FloatSoftmaxTemplate.py | 4 +- .../Targets/Snitch/Templates/GemmTemplate.py | 4 +- .../Snitch/Templates/MatMulTemplate.py | 4 +- .../Snitch/Templates/RqGemmTemplate.py | 4 +- .../Snitch/Templates/TransposeTemplate.py | 5 +- .../TileConstraints/FloatDivTileConstraint.py | 9 +- .../TileConstraints/FloatMulTileConstraint.py | 9 +- .../TileConstraints/GemmTileConstraint.py | 12 +- .../TileConstraints/ReshapeTileConstraint.py | 9 +- .../TileConstraints/RqGemmTileConstraint.py | 12 +- .../TileConstraints/iNoNormTileConstraint.py | 7 +- .../TileConstraints/iSoftmaxTileConstraint.py | 7 +- Deeploy/Targets/Snitch/Tiler.py | 22 +++- TargetLibraries/Snitch/inc/kernel/MatMul.h | 10 +- TargetLibraries/Snitch/inc/kernel/RQMatMul.h | 14 +- .../Snitch/src/snitch_nn_add_i8_i8_i8.c | 12 +- 31 files changed, 293 insertions(+), 114 deletions(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 641afef6a4..57f50ac47e 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -5,21 +5,46 @@ from functools import partial from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import ClosureGeneration, MemoryAwareClosureGeneration -from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import ArgumentStructGeneration, \ - MemoryManagementGeneration -from Deeploy.CommonExtensions.DataTypes import float32_t, int8_t, int32_t, uint8_t -from Deeploy.DeeployTypes import CodeTransformation, NodeBinding +from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import ClosureGeneration +from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import MemoryAwareClosureGeneration +from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import ArgumentStructGeneration +from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import MemoryManagementGeneration +from Deeploy.CommonExtensions.DataTypes import float32_t +from Deeploy.CommonExtensions.DataTypes import int8_t +from Deeploy.CommonExtensions.DataTypes import int32_t +from Deeploy.CommonExtensions.DataTypes import uint8_t +from Deeploy.DeeployTypes import CodeTransformation +from Deeploy.DeeployTypes import NodeBinding from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration -from Deeploy.Targets.Generic.Templates import ConcatTemplate, iNoNormTemplate -from Deeploy.Targets.Generic.TypeCheckers import AddChecker, ConcatChecker, DivChecker, GatherChecker, GEMMChecker, \ - HardSwishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ - TransposeChecker, iNoNormChecker -from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ - SnitchSynchCoresPass +from Deeploy.Targets.Generic.Templates import ConcatTemplate +from Deeploy.Targets.Generic.Templates import iNoNormTemplate +from Deeploy.Targets.Generic.TypeCheckers import AddChecker +from Deeploy.Targets.Generic.TypeCheckers import ConcatChecker +from Deeploy.Targets.Generic.TypeCheckers import DivChecker +from Deeploy.Targets.Generic.TypeCheckers import GatherChecker +from Deeploy.Targets.Generic.TypeCheckers import GEMMChecker +from Deeploy.Targets.Generic.TypeCheckers import HardSwishChecker +from Deeploy.Targets.Generic.TypeCheckers import iNoNormChecker +from Deeploy.Targets.Generic.TypeCheckers import MatMulChecker +from Deeploy.Targets.Generic.TypeCheckers import MulChecker +from Deeploy.Targets.Generic.TypeCheckers import ReshapeChecker +from Deeploy.Targets.Generic.TypeCheckers import RMSNormChecker +from Deeploy.Targets.Generic.TypeCheckers import RQAddChecker +from Deeploy.Targets.Generic.TypeCheckers import SoftmaxChecker +from Deeploy.Targets.Generic.TypeCheckers import TransposeChecker +from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling +from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchCoreFilterPass +from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma -from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ - MatMulTemplate, ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate +from Deeploy.Targets.Snitch.Templates import AddTemplate +from Deeploy.Targets.Snitch.Templates import FloatGemmTemplate +from Deeploy.Targets.Snitch.Templates import FloatMatMulTemplate +from Deeploy.Targets.Snitch.Templates import GatherTemplate +from Deeploy.Targets.Snitch.Templates import iSoftmaxTemplate +from Deeploy.Targets.Snitch.Templates import MatMulTemplate +from Deeploy.Targets.Snitch.Templates import ReshapeTemplate +from Deeploy.Targets.Snitch.Templates import RQAddTemplate +from Deeploy.Targets.Snitch.Templates import TransposeTemplate from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate from Deeploy.Targets.Snitch.Templates.FloatHardSwishTemplate import referenceTemplate as FloatHardSwishTemplate @@ -28,8 +53,8 @@ from Deeploy.Targets.Snitch.Templates.FloatSoftmaxTemplate import FloatSoftmax_Template from Deeploy.Targets.Snitch.Templates.GemmTemplate import SnitchGemm_Template from Deeploy.Targets.Snitch.Templates.RqGemmTemplate import SnitchRqGemm_Template -from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacement, \ - TilingVariableReplacementUpdate +from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacement +from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacementUpdate TilingCallClosure = partial(ClosureGeneration, closureSuffix = "_tiling_closure") MemoryAwareFunctionCallClosure = partial(MemoryAwareClosureGeneration, diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py index cc0af164ad..70abe0b99f 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py @@ -4,8 +4,12 @@ from typing import Tuple -from Deeploy.DeeployTypes import CodeGenVerbosity, CodeTransformationPass, ExecutionBlock, NetworkContext, \ - NodeTemplate, _NoVerbosity +from Deeploy.DeeployTypes import _NoVerbosity +from Deeploy.DeeployTypes import CodeGenVerbosity +from Deeploy.DeeployTypes import CodeTransformationPass +from Deeploy.DeeployTypes import ExecutionBlock +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate _synchTemplate = NodeTemplate(""" snrt_cluster_hw_barrier(); diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py index a864c5db8f..c900e128be 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py @@ -4,8 +4,12 @@ from typing import Literal, Tuple -from Deeploy.DeeployTypes import CodeGenVerbosity, CodeTransformationPass, ExecutionBlock, NetworkContext, \ - NodeTemplate, _NoVerbosity +from Deeploy.DeeployTypes import _NoVerbosity +from Deeploy.DeeployTypes import CodeGenVerbosity +from Deeploy.DeeployTypes import CodeTransformationPass +from Deeploy.DeeployTypes import ExecutionBlock +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate class SnitchCoreFilterPass(CodeTransformationPass): diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py index ec17b36011..8186dcf8ae 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py @@ -4,8 +4,12 @@ from typing import Tuple -from Deeploy.DeeployTypes import CodeGenVerbosity, CodeTransformationPass, ExecutionBlock, NetworkContext, \ - NodeTemplate, _NoVerbosity +from Deeploy.DeeployTypes import _NoVerbosity +from Deeploy.DeeployTypes import CodeGenVerbosity +from Deeploy.DeeployTypes import CodeTransformationPass +from Deeploy.DeeployTypes import ExecutionBlock +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate _dumpCycleCntTemplate = NodeTemplate(""" snrt_cluster_hw_barrier(); diff --git a/Deeploy/Targets/Snitch/DMA/SnitchDma.py b/Deeploy/Targets/Snitch/DMA/SnitchDma.py index ac0c622cc8..acda4ad3b2 100644 --- a/Deeploy/Targets/Snitch/DMA/SnitchDma.py +++ b/Deeploy/Targets/Snitch/DMA/SnitchDma.py @@ -4,8 +4,14 @@ from typing import Dict, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, VariableBuffer -from Deeploy.TilingExtension.AsyncDma import AsyncDma, DmaDirection, Future, PerTensorWaitingStrategy +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import VariableBuffer +from Deeploy.TilingExtension.AsyncDma import AsyncDma +from Deeploy.TilingExtension.AsyncDma import DmaDirection +from Deeploy.TilingExtension.AsyncDma import Future +from Deeploy.TilingExtension.AsyncDma import PerTensorWaitingStrategy class SnitchBarrierFuture(Future): diff --git a/Deeploy/Targets/Snitch/DataTypes.py b/Deeploy/Targets/Snitch/DataTypes.py index 16cd6e8cbe..d5ebe59240 100644 --- a/Deeploy/Targets/Snitch/DataTypes.py +++ b/Deeploy/Targets/Snitch/DataTypes.py @@ -2,7 +2,9 @@ # # SPDX-License-Identifier: Apache-2.0 -from Deeploy.AbstractDataTypes import PointerClass, Struct, VoidType +from Deeploy.AbstractDataTypes import PointerClass +from Deeploy.AbstractDataTypes import Struct +from Deeploy.AbstractDataTypes import VoidType from Deeploy.CommonExtensions.DataTypes import uint16_t diff --git a/Deeploy/Targets/Snitch/Deployer.py b/Deeploy/Targets/Snitch/Deployer.py index 7c3922a6bb..24891c44da 100644 --- a/Deeploy/Targets/Snitch/Deployer.py +++ b/Deeploy/Targets/Snitch/Deployer.py @@ -9,10 +9,17 @@ from Deeploy.AbstractDataTypes import Pointer from Deeploy.CommonExtensions.NetworkDeployers.SignPropDeployer import SignPropDeployer from Deeploy.CommonExtensions.OptimizationPasses.TopologyOptimizationPasses.LoweringOptimizationPasses import \ - NCHWtoNHWCPass, RemoveGlobalOutputReshapePass, TransposeMatmulInputsPass -from Deeploy.DeeployTypes import DeploymentPlatform, TopologyOptimizer -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import ReshapeConstOptPass, TransposeConstOptPass, \ - TransposeMergePass, TransposeSplitPass + NCHWtoNHWCPass +from Deeploy.CommonExtensions.OptimizationPasses.TopologyOptimizationPasses.LoweringOptimizationPasses import \ + RemoveGlobalOutputReshapePass +from Deeploy.CommonExtensions.OptimizationPasses.TopologyOptimizationPasses.LoweringOptimizationPasses import \ + TransposeMatmulInputsPass +from Deeploy.DeeployTypes import DeploymentPlatform +from Deeploy.DeeployTypes import TopologyOptimizer +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import ReshapeConstOptPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import TransposeConstOptPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import TransposeMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import TransposeSplitPass class SnitchDeployer(SignPropDeployer): diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 57af4c8a95..f9acc4eefa 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -7,8 +7,13 @@ import numpy as np import onnx_graphsurgeon as gs -from Deeploy.DeeployTypes import NetworkContext, NodeParser -from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeParser +from Deeploy.Targets.Generic.Parsers import AddParser +from Deeploy.Targets.Generic.Parsers import DivParser +from Deeploy.Targets.Generic.Parsers import GEMMParser +from Deeploy.Targets.Generic.Parsers import MulParser +from Deeploy.Targets.Generic.Parsers import RQGEMMParser class SnitchGEMMParser(GEMMParser): diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index 6dfc2f4afb..b0fbc6bf62 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -6,34 +6,104 @@ import numpy as np -from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType -from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ - StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicGatherBindings, BasicLayerNormBindings, \ - BasicMatMulBindings, BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding -from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ - LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ - SoftmaxLayer, TransposeLayer, iNoNormLayer -from Deeploy.Targets.Generic.Parsers import AddParser, ConcatParser, GatherParser, MatMulParser, Pad1DParser, Pad2DParser, \ - ReshapeParser, RQAddParser, RQIntegerDivParser, SoftmaxParser, TransposeParser, UnsqueezeParser, iLayerNormParser, \ - iNoNormParser, iSoftmaxParser +from Deeploy.AbstractDataTypes import Pointer +from Deeploy.AbstractDataTypes import PointerClass +from Deeploy.AbstractDataTypes import VoidType +from Deeploy.DeeployTypes import ConstantBuffer +from Deeploy.DeeployTypes import DeploymentEngine +from Deeploy.DeeployTypes import DeploymentPlatform +from Deeploy.DeeployTypes import NodeMapper +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import StructBuffer +from Deeploy.DeeployTypes import TopologyOptimizer +from Deeploy.DeeployTypes import TransientBuffer +from Deeploy.DeeployTypes import VariableBuffer +from Deeploy.Targets.Generic.Bindings import BasicConcatBindings +from Deeploy.Targets.Generic.Bindings import BasicGatherBindings +from Deeploy.Targets.Generic.Bindings import BasicLayerNormBindings +from Deeploy.Targets.Generic.Bindings import BasicMatMulBindings +from Deeploy.Targets.Generic.Bindings import BasicPad1DBindings +from Deeploy.Targets.Generic.Bindings import BasicPad2DBindings +from Deeploy.Targets.Generic.Bindings import BasicReshapeBindings +from Deeploy.Targets.Generic.Bindings import BasicRQIntegerDivBinding +from Deeploy.Targets.Generic.Layers import AddLayer +from Deeploy.Targets.Generic.Layers import ConcatLayer +from Deeploy.Targets.Generic.Layers import DivLayer +from Deeploy.Targets.Generic.Layers import GatherLayer +from Deeploy.Targets.Generic.Layers import GEMMLayer +from Deeploy.Targets.Generic.Layers import HardSwishLayer +from Deeploy.Targets.Generic.Layers import iNoNormLayer +from Deeploy.Targets.Generic.Layers import LayerNormLayer +from Deeploy.Targets.Generic.Layers import MatMulLayer +from Deeploy.Targets.Generic.Layers import MulLayer +from Deeploy.Targets.Generic.Layers import PadLayer +from Deeploy.Targets.Generic.Layers import ReshapeLayer +from Deeploy.Targets.Generic.Layers import RMSNormLayer +from Deeploy.Targets.Generic.Layers import RQGEMMLayer +from Deeploy.Targets.Generic.Layers import RQIntegerDivLayer +from Deeploy.Targets.Generic.Layers import SoftmaxLayer +from Deeploy.Targets.Generic.Layers import TransposeLayer +from Deeploy.Targets.Generic.Parsers import AddParser +from Deeploy.Targets.Generic.Parsers import ConcatParser +from Deeploy.Targets.Generic.Parsers import GatherParser +from Deeploy.Targets.Generic.Parsers import iLayerNormParser +from Deeploy.Targets.Generic.Parsers import iNoNormParser +from Deeploy.Targets.Generic.Parsers import iSoftmaxParser +from Deeploy.Targets.Generic.Parsers import MatMulParser +from Deeploy.Targets.Generic.Parsers import Pad1DParser +from Deeploy.Targets.Generic.Parsers import Pad2DParser +from Deeploy.Targets.Generic.Parsers import ReshapeParser +from Deeploy.Targets.Generic.Parsers import RQAddParser +from Deeploy.Targets.Generic.Parsers import RQIntegerDivParser +from Deeploy.Targets.Generic.Parsers import SoftmaxParser +from Deeploy.Targets.Generic.Parsers import TransposeParser +from Deeploy.Targets.Generic.Parsers import UnsqueezeParser from Deeploy.Targets.Generic.Templates import AllocateTemplate as BasicAllocateTemplate -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass, GEMMRequantMergePass, \ - IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ - SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import GEMMRequantMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import iGELURequantMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import iHardswishRequantMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import IntegerDivRequantMergePass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import MergeConstAddAndRequantPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import MergeTrueIntegerDivRequantShiftPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import RQSSplitPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import SkipEmptyConcatPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import SkipUnityRequantPass from Deeploy.Targets.PULPOpen.Platform import RQAddMapper -from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ - BasicRMSNormBindings, BasicSnitchTransposeBindings, SnitchAddBindings, SnitchGemmBindings, \ - SnitchiNoNormBindings, SnitchiSoftmaxBindings, SnitchRQAddBindings, SnitchRqGemmBindings -from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchDivParser, SnitchGEMMParser, SnitchMulParser, \ - SnitchRMSNormParser, SnitchRQGEMMParser -from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate -from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ - SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ - SnitchHardSwishTilingReadyBindings, SnitchiNoNormTilingReadyBindings, SnitchiSoftmaxTilingReadyBindings, \ - SnitchMatMulTilingReadyBindings, SnitchMulTilingReadyBindings, SnitchReshapeTilingReadyBindings, \ - SnitchRMSNormTilingReadyBindings, SnitchRQAddTilingReadyBindings, SnitchRqGemmTilingReadyBindings, \ - SnitchTransposeTilingReadyBindings +from Deeploy.Targets.Snitch.Bindings import BasicDivBindings +from Deeploy.Targets.Snitch.Bindings import BasicHardSwishBindings +from Deeploy.Targets.Snitch.Bindings import BasicMulBindings +from Deeploy.Targets.Snitch.Bindings import BasicRMSNormBindings +from Deeploy.Targets.Snitch.Bindings import BasicSnitchTransposeBindings +from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings +from Deeploy.Targets.Snitch.Bindings import SnitchGemmBindings +from Deeploy.Targets.Snitch.Bindings import SnitchiNoNormBindings +from Deeploy.Targets.Snitch.Bindings import SnitchiSoftmaxBindings +from Deeploy.Targets.Snitch.Bindings import SnitchRQAddBindings +from Deeploy.Targets.Snitch.Bindings import SnitchRqGemmBindings +from Deeploy.Targets.Snitch.Parsers import HardSwishParser +from Deeploy.Targets.Snitch.Parsers import SnitchDivParser +from Deeploy.Targets.Snitch.Parsers import SnitchGEMMParser +from Deeploy.Targets.Snitch.Parsers import SnitchMulParser +from Deeploy.Targets.Snitch.Parsers import SnitchRMSNormParser +from Deeploy.Targets.Snitch.Parsers import SnitchRQGEMMParser +from Deeploy.Targets.Snitch.Templates import AllocateTemplate +from Deeploy.Targets.Snitch.Templates import FreeTemplate +from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchConcatTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchDivTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchGatherTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchGemmTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchHardSwishTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchiNoNormTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchiSoftmaxTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchMatMulTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchMulTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchReshapeTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchRMSNormTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchRQAddTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchRqGemmTilingReadyBindings +from Deeploy.Targets.Snitch.Tiler import SnitchTransposeTilingReadyBindings # Mappers without tiling-ready equivalents Pad1DMapper = NodeMapper(Pad1DParser(), BasicPad1DBindings) diff --git a/Deeploy/Targets/Snitch/Templates/AddTemplate.py b/Deeploy/Targets/Snitch/Templates/AddTemplate.py index 428f087300..13df15dac2 100644 --- a/Deeploy/Targets/Snitch/Templates/AddTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/AddTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class _SnitchAddTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py index 5c5675c58f..1dbe5ef723 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py @@ -5,7 +5,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class _FloatAddTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py index c71cd0a507..af84efd704 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class FloatDivTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py index 1615282437..bfd99446f2 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py @@ -6,7 +6,9 @@ import numpy as np -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class FloatHardSwishTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py index 7a970e6411..7592bcafcf 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class FloatMulTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py index 629c1bb4f3..cb4b20e589 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py @@ -6,7 +6,9 @@ import numpy as np -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class FloatRMSNormTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py index a7bf0f61c7..d351d14ffc 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class FloatSoftmaxTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/GemmTemplate.py b/Deeploy/Targets/Snitch/Templates/GemmTemplate.py index d72b3c11f2..e028b34212 100644 --- a/Deeploy/Targets/Snitch/Templates/GemmTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/GemmTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class SnitchGemmTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py index bce916ea60..ed8149beb7 100644 --- a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class _MatMulTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py b/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py index f77b6d6127..745f2dc4d5 100644 --- a/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py @@ -4,7 +4,9 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation class SnitchRqGemmTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py index 9d2d3954ac..da19c61391 100644 --- a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py @@ -4,7 +4,10 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, _Template +from Deeploy.DeeployTypes import _Template +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import OperatorRepresentation # Two-stage header: <%text>${ escapes produce ${dimLen_N} template variables # that survive the first render and get resolved during the second render diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py index e2de98535d..1d0bd8c98a 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -8,12 +8,15 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import HyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class FloatDivTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py index e3c7f1f974..3c292ac257 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -8,12 +8,15 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import HyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class FloatMulTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py index e5d35c4a42..48ad6c71b4 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py @@ -6,12 +6,16 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint -from Deeploy.TilingExtension.TilerModel import PerformanceHint, TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme +from Deeploy.TilingExtension.TilerModel import PerformanceHint +from Deeploy.TilingExtension.TilerModel import TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import HyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class GemmTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py index 01a7e7e406..cff40063bb 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py @@ -8,12 +8,15 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import HyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class ReshapeTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py index 47bf7e29cc..aba5fa232b 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py @@ -6,12 +6,16 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint -from Deeploy.TilingExtension.TilerModel import PerformanceHint, TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme +from Deeploy.TilingExtension.TilerModel import PerformanceHint +from Deeploy.TilingExtension.TilerModel import TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import HyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class RqGemmTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py index 770b78902c..3819a767f0 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py @@ -8,11 +8,14 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, TilingSchedule, VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class iNoNormTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py index aa405bbcb6..5c00ee546a 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py @@ -9,11 +9,14 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext +from Deeploy.DeeployTypes import OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, TilingSchedule, VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle +from Deeploy.TilingExtension.TilingCodegen import TilingSchedule +from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme class iSoftmaxTileConstraint(TileConstraint): diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index 5a5f4d0bf4..064e8f805f 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -9,11 +9,23 @@ from Deeploy.Targets.Generic.TileConstraints.TransposeTileConstraint import TransposeTileConstraint from Deeploy.Targets.PULPOpen.TileConstraints.GatherTileConstraint import GatherTileConstraint from Deeploy.Targets.PULPOpen.TileConstraints.MatMulTileConstraint import MatMulTileConstraint -from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings, SnitchConcatBindings, SnitchDivBindings, \ - SnitchGatherBindings, SnitchGemmBindings, SnitchHardSwishBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ - SnitchMatMulBindings, SnitchMulBindings, SnitchReshapeBindings, SnitchRMSNormBindings, SnitchRQAddBindings, \ - SnitchRqGemmBindings, SnitchTransposeBindings -from Deeploy.Targets.Snitch.TileConstraints import iNoNormTileConstraint, iSoftmaxTileConstraint +from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings +from Deeploy.Targets.Snitch.Bindings import SnitchConcatBindings +from Deeploy.Targets.Snitch.Bindings import SnitchDivBindings +from Deeploy.Targets.Snitch.Bindings import SnitchGatherBindings +from Deeploy.Targets.Snitch.Bindings import SnitchGemmBindings +from Deeploy.Targets.Snitch.Bindings import SnitchHardSwishBindings +from Deeploy.Targets.Snitch.Bindings import SnitchiNoNormBindings +from Deeploy.Targets.Snitch.Bindings import SnitchiSoftmaxBindings +from Deeploy.Targets.Snitch.Bindings import SnitchMatMulBindings +from Deeploy.Targets.Snitch.Bindings import SnitchMulBindings +from Deeploy.Targets.Snitch.Bindings import SnitchReshapeBindings +from Deeploy.Targets.Snitch.Bindings import SnitchRMSNormBindings +from Deeploy.Targets.Snitch.Bindings import SnitchRQAddBindings +from Deeploy.Targets.Snitch.Bindings import SnitchRqGemmBindings +from Deeploy.Targets.Snitch.Bindings import SnitchTransposeBindings +from Deeploy.Targets.Snitch.TileConstraints import iNoNormTileConstraint +from Deeploy.Targets.Snitch.TileConstraints import iSoftmaxTileConstraint from Deeploy.Targets.Snitch.TileConstraints.FloatDivTileConstraint import FloatDivTileConstraint from Deeploy.Targets.Snitch.TileConstraints.FloatMulTileConstraint import FloatMulTileConstraint from Deeploy.Targets.Snitch.TileConstraints.GemmTileConstraint import GemmTileConstraint diff --git a/TargetLibraries/Snitch/inc/kernel/MatMul.h b/TargetLibraries/Snitch/inc/kernel/MatMul.h index d4b9ba71ca..497378429f 100644 --- a/TargetLibraries/Snitch/inc/kernel/MatMul.h +++ b/TargetLibraries/Snitch/inc/kernel/MatMul.h @@ -68,12 +68,10 @@ void MatMul_offset_unrolled_2x2_parallel_s8_rv32im( int32_t A_offset, int32_t B_offset, int32_t output_offset); // Mapper Functions -static inline void __attribute__((always_inline)) -MatMul_parallel_s8(int8_t const *__restrict__ pSrcA, - int8_t const *__restrict__ pSrcB, - int32_t *__restrict__ pDstC, uint32_t M, uint32_t N, - uint32_t P, int32_t A_offset, int32_t B_offset, - int32_t output_offset) { +static inline void __attribute__((always_inline)) MatMul_parallel_s8( + int8_t const *__restrict__ pSrcA, int8_t const *__restrict__ pSrcB, + int32_t *__restrict__ pDstC, uint32_t M, uint32_t N, uint32_t P, + int32_t A_offset, int32_t B_offset, int32_t output_offset) { MatMul_parallel_s8_rv32im(pSrcA, pSrcB, pDstC, M, N, P, A_offset, B_offset, output_offset); } diff --git a/TargetLibraries/Snitch/inc/kernel/RQMatMul.h b/TargetLibraries/Snitch/inc/kernel/RQMatMul.h index c58e25d516..a95f5df521 100644 --- a/TargetLibraries/Snitch/inc/kernel/RQMatMul.h +++ b/TargetLibraries/Snitch/inc/kernel/RQMatMul.h @@ -75,14 +75,12 @@ void RQMatMul_offset_unrolled_2x2_parallel_s8_rv32im( int32_t output_offset); // Mapper Functions -static inline void __attribute__((always_inline)) -RQMatMul_parallel_s8(int8_t const *__restrict__ pSrcA, - int8_t const *__restrict__ pSrcB, - int8_t *__restrict__ pDstC, uint32_t M, uint32_t N, - uint32_t P, int32_t *mul, int32_t *add, int32_t log2D, - bool rounding, bool per_row_quant, int32_t A_offset, - int32_t B_offset, int32_t output_offset, int8_t output_min, - int8_t output_max) { +static inline void __attribute__((always_inline)) RQMatMul_parallel_s8( + int8_t const *__restrict__ pSrcA, int8_t const *__restrict__ pSrcB, + int8_t *__restrict__ pDstC, uint32_t M, uint32_t N, uint32_t P, + int32_t *mul, int32_t *add, int32_t log2D, bool rounding, + bool per_row_quant, int32_t A_offset, int32_t B_offset, + int32_t output_offset, int8_t output_min, int8_t output_max) { RQMatMul_parallel_s8_rv32im(pSrcA, pSrcB, pDstC, M, N, P, mul, add, log2D, rounding, per_row_quant, A_offset, B_offset, output_offset, output_min, output_max); diff --git a/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c b/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c index b735e60704..03478b2048 100644 --- a/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c +++ b/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c @@ -6,13 +6,11 @@ #include "DeeploySnitchMath.h" -void __attribute__((noinline)) -snitch_nn_add_i8_i8_i8(int8_t *pIn1, int8_t *pIn2, int8_t *pOut, - int32_t in1_mul, int32_t in1_add, uint16_t in1_shift, - int32_t in2_mul, int32_t in2_add, uint16_t in2_shift, - int32_t out_mul, int32_t out_add, uint16_t out_shift, - uint16_t dim_im_in_x, uint16_t dim_im_in_y, - uint16_t ch_im_in, int out_requant_flag) { +void __attribute__((noinline)) snitch_nn_add_i8_i8_i8( + int8_t *pIn1, int8_t *pIn2, int8_t *pOut, int32_t in1_mul, int32_t in1_add, + uint16_t in1_shift, int32_t in2_mul, int32_t in2_add, uint16_t in2_shift, + int32_t out_mul, int32_t out_add, uint16_t out_shift, uint16_t dim_im_in_x, + uint16_t dim_im_in_y, uint16_t ch_im_in, int out_requant_flag) { int core_id = snrt_global_compute_core_idx(); int n_cores = snrt_global_compute_core_num(); From b2199cbf1990633b17eea1dec8e91d87ea55b841 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 5 Feb 2026 10:41:10 +0100 Subject: [PATCH 21/50] pytest: add microLlama model to Snitch test configurations - Add test_snitch_models and test_snitch_tiled_models_l2_singlebuffer test functions - Add microLlama to MODEL_TESTS in test_snitch_config.py - Add microLlama to L2_SINGLEBUFFER_MODELS in test_snitch_tiled_config.py --- DeeployTest/test_platforms.py | 599 +++++++++++++----------- DeeployTest/test_snitch_config.py | 4 +- DeeployTest/test_snitch_tiled_config.py | 4 +- 3 files changed, 331 insertions(+), 276 deletions(-) diff --git a/DeeployTest/test_platforms.py b/DeeployTest/test_platforms.py index 6d9f3cfcd7..4f28644298 100644 --- a/DeeployTest/test_platforms.py +++ b/DeeployTest/test_platforms.py @@ -39,6 +39,7 @@ from test_snitch_config import KERNEL_TESTS as SNITCH_KERNEL_TESTS from test_snitch_config import MODEL_TESTS as SNITCH_MODEL_TESTS from test_snitch_tiled_config import L2_SINGLEBUFFER_KERNELS as SNITCH_L2_SINGLEBUFFER_KERNELS +from test_snitch_tiled_config import L2_SINGLEBUFFER_MODELS as SNITCH_L2_SINGLEBUFFER_MODELS from test_softhier_config import DEFAULT_NUM_CLUSTERS as SOFTHIER_DEFAULT_NUM_CLUSTERS from test_softhier_config import KERNEL_TESTS as SOFTHIER_KERNEL_TESTS from test_softhier_config import MODEL_TESTS as SOFTHIER_MODEL_TESTS @@ -146,79 +147,79 @@ def param_id(param): @pytest.mark.generic @pytest.mark.kernels -@pytest.mark.parametrize("test_name", GENERIC_KERNEL_TESTS, ids = GENERIC_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", GENERIC_KERNEL_TESTS, ids=GENERIC_KERNEL_TESTS) def test_generic_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["generic"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.generic @pytest.mark.models -@pytest.mark.parametrize("test_name", GENERIC_MODEL_TESTS, ids = GENERIC_MODEL_TESTS) +@pytest.mark.parametrize("test_name", GENERIC_MODEL_TESTS, ids=GENERIC_MODEL_TESTS) def test_generic_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["generic"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.cortexm @pytest.mark.kernels -@pytest.mark.parametrize("test_name", CORTEXM_KERNEL_TESTS, ids = CORTEXM_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", CORTEXM_KERNEL_TESTS, ids=CORTEXM_KERNEL_TESTS) def test_cortexm_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["cortexm"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.cortexm @pytest.mark.models -@pytest.mark.parametrize("test_name", CORTEXM_MODEL_TESTS, ids = CORTEXM_MODEL_TESTS) +@pytest.mark.parametrize("test_name", CORTEXM_MODEL_TESTS, ids=CORTEXM_MODEL_TESTS) def test_cortexm_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["cortexm"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.mempool @pytest.mark.kernels -@pytest.mark.parametrize("test_name", MEMPOOL_KERNEL_TESTS, ids = MEMPOOL_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", MEMPOOL_KERNEL_TESTS, ids=MEMPOOL_KERNEL_TESTS) def test_mempool_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["mempool"] @@ -226,21 +227,21 @@ def test_mempool_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, mempool_cmake_args = cmake_args + [f"num_threads={platform_config['default_num_threads']}"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = mempool_cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=mempool_cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.mempool @pytest.mark.models -@pytest.mark.parametrize("test_name", MEMPOOL_MODEL_TESTS, ids = MEMPOOL_MODEL_TESTS) +@pytest.mark.parametrize("test_name", MEMPOOL_MODEL_TESTS, ids=MEMPOOL_MODEL_TESTS) def test_mempool_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["mempool"] @@ -248,54 +249,54 @@ def test_mempool_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, c mempool_cmake_args = cmake_args + [f"num_threads={platform_config['default_num_threads']}"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = mempool_cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=mempool_cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.siracusa @pytest.mark.kernels -@pytest.mark.parametrize("test_name", SIRACUSA_KERNEL_TESTS, ids = SIRACUSA_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", SIRACUSA_KERNEL_TESTS, ids=SIRACUSA_KERNEL_TESTS) def test_siracusa_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim, profile_untiled) -> None: config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, - cores = SIRACUSA_DEFAULT_CORES, - profile_untiled = profile_untiled, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, + cores=SIRACUSA_DEFAULT_CORES, + profile_untiled=profile_untiled, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.siracusa @pytest.mark.models -@pytest.mark.parametrize("test_name", SIRACUSA_MODEL_TESTS, ids = SIRACUSA_MODEL_TESTS) +@pytest.mark.parametrize("test_name", SIRACUSA_MODEL_TESTS, ids=SIRACUSA_MODEL_TESTS) def test_siracusa_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim, profile_untiled) -> None: config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, - cores = SIRACUSA_DEFAULT_CORES, - profile_untiled = profile_untiled, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, + cores=SIRACUSA_DEFAULT_CORES, + profile_untiled=profile_untiled, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -307,24 +308,24 @@ def test_siracusa_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, @pytest.mark.parametrize( "test_params", generate_test_params(L2_SINGLEBUFFER_KERNELS, "L2-singlebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = SIRACUSA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = False, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=SIRACUSA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -336,24 +337,24 @@ def test_siracusa_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, t @pytest.mark.parametrize( "test_params", generate_test_params(L2_DOUBLEBUFFER_KERNELS, "L2-doublebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_tiled_kernels_l2_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = SIRACUSA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = True, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=SIRACUSA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -365,24 +366,24 @@ def test_siracusa_tiled_kernels_l2_doublebuffer(test_params, deeploy_test_dir, t @pytest.mark.parametrize( "test_params", generate_test_params(L2_SINGLEBUFFER_MODELS, "L2-singlebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = SIRACUSA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = False, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=SIRACUSA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -394,24 +395,24 @@ def test_siracusa_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, to @pytest.mark.parametrize( "test_params", generate_test_params(L2_DOUBLEBUFFER_MODELS, "L2-doublebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_tiled_models_l2_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = SIRACUSA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = True, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=SIRACUSA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -423,24 +424,24 @@ def test_siracusa_tiled_models_l2_doublebuffer(test_params, deeploy_test_dir, to @pytest.mark.parametrize( "test_params", generate_test_params(L3_SINGLEBUFFER_MODELS, "L3-singlebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_tiled_models_l3_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = SIRACUSA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L3", - double_buffer = False, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=SIRACUSA_DEFAULT_CORES, + l1=l1, + default_mem_level="L3", + double_buffer=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -452,49 +453,49 @@ def test_siracusa_tiled_models_l3_singlebuffer(test_params, deeploy_test_dir, to @pytest.mark.parametrize( "test_params", generate_test_params(L3_DOUBLEBUFFER_MODELS, "L3-doublebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_tiled_models_l3_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = SIRACUSA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L3", - double_buffer = True, + test_name=test_name, + platform="Siracusa", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=SIRACUSA_DEFAULT_CORES, + l1=l1, + default_mem_level="L3", + double_buffer=True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.chimera @pytest.mark.kernels -@pytest.mark.parametrize("test_name", CHIMERA_KERNEL_TESTS, ids = CHIMERA_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", CHIMERA_KERNEL_TESTS, ids=CHIMERA_KERNEL_TESTS) def test_chimera_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["chimera"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.softhier @pytest.mark.kernels -@pytest.mark.parametrize("test_name", SOFTHIER_KERNEL_TESTS, ids = SOFTHIER_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", SOFTHIER_KERNEL_TESTS, ids=SOFTHIER_KERNEL_TESTS) def test_softhier_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["softhier"] @@ -502,21 +503,21 @@ def test_softhier_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, softhier_cmake_args = cmake_args + [f"num_clusters={platform_config['default_num_clusters']}"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = softhier_cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=softhier_cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.snitch @pytest.mark.kernels -@pytest.mark.parametrize("test_name", SNITCH_KERNEL_TESTS, ids = SNITCH_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", SNITCH_KERNEL_TESTS, ids=SNITCH_KERNEL_TESTS) def test_snitch_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["snitch"] @@ -524,14 +525,33 @@ def test_snitch_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, c snitch_cmake_args = cmake_args + [f"NUM_CORES={platform_config['default_num_cores']}"] config = create_test_config( - test_name = test_name, - platform = platform_config["platform"], - simulator = platform_config["simulator"], - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = snitch_cmake_args, - tiling = False, + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=snitch_cmake_args, + tiling=False, + ) + run_and_assert_test(test_name, config, skipgen, skipsim) + + +@pytest.mark.snitch +@pytest.mark.models +@pytest.mark.parametrize("test_name", SNITCH_MODEL_TESTS, ids=SNITCH_MODEL_TESTS) +def test_snitch_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: + platform_config = PLATFORM_CONFIGS["snitch"] + snitch_cmake_args = cmake_args + [f"NUM_CORES={platform_config['default_num_cores']}"] + config = create_test_config( + test_name=test_name, + platform=platform_config["platform"], + simulator=platform_config["simulator"], + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=snitch_cmake_args, + tiling=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -543,7 +563,7 @@ def test_snitch_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, c @pytest.mark.parametrize( "test_params", generate_test_params(SNITCH_L2_SINGLEBUFFER_KERNELS, "L2-singlebuffer"), - ids = param_id, + ids=param_id, ) def test_snitch_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: @@ -553,18 +573,49 @@ def test_snitch_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, too snitch_cmake_args = cmake_args + [f"NUM_CORES={SNITCH_DEFAULT_NUM_CORES}"] config = create_test_config( - test_name = test_name, - platform = "Snitch", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = snitch_cmake_args, - tiling = True, - cores = SNITCH_DEFAULT_NUM_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = False, + test_name=test_name, + platform="Snitch", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=snitch_cmake_args, + tiling=True, + cores=SNITCH_DEFAULT_NUM_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=False, + ) + run_and_assert_test(test_name, config, skipgen, skipsim) + + +@pytest.mark.snitch_tiled +@pytest.mark.models +@pytest.mark.singlebuffer +@pytest.mark.l2 +@pytest.mark.parametrize( + "test_params", + generate_test_params(SNITCH_L2_SINGLEBUFFER_MODELS, "L2-singlebuffer"), + ids=param_id, +) +def test_snitch_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, + skipgen, skipsim) -> None: + test_name, l1, config_name = test_params + snitch_cmake_args = cmake_args + [f"NUM_CORES={SNITCH_DEFAULT_NUM_CORES}"] + config = create_test_config( + test_name=test_name, + platform="Snitch", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=snitch_cmake_args, + tiling=True, + cores=SNITCH_DEFAULT_NUM_CORES, + l1=l1, + l2=4000000, + default_mem_level="L2", + double_buffer=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -576,24 +627,24 @@ def test_snitch_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, too @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L2_SINGLEBUFFER_KERNELS, "L2-singlebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_neureka_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa_w_neureka", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = NEUREKA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = False, + test_name=test_name, + platform="Siracusa_w_neureka", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=NEUREKA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -605,24 +656,24 @@ def test_siracusa_neureka_tiled_kernels_l2_singlebuffer(test_params, deeploy_tes @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L2_DOUBLEBUFFER_KERNELS, "L2-doublebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_neureka_tiled_kernels_l2_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa_w_neureka", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = NEUREKA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = True, + test_name=test_name, + platform="Siracusa_w_neureka", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=NEUREKA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -634,24 +685,24 @@ def test_siracusa_neureka_tiled_kernels_l2_doublebuffer(test_params, deeploy_tes @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L3_SINGLEBUFFER_MODELS, "L3-singlebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_neureka_tiled_models_l3_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa_w_neureka", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = NEUREKA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L3", - double_buffer = False, + test_name=test_name, + platform="Siracusa_w_neureka", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=NEUREKA_DEFAULT_CORES, + l1=l1, + default_mem_level="L3", + double_buffer=False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -663,24 +714,24 @@ def test_siracusa_neureka_tiled_models_l3_singlebuffer(test_params, deeploy_test @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L3_DOUBLEBUFFER_MODELS, "L3-doublebuffer"), - ids = param_id, + ids=param_id, ) def test_siracusa_neureka_tiled_models_l3_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa_w_neureka", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = NEUREKA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L3", - double_buffer = True, + test_name=test_name, + platform="Siracusa_w_neureka", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=NEUREKA_DEFAULT_CORES, + l1=l1, + default_mem_level="L3", + double_buffer=True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -693,25 +744,25 @@ def test_siracusa_neureka_tiled_models_l3_doublebuffer(test_params, deeploy_test @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L2_SINGLEBUFFER_KERNELS_WMEM, "L2-singlebuffer-wmem"), - ids = param_id, + ids=param_id, ) def test_siracusa_neureka_tiled_kernels_l2_singlebuffer_wmem(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa_w_neureka", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = NEUREKA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L2", - double_buffer = False, - gen_args = ["--neureka-wmem"], + test_name=test_name, + platform="Siracusa_w_neureka", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=NEUREKA_DEFAULT_CORES, + l1=l1, + default_mem_level="L2", + double_buffer=False, + gen_args=["--neureka-wmem"], ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -724,25 +775,25 @@ def test_siracusa_neureka_tiled_kernels_l2_singlebuffer_wmem(test_params, deeplo @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L3_DOUBLEBUFFER_MODELS_WMEM, "L3-doublebuffer-wmem"), - ids = param_id, + ids=param_id, ) def test_siracusa_neureka_tiled_models_l3_doublebuffer_wmem(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name = test_name, - platform = "Siracusa_w_neureka", - simulator = "gvsoc", - deeploy_test_dir = deeploy_test_dir, - toolchain = toolchain, - toolchain_dir = toolchain_dir, - cmake_args = cmake_args, - tiling = True, - cores = NEUREKA_DEFAULT_CORES, - l1 = l1, - default_mem_level = "L3", - double_buffer = True, - gen_args = ["--neureka-wmem"], + test_name=test_name, + platform="Siracusa_w_neureka", + simulator="gvsoc", + deeploy_test_dir=deeploy_test_dir, + toolchain=toolchain, + toolchain_dir=toolchain_dir, + cmake_args=cmake_args, + tiling=True, + cores=NEUREKA_DEFAULT_CORES, + l1=l1, + default_mem_level="L3", + double_buffer=True, + gen_args=["--neureka-wmem"], ) run_and_assert_test(test_name, config, skipgen, skipsim) diff --git a/DeeployTest/test_snitch_config.py b/DeeployTest/test_snitch_config.py index f51b2ede23..8d49d2e3e6 100644 --- a/DeeployTest/test_snitch_config.py +++ b/DeeployTest/test_snitch_config.py @@ -21,4 +21,6 @@ "Kernels/Integer/GEMM/TransB_RQ", ] -MODEL_TESTS = [] +MODEL_TESTS = [ + "Models/microLlama/microLlama_fp32_1", +] diff --git a/DeeployTest/test_snitch_tiled_config.py b/DeeployTest/test_snitch_tiled_config.py index 3f81239fce..cb44d84ea7 100644 --- a/DeeployTest/test_snitch_tiled_config.py +++ b/DeeployTest/test_snitch_tiled_config.py @@ -21,7 +21,9 @@ "Kernels/Integer/GEMM/Regular_RQPerRow": [2000, 5000], } -L2_SINGLEBUFFER_MODELS = {} +L2_SINGLEBUFFER_MODELS = { + "Models/microLlama/microLlama_fp32_1": [10000, 20000], +} # Currently no double-buffer configurations in CI L2_DOUBLEBUFFER_KERNELS = {} From 7ad03a336a026798cc4117e096348f686e83aa36 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 5 Feb 2026 10:44:36 +0100 Subject: [PATCH 22/50] style: consolidate imports in Snitch platform --- Deeploy/Targets/Snitch/Bindings.py | 67 +++----- .../SnitchClusterSynch.py | 8 +- .../SnitchCoreFilter.py | 8 +- .../SnitchProfileExecutionBlock.py | 8 +- Deeploy/Targets/Snitch/DMA/SnitchDma.py | 12 +- Deeploy/Targets/Snitch/DataTypes.py | 4 +- Deeploy/Targets/Snitch/Deployer.py | 25 ++- Deeploy/Targets/Snitch/Parsers.py | 9 +- Deeploy/Targets/Snitch/Platform.py | 144 +++++------------- .../Targets/Snitch/Templates/AddTemplate.py | 4 +- .../Snitch/Templates/FloatAddTemplate.py | 4 +- .../Snitch/Templates/FloatDivTemplate.py | 4 +- .../Templates/FloatHardSwishTemplate.py | 4 +- .../Snitch/Templates/FloatMulTemplate.py | 4 +- .../Snitch/Templates/FloatRMSNormTemplate.py | 4 +- .../Snitch/Templates/FloatSoftmaxTemplate.py | 4 +- .../Targets/Snitch/Templates/GemmTemplate.py | 4 +- .../Snitch/Templates/MatMulTemplate.py | 4 +- .../Snitch/Templates/RqGemmTemplate.py | 4 +- .../Snitch/Templates/TransposeTemplate.py | 5 +- .../TileConstraints/FloatDivTileConstraint.py | 21 ++- .../TileConstraints/FloatMulTileConstraint.py | 21 ++- .../TileConstraints/GemmTileConstraint.py | 50 +++--- .../TileConstraints/ReshapeTileConstraint.py | 11 +- .../TileConstraints/RqGemmTileConstraint.py | 62 ++++---- .../TileConstraints/iNoNormTileConstraint.py | 18 +-- .../TileConstraints/iSoftmaxTileConstraint.py | 13 +- Deeploy/Targets/Snitch/Tiler.py | 81 +++++----- 28 files changed, 210 insertions(+), 397 deletions(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 57f50ac47e..7b77a9adea 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -5,46 +5,21 @@ from functools import partial from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import ClosureGeneration -from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import MemoryAwareClosureGeneration -from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import ArgumentStructGeneration -from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import MemoryManagementGeneration -from Deeploy.CommonExtensions.DataTypes import float32_t -from Deeploy.CommonExtensions.DataTypes import int8_t -from Deeploy.CommonExtensions.DataTypes import int32_t -from Deeploy.CommonExtensions.DataTypes import uint8_t -from Deeploy.DeeployTypes import CodeTransformation -from Deeploy.DeeployTypes import NodeBinding +from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import ClosureGeneration, MemoryAwareClosureGeneration +from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import ArgumentStructGeneration, \ + MemoryManagementGeneration +from Deeploy.CommonExtensions.DataTypes import float32_t, int8_t, int32_t, uint8_t +from Deeploy.DeeployTypes import CodeTransformation, NodeBinding from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration -from Deeploy.Targets.Generic.Templates import ConcatTemplate -from Deeploy.Targets.Generic.Templates import iNoNormTemplate -from Deeploy.Targets.Generic.TypeCheckers import AddChecker -from Deeploy.Targets.Generic.TypeCheckers import ConcatChecker -from Deeploy.Targets.Generic.TypeCheckers import DivChecker -from Deeploy.Targets.Generic.TypeCheckers import GatherChecker -from Deeploy.Targets.Generic.TypeCheckers import GEMMChecker -from Deeploy.Targets.Generic.TypeCheckers import HardSwishChecker -from Deeploy.Targets.Generic.TypeCheckers import iNoNormChecker -from Deeploy.Targets.Generic.TypeCheckers import MatMulChecker -from Deeploy.Targets.Generic.TypeCheckers import MulChecker -from Deeploy.Targets.Generic.TypeCheckers import ReshapeChecker -from Deeploy.Targets.Generic.TypeCheckers import RMSNormChecker -from Deeploy.Targets.Generic.TypeCheckers import RQAddChecker -from Deeploy.Targets.Generic.TypeCheckers import SoftmaxChecker -from Deeploy.Targets.Generic.TypeCheckers import TransposeChecker -from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling -from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchCoreFilterPass -from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchSynchCoresPass +from Deeploy.Targets.Generic.Templates import ConcatTemplate, iNoNormTemplate +from Deeploy.Targets.Generic.TypeCheckers import AddChecker, ConcatChecker, DivChecker, GatherChecker, GEMMChecker, \ + HardSwishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ + TransposeChecker, iNoNormChecker +from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ + SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma -from Deeploy.Targets.Snitch.Templates import AddTemplate -from Deeploy.Targets.Snitch.Templates import FloatGemmTemplate -from Deeploy.Targets.Snitch.Templates import FloatMatMulTemplate -from Deeploy.Targets.Snitch.Templates import GatherTemplate -from Deeploy.Targets.Snitch.Templates import iSoftmaxTemplate -from Deeploy.Targets.Snitch.Templates import MatMulTemplate -from Deeploy.Targets.Snitch.Templates import ReshapeTemplate -from Deeploy.Targets.Snitch.Templates import RQAddTemplate -from Deeploy.Targets.Snitch.Templates import TransposeTemplate +from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ + MatMulTemplate, ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate from Deeploy.Targets.Snitch.Templates.FloatHardSwishTemplate import referenceTemplate as FloatHardSwishTemplate @@ -53,14 +28,14 @@ from Deeploy.Targets.Snitch.Templates.FloatSoftmaxTemplate import FloatSoftmax_Template from Deeploy.Targets.Snitch.Templates.GemmTemplate import SnitchGemm_Template from Deeploy.Targets.Snitch.Templates.RqGemmTemplate import SnitchRqGemm_Template -from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacement -from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacementUpdate +from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacement, \ + TilingVariableReplacementUpdate -TilingCallClosure = partial(ClosureGeneration, closureSuffix = "_tiling_closure") +TilingCallClosure = partial(ClosureGeneration, closureSuffix="_tiling_closure") MemoryAwareFunctionCallClosure = partial(MemoryAwareClosureGeneration, - closureSuffix = "_closure", - startRegion = "L2", - endRegion = "L1") + closureSuffix="_closure", + startRegion="L2", + endRegion="L1") BasicTransformer = CodeTransformation( [SnitchSynchCoresPass(), @@ -71,13 +46,13 @@ TiledTransformer = CodeTransformation([ SnitchCoreFilterPass("compute"), TilingVariableReplacement("L1"), - TilingCallClosure(writeback = False), + TilingCallClosure(writeback=False), SnitchSynchCoresPass(), TilingVariableReplacementUpdate("L1"), SnitchClusterTiling("L2", "L1", SnitchDma()), ArgumentStructGeneration(), MemoryManagementGeneration("L1"), - MemoryAwareFunctionCallClosure(writeback = False, generateStruct = True), + MemoryAwareFunctionCallClosure(writeback=False, generateStruct=True), MemoryManagementGeneration("L2"), MemoryManagementGeneration() ]) diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py index 70abe0b99f..cc0af164ad 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterSynch.py @@ -4,12 +4,8 @@ from typing import Tuple -from Deeploy.DeeployTypes import _NoVerbosity -from Deeploy.DeeployTypes import CodeGenVerbosity -from Deeploy.DeeployTypes import CodeTransformationPass -from Deeploy.DeeployTypes import ExecutionBlock -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import CodeGenVerbosity, CodeTransformationPass, ExecutionBlock, NetworkContext, \ + NodeTemplate, _NoVerbosity _synchTemplate = NodeTemplate(""" snrt_cluster_hw_barrier(); diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py index c900e128be..a864c5db8f 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchCoreFilter.py @@ -4,12 +4,8 @@ from typing import Literal, Tuple -from Deeploy.DeeployTypes import _NoVerbosity -from Deeploy.DeeployTypes import CodeGenVerbosity -from Deeploy.DeeployTypes import CodeTransformationPass -from Deeploy.DeeployTypes import ExecutionBlock -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import CodeGenVerbosity, CodeTransformationPass, ExecutionBlock, NetworkContext, \ + NodeTemplate, _NoVerbosity class SnitchCoreFilterPass(CodeTransformationPass): diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py index 8186dcf8ae..ec17b36011 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchProfileExecutionBlock.py @@ -4,12 +4,8 @@ from typing import Tuple -from Deeploy.DeeployTypes import _NoVerbosity -from Deeploy.DeeployTypes import CodeGenVerbosity -from Deeploy.DeeployTypes import CodeTransformationPass -from Deeploy.DeeployTypes import ExecutionBlock -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate +from Deeploy.DeeployTypes import CodeGenVerbosity, CodeTransformationPass, ExecutionBlock, NetworkContext, \ + NodeTemplate, _NoVerbosity _dumpCycleCntTemplate = NodeTemplate(""" snrt_cluster_hw_barrier(); diff --git a/Deeploy/Targets/Snitch/DMA/SnitchDma.py b/Deeploy/Targets/Snitch/DMA/SnitchDma.py index acda4ad3b2..70381aa72f 100644 --- a/Deeploy/Targets/Snitch/DMA/SnitchDma.py +++ b/Deeploy/Targets/Snitch/DMA/SnitchDma.py @@ -4,14 +4,8 @@ from typing import Dict, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation -from Deeploy.DeeployTypes import VariableBuffer -from Deeploy.TilingExtension.AsyncDma import AsyncDma -from Deeploy.TilingExtension.AsyncDma import DmaDirection -from Deeploy.TilingExtension.AsyncDma import Future -from Deeploy.TilingExtension.AsyncDma import PerTensorWaitingStrategy +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, VariableBuffer +from Deeploy.TilingExtension.AsyncDma import AsyncDma, DmaDirection, Future, PerTensorWaitingStrategy class SnitchBarrierFuture(Future): @@ -37,7 +31,7 @@ class SnitchDma(AsyncDma): _transferTemplates = { 2: - NodeTemplate(""" + NodeTemplate(""" if (snrt_is_dm_core()) { ${future} = snrt_dma_start_2d(${dest}, ${src}, ${size}, ${stride_dest}, ${stride_src}, ${repeat}); // WIESEP: Hack as otherwise the last commited DMA transaction ID can never be resolved. diff --git a/Deeploy/Targets/Snitch/DataTypes.py b/Deeploy/Targets/Snitch/DataTypes.py index d5ebe59240..16cd6e8cbe 100644 --- a/Deeploy/Targets/Snitch/DataTypes.py +++ b/Deeploy/Targets/Snitch/DataTypes.py @@ -2,9 +2,7 @@ # # SPDX-License-Identifier: Apache-2.0 -from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.AbstractDataTypes import Struct -from Deeploy.AbstractDataTypes import VoidType +from Deeploy.AbstractDataTypes import PointerClass, Struct, VoidType from Deeploy.CommonExtensions.DataTypes import uint16_t diff --git a/Deeploy/Targets/Snitch/Deployer.py b/Deeploy/Targets/Snitch/Deployer.py index 24891c44da..6b325cebe1 100644 --- a/Deeploy/Targets/Snitch/Deployer.py +++ b/Deeploy/Targets/Snitch/Deployer.py @@ -9,17 +9,10 @@ from Deeploy.AbstractDataTypes import Pointer from Deeploy.CommonExtensions.NetworkDeployers.SignPropDeployer import SignPropDeployer from Deeploy.CommonExtensions.OptimizationPasses.TopologyOptimizationPasses.LoweringOptimizationPasses import \ - NCHWtoNHWCPass -from Deeploy.CommonExtensions.OptimizationPasses.TopologyOptimizationPasses.LoweringOptimizationPasses import \ - RemoveGlobalOutputReshapePass -from Deeploy.CommonExtensions.OptimizationPasses.TopologyOptimizationPasses.LoweringOptimizationPasses import \ - TransposeMatmulInputsPass -from Deeploy.DeeployTypes import DeploymentPlatform -from Deeploy.DeeployTypes import TopologyOptimizer -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import ReshapeConstOptPass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import TransposeConstOptPass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import TransposeMergePass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import TransposeSplitPass + NCHWtoNHWCPass, RemoveGlobalOutputReshapePass, TransposeMatmulInputsPass +from Deeploy.DeeployTypes import DeploymentPlatform, TopologyOptimizer +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import ReshapeConstOptPass, TransposeConstOptPass, \ + TransposeMergePass, TransposeSplitPass class SnitchDeployer(SignPropDeployer): @@ -31,18 +24,18 @@ def __init__(self, loweringOptimizer: TopologyOptimizer, scheduler: Callable = lambda x: x, name: str = 'DeeployNetwork', - default_channels_first = False, + default_channels_first=False, deeployStateDir: str = "DeeployStateDir", - inputOffsets = {}): + inputOffsets={}): super().__init__(graph, deploymentPlatform, inputTypes, loweringOptimizer, scheduler, name, - default_channels_first = default_channels_first, - deeployStateDir = deeployStateDir, - inputOffsets = inputOffsets) + default_channels_first=default_channels_first, + deeployStateDir=deeployStateDir, + inputOffsets=inputOffsets) self.loweringOptimizer.passes += [ TransposeMatmulInputsPass(), diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index f9acc4eefa..57af4c8a95 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -7,13 +7,8 @@ import numpy as np import onnx_graphsurgeon as gs -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeParser -from Deeploy.Targets.Generic.Parsers import AddParser -from Deeploy.Targets.Generic.Parsers import DivParser -from Deeploy.Targets.Generic.Parsers import GEMMParser -from Deeploy.Targets.Generic.Parsers import MulParser -from Deeploy.Targets.Generic.Parsers import RQGEMMParser +from Deeploy.DeeployTypes import NetworkContext, NodeParser +from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser class SnitchGEMMParser(GEMMParser): diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index b0fbc6bf62..a056f72156 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -6,104 +6,34 @@ import numpy as np -from Deeploy.AbstractDataTypes import Pointer -from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.AbstractDataTypes import VoidType -from Deeploy.DeeployTypes import ConstantBuffer -from Deeploy.DeeployTypes import DeploymentEngine -from Deeploy.DeeployTypes import DeploymentPlatform -from Deeploy.DeeployTypes import NodeMapper -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import StructBuffer -from Deeploy.DeeployTypes import TopologyOptimizer -from Deeploy.DeeployTypes import TransientBuffer -from Deeploy.DeeployTypes import VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicConcatBindings -from Deeploy.Targets.Generic.Bindings import BasicGatherBindings -from Deeploy.Targets.Generic.Bindings import BasicLayerNormBindings -from Deeploy.Targets.Generic.Bindings import BasicMatMulBindings -from Deeploy.Targets.Generic.Bindings import BasicPad1DBindings -from Deeploy.Targets.Generic.Bindings import BasicPad2DBindings -from Deeploy.Targets.Generic.Bindings import BasicReshapeBindings -from Deeploy.Targets.Generic.Bindings import BasicRQIntegerDivBinding -from Deeploy.Targets.Generic.Layers import AddLayer -from Deeploy.Targets.Generic.Layers import ConcatLayer -from Deeploy.Targets.Generic.Layers import DivLayer -from Deeploy.Targets.Generic.Layers import GatherLayer -from Deeploy.Targets.Generic.Layers import GEMMLayer -from Deeploy.Targets.Generic.Layers import HardSwishLayer -from Deeploy.Targets.Generic.Layers import iNoNormLayer -from Deeploy.Targets.Generic.Layers import LayerNormLayer -from Deeploy.Targets.Generic.Layers import MatMulLayer -from Deeploy.Targets.Generic.Layers import MulLayer -from Deeploy.Targets.Generic.Layers import PadLayer -from Deeploy.Targets.Generic.Layers import ReshapeLayer -from Deeploy.Targets.Generic.Layers import RMSNormLayer -from Deeploy.Targets.Generic.Layers import RQGEMMLayer -from Deeploy.Targets.Generic.Layers import RQIntegerDivLayer -from Deeploy.Targets.Generic.Layers import SoftmaxLayer -from Deeploy.Targets.Generic.Layers import TransposeLayer -from Deeploy.Targets.Generic.Parsers import AddParser -from Deeploy.Targets.Generic.Parsers import ConcatParser -from Deeploy.Targets.Generic.Parsers import GatherParser -from Deeploy.Targets.Generic.Parsers import iLayerNormParser -from Deeploy.Targets.Generic.Parsers import iNoNormParser -from Deeploy.Targets.Generic.Parsers import iSoftmaxParser -from Deeploy.Targets.Generic.Parsers import MatMulParser -from Deeploy.Targets.Generic.Parsers import Pad1DParser -from Deeploy.Targets.Generic.Parsers import Pad2DParser -from Deeploy.Targets.Generic.Parsers import ReshapeParser -from Deeploy.Targets.Generic.Parsers import RQAddParser -from Deeploy.Targets.Generic.Parsers import RQIntegerDivParser -from Deeploy.Targets.Generic.Parsers import SoftmaxParser -from Deeploy.Targets.Generic.Parsers import TransposeParser -from Deeploy.Targets.Generic.Parsers import UnsqueezeParser +from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType +from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ + StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer +from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicGatherBindings, BasicLayerNormBindings, \ + BasicMatMulBindings, BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding +from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ + LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ + SoftmaxLayer, TransposeLayer, iNoNormLayer +from Deeploy.Targets.Generic.Parsers import AddParser, ConcatParser, GatherParser, MatMulParser, Pad1DParser, \ + Pad2DParser, ReshapeParser, RQAddParser, RQIntegerDivParser, SoftmaxParser, TransposeParser, UnsqueezeParser, \ + iLayerNormParser, iNoNormParser, iSoftmaxParser from Deeploy.Targets.Generic.Templates import AllocateTemplate as BasicAllocateTemplate -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import GEMMRequantMergePass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import iGELURequantMergePass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import iHardswishRequantMergePass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import IntegerDivRequantMergePass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import MergeConstAddAndRequantPass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import MergeTrueIntegerDivRequantShiftPass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import RQSSplitPass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import SkipEmptyConcatPass -from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import SkipUnityRequantPass +from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass, GEMMRequantMergePass, \ + IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ + SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass from Deeploy.Targets.PULPOpen.Platform import RQAddMapper -from Deeploy.Targets.Snitch.Bindings import BasicDivBindings -from Deeploy.Targets.Snitch.Bindings import BasicHardSwishBindings -from Deeploy.Targets.Snitch.Bindings import BasicMulBindings -from Deeploy.Targets.Snitch.Bindings import BasicRMSNormBindings -from Deeploy.Targets.Snitch.Bindings import BasicSnitchTransposeBindings -from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings -from Deeploy.Targets.Snitch.Bindings import SnitchGemmBindings -from Deeploy.Targets.Snitch.Bindings import SnitchiNoNormBindings -from Deeploy.Targets.Snitch.Bindings import SnitchiSoftmaxBindings -from Deeploy.Targets.Snitch.Bindings import SnitchRQAddBindings -from Deeploy.Targets.Snitch.Bindings import SnitchRqGemmBindings -from Deeploy.Targets.Snitch.Parsers import HardSwishParser -from Deeploy.Targets.Snitch.Parsers import SnitchDivParser -from Deeploy.Targets.Snitch.Parsers import SnitchGEMMParser -from Deeploy.Targets.Snitch.Parsers import SnitchMulParser -from Deeploy.Targets.Snitch.Parsers import SnitchRMSNormParser -from Deeploy.Targets.Snitch.Parsers import SnitchRQGEMMParser -from Deeploy.Targets.Snitch.Templates import AllocateTemplate -from Deeploy.Targets.Snitch.Templates import FreeTemplate -from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchConcatTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchDivTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchGatherTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchGemmTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchHardSwishTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchiNoNormTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchiSoftmaxTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchMatMulTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchMulTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchReshapeTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchRMSNormTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchRQAddTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchRqGemmTilingReadyBindings -from Deeploy.Targets.Snitch.Tiler import SnitchTransposeTilingReadyBindings +from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ + BasicRMSNormBindings, BasicSnitchTransposeBindings, SnitchAddBindings, SnitchGemmBindings, SnitchiNoNormBindings, \ + SnitchiSoftmaxBindings, SnitchRQAddBindings, SnitchRqGemmBindings +from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchDivParser, SnitchGEMMParser, SnitchMulParser, \ + SnitchRMSNormParser, SnitchRQGEMMParser +from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate +from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ + SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ + SnitchHardSwishTilingReadyBindings, SnitchiNoNormTilingReadyBindings, SnitchiSoftmaxTilingReadyBindings, \ + SnitchMatMulTilingReadyBindings, SnitchMulTilingReadyBindings, SnitchReshapeTilingReadyBindings, \ + SnitchRMSNormTilingReadyBindings, SnitchRQAddTilingReadyBindings, SnitchRqGemmTilingReadyBindings, \ + SnitchTransposeTilingReadyBindings # Mappers without tiling-ready equivalents Pad1DMapper = NodeMapper(Pad1DParser(), BasicPad1DBindings) @@ -205,7 +135,7 @@ class SnitchConstantBuffer(ConstantBuffer): allocTemplate = AllocateTemplate.snitchL2GlobalAllocateTemplate deallocTemplate = FreeTemplate.snitchL2GlobalTemplate - def __init__(self, name: str = '', shape = [1], values = [0]): + def __init__(self, name: str = '', shape=[1], values=[0]): super().__init__(name, shape, values) # Initialize _type with a default value to prevent AttributeError # The actual type will be set later via annotateType @@ -233,9 +163,9 @@ class SnitchStructBuffer(StructBuffer): SnitchOptimizer = TopologyOptimizer([ SkipEmptyConcatPass(), - SkipUnityRequantPass(previous_op_regex = "Concat", num_inputs = 2), - SkipUnityRequantPass(previous_op_regex = "Reshape|Transpose", num_inputs = 1), - SkipUnityRequantPass(previous_op_regex = "Reshape|Transpose", num_inputs = 1), + SkipUnityRequantPass(previous_op_regex="Concat", num_inputs=2), + SkipUnityRequantPass(previous_op_regex="Reshape|Transpose", num_inputs=1), + SkipUnityRequantPass(previous_op_regex="Reshape|Transpose", num_inputs=1), RQSSplitPass(), MergeTrueIntegerDivRequantShiftPass(), IntegerDivRequantMergePass(), @@ -245,7 +175,7 @@ class SnitchStructBuffer(StructBuffer): AddRequantMergePass(), GEMMRequantMergePass(), ], - name = "SnitchOptimizer") + name="SnitchOptimizer") _includeList = [ "snrt.h", @@ -255,17 +185,17 @@ class SnitchStructBuffer(StructBuffer): class SnitchClusterEngine(DeploymentEngine): - def __init__(self, name: str, Mapping = SnitchMapping, initCode = "", includeList = _includeList) -> None: + def __init__(self, name: str, Mapping=SnitchMapping, initCode="", includeList=_includeList) -> None: super().__init__(name, Mapping, initCode, includeList) class SnitchPlatform(DeploymentPlatform): def __init__(self, - engines = [SnitchClusterEngine("SnitchCluster")], - variableBuffer = SnitchVariableBuffer, - constantBuffer = SnitchConstantBuffer, - structBuffer = SnitchStructBuffer, - transientBuffer = SnitchTransientBuffer, + engines=[SnitchClusterEngine("SnitchCluster")], + variableBuffer=SnitchVariableBuffer, + constantBuffer=SnitchConstantBuffer, + structBuffer=SnitchStructBuffer, + transientBuffer=SnitchTransientBuffer, includeList: List[str] = _includeList): super().__init__(engines, variableBuffer, constantBuffer, structBuffer, transientBuffer) diff --git a/Deeploy/Targets/Snitch/Templates/AddTemplate.py b/Deeploy/Targets/Snitch/Templates/AddTemplate.py index 13df15dac2..428f087300 100644 --- a/Deeploy/Targets/Snitch/Templates/AddTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/AddTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class _SnitchAddTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py index 1dbe5ef723..5c5675c58f 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py @@ -5,9 +5,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class _FloatAddTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py index af84efd704..c71cd0a507 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class FloatDivTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py index bfd99446f2..1615282437 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatHardSwishTemplate.py @@ -6,9 +6,7 @@ import numpy as np -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class FloatHardSwishTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py index 7592bcafcf..7a970e6411 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class FloatMulTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py index cb4b20e589..629c1bb4f3 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py @@ -6,9 +6,7 @@ import numpy as np -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class FloatRMSNormTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py index d351d14ffc..a7bf0f61c7 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class FloatSoftmaxTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/GemmTemplate.py b/Deeploy/Targets/Snitch/Templates/GemmTemplate.py index e028b34212..d72b3c11f2 100644 --- a/Deeploy/Targets/Snitch/Templates/GemmTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/GemmTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class SnitchGemmTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py index ed8149beb7..bce916ea60 100644 --- a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class _MatMulTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py b/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py index 745f2dc4d5..f77b6d6127 100644 --- a/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/RqGemmTemplate.py @@ -4,9 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation class SnitchRqGemmTemplate(NodeTemplate): diff --git a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py index da19c61391..9d2d3954ac 100644 --- a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py @@ -4,10 +4,7 @@ from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import _Template -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import NodeTemplate -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, _Template # Two-stage header: <%text>${ escapes produce ${dimLen_N} template variables # that survive the first render and get resolved during the second render diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py index 1d0bd8c98a..a6f9440fc5 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -8,15 +8,12 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import HyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme class FloatDivTileConstraint(TileConstraint): @@ -50,22 +47,22 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) # Constrain scalar to remain untiled (size 1) for dim in range(len(input2Shape)): - input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + input2DimVar = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) tilerModel.addConstraint(input2DimVar == input2Shape[dim]) # Input1 and output must have same dimensions for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) tilerModel.addConstraint(inputDim1Var == outputDimVar) else: # Element-wise: both inputs must have same shape tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) + inputDim2Var = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) tilerModel.addConstraint(inputDim1Var == inputDim2Var) tilerModel.addConstraint(inputDim1Var == outputDimVar) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py index 3c292ac257..afe5e1a0f2 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -8,15 +8,12 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import HyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme class FloatMulTileConstraint(TileConstraint): @@ -50,22 +47,22 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) # Constrain scalar to remain untiled (size 1) for dim in range(len(input2Shape)): - input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + input2DimVar = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) tilerModel.addConstraint(input2DimVar == input2Shape[dim]) # Input1 and output must have same dimensions for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) tilerModel.addConstraint(inputDim1Var == outputDimVar) else: # Element-wise: both inputs must have same shape tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) + inputDim2Var = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) tilerModel.addConstraint(inputDim1Var == inputDim2Var) tilerModel.addConstraint(inputDim1Var == outputDimVar) diff --git a/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py index 48ad6c71b4..bb72cc461c 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py @@ -6,16 +6,12 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint -from Deeploy.TilingExtension.TilerModel import PerformanceHint -from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import HyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilerModel import PerformanceHint, TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme class GemmTileConstraint(TileConstraint): @@ -24,9 +20,9 @@ class GemmTileConstraint(TileConstraint): def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: # Get to-be-tiled tensor's buffers - bufferA = ctxt.lookup(name = parseDict['A']) - bufferB = ctxt.lookup(name = parseDict['B']) - bufferY = ctxt.lookup(name = parseDict['data_out']) + bufferA = ctxt.lookup(name=parseDict['A']) + bufferB = ctxt.lookup(name=parseDict['B']) + bufferY = ctxt.lookup(name=parseDict['data_out']) # Add I/O dimensions to the model as variables for bufferName in [bufferA.name, bufferB.name, bufferY.name]: @@ -37,35 +33,35 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) dimCountB = len(bufferB.shape) if parseDict['transB'] == 0: heightIdxB, widthIdxB = dimCountB - 2, dimCountB - 1 else: heightIdxB, widthIdxB = dimCountB - 1, dimCountB - 2 - BHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = heightIdxB) - BWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = widthIdxB) + BHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=heightIdxB) + BWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=widthIdxB) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) tilerModel.addConstraint(YHeightDimVar == AHeightDimVar) tilerModel.addConstraint(YWidthDimVar == BWidthDimVar) tilerModel.addConstraint(AWidthDimVar == BHeightDimVar) if 'C' in parseDict: - bufferC = ctxt.lookup(name = parseDict['C']) + bufferC = ctxt.lookup(name=parseDict['C']) tilerModel.addTensorDimToModel(ctxt, bufferC.name) dimCountC = len(bufferC.shape) heightIdxC, widthIdxC = dimCountC - 2, dimCountC - 1 - CHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = heightIdxC) - CWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = widthIdxC) + CHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=heightIdxC) + CWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=widthIdxC) tilerModel.addConstraint(CHeightDimVar == YHeightDimVar) tilerModel.addConstraint(CWidthDimVar == YWidthDimVar) @@ -74,21 +70,21 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw @staticmethod def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: - bufferA = ctxt.lookup(name = parseDict['A']) - bufferY = ctxt.lookup(name = parseDict['data_out']) + bufferA = ctxt.lookup(name=parseDict['A']) + bufferY = ctxt.lookup(name=parseDict['data_out']) dimCountA = len(bufferA.shape) if parseDict['transA'] == 0: heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) # Full inner dimension tilerModel.addConstraint(AWidthDimVar == AWidthDimVar.Max()) @@ -99,7 +95,7 @@ def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkCo "M", YHeightDimVar, 8, - strategy = PerformanceHint(priority = 1)) + strategy=PerformanceHint(priority=1)) return tilerModel diff --git a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py index cff40063bb..c1ae60dad5 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py @@ -8,15 +8,12 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import HyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme class ReshapeTileConstraint(TileConstraint): @@ -43,7 +40,7 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw tilerModel.addTensorDimToModel(ctxt, bufferName) for idx, shapeDim in enumerate(_buffer.shape): - tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) <= shapeDim) + tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName=bufferName, dimIdx=idx) <= shapeDim) # Constrain total elements to be equal inputBuffer = ctxt.lookup(inputBufferName) diff --git a/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py index aba5fa232b..a40dcabd3a 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py @@ -6,16 +6,12 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint -from Deeploy.TilingExtension.TilerModel import PerformanceHint -from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import HyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilerModel import PerformanceHint, TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme class RqGemmTileConstraint(TileConstraint): @@ -24,9 +20,9 @@ class RqGemmTileConstraint(TileConstraint): def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: # Get to-be-tiled tensor's buffers - bufferA = ctxt.lookup(name = parseDict['A']) - bufferB = ctxt.lookup(name = parseDict['B']) - bufferY = ctxt.lookup(name = parseDict['data_out']) + bufferA = ctxt.lookup(name=parseDict['A']) + bufferB = ctxt.lookup(name=parseDict['B']) + bufferY = ctxt.lookup(name=parseDict['data_out']) # Add I/O dimensions to the model as variables for bufferName in [bufferA.name, bufferB.name, bufferY.name]: @@ -37,48 +33,48 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) dimCountB = len(bufferB.shape) if parseDict['transB'] == 0: heightIdxB, widthIdxB = dimCountB - 2, dimCountB - 1 else: heightIdxB, widthIdxB = dimCountB - 1, dimCountB - 2 - BHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = heightIdxB) - BWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = widthIdxB) + BHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=heightIdxB) + BWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=widthIdxB) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) tilerModel.addConstraint(YHeightDimVar == AHeightDimVar) tilerModel.addConstraint(YWidthDimVar == BWidthDimVar) tilerModel.addConstraint(AWidthDimVar == BHeightDimVar) if 'C' in parseDict: - bufferC = ctxt.lookup(name = parseDict['C']) + bufferC = ctxt.lookup(name=parseDict['C']) tilerModel.addTensorDimToModel(ctxt, bufferC.name) dimCountC = len(bufferC.shape) heightIdxC, widthIdxC = dimCountC - 2, dimCountC - 1 - CHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = heightIdxC) - CWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = widthIdxC) + CHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=heightIdxC) + CWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=widthIdxC) tilerModel.addConstraint(CHeightDimVar == YHeightDimVar) tilerModel.addConstraint(CWidthDimVar == YWidthDimVar) - bufferMul = ctxt.lookup(name = parseDict['mul']) - bufferAdd = ctxt.lookup(name = parseDict['add']) + bufferMul = ctxt.lookup(name=parseDict['mul']) + bufferAdd = ctxt.lookup(name=parseDict['add']) # Add I/O dimensions to the model as variables for bufferName in [bufferMul.name, bufferAdd.name]: tilerModel.addTensorDimToModel(ctxt, bufferName) - MulDimVar = tilerModel.getTensorDimVar(tensorName = bufferMul.name, dimIdx = 0) - AddDimVar = tilerModel.getTensorDimVar(tensorName = bufferAdd.name, dimIdx = 0) + MulDimVar = tilerModel.getTensorDimVar(tensorName=bufferMul.name, dimIdx=0) + AddDimVar = tilerModel.getTensorDimVar(tensorName=bufferAdd.name, dimIdx=0) tilerModel.addConstraint(MulDimVar == YHeightDimVar) tilerModel.addConstraint(MulDimVar == AddDimVar) @@ -87,21 +83,21 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw @staticmethod def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: - bufferA = ctxt.lookup(name = parseDict['A']) - bufferY = ctxt.lookup(name = parseDict['data_out']) + bufferA = ctxt.lookup(name=parseDict['A']) + bufferY = ctxt.lookup(name=parseDict['data_out']) dimCountA = len(bufferA.shape) if parseDict['transA'] == 0: heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) # Full inner dimension tilerModel.addConstraint(AWidthDimVar == AWidthDimVar.Max()) @@ -112,7 +108,7 @@ def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkCo "M", YHeightDimVar, 8, - strategy = PerformanceHint(priority = 1)) + strategy=PerformanceHint(priority=1)) return tilerModel @@ -174,8 +170,8 @@ def serializeTilingSolution( else: BCube = HyperRectangle((BatchOffset, OOffset, NOffset), (BatchSize, OSize, NSize)) - MulCube = HyperRectangle((MOffset,), (MSize,)) - AddCube = HyperRectangle((MOffset,), (MSize,)) + MulCube = HyperRectangle((MOffset, ), (MSize, )) + AddCube = HyperRectangle((MOffset, ), (MSize, )) inputLoadSchedule.append({"A": ACube, "B": BCube, "C": YCube, "mul": MulCube, "add": AddCube}) outputLoadSchedule.append({"data_out": YCube}) diff --git a/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py index 3819a767f0..f00af88b86 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py @@ -8,14 +8,11 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, TilingSchedule, VariableReplacementScheme class iNoNormTileConstraint(TileConstraint): @@ -37,16 +34,15 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw weigthsBufferShapeLen = len(ctxt.lookup(weightsBufferName).shape) biasBufferShapeLen = len(ctxt.lookup(biasBufferName).shape) - weightsLastDimVar = tilerModel.getTensorDimVar(tensorName = weightsBufferName, - dimIdx = weigthsBufferShapeLen - 1) - biasLastDimVar = tilerModel.getTensorDimVar(tensorName = biasBufferName, dimIdx = biasBufferShapeLen - 1) + weightsLastDimVar = tilerModel.getTensorDimVar(tensorName=weightsBufferName, dimIdx=weigthsBufferShapeLen - 1) + biasLastDimVar = tilerModel.getTensorDimVar(tensorName=biasBufferName, dimIdx=biasBufferShapeLen - 1) tilerModel.addConstraint(biasLastDimVar == weightsLastDimVar) for dim in range(len(inputShape)): - inputDimVar = tilerModel.getTensorDimVar(tensorName = inputBufferName, dimIdx = dim) - weightDimVar = tilerModel.getTensorDimVar(tensorName = weightsBufferName, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + inputDimVar = tilerModel.getTensorDimVar(tensorName=inputBufferName, dimIdx=dim) + weightDimVar = tilerModel.getTensorDimVar(tensorName=weightsBufferName, dimIdx=dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) tilerModel.addConstraint(inputDimVar == outputDimVar) tilerModel.addConstraint(weightDimVar == outputDimVar) diff --git a/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py index 5c00ee546a..9a8e36f79e 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py @@ -9,14 +9,11 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.DataTypes import uint32_t -from Deeploy.DeeployTypes import NetworkContext -from Deeploy.DeeployTypes import OperatorRepresentation +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle -from Deeploy.TilingExtension.TilingCodegen import TilingSchedule -from Deeploy.TilingExtension.TilingCodegen import VariableReplacementScheme +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, TilingSchedule, VariableReplacementScheme class iSoftmaxTileConstraint(TileConstraint): @@ -33,8 +30,8 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw tilerModel.addTensorDimToModel(ctxt, bufferName) for idx in range(shapeLen): - outputDim = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = idx) - inputDim = tilerModel.getTensorDimVar(tensorName = inputBufferName, dimIdx = idx) + outputDim = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=idx) + inputDim = tilerModel.getTensorDimVar(tensorName=inputBufferName, dimIdx=idx) tilerModel.addConstraint(outputDim == inputDim) return tilerModel @@ -46,7 +43,7 @@ def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkCo lastDimLength = inputBuffer.shape[-1] lastDimIdx = len(inputBuffer.shape) - 1 - lastDimVar = tilerModel.getTensorDimVar(tensorName = inputBufferName, dimIdx = lastDimIdx) + lastDimVar = tilerModel.getTensorDimVar(tensorName=inputBufferName, dimIdx=lastDimIdx) tilerModel.addConstraint(lastDimVar == lastDimLength) diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index 064e8f805f..360b754fee 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -9,23 +9,11 @@ from Deeploy.Targets.Generic.TileConstraints.TransposeTileConstraint import TransposeTileConstraint from Deeploy.Targets.PULPOpen.TileConstraints.GatherTileConstraint import GatherTileConstraint from Deeploy.Targets.PULPOpen.TileConstraints.MatMulTileConstraint import MatMulTileConstraint -from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings -from Deeploy.Targets.Snitch.Bindings import SnitchConcatBindings -from Deeploy.Targets.Snitch.Bindings import SnitchDivBindings -from Deeploy.Targets.Snitch.Bindings import SnitchGatherBindings -from Deeploy.Targets.Snitch.Bindings import SnitchGemmBindings -from Deeploy.Targets.Snitch.Bindings import SnitchHardSwishBindings -from Deeploy.Targets.Snitch.Bindings import SnitchiNoNormBindings -from Deeploy.Targets.Snitch.Bindings import SnitchiSoftmaxBindings -from Deeploy.Targets.Snitch.Bindings import SnitchMatMulBindings -from Deeploy.Targets.Snitch.Bindings import SnitchMulBindings -from Deeploy.Targets.Snitch.Bindings import SnitchReshapeBindings -from Deeploy.Targets.Snitch.Bindings import SnitchRMSNormBindings -from Deeploy.Targets.Snitch.Bindings import SnitchRQAddBindings -from Deeploy.Targets.Snitch.Bindings import SnitchRqGemmBindings -from Deeploy.Targets.Snitch.Bindings import SnitchTransposeBindings -from Deeploy.Targets.Snitch.TileConstraints import iNoNormTileConstraint -from Deeploy.Targets.Snitch.TileConstraints import iSoftmaxTileConstraint +from Deeploy.Targets.Snitch.Bindings import SnitchAddBindings, SnitchConcatBindings, SnitchDivBindings, \ + SnitchGatherBindings, SnitchGemmBindings, SnitchHardSwishBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ + SnitchMatMulBindings, SnitchMulBindings, SnitchReshapeBindings, SnitchRMSNormBindings, SnitchRQAddBindings, \ + SnitchRqGemmBindings, SnitchTransposeBindings +from Deeploy.Targets.Snitch.TileConstraints import iNoNormTileConstraint, iSoftmaxTileConstraint from Deeploy.Targets.Snitch.TileConstraints.FloatDivTileConstraint import FloatDivTileConstraint from Deeploy.Targets.Snitch.TileConstraints.FloatMulTileConstraint import FloatMulTileConstraint from Deeploy.Targets.Snitch.TileConstraints.GemmTileConstraint import GemmTileConstraint @@ -33,43 +21,42 @@ from Deeploy.Targets.Snitch.TileConstraints.RqGemmTileConstraint import RqGemmTileConstraint from Deeploy.TilingExtension.TilerExtension import TilingReadyNodeBindings -SnitchiSoftmaxTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchiSoftmaxBindings, - tileConstraint = iSoftmaxTileConstraint()) -SnitchiNoNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchiNoNormBindings, - tileConstraint = iNoNormTileConstraint()) -SnitchRQAddTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRQAddBindings, - tileConstraint = AddTileConstraint()) -SnitchGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchGemmBindings, - tileConstraint = GemmTileConstraint()) -SnitchRqGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRqGemmBindings, - tileConstraint = RqGemmTileConstraint()) +SnitchiSoftmaxTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchiSoftmaxBindings, + tileConstraint=iSoftmaxTileConstraint()) +SnitchiNoNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchiNoNormBindings, + tileConstraint=iNoNormTileConstraint()) +SnitchRQAddTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchRQAddBindings, + tileConstraint=AddTileConstraint()) +SnitchGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchGemmBindings, + tileConstraint=GemmTileConstraint()) +SnitchRqGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchRqGemmBindings, + tileConstraint=RqGemmTileConstraint()) -SnitchAddTileReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchAddBindings, - tileConstraint = AddTileConstraint()) +SnitchAddTileReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchAddBindings, tileConstraint=AddTileConstraint()) -SnitchRMSNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRMSNormBindings, - tileConstraint = iRMSNormTileConstraint()) +SnitchRMSNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchRMSNormBindings, + tileConstraint=iRMSNormTileConstraint()) -SnitchHardSwishTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchHardSwishBindings, - tileConstraint = iHardswishTileConstraint()) +SnitchHardSwishTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchHardSwishBindings, + tileConstraint=iHardswishTileConstraint()) -SnitchDivTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchDivBindings, - tileConstraint = FloatDivTileConstraint()) +SnitchDivTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchDivBindings, + tileConstraint=FloatDivTileConstraint()) -SnitchMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMulBindings, - tileConstraint = FloatMulTileConstraint()) +SnitchMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchMulBindings, + tileConstraint=FloatMulTileConstraint()) -SnitchMatMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMatMulBindings, - tileConstraint = MatMulTileConstraint()) +SnitchMatMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchMatMulBindings, + tileConstraint=MatMulTileConstraint()) -SnitchConcatTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchConcatBindings, - tileConstraint = ConcatTileConstraint()) +SnitchConcatTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchConcatBindings, + tileConstraint=ConcatTileConstraint()) -SnitchTransposeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchTransposeBindings, - tileConstraint = TransposeTileConstraint()) +SnitchTransposeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchTransposeBindings, + tileConstraint=TransposeTileConstraint()) -SnitchReshapeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchReshapeBindings, - tileConstraint = ReshapeTileConstraint()) +SnitchReshapeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchReshapeBindings, + tileConstraint=ReshapeTileConstraint()) -SnitchGatherTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchGatherBindings, - tileConstraint = GatherTileConstraint()) +SnitchGatherTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchGatherBindings, + tileConstraint=GatherTileConstraint()) From d76f6f1fcdea82b06b12c19ca358e94fb5ad858d Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 5 Feb 2026 15:28:54 +0100 Subject: [PATCH 23/50] refactor: restore Snitch framework code to origin/devel Restore framework infrastructure files to match origin/devel: - SnitchClusterTiling.py, SnitchDma.py, Deployer.py - typeMapping.py, simulation.cmake - CycleCounter.c, macros.h, MatMul.h, RQMatMul.h Keep kernel-related additions (new bindings in Bindings.py). Add hasattr compatibility check in DeeployTypes.py for different onnx-graphsurgeon versions. --- Deeploy/DeeployTypes.py | 7 ++++++ Deeploy/Targets/Snitch/Bindings.py | 13 +++++----- .../SnitchClusterTiling.py | 24 ++++--------------- Deeploy/Targets/Snitch/DMA/SnitchDma.py | 2 +- Deeploy/Targets/Snitch/Deployer.py | 10 ++++---- DeeployTest/testUtils/typeMapping.py | 6 +---- TargetLibraries/Snitch/inc/kernel/MatMul.h | 10 ++++---- TargetLibraries/Snitch/inc/kernel/RQMatMul.h | 14 ++++++----- TargetLibraries/Snitch/inc/macros.h | 9 ------- TargetLibraries/Snitch/src/CycleCounter.c | 19 ++------------- 10 files changed, 40 insertions(+), 74 deletions(-) diff --git a/Deeploy/DeeployTypes.py b/Deeploy/DeeployTypes.py index d9d768fabc..5349748453 100644 --- a/Deeploy/DeeployTypes.py +++ b/Deeploy/DeeployTypes.py @@ -3105,9 +3105,16 @@ def _exportGraph(self, folderPath, fileName): raise OSError(f"Error exporting the context to: {absoluteOnnxPath}") # VJUNG: ONNX-Graphsurgeon needs tensors to be in their export types +<<<<<<< HEAD constTensors = [tensor for tensor in self.graph.tensors().values() if isinstance(tensor, gs.Constant)] for tensor in constTensors: if tensor.dtype != tensor.export_dtype: +======= + # Added hasattr check for compatibility with different onnx-graphsurgeon versions + constTensors = [tensor for tensor in self.graph.tensors().values() if isinstance(tensor, gs.Constant)] + for tensor in constTensors: + if hasattr(tensor, 'export_dtype') and tensor.dtype != tensor.export_dtype: +>>>>>>> 937e3cb3 (refactor: restore Snitch framework code to origin/devel) tensor.values = tensor.values.astype(tensor.export_dtype) model = gs.export_onnx(self.graph) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 7b77a9adea..023c21348b 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -31,11 +31,11 @@ from Deeploy.TilingExtension.CodeTransformationPasses.TilingVariableReplacement import TilingVariableReplacement, \ TilingVariableReplacementUpdate -TilingCallClosure = partial(ClosureGeneration, closureSuffix="_tiling_closure") +TilingCallClosure = partial(ClosureGeneration, closureSuffix = "_tiling_closure") MemoryAwareFunctionCallClosure = partial(MemoryAwareClosureGeneration, - closureSuffix="_closure", - startRegion="L2", - endRegion="L1") + closureSuffix = "_closure", + startRegion = "L2", + endRegion = "L1") BasicTransformer = CodeTransformation( [SnitchSynchCoresPass(), @@ -46,14 +46,13 @@ TiledTransformer = CodeTransformation([ SnitchCoreFilterPass("compute"), TilingVariableReplacement("L1"), - TilingCallClosure(writeback=False), + TilingCallClosure(writeback = False), SnitchSynchCoresPass(), TilingVariableReplacementUpdate("L1"), SnitchClusterTiling("L2", "L1", SnitchDma()), ArgumentStructGeneration(), MemoryManagementGeneration("L1"), - MemoryAwareFunctionCallClosure(writeback=False, generateStruct=True), - MemoryManagementGeneration("L2"), + MemoryAwareFunctionCallClosure(writeback = False, generateStruct = True), MemoryManagementGeneration() ]) diff --git a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py index a3e10ed188..e8204f6ae2 100644 --- a/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py +++ b/Deeploy/Targets/Snitch/CodeTransformationPasses/SnitchClusterTiling.py @@ -23,31 +23,15 @@ class SnitchClusterTilingDB(DoubleBufferingTilingCodeGeneration): class ProfilingSnitchClusterTilingSB(SingleBufferingTilingCodeGeneration, ProfilingSingleBufferingTilingMixIn): _printCycleDifference = NodeTemplate(r""" - printf("%s%u][Core %d] %s%6u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ - ${measurement}, ${suffixStr}); - """) - - _printCycleContribution = NodeTemplate(r""" - uint32_t total = ${measurementInput} + ${measurementKernel} + ${measurementOutput}; - uint32_t dma = ${measurementInput} + ${measurementOutput}; - float overhead_percentage = (total == 0) ? 0 : dma * 100.0f / total; - float kernel_percentage = (total == 0) ? 0 : ${measurementKernel} * 100.0f / total; - printf("%s%u][Core %d] Total :%6u cycles (%2.1f%% Kernel + %2.1f%% Overhead, %u + %u)\n", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), total, kernel_percentage, overhead_percentage, ${measurementKernel}, dma); + printf("%s%u][Core %d] %s%u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ + ${measurementsEnd}[${profileIdxVar}] - ${measurementsStart}[${profileIdxVar}], ${suffixStr}); """) class ProfilingSnitchClusterTilingDB(DoubleBufferingTilingCodeGeneration, ProfilingDoubleBufferingTilingMixIn): _printCycleDifference = NodeTemplate(r""" - printf("%s%u][Core %d] %s%6u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ - ${measurement}, ${suffixStr}); - """) - - _printCycleContribution = NodeTemplate(r""" - uint32_t total = ${measurementInput} + ${measurementKernel} + ${measurementOutput}; - uint32_t dma = ${measurementInput} + ${measurementOutput}; - float overhead_percentage = (total == 0) ? 0 : dma * 100.0f / total; - float kernel_percentage = (total == 0) ? 0 : ${measurementKernel} * 100.0f / total; - printf("%s%u][Core %d] Total :%6u cycles (%2.1f%% Kernel + %2.1f%% Overhead, %u + %u)\n", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), total, kernel_percentage, overhead_percentage, ${measurementKernel}, dma); + printf("%s%u][Core %d] %s%u%s", ${prefixStr}, ${profileIdxVar}, snrt_global_core_idx(), "${flavorStr}", \ + ${measurementsEnd}[${profileIdxVar}] - ${measurementsStart}[${profileIdxVar}], ${suffixStr}); """) diff --git a/Deeploy/Targets/Snitch/DMA/SnitchDma.py b/Deeploy/Targets/Snitch/DMA/SnitchDma.py index 70381aa72f..ac0c622cc8 100644 --- a/Deeploy/Targets/Snitch/DMA/SnitchDma.py +++ b/Deeploy/Targets/Snitch/DMA/SnitchDma.py @@ -31,7 +31,7 @@ class SnitchDma(AsyncDma): _transferTemplates = { 2: - NodeTemplate(""" + NodeTemplate(""" if (snrt_is_dm_core()) { ${future} = snrt_dma_start_2d(${dest}, ${src}, ${size}, ${stride_dest}, ${stride_src}, ${repeat}); // WIESEP: Hack as otherwise the last commited DMA transaction ID can never be resolved. diff --git a/Deeploy/Targets/Snitch/Deployer.py b/Deeploy/Targets/Snitch/Deployer.py index 6b325cebe1..7c3922a6bb 100644 --- a/Deeploy/Targets/Snitch/Deployer.py +++ b/Deeploy/Targets/Snitch/Deployer.py @@ -24,18 +24,18 @@ def __init__(self, loweringOptimizer: TopologyOptimizer, scheduler: Callable = lambda x: x, name: str = 'DeeployNetwork', - default_channels_first=False, + default_channels_first = False, deeployStateDir: str = "DeeployStateDir", - inputOffsets={}): + inputOffsets = {}): super().__init__(graph, deploymentPlatform, inputTypes, loweringOptimizer, scheduler, name, - default_channels_first=default_channels_first, - deeployStateDir=deeployStateDir, - inputOffsets=inputOffsets) + default_channels_first = default_channels_first, + deeployStateDir = deeployStateDir, + inputOffsets = inputOffsets) self.loweringOptimizer.passes += [ TransposeMatmulInputsPass(), diff --git a/DeeployTest/testUtils/typeMapping.py b/DeeployTest/testUtils/typeMapping.py index b6851dec7e..232fd1e274 100644 --- a/DeeployTest/testUtils/typeMapping.py +++ b/DeeployTest/testUtils/typeMapping.py @@ -48,11 +48,7 @@ def inferMinimalType(values: np.ndarray, default: Type[BaseType] = int8_t) -> Ty print(f"Warning: Empty input array for type inference for {values}!") return default - # First check the numpy dtype - if it's a float type, use float even if values are integer-like - # This handles cases like [0.0, 0.0] which would otherwise be incorrectly typed as uint8_t - if np.issubdtype(values.dtype, np.floating): - return minimalFloatType(values) - elif isInteger(values): + if isInteger(values): return minimalIntegerType(values) else: return minimalFloatType(values) diff --git a/TargetLibraries/Snitch/inc/kernel/MatMul.h b/TargetLibraries/Snitch/inc/kernel/MatMul.h index 497378429f..d4b9ba71ca 100644 --- a/TargetLibraries/Snitch/inc/kernel/MatMul.h +++ b/TargetLibraries/Snitch/inc/kernel/MatMul.h @@ -68,10 +68,12 @@ void MatMul_offset_unrolled_2x2_parallel_s8_rv32im( int32_t A_offset, int32_t B_offset, int32_t output_offset); // Mapper Functions -static inline void __attribute__((always_inline)) MatMul_parallel_s8( - int8_t const *__restrict__ pSrcA, int8_t const *__restrict__ pSrcB, - int32_t *__restrict__ pDstC, uint32_t M, uint32_t N, uint32_t P, - int32_t A_offset, int32_t B_offset, int32_t output_offset) { +static inline void __attribute__((always_inline)) +MatMul_parallel_s8(int8_t const *__restrict__ pSrcA, + int8_t const *__restrict__ pSrcB, + int32_t *__restrict__ pDstC, uint32_t M, uint32_t N, + uint32_t P, int32_t A_offset, int32_t B_offset, + int32_t output_offset) { MatMul_parallel_s8_rv32im(pSrcA, pSrcB, pDstC, M, N, P, A_offset, B_offset, output_offset); } diff --git a/TargetLibraries/Snitch/inc/kernel/RQMatMul.h b/TargetLibraries/Snitch/inc/kernel/RQMatMul.h index a95f5df521..c58e25d516 100644 --- a/TargetLibraries/Snitch/inc/kernel/RQMatMul.h +++ b/TargetLibraries/Snitch/inc/kernel/RQMatMul.h @@ -75,12 +75,14 @@ void RQMatMul_offset_unrolled_2x2_parallel_s8_rv32im( int32_t output_offset); // Mapper Functions -static inline void __attribute__((always_inline)) RQMatMul_parallel_s8( - int8_t const *__restrict__ pSrcA, int8_t const *__restrict__ pSrcB, - int8_t *__restrict__ pDstC, uint32_t M, uint32_t N, uint32_t P, - int32_t *mul, int32_t *add, int32_t log2D, bool rounding, - bool per_row_quant, int32_t A_offset, int32_t B_offset, - int32_t output_offset, int8_t output_min, int8_t output_max) { +static inline void __attribute__((always_inline)) +RQMatMul_parallel_s8(int8_t const *__restrict__ pSrcA, + int8_t const *__restrict__ pSrcB, + int8_t *__restrict__ pDstC, uint32_t M, uint32_t N, + uint32_t P, int32_t *mul, int32_t *add, int32_t log2D, + bool rounding, bool per_row_quant, int32_t A_offset, + int32_t B_offset, int32_t output_offset, int8_t output_min, + int8_t output_max) { RQMatMul_parallel_s8_rv32im(pSrcA, pSrcB, pDstC, M, N, P, mul, add, log2D, rounding, per_row_quant, A_offset, B_offset, output_offset, output_min, output_max); diff --git a/TargetLibraries/Snitch/inc/macros.h b/TargetLibraries/Snitch/inc/macros.h index 04bef2394b..bc1191d25a 100644 --- a/TargetLibraries/Snitch/inc/macros.h +++ b/TargetLibraries/Snitch/inc/macros.h @@ -8,19 +8,10 @@ #define __DEEPLOY_MATH_MACROS_HEADER_ #define INT_LOG2(x) __builtin_ctz(x) - -#ifndef CLAMP #define CLAMP(x, low, high) \ (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x))) -#endif - -#ifndef MIN #define MIN(a, b) ((a) < (b) ? (a) : (b)) -#endif - -#ifndef MAX #define MAX(a, b) ((a) > (b) ? (a) : (b)) -#endif // JUNGVI: The following macros are here to ensure compatibility with some // PULP-NN kernels diff --git a/TargetLibraries/Snitch/src/CycleCounter.c b/TargetLibraries/Snitch/src/CycleCounter.c index 8a99c312e6..3861c421c1 100644 --- a/TargetLibraries/Snitch/src/CycleCounter.c +++ b/TargetLibraries/Snitch/src/CycleCounter.c @@ -6,15 +6,10 @@ #include "DeeploySnitchMath.h" -// Define ENABLE_INSTR_COUNTER to enable instruction counting (causes warnings -// in gvsoc) #define ENABLE_INSTR_COUNTER - static uint32_t timer_init[NUM_CORES] __attribute__((section(".l1"))); static uint32_t timer_end[NUM_CORES] __attribute__((section(".l1"))); -#ifdef ENABLE_INSTR_COUNTER static uint32_t instr_init[NUM_CORES] __attribute__((section(".l1"))); static uint32_t instr_end[NUM_CORES] __attribute__((section(".l1"))); -#endif static uint32_t running[NUM_CORES] __attribute__((section(".l1"))); @@ -22,13 +17,11 @@ void ResetTimer() { snrt_reset_perf_counter(SNRT_PERF_CNT0); uint32_t const core_id = snrt_global_core_idx(); uint32_t _timer_init = read_csr(mcycle); - timer_init[core_id] = _timer_init; - timer_end[core_id] = _timer_init; -#ifdef ENABLE_INSTR_COUNTER uint32_t _instr_init = read_csr(minstret); + timer_init[core_id] = _timer_init; instr_init[core_id] = _instr_init; + timer_end[core_id] = _timer_init; instr_end[core_id] = _instr_init; -#endif running[core_id] = 0; } @@ -38,9 +31,7 @@ void StartTimer() { } uint32_t const core_id = snrt_global_core_idx(); timer_init[core_id] = read_csr(mcycle); -#ifdef ENABLE_INSTR_COUNTER instr_init[core_id] = read_csr(minstret); -#endif running[core_id] = 1; } @@ -50,9 +41,7 @@ void StopTimer() { } uint32_t const core_id = snrt_global_core_idx(); timer_end[core_id] = read_csr(mcycle); -#ifdef ENABLE_INSTR_COUNTER instr_end[core_id] = read_csr(minstret); -#endif running[core_id] = 0; } @@ -66,7 +55,6 @@ uint32_t getCycles() { } uint32_t getInstr(void) { -#ifdef ENABLE_INSTR_COUNTER uint32_t const core_id = snrt_global_core_idx(); if (running[core_id]) { @@ -74,7 +62,4 @@ uint32_t getInstr(void) { } else { return instr_end[core_id] - instr_init[core_id]; } -#else - return 0; // Instruction counting disabled -#endif } \ No newline at end of file From 1c62b683a5f1c53b440786995aae9f258b285f64 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 5 Feb 2026 15:48:50 +0100 Subject: [PATCH 24/50] fix: Reshape operator for Snitch platform - Fix RemoveGlobalOutputReshapePass to not delete single-node graphs - Add multi-core parallel Reshape template with aliases support --- .../LoweringOptimizationPasses.py | 4 +- .../Snitch/Templates/ReshapeTemplate.py | 58 +++++++++++++++++-- 2 files changed, 57 insertions(+), 5 deletions(-) diff --git a/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py b/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py index aba6740d49..91f08e887f 100644 --- a/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py +++ b/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py @@ -488,7 +488,9 @@ def _remove_global_output_reshape_fun(graph: gs.Graph, match: Match, name: str): node = next(iter((match.nodes_map.values()))) isGlobalOutput = len(node.outputs[0].outputs) == 0 - if isGlobalOutput: + # Don't delete if the input is also a global input (i.e., single-node graph) + isGlobalInput = node.inputs[0] in graph.inputs + if isGlobalOutput and not isGlobalInput: graph.deleteNode(node) return graph diff --git a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py index 487503d4f6..899d948edf 100644 --- a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py @@ -2,10 +2,60 @@ # # SPDX-License-Identifier: Apache-2.0 -from Deeploy.Targets.Generic.Templates.ReshapeTemplate import _ReshapeTemplate +from typing import Dict, List, Tuple -# Use snrt_cluster_core_idx() == 0 instead of SINGLE_CORE macro to avoid core_id dependency -referenceTemplate = _ReshapeTemplate(""" +import numpy as np + +from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, VariableBuffer + + +class _SnitchReshapeTemplate(NodeTemplate): + + def __init__(self, templateStr): + super().__init__(templateStr) + + def alignToContext(self, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: + + # Mark 'indices' as not deployed (for Gather-like ops) + if 'indices' in operatorRepresentation.keys(): + ctxt.globalObjects[operatorRepresentation['indices']]._deploy = False + ctxt.globalObjects[operatorRepresentation['indices']]._live = False + + # Mark "shape" as not deployed + if "shape" in operatorRepresentation.keys(): + ctxt.globalObjects[operatorRepresentation["shape"]]._deploy = False + ctxt.globalObjects[operatorRepresentation["shape"]]._live = False + + bufferIn = ctxt.lookup(operatorRepresentation['data_in']) + assert isinstance(bufferIn, VariableBuffer) + bufferOut = ctxt.lookup(operatorRepresentation['data_out']) + assert isinstance(bufferOut, VariableBuffer) + + # Link aliases to each buffer (for zero-copy when possible) + bufferIn.aliases.add(bufferOut.name) + bufferOut.aliases.add(bufferIn.name) + + # Calculate size for data copy + operatorRepresentation['size'] = int(np.prod(bufferIn.shape)) + + return ctxt, operatorRepresentation, [] + + +# Reshape uses multi-core parallel copy +# When aliases work (internal nodes), this copies between same memory (no-op effect) +# When aliases don't work (global I/O), this copies data correctly +referenceTemplate = _SnitchReshapeTemplate(""" // Reshape (Name: ${nodeName}, Op: ${nodeOp}) -if (snrt_cluster_core_idx() == 0) { ${data_out} = ${data_in}; } +{ + uint32_t core_id = snrt_cluster_core_idx(); + uint32_t num_cores = snrt_cluster_compute_core_num(); + uint32_t total = ${size}; + uint32_t chunk = total / num_cores; + uint32_t start = core_id * chunk; + uint32_t end = (core_id == num_cores - 1) ? total : start + chunk; + for (uint32_t i = start; i < end; i++) { + ${data_out}[i] = ${data_in}[i]; + } +} """) From 32d4bfa36eca9327c0087921e242a129cd730450 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 5 Feb 2026 16:15:10 +0100 Subject: [PATCH 25/50] fix: Add broadcasting support and compatible type inference - Use SnitchAddParser instead of generic AddParser in Snitch Platform to enable broadcasting support for Add operations - Fix type inference to handle ambiguous zero values by respecting original numpy dtype --- Deeploy/Targets/Snitch/Platform.py | 12 ++++++------ DeeployTest/testUtils/typeMapping.py | 5 +++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index a056f72156..a8ce08b937 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -14,9 +14,9 @@ from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ SoftmaxLayer, TransposeLayer, iNoNormLayer -from Deeploy.Targets.Generic.Parsers import AddParser, ConcatParser, GatherParser, MatMulParser, Pad1DParser, \ - Pad2DParser, ReshapeParser, RQAddParser, RQIntegerDivParser, SoftmaxParser, TransposeParser, UnsqueezeParser, \ - iLayerNormParser, iNoNormParser, iSoftmaxParser +from Deeploy.Targets.Generic.Parsers import ConcatParser, GatherParser, MatMulParser, Pad1DParser, Pad2DParser, \ + ReshapeParser, RQAddParser, RQIntegerDivParser, SoftmaxParser, TransposeParser, UnsqueezeParser, iLayerNormParser, \ + iNoNormParser, iSoftmaxParser from Deeploy.Targets.Generic.Templates import AllocateTemplate as BasicAllocateTemplate from Deeploy.Targets.Generic.TopologyOptimizationPasses.Passes import AddRequantMergePass, GEMMRequantMergePass, \ IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ @@ -25,8 +25,8 @@ from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ BasicRMSNormBindings, BasicSnitchTransposeBindings, SnitchAddBindings, SnitchGemmBindings, SnitchiNoNormBindings, \ SnitchiSoftmaxBindings, SnitchRQAddBindings, SnitchRqGemmBindings -from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchDivParser, SnitchGEMMParser, SnitchMulParser, \ - SnitchRMSNormParser, SnitchRQGEMMParser +from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchAddParser, SnitchDivParser, SnitchGEMMParser, \ + SnitchMulParser, SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ @@ -59,7 +59,7 @@ SoftmaxMapper = NodeMapper(SoftmaxParser(), SnitchiSoftmaxTilingReadyBindings) iNoNormMapper = NodeMapper(iNoNormParser(), SnitchiNoNormTilingReadyBindings) RQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddTilingReadyBindings) -AddMapper = NodeMapper(AddParser(), SnitchAddTileReadyBindings) +AddMapper = NodeMapper(SnitchAddParser(), SnitchAddTileReadyBindings) RMSNormMapper = NodeMapper(SnitchRMSNormParser(), SnitchRMSNormTilingReadyBindings) HardSwishMapper = NodeMapper(HardSwishParser(), SnitchHardSwishTilingReadyBindings) DivMapper = NodeMapper(SnitchDivParser(), SnitchDivTilingReadyBindings) diff --git a/DeeployTest/testUtils/typeMapping.py b/DeeployTest/testUtils/typeMapping.py index 232fd1e274..abb9edddf7 100644 --- a/DeeployTest/testUtils/typeMapping.py +++ b/DeeployTest/testUtils/typeMapping.py @@ -39,6 +39,11 @@ def parseDataType(name: str) -> type: def isInteger(x: npt.NDArray) -> bool: + # If all values are zero, respect the original numpy dtype (ambiguous case) + if np.all(x == 0): + return np.issubdtype(x.dtype, np.integer) + # If any value has non-zero fractional part, it's float + # Otherwise (all values are integers like 1.0, 2.0), it's integer return np.abs((x.astype(int) - x)).max() <= 0.001 From 66c4b4ff9d51714c10f7bd2aef2ab01c901c982e Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 5 Feb 2026 17:03:48 +0100 Subject: [PATCH 26/50] make format update --- .yamllint | 2 + Deeploy/Targets/Generic/Parsers.py | 10 +- Deeploy/Targets/Snitch/Platform.py | 30 +- .../TileConstraints/FloatDivTileConstraint.py | 12 +- .../TileConstraints/FloatMulTileConstraint.py | 12 +- .../TileConstraints/GemmTileConstraint.py | 38 +- .../TileConstraints/ReshapeTileConstraint.py | 2 +- .../TileConstraints/RqGemmTileConstraint.py | 50 +- .../TileConstraints/iNoNormTileConstraint.py | 11 +- .../TileConstraints/iSoftmaxTileConstraint.py | 6 +- Deeploy/Targets/Snitch/Tiler.py | 59 +- DeeployTest/test_platforms.py | 594 +++++++++--------- .../Snitch/src/snitch_nn_add_i8_i8_i8.c | 12 +- 13 files changed, 422 insertions(+), 416 deletions(-) diff --git a/.yamllint b/.yamllint index ca8d1f606b..8156f0b8e2 100644 --- a/.yamllint +++ b/.yamllint @@ -31,3 +31,5 @@ ignore: - "**/toolchain/" # Ignore all files in .git - "**/.git/**" + # Ignore all files in .venv + - "**/.venv/" diff --git a/Deeploy/Targets/Generic/Parsers.py b/Deeploy/Targets/Generic/Parsers.py index 47b7e3b2dc..adde7760c1 100644 --- a/Deeploy/Targets/Generic/Parsers.py +++ b/Deeploy/Targets/Generic/Parsers.py @@ -514,8 +514,9 @@ def parseNodeCtxt(self, if i == ndim - 1: strides1[i] = 1 else: - strides1[i] = strides1[i + 1] * padded_shape1[i + 1] if ( - padded_shape1[i + 1] == out_shape[i + 1]) else strides1[i + 1] + strides1[i] = strides1[i + 1] * padded_shape1[i + 1] if (padded_shape1[i + 1] + == out_shape[i + 1]) else strides1[i + + 1] else: strides1[i] = 0 # Broadcast dimension @@ -526,8 +527,9 @@ def parseNodeCtxt(self, if i == ndim - 1: strides2[i] = 1 else: - strides2[i] = strides2[i + 1] * padded_shape2[i + 1] if ( - padded_shape2[i + 1] == out_shape[i + 1]) else strides2[i + 1] + strides2[i] = strides2[i + 1] * padded_shape2[i + 1] if (padded_shape2[i + 1] + == out_shape[i + 1]) else strides2[i + + 1] else: strides2[i] = 0 # Broadcast dimension diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index a8ce08b937..1a3ae0ed66 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -9,8 +9,8 @@ from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicGatherBindings, BasicLayerNormBindings, \ - BasicMatMulBindings, BasicPad1DBindings, BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding +from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicLayerNormBindings, BasicPad1DBindings, \ + BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ SoftmaxLayer, TransposeLayer, iNoNormLayer @@ -22,9 +22,7 @@ IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass from Deeploy.Targets.PULPOpen.Platform import RQAddMapper -from Deeploy.Targets.Snitch.Bindings import BasicDivBindings, BasicHardSwishBindings, BasicMulBindings, \ - BasicRMSNormBindings, BasicSnitchTransposeBindings, SnitchAddBindings, SnitchGemmBindings, SnitchiNoNormBindings, \ - SnitchiSoftmaxBindings, SnitchRQAddBindings, SnitchRqGemmBindings +from Deeploy.Targets.Snitch.Bindings import BasicSnitchTransposeBindings from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchAddParser, SnitchDivParser, SnitchGEMMParser, \ SnitchMulParser, SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate @@ -135,7 +133,7 @@ class SnitchConstantBuffer(ConstantBuffer): allocTemplate = AllocateTemplate.snitchL2GlobalAllocateTemplate deallocTemplate = FreeTemplate.snitchL2GlobalTemplate - def __init__(self, name: str = '', shape=[1], values=[0]): + def __init__(self, name: str = '', shape = [1], values = [0]): super().__init__(name, shape, values) # Initialize _type with a default value to prevent AttributeError # The actual type will be set later via annotateType @@ -163,9 +161,9 @@ class SnitchStructBuffer(StructBuffer): SnitchOptimizer = TopologyOptimizer([ SkipEmptyConcatPass(), - SkipUnityRequantPass(previous_op_regex="Concat", num_inputs=2), - SkipUnityRequantPass(previous_op_regex="Reshape|Transpose", num_inputs=1), - SkipUnityRequantPass(previous_op_regex="Reshape|Transpose", num_inputs=1), + SkipUnityRequantPass(previous_op_regex = "Concat", num_inputs = 2), + SkipUnityRequantPass(previous_op_regex = "Reshape|Transpose", num_inputs = 1), + SkipUnityRequantPass(previous_op_regex = "Reshape|Transpose", num_inputs = 1), RQSSplitPass(), MergeTrueIntegerDivRequantShiftPass(), IntegerDivRequantMergePass(), @@ -175,7 +173,7 @@ class SnitchStructBuffer(StructBuffer): AddRequantMergePass(), GEMMRequantMergePass(), ], - name="SnitchOptimizer") + name = "SnitchOptimizer") _includeList = [ "snrt.h", @@ -185,17 +183,17 @@ class SnitchStructBuffer(StructBuffer): class SnitchClusterEngine(DeploymentEngine): - def __init__(self, name: str, Mapping=SnitchMapping, initCode="", includeList=_includeList) -> None: + def __init__(self, name: str, Mapping = SnitchMapping, initCode = "", includeList = _includeList) -> None: super().__init__(name, Mapping, initCode, includeList) class SnitchPlatform(DeploymentPlatform): def __init__(self, - engines=[SnitchClusterEngine("SnitchCluster")], - variableBuffer=SnitchVariableBuffer, - constantBuffer=SnitchConstantBuffer, - structBuffer=SnitchStructBuffer, - transientBuffer=SnitchTransientBuffer, + engines = [SnitchClusterEngine("SnitchCluster")], + variableBuffer = SnitchVariableBuffer, + constantBuffer = SnitchConstantBuffer, + structBuffer = SnitchStructBuffer, + transientBuffer = SnitchTransientBuffer, includeList: List[str] = _includeList): super().__init__(engines, variableBuffer, constantBuffer, structBuffer, transientBuffer) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py index a6f9440fc5..e2de98535d 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -47,22 +47,22 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) # Constrain scalar to remain untiled (size 1) for dim in range(len(input2Shape)): - input2DimVar = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) + input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) tilerModel.addConstraint(input2DimVar == input2Shape[dim]) # Input1 and output must have same dimensions for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) tilerModel.addConstraint(inputDim1Var == outputDimVar) else: # Element-wise: both inputs must have same shape tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) - inputDim2Var = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) tilerModel.addConstraint(inputDim1Var == inputDim2Var) tilerModel.addConstraint(inputDim1Var == outputDimVar) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py index afe5e1a0f2..e3c7f1f974 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -47,22 +47,22 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) # Constrain scalar to remain untiled (size 1) for dim in range(len(input2Shape)): - input2DimVar = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) + input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) tilerModel.addConstraint(input2DimVar == input2Shape[dim]) # Input1 and output must have same dimensions for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) tilerModel.addConstraint(inputDim1Var == outputDimVar) else: # Element-wise: both inputs must have same shape tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName=inputBuffer1Name, dimIdx=dim) - inputDim2Var = tilerModel.getTensorDimVar(tensorName=inputBuffer2Name, dimIdx=dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) + inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) tilerModel.addConstraint(inputDim1Var == inputDim2Var) tilerModel.addConstraint(inputDim1Var == outputDimVar) diff --git a/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py index bb72cc461c..e5d35c4a42 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/GemmTileConstraint.py @@ -20,9 +20,9 @@ class GemmTileConstraint(TileConstraint): def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: # Get to-be-tiled tensor's buffers - bufferA = ctxt.lookup(name=parseDict['A']) - bufferB = ctxt.lookup(name=parseDict['B']) - bufferY = ctxt.lookup(name=parseDict['data_out']) + bufferA = ctxt.lookup(name = parseDict['A']) + bufferB = ctxt.lookup(name = parseDict['B']) + bufferY = ctxt.lookup(name = parseDict['data_out']) # Add I/O dimensions to the model as variables for bufferName in [bufferA.name, bufferB.name, bufferY.name]: @@ -33,35 +33,35 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) dimCountB = len(bufferB.shape) if parseDict['transB'] == 0: heightIdxB, widthIdxB = dimCountB - 2, dimCountB - 1 else: heightIdxB, widthIdxB = dimCountB - 1, dimCountB - 2 - BHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=heightIdxB) - BWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=widthIdxB) + BHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = heightIdxB) + BWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = widthIdxB) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) tilerModel.addConstraint(YHeightDimVar == AHeightDimVar) tilerModel.addConstraint(YWidthDimVar == BWidthDimVar) tilerModel.addConstraint(AWidthDimVar == BHeightDimVar) if 'C' in parseDict: - bufferC = ctxt.lookup(name=parseDict['C']) + bufferC = ctxt.lookup(name = parseDict['C']) tilerModel.addTensorDimToModel(ctxt, bufferC.name) dimCountC = len(bufferC.shape) heightIdxC, widthIdxC = dimCountC - 2, dimCountC - 1 - CHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=heightIdxC) - CWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=widthIdxC) + CHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = heightIdxC) + CWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = widthIdxC) tilerModel.addConstraint(CHeightDimVar == YHeightDimVar) tilerModel.addConstraint(CWidthDimVar == YWidthDimVar) @@ -70,21 +70,21 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw @staticmethod def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: - bufferA = ctxt.lookup(name=parseDict['A']) - bufferY = ctxt.lookup(name=parseDict['data_out']) + bufferA = ctxt.lookup(name = parseDict['A']) + bufferY = ctxt.lookup(name = parseDict['data_out']) dimCountA = len(bufferA.shape) if parseDict['transA'] == 0: heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) # Full inner dimension tilerModel.addConstraint(AWidthDimVar == AWidthDimVar.Max()) @@ -95,7 +95,7 @@ def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkCo "M", YHeightDimVar, 8, - strategy=PerformanceHint(priority=1)) + strategy = PerformanceHint(priority = 1)) return tilerModel diff --git a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py index c1ae60dad5..01a7e7e406 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py @@ -40,7 +40,7 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw tilerModel.addTensorDimToModel(ctxt, bufferName) for idx, shapeDim in enumerate(_buffer.shape): - tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName=bufferName, dimIdx=idx) <= shapeDim) + tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) <= shapeDim) # Constrain total elements to be equal inputBuffer = ctxt.lookup(inputBufferName) diff --git a/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py index a40dcabd3a..47bf7e29cc 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/RqGemmTileConstraint.py @@ -20,9 +20,9 @@ class RqGemmTileConstraint(TileConstraint): def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: # Get to-be-tiled tensor's buffers - bufferA = ctxt.lookup(name=parseDict['A']) - bufferB = ctxt.lookup(name=parseDict['B']) - bufferY = ctxt.lookup(name=parseDict['data_out']) + bufferA = ctxt.lookup(name = parseDict['A']) + bufferB = ctxt.lookup(name = parseDict['B']) + bufferY = ctxt.lookup(name = parseDict['data_out']) # Add I/O dimensions to the model as variables for bufferName in [bufferA.name, bufferB.name, bufferY.name]: @@ -33,48 +33,48 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) dimCountB = len(bufferB.shape) if parseDict['transB'] == 0: heightIdxB, widthIdxB = dimCountB - 2, dimCountB - 1 else: heightIdxB, widthIdxB = dimCountB - 1, dimCountB - 2 - BHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=heightIdxB) - BWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferB.name, dimIdx=widthIdxB) + BHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = heightIdxB) + BWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferB.name, dimIdx = widthIdxB) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) tilerModel.addConstraint(YHeightDimVar == AHeightDimVar) tilerModel.addConstraint(YWidthDimVar == BWidthDimVar) tilerModel.addConstraint(AWidthDimVar == BHeightDimVar) if 'C' in parseDict: - bufferC = ctxt.lookup(name=parseDict['C']) + bufferC = ctxt.lookup(name = parseDict['C']) tilerModel.addTensorDimToModel(ctxt, bufferC.name) dimCountC = len(bufferC.shape) heightIdxC, widthIdxC = dimCountC - 2, dimCountC - 1 - CHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=heightIdxC) - CWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferC.name, dimIdx=widthIdxC) + CHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = heightIdxC) + CWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferC.name, dimIdx = widthIdxC) tilerModel.addConstraint(CHeightDimVar == YHeightDimVar) tilerModel.addConstraint(CWidthDimVar == YWidthDimVar) - bufferMul = ctxt.lookup(name=parseDict['mul']) - bufferAdd = ctxt.lookup(name=parseDict['add']) + bufferMul = ctxt.lookup(name = parseDict['mul']) + bufferAdd = ctxt.lookup(name = parseDict['add']) # Add I/O dimensions to the model as variables for bufferName in [bufferMul.name, bufferAdd.name]: tilerModel.addTensorDimToModel(ctxt, bufferName) - MulDimVar = tilerModel.getTensorDimVar(tensorName=bufferMul.name, dimIdx=0) - AddDimVar = tilerModel.getTensorDimVar(tensorName=bufferAdd.name, dimIdx=0) + MulDimVar = tilerModel.getTensorDimVar(tensorName = bufferMul.name, dimIdx = 0) + AddDimVar = tilerModel.getTensorDimVar(tensorName = bufferAdd.name, dimIdx = 0) tilerModel.addConstraint(MulDimVar == YHeightDimVar) tilerModel.addConstraint(MulDimVar == AddDimVar) @@ -83,21 +83,21 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw @staticmethod def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: - bufferA = ctxt.lookup(name=parseDict['A']) - bufferY = ctxt.lookup(name=parseDict['data_out']) + bufferA = ctxt.lookup(name = parseDict['A']) + bufferY = ctxt.lookup(name = parseDict['data_out']) dimCountA = len(bufferA.shape) if parseDict['transA'] == 0: heightIdxA, widthIdxA = dimCountA - 2, dimCountA - 1 else: heightIdxA, widthIdxA = dimCountA - 1, dimCountA - 2 - AHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=heightIdxA) - AWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferA.name, dimIdx=widthIdxA) + AHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = heightIdxA) + AWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferA.name, dimIdx = widthIdxA) dimCountY = len(bufferY.shape) heightIdxY, widthIdxY = dimCountY - 2, dimCountY - 1 - YHeightDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=heightIdxY) - YWidthDimVar = tilerModel.getTensorDimVar(tensorName=bufferY.name, dimIdx=widthIdxY) + YHeightDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = heightIdxY) + YWidthDimVar = tilerModel.getTensorDimVar(tensorName = bufferY.name, dimIdx = widthIdxY) # Full inner dimension tilerModel.addConstraint(AWidthDimVar == AWidthDimVar.Max()) @@ -108,7 +108,7 @@ def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkCo "M", YHeightDimVar, 8, - strategy=PerformanceHint(priority=1)) + strategy = PerformanceHint(priority = 1)) return tilerModel @@ -170,8 +170,8 @@ def serializeTilingSolution( else: BCube = HyperRectangle((BatchOffset, OOffset, NOffset), (BatchSize, OSize, NSize)) - MulCube = HyperRectangle((MOffset, ), (MSize, )) - AddCube = HyperRectangle((MOffset, ), (MSize, )) + MulCube = HyperRectangle((MOffset,), (MSize,)) + AddCube = HyperRectangle((MOffset,), (MSize,)) inputLoadSchedule.append({"A": ACube, "B": BCube, "C": YCube, "mul": MulCube, "add": AddCube}) outputLoadSchedule.append({"data_out": YCube}) diff --git a/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py index f00af88b86..770b78902c 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/iNoNormTileConstraint.py @@ -34,15 +34,16 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw weigthsBufferShapeLen = len(ctxt.lookup(weightsBufferName).shape) biasBufferShapeLen = len(ctxt.lookup(biasBufferName).shape) - weightsLastDimVar = tilerModel.getTensorDimVar(tensorName=weightsBufferName, dimIdx=weigthsBufferShapeLen - 1) - biasLastDimVar = tilerModel.getTensorDimVar(tensorName=biasBufferName, dimIdx=biasBufferShapeLen - 1) + weightsLastDimVar = tilerModel.getTensorDimVar(tensorName = weightsBufferName, + dimIdx = weigthsBufferShapeLen - 1) + biasLastDimVar = tilerModel.getTensorDimVar(tensorName = biasBufferName, dimIdx = biasBufferShapeLen - 1) tilerModel.addConstraint(biasLastDimVar == weightsLastDimVar) for dim in range(len(inputShape)): - inputDimVar = tilerModel.getTensorDimVar(tensorName=inputBufferName, dimIdx=dim) - weightDimVar = tilerModel.getTensorDimVar(tensorName=weightsBufferName, dimIdx=dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=dim) + inputDimVar = tilerModel.getTensorDimVar(tensorName = inputBufferName, dimIdx = dim) + weightDimVar = tilerModel.getTensorDimVar(tensorName = weightsBufferName, dimIdx = dim) + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) tilerModel.addConstraint(inputDimVar == outputDimVar) tilerModel.addConstraint(weightDimVar == outputDimVar) diff --git a/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py index 9a8e36f79e..aa405bbcb6 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/iSoftmaxTileConstraint.py @@ -30,8 +30,8 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw tilerModel.addTensorDimToModel(ctxt, bufferName) for idx in range(shapeLen): - outputDim = tilerModel.getTensorDimVar(tensorName=outputBufferName, dimIdx=idx) - inputDim = tilerModel.getTensorDimVar(tensorName=inputBufferName, dimIdx=idx) + outputDim = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = idx) + inputDim = tilerModel.getTensorDimVar(tensorName = inputBufferName, dimIdx = idx) tilerModel.addConstraint(outputDim == inputDim) return tilerModel @@ -43,7 +43,7 @@ def addPolicyConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkCo lastDimLength = inputBuffer.shape[-1] lastDimIdx = len(inputBuffer.shape) - 1 - lastDimVar = tilerModel.getTensorDimVar(tensorName=inputBufferName, dimIdx=lastDimIdx) + lastDimVar = tilerModel.getTensorDimVar(tensorName = inputBufferName, dimIdx = lastDimIdx) tilerModel.addConstraint(lastDimVar == lastDimLength) diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index 360b754fee..5a5f4d0bf4 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -21,42 +21,43 @@ from Deeploy.Targets.Snitch.TileConstraints.RqGemmTileConstraint import RqGemmTileConstraint from Deeploy.TilingExtension.TilerExtension import TilingReadyNodeBindings -SnitchiSoftmaxTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchiSoftmaxBindings, - tileConstraint=iSoftmaxTileConstraint()) -SnitchiNoNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchiNoNormBindings, - tileConstraint=iNoNormTileConstraint()) -SnitchRQAddTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchRQAddBindings, - tileConstraint=AddTileConstraint()) -SnitchGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchGemmBindings, - tileConstraint=GemmTileConstraint()) -SnitchRqGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchRqGemmBindings, - tileConstraint=RqGemmTileConstraint()) +SnitchiSoftmaxTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchiSoftmaxBindings, + tileConstraint = iSoftmaxTileConstraint()) +SnitchiNoNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchiNoNormBindings, + tileConstraint = iNoNormTileConstraint()) +SnitchRQAddTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRQAddBindings, + tileConstraint = AddTileConstraint()) +SnitchGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchGemmBindings, + tileConstraint = GemmTileConstraint()) +SnitchRqGemmTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRqGemmBindings, + tileConstraint = RqGemmTileConstraint()) -SnitchAddTileReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchAddBindings, tileConstraint=AddTileConstraint()) +SnitchAddTileReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchAddBindings, + tileConstraint = AddTileConstraint()) -SnitchRMSNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchRMSNormBindings, - tileConstraint=iRMSNormTileConstraint()) +SnitchRMSNormTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchRMSNormBindings, + tileConstraint = iRMSNormTileConstraint()) -SnitchHardSwishTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchHardSwishBindings, - tileConstraint=iHardswishTileConstraint()) +SnitchHardSwishTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchHardSwishBindings, + tileConstraint = iHardswishTileConstraint()) -SnitchDivTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchDivBindings, - tileConstraint=FloatDivTileConstraint()) +SnitchDivTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchDivBindings, + tileConstraint = FloatDivTileConstraint()) -SnitchMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchMulBindings, - tileConstraint=FloatMulTileConstraint()) +SnitchMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMulBindings, + tileConstraint = FloatMulTileConstraint()) -SnitchMatMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchMatMulBindings, - tileConstraint=MatMulTileConstraint()) +SnitchMatMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMatMulBindings, + tileConstraint = MatMulTileConstraint()) -SnitchConcatTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchConcatBindings, - tileConstraint=ConcatTileConstraint()) +SnitchConcatTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchConcatBindings, + tileConstraint = ConcatTileConstraint()) -SnitchTransposeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchTransposeBindings, - tileConstraint=TransposeTileConstraint()) +SnitchTransposeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchTransposeBindings, + tileConstraint = TransposeTileConstraint()) -SnitchReshapeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchReshapeBindings, - tileConstraint=ReshapeTileConstraint()) +SnitchReshapeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchReshapeBindings, + tileConstraint = ReshapeTileConstraint()) -SnitchGatherTilingReadyBindings = TilingReadyNodeBindings(nodeBindings=SnitchGatherBindings, - tileConstraint=GatherTileConstraint()) +SnitchGatherTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchGatherBindings, + tileConstraint = GatherTileConstraint()) diff --git a/DeeployTest/test_platforms.py b/DeeployTest/test_platforms.py index 4f28644298..12f698008c 100644 --- a/DeeployTest/test_platforms.py +++ b/DeeployTest/test_platforms.py @@ -147,79 +147,79 @@ def param_id(param): @pytest.mark.generic @pytest.mark.kernels -@pytest.mark.parametrize("test_name", GENERIC_KERNEL_TESTS, ids=GENERIC_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", GENERIC_KERNEL_TESTS, ids = GENERIC_KERNEL_TESTS) def test_generic_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["generic"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.generic @pytest.mark.models -@pytest.mark.parametrize("test_name", GENERIC_MODEL_TESTS, ids=GENERIC_MODEL_TESTS) +@pytest.mark.parametrize("test_name", GENERIC_MODEL_TESTS, ids = GENERIC_MODEL_TESTS) def test_generic_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["generic"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.cortexm @pytest.mark.kernels -@pytest.mark.parametrize("test_name", CORTEXM_KERNEL_TESTS, ids=CORTEXM_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", CORTEXM_KERNEL_TESTS, ids = CORTEXM_KERNEL_TESTS) def test_cortexm_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["cortexm"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.cortexm @pytest.mark.models -@pytest.mark.parametrize("test_name", CORTEXM_MODEL_TESTS, ids=CORTEXM_MODEL_TESTS) +@pytest.mark.parametrize("test_name", CORTEXM_MODEL_TESTS, ids = CORTEXM_MODEL_TESTS) def test_cortexm_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["cortexm"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.mempool @pytest.mark.kernels -@pytest.mark.parametrize("test_name", MEMPOOL_KERNEL_TESTS, ids=MEMPOOL_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", MEMPOOL_KERNEL_TESTS, ids = MEMPOOL_KERNEL_TESTS) def test_mempool_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["mempool"] @@ -227,21 +227,21 @@ def test_mempool_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, mempool_cmake_args = cmake_args + [f"num_threads={platform_config['default_num_threads']}"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=mempool_cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = mempool_cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.mempool @pytest.mark.models -@pytest.mark.parametrize("test_name", MEMPOOL_MODEL_TESTS, ids=MEMPOOL_MODEL_TESTS) +@pytest.mark.parametrize("test_name", MEMPOOL_MODEL_TESTS, ids = MEMPOOL_MODEL_TESTS) def test_mempool_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["mempool"] @@ -249,54 +249,54 @@ def test_mempool_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, c mempool_cmake_args = cmake_args + [f"num_threads={platform_config['default_num_threads']}"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=mempool_cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = mempool_cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.siracusa @pytest.mark.kernels -@pytest.mark.parametrize("test_name", SIRACUSA_KERNEL_TESTS, ids=SIRACUSA_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", SIRACUSA_KERNEL_TESTS, ids = SIRACUSA_KERNEL_TESTS) def test_siracusa_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim, profile_untiled) -> None: config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, - cores=SIRACUSA_DEFAULT_CORES, - profile_untiled=profile_untiled, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, + cores = SIRACUSA_DEFAULT_CORES, + profile_untiled = profile_untiled, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.siracusa @pytest.mark.models -@pytest.mark.parametrize("test_name", SIRACUSA_MODEL_TESTS, ids=SIRACUSA_MODEL_TESTS) +@pytest.mark.parametrize("test_name", SIRACUSA_MODEL_TESTS, ids = SIRACUSA_MODEL_TESTS) def test_siracusa_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim, profile_untiled) -> None: config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, - cores=SIRACUSA_DEFAULT_CORES, - profile_untiled=profile_untiled, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, + cores = SIRACUSA_DEFAULT_CORES, + profile_untiled = profile_untiled, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -308,24 +308,24 @@ def test_siracusa_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, @pytest.mark.parametrize( "test_params", generate_test_params(L2_SINGLEBUFFER_KERNELS, "L2-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=SIRACUSA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=False, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = SIRACUSA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -337,24 +337,24 @@ def test_siracusa_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, t @pytest.mark.parametrize( "test_params", generate_test_params(L2_DOUBLEBUFFER_KERNELS, "L2-doublebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_tiled_kernels_l2_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=SIRACUSA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=True, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = SIRACUSA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -366,24 +366,24 @@ def test_siracusa_tiled_kernels_l2_doublebuffer(test_params, deeploy_test_dir, t @pytest.mark.parametrize( "test_params", generate_test_params(L2_SINGLEBUFFER_MODELS, "L2-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=SIRACUSA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=False, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = SIRACUSA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -395,24 +395,24 @@ def test_siracusa_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, to @pytest.mark.parametrize( "test_params", generate_test_params(L2_DOUBLEBUFFER_MODELS, "L2-doublebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_tiled_models_l2_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=SIRACUSA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=True, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = SIRACUSA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -424,24 +424,24 @@ def test_siracusa_tiled_models_l2_doublebuffer(test_params, deeploy_test_dir, to @pytest.mark.parametrize( "test_params", generate_test_params(L3_SINGLEBUFFER_MODELS, "L3-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_tiled_models_l3_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=SIRACUSA_DEFAULT_CORES, - l1=l1, - default_mem_level="L3", - double_buffer=False, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = SIRACUSA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L3", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -453,49 +453,49 @@ def test_siracusa_tiled_models_l3_singlebuffer(test_params, deeploy_test_dir, to @pytest.mark.parametrize( "test_params", generate_test_params(L3_DOUBLEBUFFER_MODELS, "L3-doublebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_tiled_models_l3_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=SIRACUSA_DEFAULT_CORES, - l1=l1, - default_mem_level="L3", - double_buffer=True, + test_name = test_name, + platform = "Siracusa", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = SIRACUSA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L3", + double_buffer = True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.chimera @pytest.mark.kernels -@pytest.mark.parametrize("test_name", CHIMERA_KERNEL_TESTS, ids=CHIMERA_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", CHIMERA_KERNEL_TESTS, ids = CHIMERA_KERNEL_TESTS) def test_chimera_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["chimera"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.softhier @pytest.mark.kernels -@pytest.mark.parametrize("test_name", SOFTHIER_KERNEL_TESTS, ids=SOFTHIER_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", SOFTHIER_KERNEL_TESTS, ids = SOFTHIER_KERNEL_TESTS) def test_softhier_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["softhier"] @@ -503,21 +503,21 @@ def test_softhier_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, softhier_cmake_args = cmake_args + [f"num_clusters={platform_config['default_num_clusters']}"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=softhier_cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = softhier_cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.snitch @pytest.mark.kernels -@pytest.mark.parametrize("test_name", SNITCH_KERNEL_TESTS, ids=SNITCH_KERNEL_TESTS) +@pytest.mark.parametrize("test_name", SNITCH_KERNEL_TESTS, ids = SNITCH_KERNEL_TESTS) def test_snitch_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["snitch"] @@ -525,33 +525,33 @@ def test_snitch_kernels(test_name, deeploy_test_dir, toolchain, toolchain_dir, c snitch_cmake_args = cmake_args + [f"NUM_CORES={platform_config['default_num_cores']}"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=snitch_cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = snitch_cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @pytest.mark.snitch @pytest.mark.models -@pytest.mark.parametrize("test_name", SNITCH_MODEL_TESTS, ids=SNITCH_MODEL_TESTS) +@pytest.mark.parametrize("test_name", SNITCH_MODEL_TESTS, ids = SNITCH_MODEL_TESTS) def test_snitch_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: platform_config = PLATFORM_CONFIGS["snitch"] snitch_cmake_args = cmake_args + [f"NUM_CORES={platform_config['default_num_cores']}"] config = create_test_config( - test_name=test_name, - platform=platform_config["platform"], - simulator=platform_config["simulator"], - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=snitch_cmake_args, - tiling=False, + test_name = test_name, + platform = platform_config["platform"], + simulator = platform_config["simulator"], + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = snitch_cmake_args, + tiling = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -563,7 +563,7 @@ def test_snitch_models(test_name, deeploy_test_dir, toolchain, toolchain_dir, cm @pytest.mark.parametrize( "test_params", generate_test_params(SNITCH_L2_SINGLEBUFFER_KERNELS, "L2-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_snitch_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: @@ -573,18 +573,18 @@ def test_snitch_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, too snitch_cmake_args = cmake_args + [f"NUM_CORES={SNITCH_DEFAULT_NUM_CORES}"] config = create_test_config( - test_name=test_name, - platform="Snitch", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=snitch_cmake_args, - tiling=True, - cores=SNITCH_DEFAULT_NUM_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=False, + test_name = test_name, + platform = "Snitch", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = snitch_cmake_args, + tiling = True, + cores = SNITCH_DEFAULT_NUM_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -596,26 +596,26 @@ def test_snitch_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, too @pytest.mark.parametrize( "test_params", generate_test_params(SNITCH_L2_SINGLEBUFFER_MODELS, "L2-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_snitch_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params snitch_cmake_args = cmake_args + [f"NUM_CORES={SNITCH_DEFAULT_NUM_CORES}"] config = create_test_config( - test_name=test_name, - platform="Snitch", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=snitch_cmake_args, - tiling=True, - cores=SNITCH_DEFAULT_NUM_CORES, - l1=l1, - l2=4000000, - default_mem_level="L2", - double_buffer=False, + test_name = test_name, + platform = "Snitch", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = snitch_cmake_args, + tiling = True, + cores = SNITCH_DEFAULT_NUM_CORES, + l1 = l1, + l2 = 4000000, + default_mem_level = "L2", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -627,24 +627,24 @@ def test_snitch_tiled_models_l2_singlebuffer(test_params, deeploy_test_dir, tool @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L2_SINGLEBUFFER_KERNELS, "L2-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_neureka_tiled_kernels_l2_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa_w_neureka", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=NEUREKA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=False, + test_name = test_name, + platform = "Siracusa_w_neureka", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = NEUREKA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -656,24 +656,24 @@ def test_siracusa_neureka_tiled_kernels_l2_singlebuffer(test_params, deeploy_tes @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L2_DOUBLEBUFFER_KERNELS, "L2-doublebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_neureka_tiled_kernels_l2_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa_w_neureka", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=NEUREKA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=True, + test_name = test_name, + platform = "Siracusa_w_neureka", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = NEUREKA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -685,24 +685,24 @@ def test_siracusa_neureka_tiled_kernels_l2_doublebuffer(test_params, deeploy_tes @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L3_SINGLEBUFFER_MODELS, "L3-singlebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_neureka_tiled_models_l3_singlebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa_w_neureka", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=NEUREKA_DEFAULT_CORES, - l1=l1, - default_mem_level="L3", - double_buffer=False, + test_name = test_name, + platform = "Siracusa_w_neureka", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = NEUREKA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L3", + double_buffer = False, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -714,24 +714,24 @@ def test_siracusa_neureka_tiled_models_l3_singlebuffer(test_params, deeploy_test @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L3_DOUBLEBUFFER_MODELS, "L3-doublebuffer"), - ids=param_id, + ids = param_id, ) def test_siracusa_neureka_tiled_models_l3_doublebuffer(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa_w_neureka", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=NEUREKA_DEFAULT_CORES, - l1=l1, - default_mem_level="L3", - double_buffer=True, + test_name = test_name, + platform = "Siracusa_w_neureka", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = NEUREKA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L3", + double_buffer = True, ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -744,25 +744,25 @@ def test_siracusa_neureka_tiled_models_l3_doublebuffer(test_params, deeploy_test @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L2_SINGLEBUFFER_KERNELS_WMEM, "L2-singlebuffer-wmem"), - ids=param_id, + ids = param_id, ) def test_siracusa_neureka_tiled_kernels_l2_singlebuffer_wmem(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa_w_neureka", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=NEUREKA_DEFAULT_CORES, - l1=l1, - default_mem_level="L2", - double_buffer=False, - gen_args=["--neureka-wmem"], + test_name = test_name, + platform = "Siracusa_w_neureka", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = NEUREKA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L2", + double_buffer = False, + gen_args = ["--neureka-wmem"], ) run_and_assert_test(test_name, config, skipgen, skipsim) @@ -775,25 +775,25 @@ def test_siracusa_neureka_tiled_kernels_l2_singlebuffer_wmem(test_params, deeplo @pytest.mark.parametrize( "test_params", generate_test_params(NEUREKA_L3_DOUBLEBUFFER_MODELS_WMEM, "L3-doublebuffer-wmem"), - ids=param_id, + ids = param_id, ) def test_siracusa_neureka_tiled_models_l3_doublebuffer_wmem(test_params, deeploy_test_dir, toolchain, toolchain_dir, cmake_args, skipgen, skipsim) -> None: test_name, l1, config_name = test_params config = create_test_config( - test_name=test_name, - platform="Siracusa_w_neureka", - simulator="gvsoc", - deeploy_test_dir=deeploy_test_dir, - toolchain=toolchain, - toolchain_dir=toolchain_dir, - cmake_args=cmake_args, - tiling=True, - cores=NEUREKA_DEFAULT_CORES, - l1=l1, - default_mem_level="L3", - double_buffer=True, - gen_args=["--neureka-wmem"], + test_name = test_name, + platform = "Siracusa_w_neureka", + simulator = "gvsoc", + deeploy_test_dir = deeploy_test_dir, + toolchain = toolchain, + toolchain_dir = toolchain_dir, + cmake_args = cmake_args, + tiling = True, + cores = NEUREKA_DEFAULT_CORES, + l1 = l1, + default_mem_level = "L3", + double_buffer = True, + gen_args = ["--neureka-wmem"], ) run_and_assert_test(test_name, config, skipgen, skipsim) diff --git a/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c b/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c index 03478b2048..b735e60704 100644 --- a/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c +++ b/TargetLibraries/Snitch/src/snitch_nn_add_i8_i8_i8.c @@ -6,11 +6,13 @@ #include "DeeploySnitchMath.h" -void __attribute__((noinline)) snitch_nn_add_i8_i8_i8( - int8_t *pIn1, int8_t *pIn2, int8_t *pOut, int32_t in1_mul, int32_t in1_add, - uint16_t in1_shift, int32_t in2_mul, int32_t in2_add, uint16_t in2_shift, - int32_t out_mul, int32_t out_add, uint16_t out_shift, uint16_t dim_im_in_x, - uint16_t dim_im_in_y, uint16_t ch_im_in, int out_requant_flag) { +void __attribute__((noinline)) +snitch_nn_add_i8_i8_i8(int8_t *pIn1, int8_t *pIn2, int8_t *pOut, + int32_t in1_mul, int32_t in1_add, uint16_t in1_shift, + int32_t in2_mul, int32_t in2_add, uint16_t in2_shift, + int32_t out_mul, int32_t out_add, uint16_t out_shift, + uint16_t dim_im_in_x, uint16_t dim_im_in_y, + uint16_t ch_im_in, int out_requant_flag) { int core_id = snrt_global_compute_core_idx(); int n_cores = snrt_global_compute_core_num(); From be964130e48b6f1c071a0bdb010c78f327b4d1d1 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 11:27:03 +0100 Subject: [PATCH 27/50] update test paths for reorganized RMSNorm and microLlama directories, remove redundant code --- .../workflows/ci-platform-snitch-tiled.yml | 4 +-- .github/workflows/ci-platform-snitch.yml | 4 +-- .../Snitch/Templates/TransposeTemplate.py | 2 +- .../RMSNorm/{ => separate_ops}/inputs.npz | Bin .../RMSNorm/{ => separate_ops}/network.onnx | Bin .../RMSNorm/{ => separate_ops}/outputs.npz | Bin .../single_fused_op}/inputs.npz | Bin .../single_fused_op}/network.onnx | Bin .../single_fused_op}/outputs.npz | Bin .../microLlama1}/activations.npz | Bin .../microLlama1}/inputs.npz | Bin .../microLlama1}/network.onnx | Bin .../microLlama1}/outputs.npz | Bin .../{ => INT8}/microLlama1/activations.npz | Bin .../{ => INT8}/microLlama1/inputs.npz | Bin .../{ => INT8}/microLlama1/network.onnx | Bin .../{ => INT8}/microLlama1/outputs.npz | Bin .../{ => INT8}/microLlama128/activations.npz | Bin .../{ => INT8}/microLlama128/inputs.npz | Bin .../{ => INT8}/microLlama128/network.onnx | Bin .../{ => INT8}/microLlama128/outputs.npz | Bin .../{ => INT8}/microLlama16/activations.npz | Bin .../{ => INT8}/microLlama16/inputs.npz | Bin .../{ => INT8}/microLlama16/network.onnx | Bin .../{ => INT8}/microLlama16/outputs.npz | Bin .../microLlama16_parallel/activations.npz | Bin .../microLlama16_parallel/inputs.npz | Bin .../microLlama16_parallel/network.onnx | Bin .../microLlama16_parallel/outputs.npz | Bin .../microLlama1_parallel/activations.npz | Bin .../microLlama1_parallel/inputs.npz | Bin .../microLlama1_parallel/network.onnx | Bin .../microLlama1_parallel/outputs.npz | Bin .../{ => INT8}/microLlama2/activations.npz | Bin .../{ => INT8}/microLlama2/inputs.npz | Bin .../{ => INT8}/microLlama2/network.onnx | Bin .../{ => INT8}/microLlama2/outputs.npz | Bin .../{ => INT8}/microLlama256/activations.npz | Bin .../{ => INT8}/microLlama256/inputs.npz | Bin .../{ => INT8}/microLlama256/network.onnx | Bin .../{ => INT8}/microLlama256/outputs.npz | Bin .../microLlama2_parallel/activations.npz | Bin .../microLlama2_parallel/inputs.npz | Bin .../microLlama2_parallel/network.onnx | Bin .../microLlama2_parallel/outputs.npz | Bin .../{ => INT8}/microLlama32/activations.npz | Bin .../{ => INT8}/microLlama32/inputs.npz | Bin .../{ => INT8}/microLlama32/network.onnx | Bin .../{ => INT8}/microLlama32/outputs.npz | Bin .../microLlama32_parallel/activations.npz | Bin .../microLlama32_parallel/inputs.npz | Bin .../microLlama32_parallel/network.onnx | Bin .../microLlama32_parallel/outputs.npz | Bin .../{ => INT8}/microLlama4/activations.npz | Bin .../{ => INT8}/microLlama4/inputs.npz | Bin .../{ => INT8}/microLlama4/network.onnx | Bin .../{ => INT8}/microLlama4/outputs.npz | Bin .../microLlama4_parallel/activations.npz | Bin .../microLlama4_parallel/inputs.npz | Bin .../microLlama4_parallel/network.onnx | Bin .../microLlama4_parallel/outputs.npz | Bin .../{ => INT8}/microLlama64/activations.npz | Bin .../{ => INT8}/microLlama64/inputs.npz | Bin .../{ => INT8}/microLlama64/network.onnx | Bin .../{ => INT8}/microLlama64/outputs.npz | Bin .../microLlama64_parallel/activations.npz | Bin .../microLlama64_parallel/inputs.npz | Bin .../microLlama64_parallel/network.onnx | Bin .../microLlama64_parallel/outputs.npz | Bin .../{ => INT8}/microLlama8/activations.npz | Bin .../{ => INT8}/microLlama8/inputs.npz | Bin .../{ => INT8}/microLlama8/network.onnx | Bin .../{ => INT8}/microLlama8/outputs.npz | Bin .../microLlama8_parallel/activations.npz | Bin .../microLlama8_parallel/inputs.npz | Bin .../microLlama8_parallel/network.onnx | Bin .../microLlama8_parallel/outputs.npz | Bin DeeployTest/test_generic_config.py | 3 +- .../test_siracusa_neureka_tiled_config.py | 4 +-- DeeployTest/test_siracusa_tiled_config.py | 20 ++++++------- DeeployTest/test_snitch_config.py | 2 +- DeeployTest/test_snitch_tiled_config.py | 2 +- TargetLibraries/Snitch/inc/kernel/Add.h | 3 -- TargetLibraries/Snitch/src/Add_fp32.c | 27 ------------------ 84 files changed, 21 insertions(+), 50 deletions(-) rename DeeployTest/Tests/Kernels/FP32/RMSNorm/{ => separate_ops}/inputs.npz (100%) rename DeeployTest/Tests/Kernels/FP32/RMSNorm/{ => separate_ops}/network.onnx (100%) rename DeeployTest/Tests/Kernels/FP32/RMSNorm/{ => separate_ops}/outputs.npz (100%) rename DeeployTest/Tests/Kernels/FP32/{RMSNorm_fused => RMSNorm/single_fused_op}/inputs.npz (100%) rename DeeployTest/Tests/Kernels/FP32/{RMSNorm_fused => RMSNorm/single_fused_op}/network.onnx (100%) rename DeeployTest/Tests/Kernels/FP32/{RMSNorm_fused => RMSNorm/single_fused_op}/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{microLlama_fp32_1 => FP32/microLlama1}/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{microLlama_fp32_1 => FP32/microLlama1}/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{microLlama_fp32_1 => FP32/microLlama1}/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{microLlama_fp32_1 => FP32/microLlama1}/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama128/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama128/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama128/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama128/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama16_parallel/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama1_parallel/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama256/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama256/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama256/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama256/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama2_parallel/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama32_parallel/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama4_parallel/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama64_parallel/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8/outputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8_parallel/activations.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8_parallel/inputs.npz (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8_parallel/network.onnx (100%) rename DeeployTest/Tests/Models/microLlama/{ => INT8}/microLlama8_parallel/outputs.npz (100%) diff --git a/.github/workflows/ci-platform-snitch-tiled.yml b/.github/workflows/ci-platform-snitch-tiled.yml index 697da454ea..eedab6641d 100644 --- a/.github/workflows/ci-platform-snitch-tiled.yml +++ b/.github/workflows/ci-platform-snitch-tiled.yml @@ -41,7 +41,7 @@ jobs: {"name":"Kernels/Integer/Softmax/Large","L1":[5000,10000]}, {"name":"Kernels/FP32/Softmax/Regular","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/RMSNorm_fused","L1":[2000,5000,10000]}, + {"name":"Kernels/FP32/RMSNorm/single_fused_op","L1":[2000,5000,10000]}, {"name":"Kernels/FP32/MatMul","L1":[2000,5000,10000]}, {"name":"Kernels/FP32/Add/Regular","L1":[2000,5000,10000]}, {"name":"Kernels/FP32/Hardswish","L1":[2000,5000,10000]}, @@ -54,7 +54,7 @@ jobs: {"name":"Kernels/Integer/Add/Regular_RQ","L1":[5000,10000]}, {"name":"Kernels/Integer/GEMM/Regular_RQPerRow","L1":[2000,5000]}, - {"name":"Models/microLlama/microLlama_fp32_1","L1":[10000,20000]} + {"name":"Models/microLlama/FP32/microLlama1","L1":[10000,20000]} ] simulators: | gvsoc diff --git a/.github/workflows/ci-platform-snitch.yml b/.github/workflows/ci-platform-snitch.yml index 4a9efae2c5..26f238a3f2 100644 --- a/.github/workflows/ci-platform-snitch.yml +++ b/.github/workflows/ci-platform-snitch.yml @@ -37,7 +37,7 @@ jobs: docker-image: ${{ needs.select-env.outputs.image }} test-names: | Kernels/FP32/Softmax/Regular - Kernels/FP32/RMSNorm_fused + Kernels/FP32/RMSNorm/single_fused_op Kernels/FP32/MatMul Kernels/FP32/Add/Regular Kernels/FP32/Hardswish @@ -56,7 +56,7 @@ jobs: Kernels/Integer/Add/Regular_RQ Kernels/Integer/GEMM/TransB_RQ - Models/microLlama/microLlama_fp32_1 + Models/microLlama/FP32/microLlama1 num-cores: 9 simulators: | gvsoc diff --git a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py index 9d2d3954ac..9de7433918 100644 --- a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm/inputs.npz b/DeeployTest/Tests/Kernels/FP32/RMSNorm/separate_ops/inputs.npz similarity index 100% rename from DeeployTest/Tests/Kernels/FP32/RMSNorm/inputs.npz rename to DeeployTest/Tests/Kernels/FP32/RMSNorm/separate_ops/inputs.npz diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm/network.onnx b/DeeployTest/Tests/Kernels/FP32/RMSNorm/separate_ops/network.onnx similarity index 100% rename from DeeployTest/Tests/Kernels/FP32/RMSNorm/network.onnx rename to DeeployTest/Tests/Kernels/FP32/RMSNorm/separate_ops/network.onnx diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm/outputs.npz b/DeeployTest/Tests/Kernels/FP32/RMSNorm/separate_ops/outputs.npz similarity index 100% rename from DeeployTest/Tests/Kernels/FP32/RMSNorm/outputs.npz rename to DeeployTest/Tests/Kernels/FP32/RMSNorm/separate_ops/outputs.npz diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/inputs.npz b/DeeployTest/Tests/Kernels/FP32/RMSNorm/single_fused_op/inputs.npz similarity index 100% rename from DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/inputs.npz rename to DeeployTest/Tests/Kernels/FP32/RMSNorm/single_fused_op/inputs.npz diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/network.onnx b/DeeployTest/Tests/Kernels/FP32/RMSNorm/single_fused_op/network.onnx similarity index 100% rename from DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/network.onnx rename to DeeployTest/Tests/Kernels/FP32/RMSNorm/single_fused_op/network.onnx diff --git a/DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/outputs.npz b/DeeployTest/Tests/Kernels/FP32/RMSNorm/single_fused_op/outputs.npz similarity index 100% rename from DeeployTest/Tests/Kernels/FP32/RMSNorm_fused/outputs.npz rename to DeeployTest/Tests/Kernels/FP32/RMSNorm/single_fused_op/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/activations.npz b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/activations.npz rename to DeeployTest/Tests/Models/microLlama/FP32/microLlama1/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/inputs.npz b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/inputs.npz rename to DeeployTest/Tests/Models/microLlama/FP32/microLlama1/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/network.onnx b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/network.onnx rename to DeeployTest/Tests/Models/microLlama/FP32/microLlama1/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/outputs.npz b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama_fp32_1/outputs.npz rename to DeeployTest/Tests/Models/microLlama/FP32/microLlama1/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama128/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama128/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama128/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama128/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama128/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama128/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama128/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama128/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama128/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama128/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama128/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama128/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama128/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama128/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama128/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama128/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama16_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama16_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama16_parallel/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama1_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama1_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama1_parallel/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama256/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama256/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama256/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama256/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama256/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama256/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama256/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama256/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama256/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama256/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama256/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama256/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama256/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama256/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama256/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama256/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama2_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama2_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama2_parallel/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama32_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama32_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama32_parallel/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama4_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama4_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama4_parallel/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama64_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama64_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama64_parallel/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8/outputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8_parallel/activations.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/activations.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8_parallel/activations.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/activations.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8_parallel/inputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/inputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8_parallel/inputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/inputs.npz diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8_parallel/network.onnx b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/network.onnx similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8_parallel/network.onnx rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/network.onnx diff --git a/DeeployTest/Tests/Models/microLlama/microLlama8_parallel/outputs.npz b/DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/outputs.npz similarity index 100% rename from DeeployTest/Tests/Models/microLlama/microLlama8_parallel/outputs.npz rename to DeeployTest/Tests/Models/microLlama/INT8/microLlama8_parallel/outputs.npz diff --git a/DeeployTest/test_generic_config.py b/DeeployTest/test_generic_config.py index b0d8c659ca..c78ad75985 100644 --- a/DeeployTest/test_generic_config.py +++ b/DeeployTest/test_generic_config.py @@ -21,7 +21,8 @@ "Kernels/FP32/MaxPool/Regular_2D", "Kernels/FP32/Mul", "Kernels/FP32/LayerNorm", - "Kernels/FP32/RMSNorm", + "Kernels/FP32/RMSNorm/separate_ops", + "Kernels/FP32/RMSNorm/single_fused_op", "Kernels/FP32/Pow/Scalar", "Kernels/FP32/Pow/Vector", "Kernels/FP32/ReduceMean/KeepDims/Add_ReduceMean", diff --git a/DeeployTest/test_siracusa_neureka_tiled_config.py b/DeeployTest/test_siracusa_neureka_tiled_config.py index 68bd3dd96e..f3fe687064 100644 --- a/DeeployTest/test_siracusa_neureka_tiled_config.py +++ b/DeeployTest/test_siracusa_neureka_tiled_config.py @@ -31,7 +31,7 @@ "Models/miniMobileNet": [2000], "Kernels/Integer/Attention": [2500], "Models/Transformer": [15000], - "Models/microLlama/microLlama1": [10000], + "Models/microLlama/INT8/microLlama1": [10000], } # L3 double-buffer model tests @@ -53,5 +53,5 @@ L3_DOUBLEBUFFER_MODELS_WMEM = { "Models/miniMobileNet": [2000], "Kernels/Integer/Attention": [3500], - "Models/microLlama/microLlama1": [10000], + "Models/microLlama/INT8/microLlama1": [10000], } diff --git a/DeeployTest/test_siracusa_tiled_config.py b/DeeployTest/test_siracusa_tiled_config.py index a687d9a489..7ceaeab9c3 100644 --- a/DeeployTest/test_siracusa_tiled_config.py +++ b/DeeployTest/test_siracusa_tiled_config.py @@ -106,9 +106,9 @@ "Models/miniMobileNet": [60000, 12000, 6000, 3000], "Models/miniMobileNetv2": [60000, 16000, 12000, 8000], "Kernels/Integer/Attention": [60000, 10000, 5000], - "Models/microLlama/microLlama1": [60000, 10000, 5000], - "Models/microLlama/microLlama8": [60000, 10000, 5000], - "Models/microLlama/microLlama8_parallel": [60000, 10000, 5000], + "Models/microLlama/INT8/microLlama1": [60000, 10000, 5000], + "Models/microLlama/INT8/microLlama8": [60000, 10000, 5000], + "Models/microLlama/INT8/microLlama8_parallel": [60000, 10000, 5000], "Models/MLPerf/KeywordSpotting": [64000], "Models/MLPerf/ImageClassification": [64000], "Models/MLPerf/AnomalyDetection": [64000], @@ -121,9 +121,9 @@ "Models/miniMobileNet": [60000, 24000, 12000, 6000], "Models/miniMobileNetv2": [60000, 32000, 24000, 16000], "Kernels/Integer/Attention": [60000, 20000, 10000, 5000], - "Models/microLlama/microLlama1": [60000, 20000, 10000], - "Models/microLlama/microLlama8": [60000, 20000, 10000], - "Models/microLlama/microLlama8_parallel": [60000, 20000, 10000], + "Models/microLlama/INT8/microLlama1": [60000, 20000, 10000], + "Models/microLlama/INT8/microLlama8": [60000, 20000, 10000], + "Models/microLlama/INT8/microLlama8_parallel": [60000, 20000, 10000], "Models/MLPerf/KeywordSpotting": [128000], "Models/MLPerf/ImageClassification": [128000], "Models/MLPerf/AnomalyDetection": [128000], @@ -137,7 +137,7 @@ "Models/miniMobileNetv2": [60000, 16000, 12000, 8000], "Kernels/Integer/Attention": [60000, 10000, 5000, 2500], "Models/Transformer": [60000, 30000, 15000], - "Models/microLlama/microLlama1": [60000, 10000, 5000], + "Models/microLlama/INT8/microLlama1": [60000, 10000, 5000], "Models/CCT/FP32/CCT_2_32_32_128": [128000], "Models/CCT_Train/CCT2_FT2": [128000], "Models/TinyViT/Demo": [4000], @@ -149,9 +149,9 @@ "Models/miniMobileNetv2": [60000, 32000, 24000, 16000], "Kernels/Integer/Attention": [60000, 20000, 10000, 5000], "Models/Transformer": [60000, 30000, 15000], - "Models/microLlama/microLlama1": [60000, 20000, 10000], - "Models/microLlama/microLlama8": [60000, 20000, 10000], - "Models/microLlama/microLlama8_parallel": [60000, 20000, 10000], + "Models/microLlama/INT8/microLlama1": [60000, 20000, 10000], + "Models/microLlama/INT8/microLlama8": [60000, 20000, 10000], + "Models/microLlama/INT8/microLlama8_parallel": [60000, 20000, 10000], "Models/CCT/FP32/CCT_2_32_32_128": [128000], "Models/CCT_Train/CCT2_FT2": [128000], "Models/TinyViT/Demo": [4000], diff --git a/DeeployTest/test_snitch_config.py b/DeeployTest/test_snitch_config.py index 8d49d2e3e6..2ceca80d0f 100644 --- a/DeeployTest/test_snitch_config.py +++ b/DeeployTest/test_snitch_config.py @@ -22,5 +22,5 @@ ] MODEL_TESTS = [ - "Models/microLlama/microLlama_fp32_1", + "Models/microLlama/FP32/microLlama1", ] diff --git a/DeeployTest/test_snitch_tiled_config.py b/DeeployTest/test_snitch_tiled_config.py index cb44d84ea7..b43de90f6d 100644 --- a/DeeployTest/test_snitch_tiled_config.py +++ b/DeeployTest/test_snitch_tiled_config.py @@ -22,7 +22,7 @@ } L2_SINGLEBUFFER_MODELS = { - "Models/microLlama/microLlama_fp32_1": [10000, 20000], + "Models/microLlama/FP32/microLlama1": [10000, 20000], } # Currently no double-buffer configurations in CI diff --git a/TargetLibraries/Snitch/inc/kernel/Add.h b/TargetLibraries/Snitch/inc/kernel/Add.h index 7a65e82712..90881e55fd 100644 --- a/TargetLibraries/Snitch/inc/kernel/Add.h +++ b/TargetLibraries/Snitch/inc/kernel/Add.h @@ -15,7 +15,4 @@ void Add_fp32_broadcast(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, uint32_t *out_shape, uint32_t *strides1, uint32_t *strides2, uint32_t ndim, uint32_t size); -void Add_fp32_lastdim(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, - uint32_t outer_size, uint32_t inner_size); - #endif // __DEEPLOY_MATH_ADD_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/src/Add_fp32.c b/TargetLibraries/Snitch/src/Add_fp32.c index 235b258511..bffd79854e 100644 --- a/TargetLibraries/Snitch/src/Add_fp32.c +++ b/TargetLibraries/Snitch/src/Add_fp32.c @@ -73,30 +73,3 @@ void Add_fp32_broadcast(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, pOut[i] = pIn1[idx1] + pIn2[idx2]; } } - -void Add_fp32_lastdim(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, - uint32_t outer_size, uint32_t inner_size) { - - uint32_t core_id = snrt_global_compute_core_idx(); - uint32_t numThreads = snrt_global_compute_core_num(); - uint32_t size = outer_size * inner_size; - - uint32_t chunkSize = size / numThreads; - uint32_t remainder = size % numThreads; - - uint32_t start, num_elements; - if (core_id < remainder) { - num_elements = chunkSize + 1; - start = core_id * num_elements; - } else { - num_elements = chunkSize; - start = core_id * chunkSize + remainder; - } - - uint32_t end = start + num_elements; - - for (uint32_t i = start; i < end; i++) { - uint32_t inner_idx = i % inner_size; - pOut[i] = pIn1[i] + pIn2[inner_idx]; - } -} From 89d382a97a5a0793424d60ff8fff96d27c08e748 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 12:45:03 +0100 Subject: [PATCH 28/50] refactor: general ONNX broadcasting for Div/Mul/Add --- Deeploy/Targets/Generic/Layers.py | 20 ++- Deeploy/Targets/Generic/Parsers.py | 60 +++---- .../Generic/Templates/FloatDivTemplate.py | 2 +- Deeploy/Targets/Snitch/Bindings.py | 24 +-- Deeploy/Targets/Snitch/Parsers.py | 168 +++++++----------- .../Snitch/Templates/FloatDivTemplate.py | 6 +- .../Snitch/Templates/FloatRMSNormTemplate.py | 9 +- .../Snitch/Templates/MatMulTemplate.py | 58 ------ .../Snitch/Templates/ReshapeTemplate.py | 27 +-- .../TileConstraints/FloatDivTileConstraint.py | 116 ++++++------ .../TileConstraints/FloatMulTileConstraint.py | 110 +++++++----- .../TileConstraints/ReshapeTileConstraint.py | 143 --------------- .../Snitch/TileConstraints/__init__.py | 1 - Deeploy/Targets/Snitch/Tiler.py | 4 +- 14 files changed, 247 insertions(+), 501 deletions(-) delete mode 100644 Deeploy/Targets/Snitch/Templates/MatMulTemplate.py delete mode 100644 Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py diff --git a/Deeploy/Targets/Generic/Layers.py b/Deeploy/Targets/Generic/Layers.py index 11e3a6a4de..3069f3ca60 100644 --- a/Deeploy/Targets/Generic/Layers.py +++ b/Deeploy/Targets/Generic/Layers.py @@ -732,13 +732,19 @@ def __init__(self, maps: List[NodeMapper]): super().__init__(maps) def computeOps(self): - # RMSNorm: square, mean, sqrt, div, mul - size = self.mapper.parser.operatorRepresentation['size'] - lastDimLength = self.mapper.parser.operatorRepresentation['lastDimLength'] - batch_size = size // lastDimLength - - # square + sum + mean + eps + sqrt + div + mul - ops = size + batch_size * lastDimLength + batch_size * 4 + size * 2 + inputSize = self.mapper.parser.operatorRepresentation['inputSize'] + NormalizedAxesSize = self.mapper.parser.operatorRepresentation['NormalizedAxesSize'] + scale = self.mapper.parser.operatorRepresentation['scale'] + + # a. XSquared = Mul(X, X) => inputSize ops + # b. XSquaredMean = ReduceMean(XSquared) + # => inputSize ops (additions) + (inputSize - NormalizedAxesSize) ops (divisions) + # c. MeanSquareEpsilon = Add(XSquaredMean, epsilon) => (inputSize - NormalizedAxesSize) ops + # d. RMS = Sqrt(MeanSquareEpsilon) => (inputSize - NormalizedAxesSize) ops + # e. Normalized = Div(X, RMS) => inputSize ops + # f. Y = Mul(Normalized, Scale) => 0 if all(Scale == 1.0), else inputSize ops + scale_ops = 0 if (scale == 1.0).all() else inputSize + ops = 5 * inputSize - 3 * NormalizedAxesSize + scale_ops return ops diff --git a/Deeploy/Targets/Generic/Parsers.py b/Deeploy/Targets/Generic/Parsers.py index adde7760c1..9cec242ff4 100644 --- a/Deeploy/Targets/Generic/Parsers.py +++ b/Deeploy/Targets/Generic/Parsers.py @@ -55,6 +55,10 @@ def parseNode(self, node: gs.Node) -> (bool): self.operatorRepresentation['n_levels'] = int(node.attrs['n_levels']) self.operatorRepresentation['log2D'] = int(math.log2(node.attrs['D'])) + stash_type = node.attrs.get('stash_type', 1) + if stash_type != 1: + raise ValueError(f"iRMSNorm: only stash_type=1 (FP32) is supported, got {stash_type}") + return ret def parseNodeCtxt(self, @@ -71,12 +75,19 @@ def parseNodeCtxt(self, self.operatorRepresentation[outputs[idx]] = ctxt.lookup(outputNode.name).name input_shape = list(ctxt.lookup(node.inputs[0].name).shape) - self.operatorRepresentation['size'] = np.prod(input_shape) - self.operatorRepresentation['lastDimLength'] = input_shape[-1] + + axis = node.attrs.get('axis', -1) + if axis < 0: + axis = len(input_shape) + axis + self.operatorRepresentation['inputSize'] = int(np.prod(input_shape)) - self.operatorRepresentation['NormalizedAxesSize'] = int(input_shape[-1]) + self.operatorRepresentation['NormalizedAxesSize'] = int(np.prod(input_shape[axis:])) self.operatorRepresentation['scale'] = node.inputs[1].values + # Keep old keys for C template compatibility + self.operatorRepresentation['size'] = int(np.prod(input_shape)) + self.operatorRepresentation['lastDimLength'] = int(input_shape[-1]) + return ctxt, True @@ -500,38 +511,25 @@ def parseNodeCtxt(self, self.operatorRepresentation['need_broadcast'] = need_broadcast if need_broadcast: - # Calculate strides for broadcasting ndim = len(out_shape) # Pad shapes from the left to match ndim (ONNX broadcasts from right) padded_shape1 = [1] * (ndim - len(shape1)) + shape1 padded_shape2 = [1] * (ndim - len(shape2)) + shape2 - # Compute strides for input 1 - strides1 = [1] * ndim - for i in range(ndim - 1, -1, -1): - if padded_shape1[i] == out_shape[i]: - if i == ndim - 1: - strides1[i] = 1 - else: - strides1[i] = strides1[i + 1] * padded_shape1[i + 1] if (padded_shape1[i + 1] - == out_shape[i + 1]) else strides1[i + - 1] - else: - strides1[i] = 0 # Broadcast dimension - - # Compute strides for input 2 - strides2 = [1] * ndim - for i in range(ndim - 1, -1, -1): - if padded_shape2[i] == out_shape[i]: - if i == ndim - 1: - strides2[i] = 1 + def _calc_strides(padded_shape, out_shape): + strides = [] + stride = 1 + for i in range(ndim - 1, -1, -1): + if padded_shape[i] == 1 and out_shape[i] > 1: + strides.insert(0, 0) else: - strides2[i] = strides2[i + 1] * padded_shape2[i + 1] if (padded_shape2[i + 1] - == out_shape[i + 1]) else strides2[i + - 1] - else: - strides2[i] = 0 # Broadcast dimension + strides.insert(0, stride) + stride *= padded_shape[i] if padded_shape[i] > 1 else 1 + return strides + + strides1 = _calc_strides(padded_shape1, out_shape) + strides2 = _calc_strides(padded_shape2, out_shape) self.operatorRepresentation['ndim'] = ndim self.operatorRepresentation['strides1'] = strides1 @@ -2145,15 +2143,15 @@ def parseNodeCtxt(self, node: gs.Node, channels_first: bool = True) -> Tuple[NetworkContext, bool]: - inputs = ["input1", "input2"] - outputs = ["output"] + inputs = ["A", "B"] + outputs = ["C"] for idx, inputNode in enumerate(node.inputs): if idx < len(inputs): self.operatorRepresentation[inputs[idx]] = ctxt.lookup(inputNode.name).name for idx, outputNode in enumerate(node.outputs): self.operatorRepresentation[outputs[idx]] = ctxt.lookup(outputNode.name).name - self.operatorRepresentation['size'] = np.prod(ctxt.lookup(self.operatorRepresentation['input1']).shape) + self.operatorRepresentation['size'] = np.prod(ctxt.lookup(self.operatorRepresentation['A']).shape) return ctxt, True diff --git a/Deeploy/Targets/Generic/Templates/FloatDivTemplate.py b/Deeploy/Targets/Generic/Templates/FloatDivTemplate.py index 34236311a0..6dfb9faeab 100644 --- a/Deeploy/Targets/Generic/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Generic/Templates/FloatDivTemplate.py @@ -6,5 +6,5 @@ referenceTemplate = NodeTemplate(""" // Division (Name: ${nodeName}, Op: ${nodeOp}) -SINGLE_CORE Div_fp${input1_type.referencedType.typeWidth}_fp${input2_type.referencedType.typeWidth}_fp${output_type.referencedType.typeWidth}(${input1}, ${input2}, ${output}, ${size}); +SINGLE_CORE Div_fp${A_type.referencedType.typeWidth}_fp${B_type.referencedType.typeWidth}_fp${C_type.referencedType.typeWidth}(${A}, ${B}, ${C}, ${size}); """) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 023c21348b..75bfb1ca35 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -19,7 +19,7 @@ SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ - MatMulTemplate, ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate + ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate from Deeploy.Targets.Snitch.Templates.FloatHardSwishTemplate import referenceTemplate as FloatHardSwishTemplate @@ -160,58 +160,36 @@ # MatMul Bindings (Tiled) SnitchMatMulBindings = [ - NodeBinding(MatMulChecker([PointerClass(int8_t), PointerClass(int8_t)], [PointerClass(int32_t)]), - MatMulTemplate.referenceTemplate, TiledTransformer), NodeBinding(MatMulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), FloatMatMulTemplate.referenceTemplate, TiledTransformer) ] # Concat Bindings (Tiled) SnitchConcatBindings = [ - NodeBinding(ConcatChecker([PointerClass(int8_t), PointerClass(int8_t)], [PointerClass(int8_t)]), - ConcatTemplate.referenceTemplate, TiledTransformer), - NodeBinding(ConcatChecker([PointerClass(int32_t), PointerClass(int32_t)], [PointerClass(int32_t)]), - ConcatTemplate.referenceTemplate, TiledTransformer), NodeBinding(ConcatChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), ConcatTemplate.referenceTemplate, TiledTransformer) ] # Transpose Bindings (Tiled) SnitchTransposeBindings = [ - NodeBinding(TransposeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), TransposeTemplate.referenceTemplate, - TiledTransformer), - NodeBinding(TransposeChecker([PointerClass(int32_t)], [PointerClass(int32_t)]), TransposeTemplate.referenceTemplate, - TiledTransformer), NodeBinding(TransposeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), TransposeTemplate.referenceTemplate, TiledTransformer) ] # Transpose Bindings (Non-tiled, multi-core) BasicSnitchTransposeBindings = [ - NodeBinding(TransposeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), TransposeTemplate.referenceTemplate, - BasicTransformer), - NodeBinding(TransposeChecker([PointerClass(int32_t)], [PointerClass(int32_t)]), TransposeTemplate.referenceTemplate, - BasicTransformer), NodeBinding(TransposeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), TransposeTemplate.referenceTemplate, BasicTransformer) ] # Reshape Bindings (Tiled) SnitchReshapeBindings = [ - NodeBinding(ReshapeChecker([PointerClass(int8_t)], [PointerClass(int8_t)]), ReshapeTemplate.referenceTemplate, - TiledTransformer), - NodeBinding(ReshapeChecker([PointerClass(int32_t)], [PointerClass(int32_t)]), ReshapeTemplate.referenceTemplate, - TiledTransformer), NodeBinding(ReshapeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), ReshapeTemplate.referenceTemplate, TiledTransformer) ] # Gather Bindings (Tiled) SnitchGatherBindings = [ - NodeBinding(GatherChecker([PointerClass(int8_t), PointerClass(int32_t)], [PointerClass(int8_t)]), - GatherTemplate.referenceTemplate, TiledTransformer), - NodeBinding(GatherChecker([PointerClass(int32_t), PointerClass(int32_t)], [PointerClass(int32_t)]), - GatherTemplate.referenceTemplate, TiledTransformer), NodeBinding(GatherChecker([PointerClass(float32_t), PointerClass(int32_t)], [PointerClass(float32_t)]), GatherTemplate.referenceTemplate, TiledTransformer) ] diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 57af4c8a95..3e24a622c8 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -11,6 +11,37 @@ from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser +def compute_broadcast_strides(shape1, shape2, out_shape): + """Compute strides for ONNX/NumPy-style broadcasting. + + Pads both input shapes from the left to match the output ndim, + then computes strides where broadcast dimensions (size 1) get stride 0. + + Example: + shape1=[8,8,8], shape2=[8] + -> strides1=[64,8,1], strides2=[0,0,1] + """ + ndim = len(out_shape) + + pad1 = [1] * (ndim - len(shape1)) + shape1 + pad2 = [1] * (ndim - len(shape2)) + shape2 + + def _calc_strides(padded_shape, out_shape): + strides = [] + stride = 1 + for i in range(ndim - 1, -1, -1): + if padded_shape[i] == 1 and out_shape[i] > 1: + strides.insert(0, 0) + else: + strides.insert(0, stride) + stride *= padded_shape[i] if padded_shape[i] > 1 else 1 + return strides + + strides1 = _calc_strides(pad1, out_shape) + strides2 = _calc_strides(pad2, out_shape) + return strides1, strides2 + + class SnitchGEMMParser(GEMMParser): def parseNode(self, node: gs.Node) -> bool: @@ -168,13 +199,7 @@ def parseNodeCtxt(self, class SnitchAddParser(AddParser): - """ - Inherits from GenericAddParser and adds support for Broadcasting. - - Compatibility: - - No broadcasting: Uses the Add_fp32() fast path. - - With broadcasting: Uses the Add_fp32_broadcast() generic version. - """ + """Inherits from GenericAddParser and adds broadcasting support.""" def __init__(self): super().__init__() @@ -183,83 +208,33 @@ def parseNodeCtxt(self, ctxt: NetworkContext, node: gs.Node, channels_first: bool = True) -> Tuple[NetworkContext, bool]: - # Call parent method to retrieve basic information ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) if not ret: return ctxt, False - # Retrieve shape information - data_in_1 = ctxt.lookup(node.inputs[0].name) - data_in_2 = ctxt.lookup(node.inputs[1].name) - data_out = ctxt.lookup(node.outputs[0].name) - - shape1 = list(data_in_1.shape) - shape2 = list(data_in_2.shape) - out_shape = list(data_out.shape) + shape1 = list(ctxt.lookup(node.inputs[0].name).shape) + shape2 = list(ctxt.lookup(node.inputs[1].name).shape) + out_shape = list(ctxt.lookup(node.outputs[0].name).shape) - # Correct 'size' to match the output shape (after broadcasting) self.operatorRepresentation['size'] = int(np.prod(out_shape)) - - # Broadcasting information self.operatorRepresentation['shape1'] = shape1 self.operatorRepresentation['shape2'] = shape2 self.operatorRepresentation['out_shape'] = out_shape self.operatorRepresentation['ndim'] = len(out_shape) - # Determine if broadcasting is needed need_broadcast = (shape1 != shape2) self.operatorRepresentation['need_broadcast'] = need_broadcast if need_broadcast: - strides1, strides2 = self._compute_broadcast_strides(shape1, shape2, out_shape) + strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) self.operatorRepresentation['strides1'] = strides1 self.operatorRepresentation['strides2'] = strides2 return ctxt, True - def _compute_broadcast_strides(self, shape1, shape2, out_shape): - """ - Calculates strides after broadcasting (following ONNX/NumPy rules). - - Principles: - - Align dimensions from right to left. - - When a dimension is 1, set stride to 0 to achieve the broadcasting effect. - - Example: - shape1=[8,8,8], shape2=[8] - → pad2=[1,1,8] - → strides1=[64,8,1], strides2=[0,0,1] - """ - ndim = len(out_shape) - - # Right-align and pad to the same number of dimensions - pad1 = [1] * (ndim - len(shape1)) + shape1 - pad2 = [1] * (ndim - len(shape2)) + shape2 - - def calc_strides(padded_shape, out_shape): - strides = [] - stride = 1 - for i in range(ndim - 1, -1, -1): - if padded_shape[i] == 1 and out_shape[i] > 1: - strides.insert(0, 0) # Broadcast dimension stride=0 - else: - strides.insert(0, stride) - - # Update stride multiplier only if the current dimension is essentially used (size > 1) - stride *= padded_shape[i] if padded_shape[i] > 1 else 1 - return strides - - strides1 = calc_strides(pad1, out_shape) - strides2 = calc_strides(pad2, out_shape) - - return strides1, strides2 - class SnitchDivParser(DivParser): - """ - Snitch-specific Div Parser. - Inherits from Generic DivParser and adds shape/broadcasting information. - """ + """Inherits from Generic DivParser and adds broadcasting support.""" def __init__(self): super().__init__() @@ -268,47 +243,36 @@ def parseNodeCtxt(self, ctxt: NetworkContext, node: gs.Node, channels_first: bool = True) -> Tuple[NetworkContext, bool]: - """ - Extend Generic parser to add shape and broadcasting information. - """ - # Call parent method first ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) - if not ret: return ctxt, False - # Get shape information - data_in_1 = ctxt.lookup(node.inputs[0].name) - data_in_2 = ctxt.lookup(node.inputs[1].name) - data_out = ctxt.lookup(node.outputs[0].name) - - shape1 = list(data_in_1.shape) - shape2 = list(data_in_2.shape) - out_shape = list(data_out.shape) + shape1 = list(ctxt.lookup(node.inputs[0].name).shape) + shape2 = list(ctxt.lookup(node.inputs[1].name).shape) + out_shape = list(ctxt.lookup(node.outputs[0].name).shape) - # Store shape information self.operatorRepresentation['shape1'] = shape1 self.operatorRepresentation['shape2'] = shape2 self.operatorRepresentation['out_shape'] = out_shape - - # Calculate sizes + self.operatorRepresentation['ndim'] = len(out_shape) self.operatorRepresentation['size1'] = int(np.prod(shape1)) self.operatorRepresentation['size2'] = int(np.prod(shape2)) - - # Update output size (may differ due to broadcasting) self.operatorRepresentation['size'] = int(np.prod(out_shape)) - # Check if scalar broadcasting (input2 is scalar) - self.operatorRepresentation['is_scalar'] = (self.operatorRepresentation['size2'] == 1) + need_broadcast = (shape1 != shape2) + self.operatorRepresentation['need_broadcast'] = need_broadcast + self.operatorRepresentation['is_scalar'] = (np.prod(shape1) == 1 or np.prod(shape2) == 1) + + if need_broadcast: + strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) + self.operatorRepresentation['strides1'] = strides1 + self.operatorRepresentation['strides2'] = strides2 return ctxt, True class SnitchMulParser(MulParser): - """ - Snitch-specific Mul Parser. - Inherits from Generic MulParser and adds shape/broadcasting information. - """ + """Inherits from Generic MulParser and adds broadcasting support.""" def __init__(self): super().__init__() @@ -317,37 +281,29 @@ def parseNodeCtxt(self, ctxt: NetworkContext, node: gs.Node, channels_first: bool = True) -> Tuple[NetworkContext, bool]: - """ - Extend Generic parser to add shape and broadcasting information. - """ - # Call parent method first ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) - if not ret: return ctxt, False - # Get shape information - data_in_1 = ctxt.lookup(node.inputs[0].name) - data_in_2 = ctxt.lookup(node.inputs[1].name) - data_out = ctxt.lookup(node.outputs[0].name) - - shape1 = list(data_in_1.shape) - shape2 = list(data_in_2.shape) - out_shape = list(data_out.shape) + shape1 = list(ctxt.lookup(node.inputs[0].name).shape) + shape2 = list(ctxt.lookup(node.inputs[1].name).shape) + out_shape = list(ctxt.lookup(node.outputs[0].name).shape) - # Store shape information self.operatorRepresentation['shape1'] = shape1 self.operatorRepresentation['shape2'] = shape2 self.operatorRepresentation['out_shape'] = out_shape - - # Calculate sizes + self.operatorRepresentation['ndim'] = len(out_shape) self.operatorRepresentation['size1'] = int(np.prod(shape1)) self.operatorRepresentation['size2'] = int(np.prod(shape2)) - - # Update output size (may differ due to broadcasting) self.operatorRepresentation['size'] = int(np.prod(out_shape)) - # Check if scalar broadcasting (input2 is scalar) - self.operatorRepresentation['is_scalar'] = (self.operatorRepresentation['size2'] == 1) + need_broadcast = (shape1 != shape2) + self.operatorRepresentation['need_broadcast'] = need_broadcast + self.operatorRepresentation['is_scalar'] = (np.prod(shape1) == 1 or np.prod(shape2) == 1) + + if need_broadcast: + strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) + self.operatorRepresentation['strides1'] = strides1 + self.operatorRepresentation['strides2'] = strides2 return ctxt, True diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py index c71cd0a507..9cc1375610 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -32,14 +32,14 @@ def alignToContext(self, ctxt: NetworkContext, # Template for element-wise division FloatDivTemplateStr = r""" -Div_fp32(${input1}, ${input2}, ${output}, ${size}); +Div_fp32(${A}, ${B}, ${C}, ${size}); """ # Template for scalar broadcasting (optimized) FloatDivScalarTemplateStr = r""" { - float32_t scalar = ${input2}[0]; - Div_fp32_scalar(${input1}, scalar, ${output}, ${size}); + float32_t scalar = ${B}[0]; + Div_fp32_scalar(${A}, scalar, ${C}, ${size}); } """ diff --git a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py index 629c1bb4f3..c6f611122d 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py @@ -20,14 +20,9 @@ def alignToContext(self, ctxt: NetworkContext, data_in = ctxt.lookup(operatorRepresentation["data_in"]) input_shape = list(data_in.shape) - axis = operatorRepresentation.get("axis", -1) - if axis < 0: - axis = len(input_shape) + axis - - operatorRepresentation["lastDimLength"] = data_in.shape[-1] + # C template uses ${size} and ${lastDimLength} operatorRepresentation["size"] = int(np.prod(input_shape)) - operatorRepresentation["inputSize"] = int(np.prod(input_shape)) - operatorRepresentation["NormalizedAxesSize"] = int(np.prod(input_shape[axis:])) + operatorRepresentation["lastDimLength"] = operatorRepresentation["NormalizedAxesSize"] return ctxt, operatorRepresentation, [] diff --git a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py deleted file mode 100644 index bce916ea60..0000000000 --- a/Deeploy/Targets/Snitch/Templates/MatMulTemplate.py +++ /dev/null @@ -1,58 +0,0 @@ -# SPDX-FileCopyrightText: 2024 ETH Zurich and University of Bologna -# -# SPDX-License-Identifier: Apache-2.0 - -from typing import Dict, List, Tuple - -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation - - -class _MatMulTemplate(NodeTemplate): - - def __init__(self, templateStr): - super().__init__(templateStr) - - def alignToContext(self, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - - A = ctxt.lookup(operatorRepresentation['A']) - B = ctxt.lookup(operatorRepresentation['B']) - C = ctxt.lookup(operatorRepresentation['data_out']) - operatorRepresentation['A_offset'] = 0 - operatorRepresentation['B_offset'] = 0 - operatorRepresentation['C_offset'] = 0 - if hasattr(A, "_signed") and hasattr(A, "nLevels"): - operatorRepresentation['A_offset'] = (A._signed == 0) * int(A.nLevels / 2) - if hasattr(B, "_signed") and hasattr(B, "nLevels"): - operatorRepresentation['B_offset'] = (B._signed == 0) * int(B.nLevels / 2) - if hasattr(C, "_signed") and hasattr(C, "nLevels"): - operatorRepresentation['C_offset'] = -(C._signed == 0) * int(C.nLevels / 2) - - return ctxt, operatorRepresentation, [] - - -# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency -referenceTemplate = _MatMulTemplate(""" -// MatMul (Name: ${nodeName}, Op: ${nodeOp}) -if (snrt_cluster_core_idx() == 0) { - ${A_type.typeName} ref_${data_out}_${A} = ${A}; - ${B_type.typeName} ref_${data_out}_${B} = ${B}; - ${data_out_type.typeName} ref_${data_out}_${data_out} = ${data_out}; - - for(uint32_t i=0;i<${batch};i++){ - MatMul_s${A_type.referencedType.typeWidth}_s${B_type.referencedType.typeWidth}_s${data_out_type.referencedType.typeWidth}( - ref_${data_out}_${A}, - ref_${data_out}_${B}, - ref_${data_out}_${data_out}, - ${M}, - ${N}, - ${O}, - ${A_offset}, ${B_offset}, ${C_offset} - ); - - ref_${data_out}_${A} += ${M} * ${N}; - ref_${data_out}_${B} += ${N} * ${O}; - ref_${data_out}_${data_out} += ${M} * ${O}; - } -} -""") diff --git a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py index 899d948edf..27b40b0370 100644 --- a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py @@ -6,37 +6,20 @@ import numpy as np -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation, VariableBuffer +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation, VariableBuffer +from Deeploy.Targets.Generic.Templates.ReshapeTemplate import _ReshapeTemplate -class _SnitchReshapeTemplate(NodeTemplate): - - def __init__(self, templateStr): - super().__init__(templateStr) +class _SnitchReshapeTemplate(_ReshapeTemplate): def alignToContext(self, ctxt: NetworkContext, operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - # Mark 'indices' as not deployed (for Gather-like ops) - if 'indices' in operatorRepresentation.keys(): - ctxt.globalObjects[operatorRepresentation['indices']]._deploy = False - ctxt.globalObjects[operatorRepresentation['indices']]._live = False - - # Mark "shape" as not deployed - if "shape" in operatorRepresentation.keys(): - ctxt.globalObjects[operatorRepresentation["shape"]]._deploy = False - ctxt.globalObjects[operatorRepresentation["shape"]]._live = False + ctxt, operatorRepresentation, _ = super().alignToContext(ctxt, operatorRepresentation) + # Calculate size for multi-core parallel copy bufferIn = ctxt.lookup(operatorRepresentation['data_in']) assert isinstance(bufferIn, VariableBuffer) - bufferOut = ctxt.lookup(operatorRepresentation['data_out']) - assert isinstance(bufferOut, VariableBuffer) - - # Link aliases to each buffer (for zero-copy when possible) - bufferIn.aliases.add(bufferOut.name) - bufferOut.aliases.add(bufferIn.name) - - # Calculate size for data copy operatorRepresentation['size'] = int(np.prod(bufferIn.shape)) return ctxt, operatorRepresentation, [] diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py index e2de98535d..2a1b9917bb 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -17,11 +17,15 @@ class FloatDivTileConstraint(TileConstraint): - """Tile constraint for FP32 Div operation supporting scalar broadcasting.""" + """Tile constraint for FP32 Div operation with ONNX broadcasting support. - dataIn1Name = "input1" - dataIn2Name = "input2" - dataOutName = "output" + Supports general NumPy-style broadcasting: both inputs can have any + dimension, including scalar, partial broadcasting, and full element-wise. + """ + + dataIn1Name = "A" + dataIn2Name = "B" + dataOutName = "C" @classmethod def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: @@ -30,42 +34,41 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: inputBuffer2Name = parseDict[cls.dataIn2Name] outputBufferName = parseDict[cls.dataOutName] - input1Shape = ctxt.lookup(inputBuffer1Name).shape - input2Shape = ctxt.lookup(inputBuffer2Name).shape + input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) + input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) + outputShape = list(ctxt.lookup(outputBufferName).shape) - # Add tensor dimensions to model + # Add all tensors to model tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) + tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) tilerModel.addTensorDimToModel(ctxt, outputBufferName) - # Check if input2 is scalar (total size == 1) - is_scalar = np.prod(input2Shape) == 1 - - if is_scalar: - # Scalar broadcasting: input2 is a scalar, don't tile it - # Only add input2 dimensions if it has more than 0 dims - if len(input2Shape) > 0: - tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) - # Constrain scalar to remain untiled (size 1) - for dim in range(len(input2Shape)): - input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - tilerModel.addConstraint(input2DimVar == input2Shape[dim]) - - # Input1 and output must have same dimensions - for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - tilerModel.addConstraint(inputDim1Var == outputDimVar) - else: - # Element-wise: both inputs must have same shape - tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) - - for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - - tilerModel.addConstraint(inputDim1Var == inputDim2Var) - tilerModel.addConstraint(inputDim1Var == outputDimVar) + outNdim = len(outputShape) + + # Pad input shapes from the left to match output ndim (ONNX broadcasting) + padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape + padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape + + for outDim in range(outNdim): + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = outDim) + + # Input 1: map output dim to actual tensor dim + in1ActualDim = outDim - (outNdim - len(input1Shape)) + if in1ActualDim >= 0: + in1DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = in1ActualDim) + if padded1[outDim] == 1: + tilerModel.addConstraint(in1DimVar == 1) + else: + tilerModel.addConstraint(in1DimVar == outputDimVar) + + # Input 2: map output dim to actual tensor dim + in2ActualDim = outDim - (outNdim - len(input2Shape)) + if in2ActualDim >= 0: + in2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = in2ActualDim) + if padded2[outDim] == 1: + tilerModel.addConstraint(in2DimVar == 1) + else: + tilerModel.addConstraint(in2DimVar == outputDimVar) return tilerModel @@ -83,25 +86,38 @@ def serializeTilingSolution( replacements = {"size": []} replacementTypes = {"size": PointerClass(uint16_t)} - # Check if scalar broadcasting - input2Name = operatorRepresentation[cls.dataIn2Name] - input2Shape = ctxt.lookup(input2Name).shape - is_scalar = np.prod(input2Shape) == 1 - - for cube in outputCubes: - newSize = np.prod(cube.dims) - replacements["size"].append(newSize) + input1Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn1Name]).shape) + input2Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn2Name]).shape) + outputShape = list(ctxt.lookup(operatorRepresentation[cls.dataOutName]).shape) + + outNdim = len(outputShape) + padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape + padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape + + def _deriveInputCube(outputCube, inputShape, paddedShape): + """Derive an input HyperRectangle from an output cube, respecting broadcasting.""" + offset = [] + dims = [] + for outDim in range(outNdim): + actualDim = outDim - (outNdim - len(inputShape)) + if actualDim >= 0: + if paddedShape[outDim] == 1: + offset.append(0) + dims.append(1) + else: + offset.append(outputCube.offset[outDim]) + dims.append(outputCube.dims[outDim]) + return HyperRectangle(tuple(offset), tuple(dims)) inputLoadSchedule = [] outputLoadSchedule = [] for cube in outputCubes: - if is_scalar: - # For scalar, load the entire scalar tensor (size 1) - scalarCube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: scalarCube}) - else: - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) + replacements["size"].append(np.prod(cube.dims)) + + in1Cube = _deriveInputCube(cube, input1Shape, padded1) + in2Cube = _deriveInputCube(cube, input2Shape, padded2) + inputLoadSchedule.append({cls.dataIn1Name: in1Cube, cls.dataIn2Name: in2Cube}) for out in outputCubes: outputLoadSchedule.append({cls.dataOutName: out}) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py index e3c7f1f974..0feae54d6f 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -17,7 +17,11 @@ class FloatMulTileConstraint(TileConstraint): - """Tile constraint for FP32 Mul operation supporting scalar broadcasting.""" + """Tile constraint for FP32 Mul operation with ONNX broadcasting support. + + Supports general NumPy-style broadcasting: both inputs can have any + dimension, including scalar, partial broadcasting, and full element-wise. + """ dataIn1Name = "A" dataIn2Name = "B" @@ -30,42 +34,41 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: inputBuffer2Name = parseDict[cls.dataIn2Name] outputBufferName = parseDict[cls.dataOutName] - input1Shape = ctxt.lookup(inputBuffer1Name).shape - input2Shape = ctxt.lookup(inputBuffer2Name).shape + input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) + input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) + outputShape = list(ctxt.lookup(outputBufferName).shape) - # Add tensor dimensions to model + # Add all tensors to model tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) + tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) tilerModel.addTensorDimToModel(ctxt, outputBufferName) - # Check if input2 is scalar (total size == 1) - is_scalar = np.prod(input2Shape) == 1 - - if is_scalar: - # Scalar broadcasting: input2 is a scalar, don't tile it - # Only add input2 dimensions if it has more than 0 dims - if len(input2Shape) > 0: - tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) - # Constrain scalar to remain untiled (size 1) - for dim in range(len(input2Shape)): - input2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - tilerModel.addConstraint(input2DimVar == input2Shape[dim]) - - # Input1 and output must have same dimensions - for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - tilerModel.addConstraint(inputDim1Var == outputDimVar) - else: - # Element-wise: both inputs must have same shape - tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) - - for dim in range(len(input1Shape)): - inputDim1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - inputDim2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - - tilerModel.addConstraint(inputDim1Var == inputDim2Var) - tilerModel.addConstraint(inputDim1Var == outputDimVar) + outNdim = len(outputShape) + + # Pad input shapes from the left to match output ndim (ONNX broadcasting) + padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape + padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape + + for outDim in range(outNdim): + outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = outDim) + + # Input 1: map output dim to actual tensor dim + in1ActualDim = outDim - (outNdim - len(input1Shape)) + if in1ActualDim >= 0: + in1DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = in1ActualDim) + if padded1[outDim] == 1: + tilerModel.addConstraint(in1DimVar == 1) + else: + tilerModel.addConstraint(in1DimVar == outputDimVar) + + # Input 2: map output dim to actual tensor dim + in2ActualDim = outDim - (outNdim - len(input2Shape)) + if in2ActualDim >= 0: + in2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = in2ActualDim) + if padded2[outDim] == 1: + tilerModel.addConstraint(in2DimVar == 1) + else: + tilerModel.addConstraint(in2DimVar == outputDimVar) return tilerModel @@ -83,25 +86,38 @@ def serializeTilingSolution( replacements = {"size": []} replacementTypes = {"size": PointerClass(uint16_t)} - # Check if scalar broadcasting - input2Name = operatorRepresentation[cls.dataIn2Name] - input2Shape = ctxt.lookup(input2Name).shape - is_scalar = np.prod(input2Shape) == 1 - - for cube in outputCubes: - newSize = np.prod(cube.dims) - replacements["size"].append(newSize) + input1Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn1Name]).shape) + input2Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn2Name]).shape) + outputShape = list(ctxt.lookup(operatorRepresentation[cls.dataOutName]).shape) + + outNdim = len(outputShape) + padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape + padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape + + def _deriveInputCube(outputCube, inputShape, paddedShape): + """Derive an input HyperRectangle from an output cube, respecting broadcasting.""" + offset = [] + dims = [] + for outDim in range(outNdim): + actualDim = outDim - (outNdim - len(inputShape)) + if actualDim >= 0: + if paddedShape[outDim] == 1: + offset.append(0) + dims.append(1) + else: + offset.append(outputCube.offset[outDim]) + dims.append(outputCube.dims[outDim]) + return HyperRectangle(tuple(offset), tuple(dims)) inputLoadSchedule = [] outputLoadSchedule = [] for cube in outputCubes: - if is_scalar: - # For scalar, load the entire scalar tensor (size 1) - scalarCube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: scalarCube}) - else: - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) + replacements["size"].append(np.prod(cube.dims)) + + in1Cube = _deriveInputCube(cube, input1Shape, padded1) + in2Cube = _deriveInputCube(cube, input2Shape, padded2) + inputLoadSchedule.append({cls.dataIn1Name: in1Cube, cls.dataIn2Name: in2Cube}) for out in outputCubes: outputLoadSchedule.append({cls.dataOutName: out}) diff --git a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py deleted file mode 100644 index 01a7e7e406..0000000000 --- a/Deeploy/Targets/Snitch/TileConstraints/ReshapeTileConstraint.py +++ /dev/null @@ -1,143 +0,0 @@ -# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna -# -# SPDX-License-Identifier: Apache-2.0 - -from typing import Dict, List, Tuple - -import numpy as np - -from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation -from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint -from Deeploy.TilingExtension.TileConstraint import TileConstraint -from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme - - -class ReshapeTileConstraint(TileConstraint): - """Tile constraint for Reshape operation - a NOP that just reinterprets data layout.""" - - @staticmethod - def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: - - inputBufferName = parseDict['data_in'] - outputBufferName = parseDict['data_out'] - - pointer: List[str] = [] - - for key, value in parseDict.items(): - if not isinstance(value, str): - continue - - if ctxt.is_global(value) or ctxt.is_local(value): - pointer.append(value) - - # Add I/O dimensions to the model as variables - for bufferName in [inputBufferName, outputBufferName]: - _buffer = ctxt.lookup(bufferName) - tilerModel.addTensorDimToModel(ctxt, bufferName) - - for idx, shapeDim in enumerate(_buffer.shape): - tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) <= shapeDim) - - # Constrain total elements to be equal - inputBuffer = ctxt.lookup(inputBufferName) - outputBuffer = ctxt.lookup(outputBufferName) - - # For reshape, we want the tiles to have the same total number of elements - # This is automatically satisfied if we tile based on output and compute input from that - - # Remove unused tensors from deployment - for bufferName in pointer: - if bufferName not in [inputBufferName, outputBufferName]: - ctxt.lookup(bufferName)._deploy = False - - return tilerModel - - @classmethod - def serializeTilingSolution( - cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], - targetMemLevel: str, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: - outputCubes = [cube.rectangle for cube in absoluteOutputCubes] - - addrNames = ['data_in', 'data_out'] - inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, - operatorRepresentation, addrNames) - - # For reshape, input and output have the same data, just different interpretations - # We need to compute the corresponding input cube for each output cube - inputName = operatorRepresentation['data_in'] - outputName = operatorRepresentation['data_out'] - inputShape = ctxt.lookup(inputName).shape - outputShape = ctxt.lookup(outputName).shape - - replacements = {"size": []} - replacementTypes = {"size": PointerClass(uint16_t)} - - inputLoadSchedule = [] - outputLoadSchedule = [] - - for cube in outputCubes: - # Calculate the flat offset and size for the output cube - outSize = np.prod(cube.dims) - replacements["size"].append(outSize) - - # For reshape, we need to map output cube to input cube - # Calculate flat index range for output cube - outOffset = 0 - outStrides = [] - stride = 1 - for dim in reversed(outputShape): - outStrides.insert(0, stride) - stride *= dim - - for i, (off, dim) in enumerate(zip(cube.offset, cube.dims)): - outOffset += off * outStrides[i] - - # Convert flat offset to input coordinates - inStrides = [] - stride = 1 - for dim in reversed(inputShape): - inStrides.insert(0, stride) - stride *= dim - - inOffset = [] - remaining = outOffset - for i, stride in enumerate(inStrides): - inOffset.append(remaining // stride) - remaining = remaining % stride - - # Calculate input cube dimensions - # For simplicity, treat as 1D cube in input space - inCubeDims = list(inputShape) - inCubeOffset = [0] * len(inputShape) - - # Set the last dimension to the size, and offset based on flat index - totalSize = outSize - if len(inputShape) > 0: - # Compute proper input cube that covers the same elements - # Use a simple approach: linearize the input - inCubeOffset = list(inOffset) - inCubeDims = [1] * len(inputShape) - inCubeDims[-1] = min(totalSize, inputShape[-1] - inCubeOffset[-1]) - remaining = totalSize - inCubeDims[-1] - - for i in range(len(inputShape) - 2, -1, -1): - if remaining <= 0: - break - inCubeDims[i] = min(remaining // np.prod(inputShape[i + 1:]) + 1, inputShape[i]) - remaining -= (inCubeDims[i] - 1) * np.prod(inputShape[i + 1:]) - - inputCube = HyperRectangle(tuple(inCubeOffset), tuple(inCubeDims)) - inputLoadSchedule.append({"data_in": inputCube}) - - for out in outputCubes: - outputLoadSchedule.append({"data_out": out}) - - tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) - variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) - - return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/TileConstraints/__init__.py b/Deeploy/Targets/Snitch/TileConstraints/__init__.py index aece19d881..c58816f9df 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/__init__.py +++ b/Deeploy/Targets/Snitch/TileConstraints/__init__.py @@ -7,4 +7,3 @@ from .FloatMulTileConstraint import * from .iNoNormTileConstraint import * from .iSoftmaxTileConstraint import * -from .ReshapeTileConstraint import * diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index 5a5f4d0bf4..6d99624e34 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -6,6 +6,7 @@ from Deeploy.Targets.Generic.TileConstraints.ConcatTileConstraint import ConcatTileConstraint from Deeploy.Targets.Generic.TileConstraints.iHardswishTileConstraint import iHardswishTileConstraint from Deeploy.Targets.Generic.TileConstraints.iRMSNormTileConstraint import iRMSNormTileConstraint +from Deeploy.Targets.Generic.TileConstraints.NOPTileConstraint import NOPTileConstraint from Deeploy.Targets.Generic.TileConstraints.TransposeTileConstraint import TransposeTileConstraint from Deeploy.Targets.PULPOpen.TileConstraints.GatherTileConstraint import GatherTileConstraint from Deeploy.Targets.PULPOpen.TileConstraints.MatMulTileConstraint import MatMulTileConstraint @@ -17,7 +18,6 @@ from Deeploy.Targets.Snitch.TileConstraints.FloatDivTileConstraint import FloatDivTileConstraint from Deeploy.Targets.Snitch.TileConstraints.FloatMulTileConstraint import FloatMulTileConstraint from Deeploy.Targets.Snitch.TileConstraints.GemmTileConstraint import GemmTileConstraint -from Deeploy.Targets.Snitch.TileConstraints.ReshapeTileConstraint import ReshapeTileConstraint from Deeploy.Targets.Snitch.TileConstraints.RqGemmTileConstraint import RqGemmTileConstraint from Deeploy.TilingExtension.TilerExtension import TilingReadyNodeBindings @@ -57,7 +57,7 @@ tileConstraint = TransposeTileConstraint()) SnitchReshapeTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchReshapeBindings, - tileConstraint = ReshapeTileConstraint()) + tileConstraint = NOPTileConstraint()) SnitchGatherTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchGatherBindings, tileConstraint = GatherTileConstraint()) From e55c7bcf0933dd938f649564e48166c528267d8f Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 14:27:44 +0100 Subject: [PATCH 29/50] fix: enable tiled deployment for NOP operations and L2 memory management - Add serializeTilingSolution to NOPTileConstraint for tiled Reshape/Flatten - Change NOP geometrical constraints from <= to == to prevent splitting - Add TilingVariableReplacement("L2") and MemoryManagementGeneration("L2") to Snitch TiledTransformer to properly allocate intermediate L2 tensors --- .../TileConstraints/NOPTileConstraint.py | 46 +++++++++++++++++-- Deeploy/Targets/Snitch/Bindings.py | 2 + 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py b/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py index d24abb4ba5..2ddf344847 100644 --- a/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py +++ b/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py @@ -2,11 +2,18 @@ # # SPDX-License-Identifier: Apache-2.0 -from typing import Dict, List +from typing import Dict, List, Tuple -from Deeploy.DeeployTypes import NetworkContext +import numpy as np + +from Deeploy.AbstractDataTypes import PointerClass +from Deeploy.CommonExtensions.DataTypes import uint16_t +from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation +from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel +from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ + VariableReplacementScheme class NOPTileConstraint(TileConstraint): @@ -34,7 +41,7 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw tilerModel.addTensorDimToModel(ctxt, bufferName) for idx, shapeDim in enumerate(_buffer.shape): - tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) <= shapeDim) + tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) == shapeDim) # Remove unused tensors from deployment for bufferName in pointer: @@ -42,3 +49,36 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw ctxt.lookup(bufferName)._deploy = False return tilerModel + + @classmethod + def serializeTilingSolution( + cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], + targetMemLevel: str, ctxt: NetworkContext, + operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: + outputCubes = [cube.rectangle for cube in absoluteOutputCubes] + + addrNames = ['data_in', 'data_out'] + inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, + operatorRepresentation, addrNames) + + inputName = operatorRepresentation['data_in'] + inputShape = ctxt.lookup(inputName).shape + + replacements = {"size": []} + replacementTypes = {"size": PointerClass(uint16_t)} + + inputLoadSchedule = [] + outputLoadSchedule = [] + + for cube in outputCubes: + replacements["size"].append(np.prod(cube.dims)) + inputCube = HyperRectangle(tuple([0] * len(inputShape)), tuple(inputShape)) + inputLoadSchedule.append({"data_in": inputCube}) + + for out in outputCubes: + outputLoadSchedule.append({"data_out": out}) + + tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) + variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) + + return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 75bfb1ca35..883824b4ff 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -52,7 +52,9 @@ SnitchClusterTiling("L2", "L1", SnitchDma()), ArgumentStructGeneration(), MemoryManagementGeneration("L1"), + TilingVariableReplacement("L2"), MemoryAwareFunctionCallClosure(writeback = False, generateStruct = True), + MemoryManagementGeneration("L2"), MemoryManagementGeneration() ]) From 13a4e642c32ab6a04fe835db29f5f04baf6c30d5 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 15:00:24 +0100 Subject: [PATCH 30/50] fix: restore NOPTileConstraint compatibility with Siracusa/Neureka tiled platforms --- Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py | 2 +- DeeployTest/test_generic_config.py | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py b/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py index 2ddf344847..4dd487b3aa 100644 --- a/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py +++ b/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py @@ -41,7 +41,7 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw tilerModel.addTensorDimToModel(ctxt, bufferName) for idx, shapeDim in enumerate(_buffer.shape): - tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) == shapeDim) + tilerModel.addConstraint(tilerModel.getTensorDimVar(tensorName = bufferName, dimIdx = idx) <= shapeDim) # Remove unused tensors from deployment for bufferName in pointer: diff --git a/DeeployTest/test_generic_config.py b/DeeployTest/test_generic_config.py index c78ad75985..e9e8480dd1 100644 --- a/DeeployTest/test_generic_config.py +++ b/DeeployTest/test_generic_config.py @@ -22,7 +22,6 @@ "Kernels/FP32/Mul", "Kernels/FP32/LayerNorm", "Kernels/FP32/RMSNorm/separate_ops", - "Kernels/FP32/RMSNorm/single_fused_op", "Kernels/FP32/Pow/Scalar", "Kernels/FP32/Pow/Vector", "Kernels/FP32/ReduceMean/KeepDims/Add_ReduceMean", From 55b675091f54fc0ccdea4005db08dd0488d94d71 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 16:13:43 +0100 Subject: [PATCH 31/50] fix: correct integer type inference for all-zero input arrays --- DeeployTest/testUtils/typeMapping.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/DeeployTest/testUtils/typeMapping.py b/DeeployTest/testUtils/typeMapping.py index abb9edddf7..232fd1e274 100644 --- a/DeeployTest/testUtils/typeMapping.py +++ b/DeeployTest/testUtils/typeMapping.py @@ -39,11 +39,6 @@ def parseDataType(name: str) -> type: def isInteger(x: npt.NDArray) -> bool: - # If all values are zero, respect the original numpy dtype (ambiguous case) - if np.all(x == 0): - return np.issubdtype(x.dtype, np.integer) - # If any value has non-zero fractional part, it's float - # Otherwise (all values are integers like 1.0, 2.0), it's integer return np.abs((x.astype(int) - x)).max() <= 0.001 From 06010e47f8e3fba441f831171660e43fb7b67876 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 16:25:25 +0100 Subject: [PATCH 32/50] fix: preserve original dtype for all-zero input type inference --- Deeploy/DeeployTypes.py | 7 ------- DeeployTest/generateNetwork.py | 6 ++++-- DeeployTest/testMVP.py | 12 ++++++++---- DeeployTest/testUtils/typeMapping.py | 20 +++++++++++++++++--- 4 files changed, 29 insertions(+), 16 deletions(-) diff --git a/Deeploy/DeeployTypes.py b/Deeploy/DeeployTypes.py index 5349748453..9367d9406b 100644 --- a/Deeploy/DeeployTypes.py +++ b/Deeploy/DeeployTypes.py @@ -3105,16 +3105,9 @@ def _exportGraph(self, folderPath, fileName): raise OSError(f"Error exporting the context to: {absoluteOnnxPath}") # VJUNG: ONNX-Graphsurgeon needs tensors to be in their export types -<<<<<<< HEAD - constTensors = [tensor for tensor in self.graph.tensors().values() if isinstance(tensor, gs.Constant)] - for tensor in constTensors: - if tensor.dtype != tensor.export_dtype: -======= - # Added hasattr check for compatibility with different onnx-graphsurgeon versions constTensors = [tensor for tensor in self.graph.tensors().values() if isinstance(tensor, gs.Constant)] for tensor in constTensors: if hasattr(tensor, 'export_dtype') and tensor.dtype != tensor.export_dtype: ->>>>>>> 937e3cb3 (refactor: restore Snitch framework code to origin/devel) tensor.values = tensor.values.astype(tensor.export_dtype) model = gs.export_onnx(self.graph) diff --git a/DeeployTest/generateNetwork.py b/DeeployTest/generateNetwork.py index f029be7361..bc067955fd 100644 --- a/DeeployTest/generateNetwork.py +++ b/DeeployTest/generateNetwork.py @@ -73,7 +73,8 @@ def generateNetwork(args): test_inputs, test_outputs, graph = generateDebugConfig(inputs, outputs, activations, graph) else: - # Load as float64 and infer types later + # Load as float64 for uniform handling, but preserve original dtypes for type inference + test_input_original_dtypes = [inputs[x].dtype for x in inputs.files] test_inputs = [inputs[x].reshape(-1).astype(np.float64) for x in inputs.files] test_outputs = [outputs[x].reshape(-1).astype(np.float64) for x in outputs.files] @@ -122,7 +123,8 @@ def generateNetwork(args): _type = PointerClass(_type) else: - _type, offset = inferTypeAndOffset(values, signProp) + original_dtype = test_input_original_dtypes[index] if index < len(test_input_original_dtypes) else None + _type, offset = inferTypeAndOffset(values, signProp, original_dtype = original_dtype) inputTypes[f"input_{index}"] = _type inputOffsets[f"input_{index}"] = offset diff --git a/DeeployTest/testMVP.py b/DeeployTest/testMVP.py index 01216984af..0f0c7ccdfc 100644 --- a/DeeployTest/testMVP.py +++ b/DeeployTest/testMVP.py @@ -68,7 +68,8 @@ def setupDeployer(graph: gs.Graph, memoryHierarchy: MemoryHierarchy, defaultTarg inputs = np.load(f'{args.dir}/inputs.npz') tensors = graph.tensors() - # Load as int64 and infer types later + # Load as float64 for uniform handling, but preserve original dtypes for type inference + test_input_original_dtypes = [inputs[x].dtype for x in inputs.files] test_inputs = [inputs[x].reshape(-1).astype(np.float64) for x in inputs.files] platform, signProp = mapPlatform(args.platform) @@ -83,7 +84,8 @@ def setupDeployer(graph: gs.Graph, memoryHierarchy: MemoryHierarchy, defaultTarg cluster.n_cores = args.cores for index, num in enumerate(test_inputs): - _type, offset = inferTypeAndOffset(num, signProp) + original_dtype = test_input_original_dtypes[index] if index < len(test_input_original_dtypes) else None + _type, offset = inferTypeAndOffset(num, signProp, original_dtype = original_dtype) inputTypes[f"input_{index}"] = _type inputOffsets[f"input_{index}"] = offset @@ -241,7 +243,8 @@ def setupDeployer(graph: gs.Graph, memoryHierarchy: MemoryHierarchy, defaultTarg if args.debug: test_inputs, test_outputs, graph = generateDebugConfig(inputs, outputs, activations, graph) else: - # Load as int64 and infer types later + # Load as float64 for uniform handling, but preserve original dtypes for type inference + test_input_original_dtypes = [inputs[x].dtype for x in inputs.files] test_inputs = [inputs[x].reshape(-1).astype(np.float64) for x in inputs.files] test_outputs = [outputs[x].reshape(-1).astype(np.float64) for x in outputs.files] @@ -280,7 +283,8 @@ def setupDeployer(graph: gs.Graph, memoryHierarchy: MemoryHierarchy, defaultTarg log.debug(f"Deployer: {deployer}") for index, num in enumerate(test_inputs): - _type, offset = inferTypeAndOffset(num, signProp) + original_dtype = test_input_original_dtypes[index] if index < len(test_input_original_dtypes) else None + _type, offset = inferTypeAndOffset(num, signProp, original_dtype = original_dtype) inputTypes[f"input_{index}"] = _type inputOffsets[f"input_{index}"] = offset diff --git a/DeeployTest/testUtils/typeMapping.py b/DeeployTest/testUtils/typeMapping.py index 232fd1e274..202dcac801 100644 --- a/DeeployTest/testUtils/typeMapping.py +++ b/DeeployTest/testUtils/typeMapping.py @@ -42,12 +42,20 @@ def isInteger(x: npt.NDArray) -> bool: return np.abs((x.astype(int) - x)).max() <= 0.001 -def inferMinimalType(values: np.ndarray, default: Type[BaseType] = int8_t) -> Type[BaseType]: +def inferMinimalType(values: np.ndarray, + default: Type[BaseType] = int8_t, + original_dtype: np.dtype = None) -> Type[BaseType]: # WIESEP: We cannot do type inference for empty arrays. if np.prod(values.shape) == 0: print(f"Warning: Empty input array for type inference for {values}!") return default + # For all-zero arrays, use original dtype to distinguish int vs float + if np.all(values == 0) and original_dtype is not None: + if np.issubdtype(original_dtype, np.floating): + return minimalFloatType(values) + return minimalIntegerType(values) + if isInteger(values): return minimalIntegerType(values) else: @@ -67,7 +75,9 @@ def signPropTypeAndOffset(_type: Type[IntegerImmediate]) -> Tuple[Type[IntegerIm return signedType, 2**(signedType.typeWidth - 1) -def inferTypeAndOffset(values: np.ndarray, signProp: bool = False) -> Tuple[Type[Pointer], int]: +def inferTypeAndOffset(values: np.ndarray, + signProp: bool = False, + original_dtype: np.dtype = None) -> Tuple[Type[Pointer], int]: """Infers the data type of the provided input array. Parameters @@ -77,13 +87,17 @@ def inferTypeAndOffset(values: np.ndarray, signProp: bool = False) -> Tuple[Type signProp : bool Whether to consider signedness when inferring the data type. + + original_dtype : np.dtype, optional + Original numpy dtype before float64 cast, used to resolve all-zero ambiguity. + Returns ------- Tuple[Type[BaseType], int] The inferred type and offset """ - _type = inferMinimalType(values) + _type = inferMinimalType(values, original_dtype = original_dtype) if signProp and issubclass(_type, IntegerImmediate): _type, offset = signPropTypeAndOffset(_type) From 85a68fddb00b44bb87c21991a620d3fd1a0841c1 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Fri, 6 Feb 2026 17:52:51 +0100 Subject: [PATCH 33/50] make format update --- DeeployTest/test_snitch_config.py | 5 +++++ DeeployTest/test_snitch_tiled_config.py | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/DeeployTest/test_snitch_config.py b/DeeployTest/test_snitch_config.py index 2ceca80d0f..5284ff455c 100644 --- a/DeeployTest/test_snitch_config.py +++ b/DeeployTest/test_snitch_config.py @@ -9,6 +9,11 @@ DEFAULT_NUM_CORES = 9 KERNEL_TESTS = [ + "Kernels/FP32/Div", + "Kernels/FP32/Hardswish", + "Kernels/FP32/Mul", + "Kernels/FP32/RMSNorm/separate_ops", + "Kernels/FP32/RMSNorm/single_fused_op", "Kernels/FP32/Softmax/Regular", "Kernels/Integer/Add/Large", "Kernels/Integer/Add/Regular", diff --git a/DeeployTest/test_snitch_tiled_config.py b/DeeployTest/test_snitch_tiled_config.py index b43de90f6d..2a9a564588 100644 --- a/DeeployTest/test_snitch_tiled_config.py +++ b/DeeployTest/test_snitch_tiled_config.py @@ -11,11 +11,16 @@ # L2 single-buffer tests with different L1 sizes # Format: {test_name: [L1_sizes]} L2_SINGLEBUFFER_KERNELS = { - "Kernels/Integer/Add/Large": [5000, 10000], - "Kernels/Integer/Softmax/Large": [5000, 10000], + "Kernels/FP32/Div": [2000, 5000, 10000], + "Kernels/FP32/Hardswish": [2000, 5000, 10000], + "Kernels/FP32/Mul": [2000, 5000, 10000], + "Kernels/FP32/RMSNorm/separate_ops": [2000, 5000, 10000], + "Kernels/FP32/RMSNorm/single_fused_op": [2000, 5000, 10000], "Kernels/FP32/Softmax/Regular": [2000, 5000, 10000], "Kernels/FP32/GEMM/Regular": [2000, 5000, 10000], "Kernels/FP32/GEMM/TransB": [2000, 5000, 10000], + "Kernels/Integer/Add/Large": [5000, 10000], + "Kernels/Integer/Softmax/Large": [5000, 10000], "Kernels/Integer/iNoNorm": [5000, 10000], "Kernels/Integer/Add/Regular_RQ": [5000, 10000], "Kernels/Integer/GEMM/Regular_RQPerRow": [2000, 5000], From 182a2c31bd71fe2ff39c5022a1f05ba2a53f1d3d Mon Sep 17 00:00:00 2001 From: lee2716 Date: Mon, 9 Feb 2026 18:15:56 +0100 Subject: [PATCH 34/50] update rmsnorm test --- CMakeLists.txt | 6 +++--- DeeployTest/testUtils/platformMapping.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6bb752edb5..4c8a024c15 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,8 +20,8 @@ if(TOOLCHAIN STREQUAL GCC) set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) endif() -set(platform MemPool CACHE STRING "Platform (MemPool, SoftHier, QEMU, Siracusa, Siracusa_w_neureka, PULP-Open, GAP9, Generic, Snitch, Snitch_tiled)") -set_property(CACHE platform PROPERTY STRINGS MemPool SoftHier QEMU Siracusa Siracusa_w_neureka PULP-Open GAP9 Generic Snitch Snitch_tiled) +set(platform MemPool CACHE STRING "Platform (MemPool, SoftHier, QEMU, Siracusa, Siracusa_w_neureka, PULP-Open, GAP9, Generic, Snitch)") +set_property(CACHE platform PROPERTY STRINGS MemPool SoftHier QEMU Siracusa Siracusa_w_neureka PULP-Open GAP9 Generic Snitch) if(platform STREQUAL MemPool) message(STATUS "Building for platform 'MemPool'") @@ -243,7 +243,7 @@ if(platform STREQUAL GAP9) endif() -if(platform STREQUAL Snitch OR platform STREQUAL Snitch_tiled) +if(platform STREQUAL Snitch) if(TOOLCHAIN STREQUAL LLVM) set(CMAKE_TOOLCHAIN_FILE ${CMAKE_CURRENT_LIST_DIR}/cmake/snitch/toolchain_llvm.cmake) diff --git a/DeeployTest/testUtils/platformMapping.py b/DeeployTest/testUtils/platformMapping.py index 2608d5b795..9d526906f9 100644 --- a/DeeployTest/testUtils/platformMapping.py +++ b/DeeployTest/testUtils/platformMapping.py @@ -31,7 +31,7 @@ from Deeploy.Targets.SoftHier.Platform import SoftHierOptimizer, SoftHierPlatform _SIGNPROP_PLATFORMS = ["Apollo3", "Apollo4", "QEMU-ARM", "Generic", "MemPool", "SoftHier"] -_NONSIGNPROP_PLATFORMS = ["Siracusa", "Siracusa_w_neureka", "PULPOpen", "Snitch", "Snitch_tiled", "Chimera", "GAP9"] +_NONSIGNPROP_PLATFORMS = ["Siracusa", "Siracusa_w_neureka", "PULPOpen", "Snitch", "Chimera", "GAP9"] _PLATFORMS = _SIGNPROP_PLATFORMS + _NONSIGNPROP_PLATFORMS From 03125c0f529108a297a27564f6d6d12691d9febb Mon Sep 17 00:00:00 2001 From: lee2716 Date: Tue, 17 Feb 2026 15:09:02 +0100 Subject: [PATCH 35/50] feat: replace trivial all-1.0 weights with true FP32 random initialization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Xavier uniform init for MatMul weights, RMSNorm weights ~1.0±0.15, diverse random inputs. Verified 0/64 errors on both tiled and untiled. --- .../Snitch/Templates/FloatDivTemplate.py | 12 +++++++----- .../FP32/microLlama1/activations.npz | Bin 355738 -> 211302 bytes .../microLlama/FP32/microLlama1/inputs.npz | Bin 9138 -> 9138 bytes .../microLlama/FP32/microLlama1/network.onnx | Bin 2186293 -> 2186293 bytes .../microLlama/FP32/microLlama1/outputs.npz | Bin 526 -> 526 bytes 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py index 9cc1375610..8e864082a4 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -4,6 +4,8 @@ from typing import Dict, List, Tuple +from mako.template import Template as MakoTemplate + from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation @@ -19,13 +21,13 @@ def alignToContext(self, ctxt: NetworkContext, # Check if scalar broadcasting is_scalar = operatorRepresentation.get('is_scalar', False) - # Dynamically select template based on is_scalar flag + # IMPORTANT: Must recompile self.template (Mako Template object), + # not just assign self.templateStr. NodeTemplate.generate() uses + # the pre-compiled self.template, not self.templateStr. if is_scalar: - # Use scalar broadcasting version - self.templateStr = FloatDivScalarTemplateStr + self.template = MakoTemplate(FloatDivScalarTemplateStr, strict_undefined=True) else: - # Use element-wise version - self.templateStr = FloatDivTemplateStr + self.template = MakoTemplate(FloatDivTemplateStr, strict_undefined=True) return ctxt, operatorRepresentation, [] diff --git a/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/activations.npz b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/activations.npz index d077979636ff7de35c03b12c1df7ae2e35a19937..cbc68f93874a1ad9792ebbd169bfb33705b8a319 100644 GIT binary patch literal 211302 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 diff --git a/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/inputs.npz b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/inputs.npz index 89c505c6693900de9c18101aa892f42b817402ff..d8cfc58075ab9a25a9f3ff97b0d0399387b5926b 100644 GIT binary patch literal 9138 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 literal 9138 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

n;gA%ViJP7lLB{%DbZ101TE4nL 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 z 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

%(BAa^L*MJr`KBHBk`@y>F7J9JS27~u4uL#^f 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� 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 kf1vd@H2l+h~~RFNiL*KCnwxwU|qfdieT-|%UX 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

w4wPby=OQ@2>L_l=HKVK7?b!v} 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

E=>yq=x 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ξ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 B@m>G` diff --git a/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/outputs.npz b/DeeployTest/Tests/Models/microLlama/FP32/microLlama1/outputs.npz index 07fda6854dc56be62ead10027bc9e4eab42d2308..d6dc22736fcd5a89a37b2eb7e058a52b8e8d1026 100644 GIT binary patch delta 309 zcmeBU>0=QJ@MdNaVSoTdhIBWdbrXfw)E`b*v;Xg=$97MyPu|y=AHBc1w#q)L>cZX? z#~AH7W-Qt3KmDBj{Y}F5_LEN938$Odc3!o%-}=gC|D&tt_eWUo*w^mXus<$NVt;Y> zD*MfnT>JIDb?(orX0qqh6g=?jbK$6;`TLD#rA(o^|t5aEw=9xUb|mFOflAF%q}wu6g{FZpuLJvZ+qaII`)R9Ax)Q_nYMx2-89Oe$Sf8(yv9 z6_yf}+M%YV`?V`siyKx+o_jaGh>*m<&+sW%yQNB++w9rb!|uTjp9Mw zA+PTjYYz27GH!6Mq!!~w%lOxd-l=vt{~d%ckjD4WZJ5Cy^@1=&Cm;~WJ1{%+5BM%z z4eKaA2Jh59977(S$b3kEWNGyJi|^n+&?MiP!e5Zz Date: Tue, 17 Feb 2026 16:13:53 +0100 Subject: [PATCH 36/50] merge HardSwishChecker, rename parser, fix Softmax types, yapf fix --- .../workflows/ci-platform-snitch-tiled.yml | 24 +---------------- .github/workflows/ci-platform-snitch.yml | 26 +------------------ Deeploy/Targets/Generic/TypeCheckers.py | 22 ++++------------ Deeploy/Targets/Snitch/Bindings.py | 6 ++--- Deeploy/Targets/Snitch/Parsers.py | 2 +- Deeploy/Targets/Snitch/Platform.py | 6 ++--- .../Snitch/Templates/FloatDivTemplate.py | 4 +-- .../Snitch/Templates/FloatMatMulTemplate.py | 2 +- DeeployTest/test_snitch_config.py | 2 ++ TargetLibraries/Snitch/inc/kernel/Softmax.h | 4 +-- TargetLibraries/Snitch/src/Add_fp32.c | 6 ----- TargetLibraries/Snitch/src/Softmax_fp32.c | 4 +-- 12 files changed, 23 insertions(+), 85 deletions(-) diff --git a/.github/workflows/ci-platform-snitch-tiled.yml b/.github/workflows/ci-platform-snitch-tiled.yml index eedab6641d..4ecd45fba9 100644 --- a/.github/workflows/ci-platform-snitch-tiled.yml +++ b/.github/workflows/ci-platform-snitch-tiled.yml @@ -35,26 +35,4 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - tests-config: | - [ - {"name":"Kernels/Integer/Add/Large","L1":[5000,10000]}, - {"name":"Kernels/Integer/Softmax/Large","L1":[5000,10000]}, - - {"name":"Kernels/FP32/Softmax/Regular","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/RMSNorm/single_fused_op","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/MatMul","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/Add/Regular","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/Hardswish","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/Div","L1":[2000,5000,10000]}, - - {"name":"Kernels/FP32/GEMM/Regular","L1":[2000,5000,10000]}, - {"name":"Kernels/FP32/GEMM/TransB","L1":[2000,5000,10000]}, - - {"name":"Kernels/Integer/iNoNorm","L1":[5000,10000]}, - {"name":"Kernels/Integer/Add/Regular_RQ","L1":[5000,10000]}, - {"name":"Kernels/Integer/GEMM/Regular_RQPerRow","L1":[2000,5000]}, - - {"name":"Models/microLlama/FP32/microLlama1","L1":[10000,20000]} - ] - simulators: | - gvsoc + pytest-marker: "(kernels or models) and singlebuffer and l2" diff --git a/.github/workflows/ci-platform-snitch.yml b/.github/workflows/ci-platform-snitch.yml index 26f238a3f2..703a42792d 100644 --- a/.github/workflows/ci-platform-snitch.yml +++ b/.github/workflows/ci-platform-snitch.yml @@ -35,28 +35,4 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - test-names: | - Kernels/FP32/Softmax/Regular - Kernels/FP32/RMSNorm/single_fused_op - Kernels/FP32/MatMul - Kernels/FP32/Add/Regular - Kernels/FP32/Hardswish - Kernels/FP32/Div - - Kernels/Integer/Add/Large - Kernels/Integer/Add/Regular - - Kernels/Integer/Softmax/Large - Kernels/Integer/Softmax/Regular - - Kernels/Integer/MatMul/Regular - - Kernels/Integer/iNoNorm - Kernels/Integer/GEMM/Regular_RQPerRow - Kernels/Integer/Add/Regular_RQ - Kernels/Integer/GEMM/TransB_RQ - - Models/microLlama/FP32/microLlama1 - num-cores: 9 - simulators: | - gvsoc + pytest-marker: "kernels or models" diff --git a/Deeploy/Targets/Generic/TypeCheckers.py b/Deeploy/Targets/Generic/TypeCheckers.py index c08c3c4a86..88b1b97cf8 100644 --- a/Deeploy/Targets/Generic/TypeCheckers.py +++ b/Deeploy/Targets/Generic/TypeCheckers.py @@ -6,7 +6,7 @@ import numpy as np -from Deeploy.AbstractDataTypes import Pointer +from Deeploy.AbstractDataTypes import FloatImmediate, Pointer from Deeploy.CommonExtensions.TypeCheckers.SignPropTypeChecker import SignPropTypeChecker from Deeploy.DeeployTypes import ConstantBuffer, OperatorRepresentation, VariableBuffer @@ -409,7 +409,10 @@ def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[ def _inferNumLevels(self, inputs: List[VariableBuffer], operatorRepresentation: OperatorRepresentation) -> List[int]: - return [2**(4 * self.input_types[0].referencedType.typeWidth)] + input_type = self.input_types[0].referencedType + if issubclass(input_type, FloatImmediate): + return [2**(input_type.typeWidth)] + return [2**(4 * input_type.typeWidth)] def _inferSignedness(self, inputs: List[VariableBuffer], operatorRepresentation: OperatorRepresentation) -> List[bool]: @@ -632,18 +635,3 @@ def _inferSignedness(self, inputs: List[VariableBuffer], return [False] -class HardSwishChecker(SignPropTypeChecker): - - def __init__(self, input_types: Sequence[Type[Pointer]], output_types: Sequence[Type[Pointer]]): - super().__init__(input_types, output_types) - - def _inferNumLevels(self, inputs: List[VariableBuffer], - operatorRepresentation: OperatorRepresentation) -> List[int]: - return [2**(self.input_types[0].referencedType.typeWidth)] - - def _inferSignedness(self, inputs: List[VariableBuffer], - operatorRepresentation: OperatorRepresentation) -> List[bool]: - if inputs[0]._signed: - return [True] - else: - return [False] diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 883824b4ff..cb58f7fc53 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -13,7 +13,7 @@ from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration from Deeploy.Targets.Generic.Templates import ConcatTemplate, iNoNormTemplate from Deeploy.Targets.Generic.TypeCheckers import AddChecker, ConcatChecker, DivChecker, GatherChecker, GEMMChecker, \ - HardSwishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ + HardswishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ TransposeChecker, iNoNormChecker from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ SnitchSynchCoresPass @@ -126,13 +126,13 @@ # HardSwish Bindings (Tiled) SnitchHardSwishBindings = [ - NodeBinding(HardSwishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, + NodeBinding(HardswishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, TiledTransformer) ] # HardSwish Bindings (Non-tiled) BasicHardSwishBindings = [ - NodeBinding(HardSwishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, + NodeBinding(HardswishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, BasicTransformer) ] diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 3e24a622c8..c91274fc8c 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -161,7 +161,7 @@ def parseNodeCtxt(self, return ctxt, True -class HardSwishParser(NodeParser): +class SnitchHardSwishParser(NodeParser): def __init__(self): super().__init__() diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index 1a3ae0ed66..4acc794da2 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -23,8 +23,8 @@ SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass from Deeploy.Targets.PULPOpen.Platform import RQAddMapper from Deeploy.Targets.Snitch.Bindings import BasicSnitchTransposeBindings -from Deeploy.Targets.Snitch.Parsers import HardSwishParser, SnitchAddParser, SnitchDivParser, SnitchGEMMParser, \ - SnitchMulParser, SnitchRMSNormParser, SnitchRQGEMMParser +from Deeploy.Targets.Snitch.Parsers import SnitchAddParser, SnitchDivParser, SnitchGEMMParser, \ + SnitchHardSwishParser, SnitchMulParser, SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate from Deeploy.Targets.Snitch.Tiler import SnitchAddTileReadyBindings, SnitchConcatTilingReadyBindings, \ SnitchDivTilingReadyBindings, SnitchGatherTilingReadyBindings, SnitchGemmTilingReadyBindings, \ @@ -59,7 +59,7 @@ RQAddMapper = NodeMapper(RQAddParser(), SnitchRQAddTilingReadyBindings) AddMapper = NodeMapper(SnitchAddParser(), SnitchAddTileReadyBindings) RMSNormMapper = NodeMapper(SnitchRMSNormParser(), SnitchRMSNormTilingReadyBindings) -HardSwishMapper = NodeMapper(HardSwishParser(), SnitchHardSwishTilingReadyBindings) +HardSwishMapper = NodeMapper(SnitchHardSwishParser(), SnitchHardSwishTilingReadyBindings) DivMapper = NodeMapper(SnitchDivParser(), SnitchDivTilingReadyBindings) MulMapper = NodeMapper(SnitchMulParser(), SnitchMulTilingReadyBindings) diff --git a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py index 8e864082a4..a4a7e05bd4 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatDivTemplate.py @@ -25,9 +25,9 @@ def alignToContext(self, ctxt: NetworkContext, # not just assign self.templateStr. NodeTemplate.generate() uses # the pre-compiled self.template, not self.templateStr. if is_scalar: - self.template = MakoTemplate(FloatDivScalarTemplateStr, strict_undefined=True) + self.template = MakoTemplate(FloatDivScalarTemplateStr, strict_undefined = True) else: - self.template = MakoTemplate(FloatDivTemplateStr, strict_undefined=True) + self.template = MakoTemplate(FloatDivTemplateStr, strict_undefined = True) return ctxt, operatorRepresentation, [] diff --git a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py index dc21d633ed..c52a842799 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py @@ -1,4 +1,4 @@ -# SPDX-FileCopyrightText: 202666666 ETH Zurich and University of Bologna +# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 diff --git a/DeeployTest/test_snitch_config.py b/DeeployTest/test_snitch_config.py index 5284ff455c..c132abf9fb 100644 --- a/DeeployTest/test_snitch_config.py +++ b/DeeployTest/test_snitch_config.py @@ -9,8 +9,10 @@ DEFAULT_NUM_CORES = 9 KERNEL_TESTS = [ + "Kernels/FP32/Add/Regular", "Kernels/FP32/Div", "Kernels/FP32/Hardswish", + "Kernels/FP32/MatMul", "Kernels/FP32/Mul", "Kernels/FP32/RMSNorm/separate_ops", "Kernels/FP32/RMSNorm/single_fused_op", diff --git a/TargetLibraries/Snitch/inc/kernel/Softmax.h b/TargetLibraries/Snitch/inc/kernel/Softmax.h index 3795bb4f3b..4b5f6d4bdf 100644 --- a/TargetLibraries/Snitch/inc/kernel/Softmax.h +++ b/TargetLibraries/Snitch/inc/kernel/Softmax.h @@ -9,8 +9,8 @@ #include "DeeploySnitchMath.h" -void Softmax_fp32(float *input, float *output, int32_t ldI, - int32_t batch_offset, int32_t batch_size, int32_t seq_len, +void Softmax_fp32(float *input, float *output, uint32_t ldI, + uint32_t batch_offset, int32_t batch_size, int32_t seq_len, int32_t input_samples); #endif // #define __DEEPLOY_MATH_SOFTMAX_KERNEL_HEADER_ \ No newline at end of file diff --git a/TargetLibraries/Snitch/src/Add_fp32.c b/TargetLibraries/Snitch/src/Add_fp32.c index bffd79854e..785ff0c2b3 100644 --- a/TargetLibraries/Snitch/src/Add_fp32.c +++ b/TargetLibraries/Snitch/src/Add_fp32.c @@ -6,12 +6,6 @@ #include "DeeploySnitchMath.h" -/* - * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna - * - * SPDX-License-Identifier: Apache-2.0 - */ - void Add_fp32(float32_t *pIn1, float32_t *pIn2, float32_t *pOut, uint32_t size) { diff --git a/TargetLibraries/Snitch/src/Softmax_fp32.c b/TargetLibraries/Snitch/src/Softmax_fp32.c index b8abb27845..f8c3d12e42 100644 --- a/TargetLibraries/Snitch/src/Softmax_fp32.c +++ b/TargetLibraries/Snitch/src/Softmax_fp32.c @@ -6,8 +6,8 @@ #include "DeeploySnitchMath.h" -void Softmax_fp32(float32_t *input, float32_t *output, int32_t ldI, - int32_t batch_offset, int32_t batch_size, int32_t seq_len, +void Softmax_fp32(float32_t *input, float32_t *output, uint32_t ldI, + uint32_t batch_offset, int32_t batch_size, int32_t seq_len, int32_t input_samples) { float32_t max_core = 0.0; // max value of the current core From 064981a6148f1f96428e6cc3ba532281e29ab843 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 15:20:33 +0100 Subject: [PATCH 37/50] fix: multi-core safe memory allocation for Snitch platform - AllocateTemplate.py: Add snitchGenericGuardedAllocate template that wraps allocation in DM-core guard + barrier for address consistency - Platform.py: Use guarded allocation instead of per-core snrt_l3alloc to prevent address divergence; remove unused non-tiling mappers - main.c: Move InitNetwork() outside DM-core branch so all cores participate in barrier synchronization during allocation - codeGenerate.py: Place intermediate buffer declarations at file scope (like MemPool) so all cores share consistent buffer pointers --- Deeploy/Targets/Snitch/Platform.py | 11 ++--------- .../Targets/Snitch/Templates/AllocateTemplate.py | 10 ++++++++++ DeeployTest/Platforms/Snitch/main.c | 16 +++++++++------- DeeployTest/testUtils/codeGenerate.py | 4 +++- 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index 4acc794da2..bfa9e3a73a 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -22,7 +22,6 @@ IntegerDivRequantMergePass, MergeConstAddAndRequantPass, MergeTrueIntegerDivRequantShiftPass, RQSSplitPass, \ SkipEmptyConcatPass, SkipUnityRequantPass, iGELURequantMergePass, iHardswishRequantMergePass from Deeploy.Targets.PULPOpen.Platform import RQAddMapper -from Deeploy.Targets.Snitch.Bindings import BasicSnitchTransposeBindings from Deeploy.Targets.Snitch.Parsers import SnitchAddParser, SnitchDivParser, SnitchGEMMParser, \ SnitchHardSwishParser, SnitchMulParser, SnitchRMSNormParser, SnitchRQGEMMParser from Deeploy.Targets.Snitch.Templates import AllocateTemplate, FreeTemplate @@ -33,14 +32,8 @@ SnitchRMSNormTilingReadyBindings, SnitchRQAddTilingReadyBindings, SnitchRqGemmTilingReadyBindings, \ SnitchTransposeTilingReadyBindings -# Mappers without tiling-ready equivalents Pad1DMapper = NodeMapper(Pad1DParser(), BasicPad1DBindings) Pad2DMapper = NodeMapper(Pad2DParser(), BasicPad2DBindings) -UnsqueezeMapper = NodeMapper(UnsqueezeParser(), BasicReshapeBindings) -ReshapeMapper = NodeMapper(ReshapeParser(), BasicReshapeBindings) -TransposeMapper = NodeMapper(TransposeParser(), BasicSnitchTransposeBindings) -ConcatMapper = NodeMapper(ConcatParser(), BasicConcatBindings) - RQIntegerDivMapper = NodeMapper(RQIntegerDivParser(), [BasicRQIntegerDivBinding]) iLayerNormMapper = NodeMapper(iLayerNormParser(), BasicLayerNormBindings) @@ -90,7 +83,7 @@ class SnitchVariableBuffer(VariableBuffer): initTemplate = AllocateTemplate.snitchL2InitTemplate - allocTemplate = AllocateTemplate.snitchGenericAllocate + allocTemplate = AllocateTemplate.snitchGenericGuardedAllocate deallocTemplate = FreeTemplate.snitchGenericFree def _bufferRepresentation(self): @@ -111,7 +104,7 @@ def _bufferRepresentation(self): class SnitchTransientBuffer(TransientBuffer): initTemplate = AllocateTemplate.snitchL2InitTemplate - allocTemplate = AllocateTemplate.snitchGenericAllocate + allocTemplate = AllocateTemplate.snitchGenericGuardedAllocate deallocTemplate = FreeTemplate.snitchGenericFree # allocTemplate = AllocateTemplate.snitchL2AllocateTemplate diff --git a/Deeploy/Targets/Snitch/Templates/AllocateTemplate.py b/Deeploy/Targets/Snitch/Templates/AllocateTemplate.py index 6c1d898645..49decc5157 100644 --- a/Deeploy/Targets/Snitch/Templates/AllocateTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/AllocateTemplate.py @@ -55,3 +55,13 @@ // ${name} with size ${size} allocated in L2! % endif """) + +snitchGenericGuardedAllocate = NodeTemplate(""" +% if _memoryLevel == "L1": +if (snrt_is_dm_core()) { ${name} = (${type.typeName}) snrt_l1alloc(sizeof(${type.referencedType.typeName}) * ${size}); } +snrt_cluster_hw_barrier();\n +% else: +if (snrt_is_dm_core()) { ${name} = (${type.typeName}) snrt_l3alloc(sizeof(${type.referencedType.typeName}) * ${size}); } +snrt_cluster_hw_barrier();\n +% endif +""") diff --git a/DeeployTest/Platforms/Snitch/main.c b/DeeployTest/Platforms/Snitch/main.c index a7251f3844..cff0e0b20a 100644 --- a/DeeployTest/Platforms/Snitch/main.c +++ b/DeeployTest/Platforms/Snitch/main.c @@ -25,20 +25,22 @@ int main(void) { uint32_t const num_compute_cores = snrt_global_compute_core_num(); #endif + // All cores call InitNetwork: allocations inside are DM-core guarded + // with barriers, so all cores must participate for barrier balance. +#ifndef NOPRINT + if (snrt_is_dm_core()) { + printf("Initializing...\r\n"); + } +#endif + InitNetwork(core_id, 1); + if (snrt_is_dm_core()) { #ifndef CI printf("Network running on %d of %d compute cores (+%d DM cores) on %d " "clusters\r\n", num_compute_cores, snrt_global_compute_core_num(), snrt_cluster_num() * snrt_cluster_dm_core_num(), snrt_cluster_num()); -#endif - -#ifndef NOPRINT - printf("Initializing...\r\n"); -#endif - InitNetwork(core_id, 1); -#ifndef CI for (uint32_t buf = 0; buf < DeeployNetwork_num_inputs; buf++) { printf("testInputVector%d @ %p\r\n", buf, testInputVector[buf]); printf("DeeployNetwork_input_%d @ %p and %u elements\r\n", buf, diff --git a/DeeployTest/testUtils/codeGenerate.py b/DeeployTest/testUtils/codeGenerate.py index 39a44d9442..1397dcbec3 100644 --- a/DeeployTest/testUtils/codeGenerate.py +++ b/DeeployTest/testUtils/codeGenerate.py @@ -10,6 +10,7 @@ from Deeploy.DeeployTypes import CodeGenVerbosity, ConstantBuffer, NetworkDeployer, VariableBuffer from Deeploy.Targets.MemPool.Platform import MemPoolPlatform from Deeploy.Targets.PULPOpen.Platform import MemoryPULPPlatform, MemoryPULPPlatformWrapper, PULPPlatform +from Deeploy.Targets.Snitch.Platform import SnitchPlatform _TEXT_ALIGN = 30 @@ -163,7 +164,8 @@ def generateTestNetworkImplementation(deployer: NetworkDeployer, verbosityCfg: C retStr += deployer.generateGlobalDefinitionCode() # WIESEP: Mempool assigns section attributes to intermediate buffers to allow . - if isinstance(deployer.Platform, MemPoolPlatform): + # Snitch also needs file-scope declarations for multi-core buffer sharing. + if isinstance(deployer.Platform, (MemPoolPlatform, SnitchPlatform)): retStr += deployer.generateInferenceInitializationCode() retStr += """ void RunNetwork(__attribute__((unused)) uint32_t core_id, __attribute__((unused)) uint32_t numThreads){ From 9be87681cfe7f44657a3cb22ccdd02ad1246351d Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 15:22:25 +0100 Subject: [PATCH 38/50] feat: multi-core MatMul, Softmax kernels and fix Mul template - FloatMatMulTemplate: remove single-core guard, use multi-core matmul_fp32_opt kernel - FloatSoftmaxTemplate: rewrite as simple multi-core template, remove complex class with alignToContext - FloatMulTemplate: fix Mako template recompilation in alignToContext (must recompile self.template, not just assign self.templateStr) - MatMul.h: add matmul_fp32_opt declaration - Softmax.h/Softmax_fp32.c: rewrite as multi-core kernel parallelizing across batch dimension --- .../Snitch/Templates/FloatMatMulTemplate.py | 7 +- .../Snitch/Templates/FloatMulTemplate.py | 12 +-- .../Snitch/Templates/FloatSoftmaxTemplate.py | 36 ++------ TargetLibraries/Snitch/inc/kernel/MatMul.h | 17 ++++ TargetLibraries/Snitch/inc/kernel/Softmax.h | 7 +- TargetLibraries/Snitch/src/Softmax_fp32.c | 83 +++++++++++++------ 6 files changed, 92 insertions(+), 70 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py index c52a842799..939822c944 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMatMulTemplate.py @@ -4,16 +4,17 @@ from Deeploy.DeeployTypes import NodeTemplate -# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency +# Multi-core MatMul: all compute cores enter, kernel handles work distribution internally. +# Framework adds snrt_is_compute_core() guard and barriers via SnitchCoreFilterPass/SnitchSynchCoresPass. referenceTemplate = NodeTemplate(""" // Matmul (Name: ${nodeName}, Op: ${nodeOp}) -if (snrt_cluster_core_idx() == 0) { +{ ${A_type.typeName} ref_${data_out}_${A} = ${A}; ${B_type.typeName} ref_${data_out}_${B} = ${B}; ${data_out_type.typeName} ref_${data_out}_${data_out} = ${data_out}; for(uint32_t i=0; i<${batch}; i++){ - MatMul_fp${A_type.referencedType.typeWidth}_fp${B_type.referencedType.typeWidth}_fp${data_out_type.referencedType.typeWidth}( + matmul_fp32_opt( ref_${data_out}_${A}, ref_${data_out}_${B}, ref_${data_out}_${data_out}, diff --git a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py index 7a970e6411..1e20279922 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py @@ -4,6 +4,8 @@ from typing import Dict, List, Tuple +from mako.template import Template as MakoTemplate + from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation @@ -19,13 +21,13 @@ def alignToContext(self, ctxt: NetworkContext, # Check if scalar broadcasting is_scalar = operatorRepresentation.get('is_scalar', False) - # Dynamically select template based on is_scalar flag + # IMPORTANT: Must recompile self.template (Mako Template object), + # not just assign self.templateStr. NodeTemplate.generate() uses + # the pre-compiled self.template, not self.templateStr. if is_scalar: - # Use scalar broadcasting version - self.templateStr = FloatMulScalarTemplateStr + self.template = MakoTemplate(FloatMulScalarTemplateStr, strict_undefined = True) else: - # Use element-wise version - self.templateStr = FloatMulTemplateStr + self.template = MakoTemplate(FloatMulTemplateStr, strict_undefined = True) return ctxt, operatorRepresentation, [] diff --git a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py index a7bf0f61c7..f8ff98b8cd 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatSoftmaxTemplate.py @@ -2,38 +2,12 @@ # # SPDX-License-Identifier: Apache-2.0 -from typing import Dict, List, Tuple - -from Deeploy.DeeployTypes import NetworkContext, NodeTemplate, OperatorRepresentation - - -class FloatSoftmaxTemplate(NodeTemplate): - - def __init__(self, templateStr): - super().__init__(templateStr) - - def alignToContext(self, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[NetworkContext, Dict, List[str]]: - - data_in = ctxt.lookup(operatorRepresentation["data_in"]) - operatorRepresentation["seq_len"] = data_in.shape[2] - operatorRepresentation["input_samples"] = data_in.shape[-1] - - operatorRepresentation["kernelName"] = "Softmax_fp32" - - return ctxt, operatorRepresentation, [] - +from Deeploy.DeeployTypes import NodeTemplate +# Multi-core Softmax: all compute cores enter, kernel parallelizes across batch dimension. +# Framework adds snrt_is_compute_core() guard and barriers via SnitchCoreFilterPass/SnitchSynchCoresPass. FloatSoftmaxTemplateStr = r""" - uint32_t batch_size = ${size} / ${lastDimLength}; - uint32_t compute_num = 1; //snrt_cluster_compute_core_num(); - uint32_t ldI = compute_num * ${input_samples}; - uint32_t batch_offset = ${seq_len} * ${input_samples}; - - // JUNGVI: This implementation is broken and has memory leak. - if (snrt_hartid() == 0){ - ${kernelName}(${data_in}, ${data_out}, ldI, batch_offset, batch_size, ${seq_len}, ${input_samples}); - } +Softmax_fp32(${data_in}, ${data_out}, ${size}, ${lastDimLength}); """ -FloatSoftmax_Template = FloatSoftmaxTemplate(FloatSoftmaxTemplateStr) +FloatSoftmax_Template = NodeTemplate(FloatSoftmaxTemplateStr) diff --git a/TargetLibraries/Snitch/inc/kernel/MatMul.h b/TargetLibraries/Snitch/inc/kernel/MatMul.h index d4b9ba71ca..66e02c2d90 100644 --- a/TargetLibraries/Snitch/inc/kernel/MatMul.h +++ b/TargetLibraries/Snitch/inc/kernel/MatMul.h @@ -137,4 +137,21 @@ void MatMul_unrolled_2x2_parallel_s32_rv32im(int32_t const *__restrict__ pSrcA, uint32_t M, uint32_t N, uint32_t P); +/******************************************************************************/ +/* Matrix Multiplication (FP32, multi-core) */ +/******************************************************************************/ + +/* + * Matrix multiplication ---------------------------------- + * kernel = matmul_fp32_opt + * data type = 32-bit float + * multi-core = yes (splits M rows across compute cores internally) + * unrolling = 8 columns + * cleanup = yes + */ +void matmul_fp32_opt(const float32_t *__restrict__ pSrcA, + const float32_t *__restrict__ pSrcB, + float32_t *__restrict__ pDstY, uint32_t M, uint32_t N, + uint32_t O); + #endif //__DEEPLOY_MATH_MATMUL_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/inc/kernel/Softmax.h b/TargetLibraries/Snitch/inc/kernel/Softmax.h index 4b5f6d4bdf..8e9d191053 100644 --- a/TargetLibraries/Snitch/inc/kernel/Softmax.h +++ b/TargetLibraries/Snitch/inc/kernel/Softmax.h @@ -9,8 +9,7 @@ #include "DeeploySnitchMath.h" -void Softmax_fp32(float *input, float *output, uint32_t ldI, - uint32_t batch_offset, int32_t batch_size, int32_t seq_len, - int32_t input_samples); +void Softmax_fp32(float32_t *input, float32_t *output, uint32_t size, + uint32_t lastDimLength); -#endif // #define __DEEPLOY_MATH_SOFTMAX_KERNEL_HEADER_ \ No newline at end of file +#endif // #define __DEEPLOY_MATH_SOFTMAX_KERNEL_HEADER_ diff --git a/TargetLibraries/Snitch/src/Softmax_fp32.c b/TargetLibraries/Snitch/src/Softmax_fp32.c index f8c3d12e42..31795fe304 100644 --- a/TargetLibraries/Snitch/src/Softmax_fp32.c +++ b/TargetLibraries/Snitch/src/Softmax_fp32.c @@ -5,34 +5,63 @@ */ #include "DeeploySnitchMath.h" +#include -void Softmax_fp32(float32_t *input, float32_t *output, uint32_t ldI, - uint32_t batch_offset, int32_t batch_size, int32_t seq_len, - int32_t input_samples) { - - float32_t max_core = 0.0; // max value of the current core - float32_t sum = 0.0; // sum of the exp values of the current core - int32_t compute_id = snrt_global_compute_core_idx(); - int32_t row_offset = compute_id * input_samples; - for (int32_t b = 0; b < batch_size; b++) { - for (int32_t s = 0; s < seq_len; s++) { - max_core = -INFINITY; - sum = 0.0; - for (int32_t i = 0; i < input_samples; i++) { - if (input[row_offset + b * batch_offset + s * ldI + i] > max_core) { - max_core = input[row_offset + b * batch_offset + s * ldI + i]; - } - } - // compute the shifted value of the current row - for (int32_t i = 0; i < input_samples; i++) { - output[row_offset + b * batch_offset + s * ldI + i] = - expf(input[row_offset + b * batch_offset + s * ldI + i] - max_core); - sum += output[row_offset + b * batch_offset + s * ldI + i]; - } - // compute the softmax value of the current row - for (int32_t i = 0; i < input_samples; i++) { - output[row_offset + b * batch_offset + s * ldI + i] /= sum; - } +/* + * Multi-core FP32 Softmax + * + * Computes softmax along the last dimension: + * output[b][i] = exp(input[b][i] - max) / sum(exp(input[b][j] - max)) + * + * Parallelizes across the batch dimension (size / lastDimLength rows). + * + * input: Input tensor (float32) + * output: Output tensor (float32) + * size: Total number of elements + * lastDimLength: Length of the last dimension (softmax axis) + */ +void Softmax_fp32(float32_t *input, float32_t *output, uint32_t size, + uint32_t lastDimLength) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t num_rows = size / lastDimLength; + + uint32_t rows_per_core = num_rows / numThreads; + uint32_t remainder = num_rows % numThreads; + + uint32_t start_row, num_rows_this_core; + if (core_id < remainder) { + num_rows_this_core = rows_per_core + 1; + start_row = core_id * num_rows_this_core; + } else { + num_rows_this_core = rows_per_core; + start_row = core_id * rows_per_core + remainder; + } + + for (uint32_t r = start_row; r < start_row + num_rows_this_core; r++) { + float32_t *in_row = input + r * lastDimLength; + float32_t *out_row = output + r * lastDimLength; + + // Find max for numerical stability + float32_t max_val = -INFINITY; + for (uint32_t i = 0; i < lastDimLength; i++) { + if (in_row[i] > max_val) + max_val = in_row[i]; + } + + // Compute exp and sum + float32_t sum = 0.0f; + for (uint32_t i = 0; i < lastDimLength; i++) { + out_row[i] = expf(in_row[i] - max_val); + sum += out_row[i]; + } + + // Normalize + float32_t inv_sum = 1.0f / sum; + for (uint32_t i = 0; i < lastDimLength; i++) { + out_row[i] *= inv_sum; } } } From fdc0c8224d8d275d9a4c4e4ed939e5097111e5fe Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 15:55:41 +0100 Subject: [PATCH 39/50] refactor: slim Snitch parsers, add MatMul_fp32.c, remove unsupported test --- Deeploy/Targets/Generic/Parsers.py | 55 +++++++----- Deeploy/Targets/Snitch/Parsers.py | 106 ++--------------------- DeeployTest/test_snitch_config.py | 1 - DeeployTest/test_snitch_tiled_config.py | 1 - TargetLibraries/Snitch/src/MatMul_fp32.c | 86 ++++++++++++++++++ 5 files changed, 128 insertions(+), 121 deletions(-) create mode 100644 TargetLibraries/Snitch/src/MatMul_fp32.c diff --git a/Deeploy/Targets/Generic/Parsers.py b/Deeploy/Targets/Generic/Parsers.py index 9cec242ff4..e4e98976e4 100644 --- a/Deeploy/Targets/Generic/Parsers.py +++ b/Deeploy/Targets/Generic/Parsers.py @@ -11,6 +11,37 @@ from Deeploy.DeeployTypes import ConstantBuffer, NetworkContext, NodeParser, VariableBuffer +def compute_broadcast_strides(shape1, shape2, out_shape): + """Compute strides for ONNX/NumPy-style broadcasting. + + Pads both input shapes from the left to match the output ndim, + then computes strides where broadcast dimensions (size 1) get stride 0. + + Example: + shape1=[8,8,8], shape2=[8] + -> strides1=[64,8,1], strides2=[0,0,1] + """ + ndim = len(out_shape) + + pad1 = [1] * (ndim - len(shape1)) + shape1 + pad2 = [1] * (ndim - len(shape2)) + shape2 + + def _calc_strides(padded_shape, out_shape): + strides = [] + stride = 1 + for i in range(ndim - 1, -1, -1): + if padded_shape[i] == 1 and out_shape[i] > 1: + strides.insert(0, 0) + else: + strides.insert(0, stride) + stride *= padded_shape[i] if padded_shape[i] > 1 else 1 + return strides + + strides1 = _calc_strides(pad1, out_shape) + strides2 = _calc_strides(pad2, out_shape) + return strides1, strides2 + + class ConcatParser(NodeParser): def __init__(self): @@ -511,27 +542,9 @@ def parseNodeCtxt(self, self.operatorRepresentation['need_broadcast'] = need_broadcast if need_broadcast: - ndim = len(out_shape) - - # Pad shapes from the left to match ndim (ONNX broadcasts from right) - padded_shape1 = [1] * (ndim - len(shape1)) + shape1 - padded_shape2 = [1] * (ndim - len(shape2)) + shape2 - - def _calc_strides(padded_shape, out_shape): - strides = [] - stride = 1 - for i in range(ndim - 1, -1, -1): - if padded_shape[i] == 1 and out_shape[i] > 1: - strides.insert(0, 0) - else: - strides.insert(0, stride) - stride *= padded_shape[i] if padded_shape[i] > 1 else 1 - return strides - - strides1 = _calc_strides(padded_shape1, out_shape) - strides2 = _calc_strides(padded_shape2, out_shape) - - self.operatorRepresentation['ndim'] = ndim + strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) + + self.operatorRepresentation['ndim'] = len(out_shape) self.operatorRepresentation['strides1'] = strides1 self.operatorRepresentation['strides2'] = strides2 self.operatorRepresentation['out_shape'] = out_shape diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index c91274fc8c..1b01ac02d8 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -11,37 +11,6 @@ from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser -def compute_broadcast_strides(shape1, shape2, out_shape): - """Compute strides for ONNX/NumPy-style broadcasting. - - Pads both input shapes from the left to match the output ndim, - then computes strides where broadcast dimensions (size 1) get stride 0. - - Example: - shape1=[8,8,8], shape2=[8] - -> strides1=[64,8,1], strides2=[0,0,1] - """ - ndim = len(out_shape) - - pad1 = [1] * (ndim - len(shape1)) + shape1 - pad2 = [1] * (ndim - len(shape2)) + shape2 - - def _calc_strides(padded_shape, out_shape): - strides = [] - stride = 1 - for i in range(ndim - 1, -1, -1): - if padded_shape[i] == 1 and out_shape[i] > 1: - strides.insert(0, 0) - else: - strides.insert(0, stride) - stride *= padded_shape[i] if padded_shape[i] > 1 else 1 - return strides - - strides1 = _calc_strides(pad1, out_shape) - strides2 = _calc_strides(pad2, out_shape) - return strides1, strides2 - - class SnitchGEMMParser(GEMMParser): def parseNode(self, node: gs.Node) -> bool: @@ -199,45 +168,13 @@ def parseNodeCtxt(self, class SnitchAddParser(AddParser): - """Inherits from GenericAddParser and adds broadcasting support.""" + """Inherits from Generic AddParser which already handles broadcasting.""" - def __init__(self): - super().__init__() - - def parseNodeCtxt(self, - ctxt: NetworkContext, - node: gs.Node, - channels_first: bool = True) -> Tuple[NetworkContext, bool]: - ctxt, ret = super().parseNodeCtxt(ctxt, node, channels_first) - if not ret: - return ctxt, False - - shape1 = list(ctxt.lookup(node.inputs[0].name).shape) - shape2 = list(ctxt.lookup(node.inputs[1].name).shape) - out_shape = list(ctxt.lookup(node.outputs[0].name).shape) - - self.operatorRepresentation['size'] = int(np.prod(out_shape)) - self.operatorRepresentation['shape1'] = shape1 - self.operatorRepresentation['shape2'] = shape2 - self.operatorRepresentation['out_shape'] = out_shape - self.operatorRepresentation['ndim'] = len(out_shape) - - need_broadcast = (shape1 != shape2) - self.operatorRepresentation['need_broadcast'] = need_broadcast - - if need_broadcast: - strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) - self.operatorRepresentation['strides1'] = strides1 - self.operatorRepresentation['strides2'] = strides2 - - return ctxt, True + pass class SnitchDivParser(DivParser): - """Inherits from Generic DivParser and adds broadcasting support.""" - - def __init__(self): - super().__init__() + """Inherits from Generic DivParser and adds scalar detection.""" def parseNodeCtxt(self, ctxt: NetworkContext, @@ -251,31 +188,16 @@ def parseNodeCtxt(self, shape2 = list(ctxt.lookup(node.inputs[1].name).shape) out_shape = list(ctxt.lookup(node.outputs[0].name).shape) - self.operatorRepresentation['shape1'] = shape1 - self.operatorRepresentation['shape2'] = shape2 - self.operatorRepresentation['out_shape'] = out_shape - self.operatorRepresentation['ndim'] = len(out_shape) - self.operatorRepresentation['size1'] = int(np.prod(shape1)) - self.operatorRepresentation['size2'] = int(np.prod(shape2)) self.operatorRepresentation['size'] = int(np.prod(out_shape)) - - need_broadcast = (shape1 != shape2) - self.operatorRepresentation['need_broadcast'] = need_broadcast + self.operatorRepresentation['input1_is_scalar'] = (np.prod(shape1) == 1) + self.operatorRepresentation['input2_is_scalar'] = (np.prod(shape2) == 1) self.operatorRepresentation['is_scalar'] = (np.prod(shape1) == 1 or np.prod(shape2) == 1) - if need_broadcast: - strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) - self.operatorRepresentation['strides1'] = strides1 - self.operatorRepresentation['strides2'] = strides2 - return ctxt, True class SnitchMulParser(MulParser): - """Inherits from Generic MulParser and adds broadcasting support.""" - - def __init__(self): - super().__init__() + """Inherits from Generic MulParser and adds scalar detection.""" def parseNodeCtxt(self, ctxt: NetworkContext, @@ -289,21 +211,9 @@ def parseNodeCtxt(self, shape2 = list(ctxt.lookup(node.inputs[1].name).shape) out_shape = list(ctxt.lookup(node.outputs[0].name).shape) - self.operatorRepresentation['shape1'] = shape1 - self.operatorRepresentation['shape2'] = shape2 - self.operatorRepresentation['out_shape'] = out_shape - self.operatorRepresentation['ndim'] = len(out_shape) - self.operatorRepresentation['size1'] = int(np.prod(shape1)) - self.operatorRepresentation['size2'] = int(np.prod(shape2)) self.operatorRepresentation['size'] = int(np.prod(out_shape)) - - need_broadcast = (shape1 != shape2) - self.operatorRepresentation['need_broadcast'] = need_broadcast + self.operatorRepresentation['input1_is_scalar'] = (np.prod(shape1) == 1) + self.operatorRepresentation['input2_is_scalar'] = (np.prod(shape2) == 1) self.operatorRepresentation['is_scalar'] = (np.prod(shape1) == 1 or np.prod(shape2) == 1) - if need_broadcast: - strides1, strides2 = compute_broadcast_strides(shape1, shape2, out_shape) - self.operatorRepresentation['strides1'] = strides1 - self.operatorRepresentation['strides2'] = strides2 - return ctxt, True diff --git a/DeeployTest/test_snitch_config.py b/DeeployTest/test_snitch_config.py index c132abf9fb..1a16cb8425 100644 --- a/DeeployTest/test_snitch_config.py +++ b/DeeployTest/test_snitch_config.py @@ -14,7 +14,6 @@ "Kernels/FP32/Hardswish", "Kernels/FP32/MatMul", "Kernels/FP32/Mul", - "Kernels/FP32/RMSNorm/separate_ops", "Kernels/FP32/RMSNorm/single_fused_op", "Kernels/FP32/Softmax/Regular", "Kernels/Integer/Add/Large", diff --git a/DeeployTest/test_snitch_tiled_config.py b/DeeployTest/test_snitch_tiled_config.py index 2a9a564588..d40521f8d4 100644 --- a/DeeployTest/test_snitch_tiled_config.py +++ b/DeeployTest/test_snitch_tiled_config.py @@ -14,7 +14,6 @@ "Kernels/FP32/Div": [2000, 5000, 10000], "Kernels/FP32/Hardswish": [2000, 5000, 10000], "Kernels/FP32/Mul": [2000, 5000, 10000], - "Kernels/FP32/RMSNorm/separate_ops": [2000, 5000, 10000], "Kernels/FP32/RMSNorm/single_fused_op": [2000, 5000, 10000], "Kernels/FP32/Softmax/Regular": [2000, 5000, 10000], "Kernels/FP32/GEMM/Regular": [2000, 5000, 10000], diff --git a/TargetLibraries/Snitch/src/MatMul_fp32.c b/TargetLibraries/Snitch/src/MatMul_fp32.c new file mode 100644 index 0000000000..337b735072 --- /dev/null +++ b/TargetLibraries/Snitch/src/MatMul_fp32.c @@ -0,0 +1,86 @@ +/* + * SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "DeeploySnitchMath.h" + +/* + * Multi-core FP32 matrix multiplication (scalar, no SSR) + * + * Computes: Y = A * B + * A is M x N, B is N x O, Y is M x O + * All matrices in row-major layout. + * + * Splits M rows across compute cores internally. + * Uses a distinct function name to avoid being shadowed by + * the Generic single-core MatMul_fp32_fp32_fp32 (link order). + */ +void matmul_fp32_opt(const float32_t *__restrict__ pSrcA, + const float32_t *__restrict__ pSrcB, + float32_t *__restrict__ pDstY, uint32_t M, uint32_t N, + uint32_t O) { + + uint32_t core_id = snrt_global_compute_core_idx(); + uint32_t numThreads = snrt_global_compute_core_num(); + + uint32_t rows_per_core = M / numThreads; + uint32_t remainder = M % numThreads; + + uint32_t start_row, num_rows; + if (core_id < remainder) { + num_rows = rows_per_core + 1; + start_row = core_id * num_rows; + } else { + num_rows = rows_per_core; + start_row = core_id * rows_per_core + remainder; + } + + const uint32_t unroll = 8; + uint32_t O_block = O - (O % unroll); + + for (uint32_t i = start_row; i < start_row + num_rows; i++) { + uint32_t j; + for (j = 0; j < O_block; j += unroll) { + float32_t c0 = 0.0f; + float32_t c1 = 0.0f; + float32_t c2 = 0.0f; + float32_t c3 = 0.0f; + float32_t c4 = 0.0f; + float32_t c5 = 0.0f; + float32_t c6 = 0.0f; + float32_t c7 = 0.0f; + + for (uint32_t k = 0; k < N; k++) { + float32_t a = pSrcA[i * N + k]; + c0 += a * pSrcB[k * O + j + 0]; + c1 += a * pSrcB[k * O + j + 1]; + c2 += a * pSrcB[k * O + j + 2]; + c3 += a * pSrcB[k * O + j + 3]; + c4 += a * pSrcB[k * O + j + 4]; + c5 += a * pSrcB[k * O + j + 5]; + c6 += a * pSrcB[k * O + j + 6]; + c7 += a * pSrcB[k * O + j + 7]; + } + + pDstY[i * O + j + 0] = c0; + pDstY[i * O + j + 1] = c1; + pDstY[i * O + j + 2] = c2; + pDstY[i * O + j + 3] = c3; + pDstY[i * O + j + 4] = c4; + pDstY[i * O + j + 5] = c5; + pDstY[i * O + j + 6] = c6; + pDstY[i * O + j + 7] = c7; + } + + // Cleanup for remaining columns + for (; j < O; j++) { + float32_t sum = 0.0f; + for (uint32_t k = 0; k < N; k++) { + sum += pSrcA[i * N + k] * pSrcB[k * O + j]; + } + pDstY[i * O + j] = sum; + } + } +} From 7813684079708b9042d835ef919aedb38b811fb1 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 16:03:09 +0100 Subject: [PATCH 40/50] remove if (snrt_is_compute_core()) --- Deeploy/Targets/Snitch/Templates/TransposeTemplate.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py index 9de7433918..e8e689d402 100644 --- a/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/TransposeTemplate.py @@ -98,7 +98,6 @@ def alignToContext(self, ctxt: NetworkContext, referenceTemplate = SnitchTransposeTemplate(""" // Transpose ${data_in_shape} -> ${data_out_shape} (Name: ${nodeName}, Op: ${nodeOp}) -if (snrt_is_compute_core()) { ${tileHeader} % for idx, i in enumerate(perm): ${forLoops[idx]} @@ -107,5 +106,4 @@ def alignToContext(self, ctxt: NetworkContext, % for idx, i in enumerate(perm): } % endfor -} """) From 486551637ee8327abb82f94b4f1a8fd94525c241 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 16:56:43 +0100 Subject: [PATCH 41/50] fix:correct RMSNorm op count from 5*inputSize to 6*inputSize --- Deeploy/Targets/Generic/Layers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deeploy/Targets/Generic/Layers.py b/Deeploy/Targets/Generic/Layers.py index 3069f3ca60..dcc0273300 100644 --- a/Deeploy/Targets/Generic/Layers.py +++ b/Deeploy/Targets/Generic/Layers.py @@ -744,7 +744,7 @@ def computeOps(self): # e. Normalized = Div(X, RMS) => inputSize ops # f. Y = Mul(Normalized, Scale) => 0 if all(Scale == 1.0), else inputSize ops scale_ops = 0 if (scale == 1.0).all() else inputSize - ops = 5 * inputSize - 3 * NormalizedAxesSize + scale_ops + ops = 6 * inputSize - 3 * NormalizedAxesSize + scale_ops return ops From fc8ea3f2dd86b3020005d709fead33f1e6aace31 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 17:38:22 +0100 Subject: [PATCH 42/50] refactor: use SkipTransformer with pointer assignment for Reshape, avoiding unnecessary DMA and memcpy --- Deeploy/Targets/Snitch/Bindings.py | 13 +++++++--- .../Snitch/Templates/ReshapeTemplate.py | 26 ++++++------------- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index cb58f7fc53..a0fa1f06b0 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -7,7 +7,7 @@ from Deeploy.AbstractDataTypes import PointerClass from Deeploy.CommonExtensions.CodeTransformationPasses.Closure import ClosureGeneration, MemoryAwareClosureGeneration from Deeploy.CommonExtensions.CodeTransformationPasses.MemoryAllocation import ArgumentStructGeneration, \ - MemoryManagementGeneration + MemoryManagementGeneration, MemoryPassthroughGeneration from Deeploy.CommonExtensions.DataTypes import float32_t, int8_t, int32_t, uint8_t from Deeploy.DeeployTypes import CodeTransformation, NodeBinding from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration @@ -43,6 +43,13 @@ MemoryManagementGeneration(), FutureGeneration()]) +SkipTransformer = CodeTransformation( + [SnitchSynchCoresPass(), + ArgumentStructGeneration(), + MemoryPassthroughGeneration("L.*"), + MemoryPassthroughGeneration(), + FutureGeneration()]) + TiledTransformer = CodeTransformation([ SnitchCoreFilterPass("compute"), TilingVariableReplacement("L1"), @@ -184,10 +191,10 @@ TransposeTemplate.referenceTemplate, BasicTransformer) ] -# Reshape Bindings (Tiled) +# Reshape Bindings (pointer passthrough, no DMA needed) SnitchReshapeBindings = [ NodeBinding(ReshapeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), ReshapeTemplate.referenceTemplate, - TiledTransformer) + SkipTransformer) ] # Gather Bindings (Tiled) diff --git a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py index 27b40b0370..0e1fdf81b1 100644 --- a/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/ReshapeTemplate.py @@ -4,8 +4,6 @@ from typing import Dict, List, Tuple -import numpy as np - from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation, VariableBuffer from Deeploy.Targets.Generic.Templates.ReshapeTemplate import _ReshapeTemplate @@ -17,28 +15,20 @@ def alignToContext(self, ctxt: NetworkContext, ctxt, operatorRepresentation, _ = super().alignToContext(ctxt, operatorRepresentation) - # Calculate size for multi-core parallel copy bufferIn = ctxt.lookup(operatorRepresentation['data_in']) assert isinstance(bufferIn, VariableBuffer) - operatorRepresentation['size'] = int(np.prod(bufferIn.shape)) + bufferOut = ctxt.lookup(operatorRepresentation['data_out']) + assert isinstance(bufferOut, VariableBuffer) + + # Set alias so input and output share the same memory + bufferOut._alias = bufferIn.name return ctxt, operatorRepresentation, [] -# Reshape uses multi-core parallel copy -# When aliases work (internal nodes), this copies between same memory (no-op effect) -# When aliases don't work (global I/O), this copies data correctly +# Reshape only reinterprets tensor shape without modifying data. +# Uses SkipTransformer (no DMA), consistent with PULPOpen. referenceTemplate = _SnitchReshapeTemplate(""" // Reshape (Name: ${nodeName}, Op: ${nodeOp}) -{ - uint32_t core_id = snrt_cluster_core_idx(); - uint32_t num_cores = snrt_cluster_compute_core_num(); - uint32_t total = ${size}; - uint32_t chunk = total / num_cores; - uint32_t start = core_id * chunk; - uint32_t end = (core_id == num_cores - 1) ? total : start + chunk; - for (uint32_t i = start; i < end; i++) { - ${data_out}[i] = ${data_in}[i]; - } -} +${data_out} = ${data_in}; """) From b6b6eb579bd1d5cb56894f8e2fcc723bf9abe90d Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 17:45:08 +0100 Subject: [PATCH 43/50] simplify: remove unused broadcasting logic from FloatDiv/Mul TileConstraints, support scalar and element-wise only --- .../TileConstraints/FloatDivTileConstraint.py | 90 ++++++------------- .../TileConstraints/FloatMulTileConstraint.py | 90 ++++++------------- 2 files changed, 58 insertions(+), 122 deletions(-) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py index 2a1b9917bb..82c012680e 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py @@ -17,11 +17,7 @@ class FloatDivTileConstraint(TileConstraint): - """Tile constraint for FP32 Div operation with ONNX broadcasting support. - - Supports general NumPy-style broadcasting: both inputs can have any - dimension, including scalar, partial broadcasting, and full element-wise. - """ + """Tile constraint for FP32 Div: supports scalar and element-wise cases.""" dataIn1Name = "A" dataIn2Name = "B" @@ -34,41 +30,32 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: inputBuffer2Name = parseDict[cls.dataIn2Name] outputBufferName = parseDict[cls.dataOutName] - input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) - input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) - outputShape = list(ctxt.lookup(outputBufferName).shape) - - # Add all tensors to model tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) tilerModel.addTensorDimToModel(ctxt, outputBufferName) - outNdim = len(outputShape) - - # Pad input shapes from the left to match output ndim (ONNX broadcasting) - padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape - padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape - - for outDim in range(outNdim): - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = outDim) - - # Input 1: map output dim to actual tensor dim - in1ActualDim = outDim - (outNdim - len(input1Shape)) - if in1ActualDim >= 0: - in1DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = in1ActualDim) - if padded1[outDim] == 1: - tilerModel.addConstraint(in1DimVar == 1) - else: - tilerModel.addConstraint(in1DimVar == outputDimVar) - - # Input 2: map output dim to actual tensor dim - in2ActualDim = outDim - (outNdim - len(input2Shape)) - if in2ActualDim >= 0: - in2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = in2ActualDim) - if padded2[outDim] == 1: - tilerModel.addConstraint(in2DimVar == 1) - else: - tilerModel.addConstraint(in2DimVar == outputDimVar) + input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) + input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) + + is_scalar = (np.prod(input2Shape) == 1) + + if is_scalar: + # Scalar: tile A and C together, B stays fixed + for dim in range(len(input1Shape)): + in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + tilerModel.addConstraint(in1Var == outVar) + for dim in range(len(input2Shape)): + in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + tilerModel.addConstraint(in2Var == input2Shape[dim]) + else: + # Element-wise: all three tensors tiled identically + for dim in range(len(input1Shape)): + in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + tilerModel.addConstraint(in1Var == in2Var) + tilerModel.addConstraint(in1Var == outVar) return tilerModel @@ -86,38 +73,19 @@ def serializeTilingSolution( replacements = {"size": []} replacementTypes = {"size": PointerClass(uint16_t)} - input1Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn1Name]).shape) input2Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn2Name]).shape) - outputShape = list(ctxt.lookup(operatorRepresentation[cls.dataOutName]).shape) - - outNdim = len(outputShape) - padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape - padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape - - def _deriveInputCube(outputCube, inputShape, paddedShape): - """Derive an input HyperRectangle from an output cube, respecting broadcasting.""" - offset = [] - dims = [] - for outDim in range(outNdim): - actualDim = outDim - (outNdim - len(inputShape)) - if actualDim >= 0: - if paddedShape[outDim] == 1: - offset.append(0) - dims.append(1) - else: - offset.append(outputCube.offset[outDim]) - dims.append(outputCube.dims[outDim]) - return HyperRectangle(tuple(offset), tuple(dims)) + is_scalar = (np.prod(input2Shape) == 1) inputLoadSchedule = [] outputLoadSchedule = [] for cube in outputCubes: replacements["size"].append(np.prod(cube.dims)) - - in1Cube = _deriveInputCube(cube, input1Shape, padded1) - in2Cube = _deriveInputCube(cube, input2Shape, padded2) - inputLoadSchedule.append({cls.dataIn1Name: in1Cube, cls.dataIn2Name: in2Cube}) + if is_scalar: + in2Cube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: in2Cube}) + else: + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) for out in outputCubes: outputLoadSchedule.append({cls.dataOutName: out}) diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py index 0feae54d6f..2247aef874 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py @@ -17,11 +17,7 @@ class FloatMulTileConstraint(TileConstraint): - """Tile constraint for FP32 Mul operation with ONNX broadcasting support. - - Supports general NumPy-style broadcasting: both inputs can have any - dimension, including scalar, partial broadcasting, and full element-wise. - """ + """Tile constraint for FP32 Mul: supports scalar and element-wise cases.""" dataIn1Name = "A" dataIn2Name = "B" @@ -34,41 +30,32 @@ def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: inputBuffer2Name = parseDict[cls.dataIn2Name] outputBufferName = parseDict[cls.dataOutName] - input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) - input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) - outputShape = list(ctxt.lookup(outputBufferName).shape) - - # Add all tensors to model tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) tilerModel.addTensorDimToModel(ctxt, outputBufferName) - outNdim = len(outputShape) - - # Pad input shapes from the left to match output ndim (ONNX broadcasting) - padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape - padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape - - for outDim in range(outNdim): - outputDimVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = outDim) - - # Input 1: map output dim to actual tensor dim - in1ActualDim = outDim - (outNdim - len(input1Shape)) - if in1ActualDim >= 0: - in1DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = in1ActualDim) - if padded1[outDim] == 1: - tilerModel.addConstraint(in1DimVar == 1) - else: - tilerModel.addConstraint(in1DimVar == outputDimVar) - - # Input 2: map output dim to actual tensor dim - in2ActualDim = outDim - (outNdim - len(input2Shape)) - if in2ActualDim >= 0: - in2DimVar = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = in2ActualDim) - if padded2[outDim] == 1: - tilerModel.addConstraint(in2DimVar == 1) - else: - tilerModel.addConstraint(in2DimVar == outputDimVar) + input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) + input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) + + is_scalar = (np.prod(input2Shape) == 1) + + if is_scalar: + # Scalar: tile A and C together, B stays fixed + for dim in range(len(input1Shape)): + in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + tilerModel.addConstraint(in1Var == outVar) + for dim in range(len(input2Shape)): + in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + tilerModel.addConstraint(in2Var == input2Shape[dim]) + else: + # Element-wise: all three tensors tiled identically + for dim in range(len(input1Shape)): + in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) + in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) + outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) + tilerModel.addConstraint(in1Var == in2Var) + tilerModel.addConstraint(in1Var == outVar) return tilerModel @@ -86,38 +73,19 @@ def serializeTilingSolution( replacements = {"size": []} replacementTypes = {"size": PointerClass(uint16_t)} - input1Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn1Name]).shape) input2Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn2Name]).shape) - outputShape = list(ctxt.lookup(operatorRepresentation[cls.dataOutName]).shape) - - outNdim = len(outputShape) - padded1 = [1] * (outNdim - len(input1Shape)) + input1Shape - padded2 = [1] * (outNdim - len(input2Shape)) + input2Shape - - def _deriveInputCube(outputCube, inputShape, paddedShape): - """Derive an input HyperRectangle from an output cube, respecting broadcasting.""" - offset = [] - dims = [] - for outDim in range(outNdim): - actualDim = outDim - (outNdim - len(inputShape)) - if actualDim >= 0: - if paddedShape[outDim] == 1: - offset.append(0) - dims.append(1) - else: - offset.append(outputCube.offset[outDim]) - dims.append(outputCube.dims[outDim]) - return HyperRectangle(tuple(offset), tuple(dims)) + is_scalar = (np.prod(input2Shape) == 1) inputLoadSchedule = [] outputLoadSchedule = [] for cube in outputCubes: replacements["size"].append(np.prod(cube.dims)) - - in1Cube = _deriveInputCube(cube, input1Shape, padded1) - in2Cube = _deriveInputCube(cube, input2Shape, padded2) - inputLoadSchedule.append({cls.dataIn1Name: in1Cube, cls.dataIn2Name: in2Cube}) + if is_scalar: + in2Cube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: in2Cube}) + else: + inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) for out in outputCubes: outputLoadSchedule.append({cls.dataOutName: out}) From 4e8448b031075fafa4df497ac6546a75d6b3f2f1 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Wed, 18 Feb 2026 17:53:37 +0100 Subject: [PATCH 44/50] cleanup: remove unused BasicTransformer and Basic*Bindings dead code --- Deeploy/Targets/Snitch/Bindings.py | 47 ------------------------------ 1 file changed, 47 deletions(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index a0fa1f06b0..cc092aac44 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -37,12 +37,6 @@ startRegion = "L2", endRegion = "L1") -BasicTransformer = CodeTransformation( - [SnitchSynchCoresPass(), - ArgumentStructGeneration(), - MemoryManagementGeneration(), - FutureGeneration()]) - SkipTransformer = CodeTransformation( [SnitchSynchCoresPass(), ArgumentStructGeneration(), @@ -92,12 +86,6 @@ FloatAddTemplate, TiledTransformer) ] -# Basic (non-tiled) FP32 Add Bindings -BasicAddBindings = [ - NodeBinding(AddChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), - FloatAddTemplate, BasicTransformer) -] - SnitchGemmBindings = [ NodeBinding( GEMMChecker([PointerClass(int8_t), PointerClass(int8_t), @@ -119,54 +107,26 @@ ], [PointerClass(int8_t)]), SnitchRqGemm_Template, TiledTransformer) ] -# RMSNorm Bindings (Tiled) SnitchRMSNormBindings = [ NodeBinding(RMSNormChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), FloatRMSNormTemplate, TiledTransformer) ] -# RMSNorm Bindings (Non-tiled) -BasicRMSNormBindings = [ - NodeBinding(RMSNormChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), - FloatRMSNormTemplate, BasicTransformer) -] - -# HardSwish Bindings (Tiled) SnitchHardSwishBindings = [ NodeBinding(HardswishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, TiledTransformer) ] -# HardSwish Bindings (Non-tiled) -BasicHardSwishBindings = [ - NodeBinding(HardswishChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), FloatHardSwishTemplate, - BasicTransformer) -] - -# Div Bindings (Tiled) SnitchDivBindings = [ NodeBinding(DivChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), FloatDivTemplate, TiledTransformer) ] -# Div Bindings (Non-tiled) -BasicDivBindings = [ - NodeBinding(DivChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), - FloatDivTemplate, BasicTransformer) -] - -# Mul Bindings (Tiled) SnitchMulBindings = [ NodeBinding(MulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), FloatMulTemplate, TiledTransformer) ] -# Mul Bindings (Non-tiled) -BasicMulBindings = [ - NodeBinding(MulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), - FloatMulTemplate, BasicTransformer) -] - # MatMul Bindings (Tiled) SnitchMatMulBindings = [ NodeBinding(MatMulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), @@ -179,18 +139,11 @@ ConcatTemplate.referenceTemplate, TiledTransformer) ] -# Transpose Bindings (Tiled) SnitchTransposeBindings = [ NodeBinding(TransposeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), TransposeTemplate.referenceTemplate, TiledTransformer) ] -# Transpose Bindings (Non-tiled, multi-core) -BasicSnitchTransposeBindings = [ - NodeBinding(TransposeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), - TransposeTemplate.referenceTemplate, BasicTransformer) -] - # Reshape Bindings (pointer passthrough, no DMA needed) SnitchReshapeBindings = [ NodeBinding(ReshapeChecker([PointerClass(float32_t)], [PointerClass(float32_t)]), ReshapeTemplate.referenceTemplate, From 7003801bac2a2054379ff0cd3ec62768aa369d55 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 19 Feb 2026 16:51:48 +0100 Subject: [PATCH 45/50] fix CI test of snitch --- .github/workflows/ci-platform-snitch.yml | 2 +- TargetLibraries/Snitch/inc/DeeploySnitchMath.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-platform-snitch.yml b/.github/workflows/ci-platform-snitch.yml index 703a42792d..36b105a558 100644 --- a/.github/workflows/ci-platform-snitch.yml +++ b/.github/workflows/ci-platform-snitch.yml @@ -35,4 +35,4 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - pytest-marker: "kernels or models" + pytest-marker: "(kernels or models)" diff --git a/TargetLibraries/Snitch/inc/DeeploySnitchMath.h b/TargetLibraries/Snitch/inc/DeeploySnitchMath.h index 1305ba6bff..ab422573c7 100644 --- a/TargetLibraries/Snitch/inc/DeeploySnitchMath.h +++ b/TargetLibraries/Snitch/inc/DeeploySnitchMath.h @@ -26,6 +26,7 @@ #include "kernel/Add.h" #include "kernel/Div.h" #include "kernel/Gemm.h" +#include "kernel/Gemm_fp32.h" #include "kernel/HardSwish.h" #include "kernel/MatMul.h" #include "kernel/Mul.h" From e693be722dff2de5dd62ae753c3c65e01540d39a Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 19 Feb 2026 17:03:35 +0100 Subject: [PATCH 46/50] =?UTF-8?q?fix:=20add=20int8=E2=86=92int32=20MatMul?= =?UTF-8?q?=20binding=20to=20fix=20Snitch=20Integer=20MatMul=20CI=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The binding was lost when switching from BasicMatMulBindings to Snitch-specific SnitchMatMulBindings, which only had FP32 MatMul. --- Deeploy/Targets/Snitch/Bindings.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index cc092aac44..993176320b 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -11,7 +11,7 @@ from Deeploy.CommonExtensions.DataTypes import float32_t, int8_t, int32_t, uint8_t from Deeploy.DeeployTypes import CodeTransformation, NodeBinding from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration -from Deeploy.Targets.Generic.Templates import ConcatTemplate, iNoNormTemplate +from Deeploy.Targets.Generic.Templates import ConcatTemplate, MatMulTemplate, iNoNormTemplate from Deeploy.Targets.Generic.TypeCheckers import AddChecker, ConcatChecker, DivChecker, GatherChecker, GEMMChecker, \ HardswishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ TransposeChecker, iNoNormChecker @@ -129,6 +129,8 @@ # MatMul Bindings (Tiled) SnitchMatMulBindings = [ + NodeBinding(MatMulChecker([PointerClass(int8_t), PointerClass(int8_t)], [PointerClass(int32_t)]), + MatMulTemplate.referenceTemplate, TiledTransformer), NodeBinding(MatMulChecker([PointerClass(float32_t), PointerClass(float32_t)], [PointerClass(float32_t)]), FloatMatMulTemplate.referenceTemplate, TiledTransformer) ] From 1633a71efd664036d676723ec061de550994e8d4 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 19 Feb 2026 17:12:27 +0100 Subject: [PATCH 47/50] fix CI test of snitch --- TargetLibraries/Snitch/inc/DeeploySnitchMath.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TargetLibraries/Snitch/inc/DeeploySnitchMath.h b/TargetLibraries/Snitch/inc/DeeploySnitchMath.h index ab422573c7..9cc873f04b 100644 --- a/TargetLibraries/Snitch/inc/DeeploySnitchMath.h +++ b/TargetLibraries/Snitch/inc/DeeploySnitchMath.h @@ -12,9 +12,9 @@ #include #include -#define BEGIN_SINGLE_CORE if (core_id == 0) { +#define BEGIN_SINGLE_CORE if (snrt_cluster_core_idx() == 0) { #define END_SINGLE_CORE } -#define SINGLE_CORE if (core_id == 0) +#define SINGLE_CORE if (snrt_cluster_core_idx() == 0) #include "CycleCounter.h" #include "macros.h" From 0a66cf49c7b32ba111a216efd566012b6488b34a Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 19 Feb 2026 17:43:22 +0100 Subject: [PATCH 48/50] refactor: reuse Generic GatherTemplate and revert NOPTileConstraint - Switch Snitch GatherTemplate to Generic version (identical after macros fix, removes code duplication) - Revert NOPTileConstraint.py to devel (serializeTilingSolution not needed since Snitch Reshape uses SkipTransformer) --- .../TileConstraints/NOPTileConstraint.py | 44 +------------------ Deeploy/Targets/Snitch/Bindings.py | 4 +- 2 files changed, 4 insertions(+), 44 deletions(-) diff --git a/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py b/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py index 4dd487b3aa..d24abb4ba5 100644 --- a/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py +++ b/Deeploy/Targets/Generic/TileConstraints/NOPTileConstraint.py @@ -2,18 +2,11 @@ # # SPDX-License-Identifier: Apache-2.0 -from typing import Dict, List, Tuple +from typing import Dict, List -import numpy as np - -from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation -from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint +from Deeploy.DeeployTypes import NetworkContext from Deeploy.TilingExtension.TileConstraint import TileConstraint from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme class NOPTileConstraint(TileConstraint): @@ -49,36 +42,3 @@ def addGeometricalConstraint(tilerModel: TilerModel, parseDict: Dict, ctxt: Netw ctxt.lookup(bufferName)._deploy = False return tilerModel - - @classmethod - def serializeTilingSolution( - cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], - targetMemLevel: str, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: - outputCubes = [cube.rectangle for cube in absoluteOutputCubes] - - addrNames = ['data_in', 'data_out'] - inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, - operatorRepresentation, addrNames) - - inputName = operatorRepresentation['data_in'] - inputShape = ctxt.lookup(inputName).shape - - replacements = {"size": []} - replacementTypes = {"size": PointerClass(uint16_t)} - - inputLoadSchedule = [] - outputLoadSchedule = [] - - for cube in outputCubes: - replacements["size"].append(np.prod(cube.dims)) - inputCube = HyperRectangle(tuple([0] * len(inputShape)), tuple(inputShape)) - inputLoadSchedule.append({"data_in": inputCube}) - - for out in outputCubes: - outputLoadSchedule.append({"data_out": out}) - - tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) - variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) - - return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index 993176320b..f3ecd945be 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -11,14 +11,14 @@ from Deeploy.CommonExtensions.DataTypes import float32_t, int8_t, int32_t, uint8_t from Deeploy.DeeployTypes import CodeTransformation, NodeBinding from Deeploy.FutureExtension.CodeTransformationPasses.FutureCodeTransformation import FutureGeneration -from Deeploy.Targets.Generic.Templates import ConcatTemplate, MatMulTemplate, iNoNormTemplate +from Deeploy.Targets.Generic.Templates import ConcatTemplate, GatherTemplate, MatMulTemplate, iNoNormTemplate from Deeploy.Targets.Generic.TypeCheckers import AddChecker, ConcatChecker, DivChecker, GatherChecker, GEMMChecker, \ HardswishChecker, MatMulChecker, MulChecker, ReshapeChecker, RMSNormChecker, RQAddChecker, SoftmaxChecker, \ TransposeChecker, iNoNormChecker from Deeploy.Targets.Snitch.CodeTransformationPasses import SnitchClusterTiling, SnitchCoreFilterPass, \ SnitchSynchCoresPass from Deeploy.Targets.Snitch.DMA.SnitchDma import SnitchDma -from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, GatherTemplate, \ +from Deeploy.Targets.Snitch.Templates import AddTemplate, FloatGemmTemplate, FloatMatMulTemplate, \ ReshapeTemplate, RQAddTemplate, TransposeTemplate, iSoftmaxTemplate from Deeploy.Targets.Snitch.Templates.FloatAddTemplate import referenceTemplate as FloatAddTemplate from Deeploy.Targets.Snitch.Templates.FloatDivTemplate import referenceTemplate as FloatDivTemplate From 6b357cfeef4360115a574f31c4557f9914108a75 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 19 Feb 2026 18:13:08 +0100 Subject: [PATCH 49/50] refactor: simplify Snitch parsers, templates, and bindings - Simplify SnitchRMSNormParser/SnitchHardSwishParser via inheritance from Generic - Remove unnecessary TilingVariableReplacement("L2") from TiledTransformer - Delete unused Snitch GatherTemplate.py (now using Generic) - Remove redundant comments in FloatAdd/FloatMul/FloatRMSNorm templates --- Deeploy/Targets/Snitch/Bindings.py | 1 - Deeploy/Targets/Snitch/Parsers.py | 75 ++----------------- .../Snitch/Templates/FloatAddTemplate.py | 1 - .../Snitch/Templates/FloatMulTemplate.py | 1 - .../Snitch/Templates/FloatRMSNormTemplate.py | 1 - .../Snitch/Templates/GatherTemplate.py | 18 ----- 6 files changed, 7 insertions(+), 90 deletions(-) delete mode 100644 Deeploy/Targets/Snitch/Templates/GatherTemplate.py diff --git a/Deeploy/Targets/Snitch/Bindings.py b/Deeploy/Targets/Snitch/Bindings.py index f3ecd945be..4cb894bf93 100644 --- a/Deeploy/Targets/Snitch/Bindings.py +++ b/Deeploy/Targets/Snitch/Bindings.py @@ -53,7 +53,6 @@ SnitchClusterTiling("L2", "L1", SnitchDma()), ArgumentStructGeneration(), MemoryManagementGeneration("L1"), - TilingVariableReplacement("L2"), MemoryAwareFunctionCallClosure(writeback = False, generateStruct = True), MemoryManagementGeneration("L2"), MemoryManagementGeneration() diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 1b01ac02d8..6e25c90a97 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -8,7 +8,8 @@ import onnx_graphsurgeon as gs from Deeploy.DeeployTypes import NetworkContext, NodeParser -from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser +from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser, \ + iHardswishParser, iRMSNormParser class SnitchGEMMParser(GEMMParser): @@ -75,16 +76,15 @@ def parseNodeCtxt(self, return newCtxt, True -class SnitchRMSNormParser(NodeParser): - - def __init__(self): - super().__init__() +class SnitchRMSNormParser(iRMSNormParser): + """FP32 RMSNorm parser. Inherits parseNodeCtxt from iRMSNormParser.""" def parseNode(self, node: gs.Node) -> bool: if node.op != 'RMSNorm': return False if len(node.inputs) != 2 or len(node.outputs) != 1: return False + eps = node.attrs.get('eps', node.attrs.get('epsilon', 1e-6)) self.operatorRepresentation['eps'] = f"{float(eps):.10e}f" @@ -92,80 +92,19 @@ def parseNode(self, node: gs.Node) -> bool: if stash_type != 1: raise ValueError(f"RMSNorm: only stash_type=1 (FP32) is supported, got {stash_type}") - axis = node.attrs.get('axis', -1) - self.operatorRepresentation['axis'] = axis - return True - def parseNodeCtxt(self, - ctxt: NetworkContext, - node: gs.Node, - channels_first: bool = True) -> Tuple[NetworkContext, bool]: - data_in = ctxt.lookup(node.inputs[0].name) - weight = ctxt.lookup(node.inputs[1].name) - data_out = ctxt.lookup(node.outputs[0].name) - - self.operatorRepresentation['data_in'] = data_in.name - self.operatorRepresentation['weight'] = weight.name - self.operatorRepresentation['data_out'] = data_out.name - self.operatorRepresentation['input_shape'] = list(data_in.shape) - self.operatorRepresentation['weight_shape'] = list(weight.shape) - self.operatorRepresentation['output_shape'] = list(data_out.shape) - self.operatorRepresentation['input_ndim'] = len(data_in.shape) - self.operatorRepresentation['weight_ndim'] = len(weight.shape) - - input_shape = list(data_in.shape) - axis = self.operatorRepresentation['axis'] - if axis < 0: - axis = len(input_shape) + axis - - self.operatorRepresentation['inputSize'] = int(np.prod(input_shape)) - self.operatorRepresentation['NormalizedAxesSize'] = int(np.prod(input_shape[axis:])) - self.operatorRepresentation['scale'] = node.inputs[1].values - - # Keep old keys for C template compatibility - self.operatorRepresentation['size'] = int(np.prod(input_shape)) - self.operatorRepresentation['lastDimLength'] = int(input_shape[-1]) - - return ctxt, True - - -class SnitchHardSwishParser(NodeParser): - def __init__(self): - super().__init__() +class SnitchHardSwishParser(iHardswishParser): + """FP32 HardSwish parser. Inherits parseNodeCtxt from iHardswishParser.""" def parseNode(self, node: gs.Node) -> bool: - """Parse HardSwish node.""" - if node.op != 'HardSwish': return False - - # Check basic structure: 1 input and 1 output if len(node.inputs) != 1 or len(node.outputs) != 1: return False - return True - def parseNodeCtxt(self, - ctxt: NetworkContext, - node: gs.Node, - channels_first: bool = True) -> Tuple[NetworkContext, bool]: - """Parse HardSwish node with network context.""" - - # Get input and output buffers - data_in = ctxt.lookup(node.inputs[0].name) - data_out = ctxt.lookup(node.outputs[0].name) - - # Store buffer names - self.operatorRepresentation['data_in'] = data_in.name - self.operatorRepresentation['data_out'] = data_out.name - - # Calculate size for memory allocation - self.operatorRepresentation['size'] = int(np.prod(data_in.shape)) - - return ctxt, True - class SnitchAddParser(AddParser): """Inherits from Generic AddParser which already handles broadcasting.""" diff --git a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py index 5c5675c58f..20b72e4d27 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py @@ -1,7 +1,6 @@ # SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna # # SPDX-License-Identifier: Apache-2.0 -# Deeploy/Targets/Snitch/Templates/FloatAddTemplate.py from typing import Dict, List, Tuple diff --git a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py index 1e20279922..ec2ec8595c 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatMulTemplate.py @@ -33,7 +33,6 @@ def alignToContext(self, ctxt: NetworkContext, # Template for element-wise multiplication -# Note: MulParser uses A, B, C for input1, input2, output respectively FloatMulTemplateStr = r""" Mul_fp32(${A}, ${B}, ${C}, ${size}); """ diff --git a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py index c6f611122d..f25bdf53c0 100644 --- a/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py +++ b/Deeploy/Targets/Snitch/Templates/FloatRMSNormTemplate.py @@ -20,7 +20,6 @@ def alignToContext(self, ctxt: NetworkContext, data_in = ctxt.lookup(operatorRepresentation["data_in"]) input_shape = list(data_in.shape) - # C template uses ${size} and ${lastDimLength} operatorRepresentation["size"] = int(np.prod(input_shape)) operatorRepresentation["lastDimLength"] = operatorRepresentation["NormalizedAxesSize"] diff --git a/Deeploy/Targets/Snitch/Templates/GatherTemplate.py b/Deeploy/Targets/Snitch/Templates/GatherTemplate.py deleted file mode 100644 index fafde9c663..0000000000 --- a/Deeploy/Targets/Snitch/Templates/GatherTemplate.py +++ /dev/null @@ -1,18 +0,0 @@ -# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna -# -# SPDX-License-Identifier: Apache-2.0 - -from Deeploy.DeeployTypes import NodeTemplate - -# Use snrt_cluster_core_idx() == 0 instead of BEGIN_SINGLE_CORE macro to avoid core_id dependency -referenceTemplate = NodeTemplate(""" -// Gather (Name: ${nodeName}, Op: ${nodeOp}) -<% -width = int(data_in_type.referencedType.typeWidth/8) -%> -if (snrt_cluster_core_idx() == 0) { -for (uint32_t i=0; i<${batch}; ++i) { - memcpy(${data_out} + i * ${axis_length}, ${data_in} + i * ${batch_length} + ${index} * ${axis_length}, ${axis_length} * ${width}); -} -} -""") From c7b9771ad0b38900af43c6d572e1870ce9e3bbb2 Mon Sep 17 00:00:00 2001 From: lee2716 Date: Thu, 19 Feb 2026 18:41:40 +0100 Subject: [PATCH 50/50] refactor: address reviewer comments and reduce code duplication - CI: split snitch-kernels and snitch-models into separate jobs (matching Siracusa pattern) - Revert out-of-scope LoweringOptimizationPasses.py change - Merge duplicate FloatDivTileConstraint/FloatMulTileConstraint into FloatScalarBOPTileConstraint - Consolidate TileConstraint imports in Tiler.py - Remove unused imports (NodeParser in Parsers.py, BasicConcatBindings in Platform.py) --- .github/workflows/ci-platform-snitch.yml | 10 +- .../LoweringOptimizationPasses.py | 4 +- Deeploy/Targets/Snitch/Parsers.py | 2 +- Deeploy/Targets/Snitch/Platform.py | 4 +- .../TileConstraints/FloatMulTileConstraint.py | 96 ------------------- ...int.py => FloatScalarBOPTileConstraint.py} | 9 +- .../Snitch/TileConstraints/__init__.py | 5 +- Deeploy/Targets/Snitch/Tiler.py | 11 +-- 8 files changed, 27 insertions(+), 114 deletions(-) delete mode 100644 Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py rename Deeploy/Targets/Snitch/TileConstraints/{FloatDivTileConstraint.py => FloatScalarBOPTileConstraint.py} (92%) diff --git a/.github/workflows/ci-platform-snitch.yml b/.github/workflows/ci-platform-snitch.yml index 36b105a558..470d43efad 100644 --- a/.github/workflows/ci-platform-snitch.yml +++ b/.github/workflows/ci-platform-snitch.yml @@ -35,4 +35,12 @@ jobs: with: runner: ${{ needs.select-env.outputs.runner }} docker-image: ${{ needs.select-env.outputs.image }} - pytest-marker: "(kernels or models)" + pytest-marker: kernels + + snitch-models: + needs: select-env + uses: ./.github/workflows/_runner-snitch.yml + with: + runner: ${{ needs.select-env.outputs.runner }} + docker-image: ${{ needs.select-env.outputs.image }} + pytest-marker: models diff --git a/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py b/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py index 91f08e887f..aba6740d49 100644 --- a/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py +++ b/Deeploy/CommonExtensions/OptimizationPasses/TopologyOptimizationPasses/LoweringOptimizationPasses.py @@ -488,9 +488,7 @@ def _remove_global_output_reshape_fun(graph: gs.Graph, match: Match, name: str): node = next(iter((match.nodes_map.values()))) isGlobalOutput = len(node.outputs[0].outputs) == 0 - # Don't delete if the input is also a global input (i.e., single-node graph) - isGlobalInput = node.inputs[0] in graph.inputs - if isGlobalOutput and not isGlobalInput: + if isGlobalOutput: graph.deleteNode(node) return graph diff --git a/Deeploy/Targets/Snitch/Parsers.py b/Deeploy/Targets/Snitch/Parsers.py index 6e25c90a97..685ead2b28 100644 --- a/Deeploy/Targets/Snitch/Parsers.py +++ b/Deeploy/Targets/Snitch/Parsers.py @@ -7,7 +7,7 @@ import numpy as np import onnx_graphsurgeon as gs -from Deeploy.DeeployTypes import NetworkContext, NodeParser +from Deeploy.DeeployTypes import NetworkContext from Deeploy.Targets.Generic.Parsers import AddParser, DivParser, GEMMParser, MulParser, RQGEMMParser, \ iHardswishParser, iRMSNormParser diff --git a/Deeploy/Targets/Snitch/Platform.py b/Deeploy/Targets/Snitch/Platform.py index bfa9e3a73a..83dc778b17 100644 --- a/Deeploy/Targets/Snitch/Platform.py +++ b/Deeploy/Targets/Snitch/Platform.py @@ -9,8 +9,8 @@ from Deeploy.AbstractDataTypes import Pointer, PointerClass, VoidType from Deeploy.DeeployTypes import ConstantBuffer, DeploymentEngine, DeploymentPlatform, NodeMapper, NodeTemplate, \ StructBuffer, TopologyOptimizer, TransientBuffer, VariableBuffer -from Deeploy.Targets.Generic.Bindings import BasicConcatBindings, BasicLayerNormBindings, BasicPad1DBindings, \ - BasicPad2DBindings, BasicReshapeBindings, BasicRQIntegerDivBinding +from Deeploy.Targets.Generic.Bindings import BasicLayerNormBindings, BasicPad1DBindings, BasicPad2DBindings, \ + BasicReshapeBindings, BasicRQIntegerDivBinding from Deeploy.Targets.Generic.Layers import AddLayer, ConcatLayer, DivLayer, GatherLayer, GEMMLayer, HardSwishLayer, \ LayerNormLayer, MatMulLayer, MulLayer, PadLayer, ReshapeLayer, RMSNormLayer, RQGEMMLayer, RQIntegerDivLayer, \ SoftmaxLayer, TransposeLayer, iNoNormLayer diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py deleted file mode 100644 index 2247aef874..0000000000 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatMulTileConstraint.py +++ /dev/null @@ -1,96 +0,0 @@ -# SPDX-FileCopyrightText: 2026 ETH Zurich and University of Bologna -# -# SPDX-License-Identifier: Apache-2.0 - -from typing import Dict, List, Tuple - -import numpy as np - -from Deeploy.AbstractDataTypes import PointerClass -from Deeploy.CommonExtensions.DataTypes import uint16_t -from Deeploy.DeeployTypes import NetworkContext, OperatorRepresentation -from Deeploy.TilingExtension.MemoryConstraints import NodeMemoryConstraint -from Deeploy.TilingExtension.TileConstraint import TileConstraint -from Deeploy.TilingExtension.TilerModel import TilerModel -from Deeploy.TilingExtension.TilingCodegen import AbsoluteHyperRectangle, HyperRectangle, TilingSchedule, \ - VariableReplacementScheme - - -class FloatMulTileConstraint(TileConstraint): - """Tile constraint for FP32 Mul: supports scalar and element-wise cases.""" - - dataIn1Name = "A" - dataIn2Name = "B" - dataOutName = "C" - - @classmethod - def addGeometricalConstraint(cls, tilerModel: TilerModel, parseDict: Dict, ctxt: NetworkContext) -> TilerModel: - - inputBuffer1Name = parseDict[cls.dataIn1Name] - inputBuffer2Name = parseDict[cls.dataIn2Name] - outputBufferName = parseDict[cls.dataOutName] - - tilerModel.addTensorDimToModel(ctxt, inputBuffer1Name) - tilerModel.addTensorDimToModel(ctxt, inputBuffer2Name) - tilerModel.addTensorDimToModel(ctxt, outputBufferName) - - input1Shape = list(ctxt.lookup(inputBuffer1Name).shape) - input2Shape = list(ctxt.lookup(inputBuffer2Name).shape) - - is_scalar = (np.prod(input2Shape) == 1) - - if is_scalar: - # Scalar: tile A and C together, B stays fixed - for dim in range(len(input1Shape)): - in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - tilerModel.addConstraint(in1Var == outVar) - for dim in range(len(input2Shape)): - in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - tilerModel.addConstraint(in2Var == input2Shape[dim]) - else: - # Element-wise: all three tensors tiled identically - for dim in range(len(input1Shape)): - in1Var = tilerModel.getTensorDimVar(tensorName = inputBuffer1Name, dimIdx = dim) - in2Var = tilerModel.getTensorDimVar(tensorName = inputBuffer2Name, dimIdx = dim) - outVar = tilerModel.getTensorDimVar(tensorName = outputBufferName, dimIdx = dim) - tilerModel.addConstraint(in1Var == in2Var) - tilerModel.addConstraint(in1Var == outVar) - - return tilerModel - - @classmethod - def serializeTilingSolution( - cls, tilingSolution: NodeMemoryConstraint, absoluteOutputCubes: List[AbsoluteHyperRectangle], - targetMemLevel: str, ctxt: NetworkContext, - operatorRepresentation: OperatorRepresentation) -> Tuple[VariableReplacementScheme, TilingSchedule]: - outputCubes = [cube.rectangle for cube in absoluteOutputCubes] - - addrNames = [cls.dataIn1Name, cls.dataIn2Name, cls.dataOutName] - inputBaseOffsets, outputBaseOffsets = cls.extractBaseAddr(tilingSolution, targetMemLevel, - operatorRepresentation, addrNames) - - replacements = {"size": []} - replacementTypes = {"size": PointerClass(uint16_t)} - - input2Shape = list(ctxt.lookup(operatorRepresentation[cls.dataIn2Name]).shape) - is_scalar = (np.prod(input2Shape) == 1) - - inputLoadSchedule = [] - outputLoadSchedule = [] - - for cube in outputCubes: - replacements["size"].append(np.prod(cube.dims)) - if is_scalar: - in2Cube = HyperRectangle(tuple([0] * len(input2Shape)), tuple(input2Shape)) - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: in2Cube}) - else: - inputLoadSchedule.append({cls.dataIn1Name: cube, cls.dataIn2Name: cube}) - - for out in outputCubes: - outputLoadSchedule.append({cls.dataOutName: out}) - - tilingSchedule = TilingSchedule(inputBaseOffsets, outputBaseOffsets, inputLoadSchedule, outputLoadSchedule) - variableReplacementSchedule = VariableReplacementScheme(replacements, replacementTypes) - - return variableReplacementSchedule, tilingSchedule diff --git a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py b/Deeploy/Targets/Snitch/TileConstraints/FloatScalarBOPTileConstraint.py similarity index 92% rename from Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py rename to Deeploy/Targets/Snitch/TileConstraints/FloatScalarBOPTileConstraint.py index 82c012680e..9f51a8134e 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/FloatDivTileConstraint.py +++ b/Deeploy/Targets/Snitch/TileConstraints/FloatScalarBOPTileConstraint.py @@ -16,8 +16,13 @@ VariableReplacementScheme -class FloatDivTileConstraint(TileConstraint): - """Tile constraint for FP32 Div: supports scalar and element-wise cases.""" +class FloatScalarBOPTileConstraint(TileConstraint): + """Tile constraint for binary operators with scalar broadcasting support. + + Extends BOPTileConstraint with scalar handling: when one input has size 1, + it is loaded in full (not tiled) while the other input and output are tiled together. + Used by FP32 Div and Mul operators. + """ dataIn1Name = "A" dataIn2Name = "B" diff --git a/Deeploy/Targets/Snitch/TileConstraints/__init__.py b/Deeploy/Targets/Snitch/TileConstraints/__init__.py index c58816f9df..1fcabd7305 100644 --- a/Deeploy/Targets/Snitch/TileConstraints/__init__.py +++ b/Deeploy/Targets/Snitch/TileConstraints/__init__.py @@ -3,7 +3,8 @@ # SPDX-License-Identifier: Apache-2.0 from . import * -from .FloatDivTileConstraint import * -from .FloatMulTileConstraint import * +from .FloatScalarBOPTileConstraint import * +from .GemmTileConstraint import * from .iNoNormTileConstraint import * from .iSoftmaxTileConstraint import * +from .RqGemmTileConstraint import * diff --git a/Deeploy/Targets/Snitch/Tiler.py b/Deeploy/Targets/Snitch/Tiler.py index 6d99624e34..c8c340d6b8 100644 --- a/Deeploy/Targets/Snitch/Tiler.py +++ b/Deeploy/Targets/Snitch/Tiler.py @@ -14,11 +14,8 @@ SnitchGatherBindings, SnitchGemmBindings, SnitchHardSwishBindings, SnitchiNoNormBindings, SnitchiSoftmaxBindings, \ SnitchMatMulBindings, SnitchMulBindings, SnitchReshapeBindings, SnitchRMSNormBindings, SnitchRQAddBindings, \ SnitchRqGemmBindings, SnitchTransposeBindings -from Deeploy.Targets.Snitch.TileConstraints import iNoNormTileConstraint, iSoftmaxTileConstraint -from Deeploy.Targets.Snitch.TileConstraints.FloatDivTileConstraint import FloatDivTileConstraint -from Deeploy.Targets.Snitch.TileConstraints.FloatMulTileConstraint import FloatMulTileConstraint -from Deeploy.Targets.Snitch.TileConstraints.GemmTileConstraint import GemmTileConstraint -from Deeploy.Targets.Snitch.TileConstraints.RqGemmTileConstraint import RqGemmTileConstraint +from Deeploy.Targets.Snitch.TileConstraints import FloatScalarBOPTileConstraint, GemmTileConstraint, \ + iNoNormTileConstraint, iSoftmaxTileConstraint, RqGemmTileConstraint from Deeploy.TilingExtension.TilerExtension import TilingReadyNodeBindings SnitchiSoftmaxTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchiSoftmaxBindings, @@ -42,10 +39,10 @@ tileConstraint = iHardswishTileConstraint()) SnitchDivTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchDivBindings, - tileConstraint = FloatDivTileConstraint()) + tileConstraint = FloatScalarBOPTileConstraint()) SnitchMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMulBindings, - tileConstraint = FloatMulTileConstraint()) + tileConstraint = FloatScalarBOPTileConstraint()) SnitchMatMulTilingReadyBindings = TilingReadyNodeBindings(nodeBindings = SnitchMatMulBindings, tileConstraint = MatMulTileConstraint())

gH{!zDArcJ-Nn|jlah;M?RcgqM43>^ce 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 `*cTb$GWD*R&P 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