From 4d5e0458dec18d833db8b4623351b27a33a0653f Mon Sep 17 00:00:00 2001 From: auphelia <jakobapk@web.de> Date: Tue, 17 Jan 2023 11:59:09 +0000 Subject: [PATCH] [MVAU] Update minimize accumulator width for bipolar case --- src/finn/custom_op/fpgadataflow/matrixvectoractivation.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/finn/custom_op/fpgadataflow/matrixvectoractivation.py b/src/finn/custom_op/fpgadataflow/matrixvectoractivation.py index 9f34eb151..72128fda4 100644 --- a/src/finn/custom_op/fpgadataflow/matrixvectoractivation.py +++ b/src/finn/custom_op/fpgadataflow/matrixvectoractivation.py @@ -576,6 +576,10 @@ class MatrixVectorActivation(HLSCustomOp): def minimize_accumulator_width(self, model): weights = model.get_initializer(self.onnx_node.input[1]) + # since in the calculation the values of the weight matrix are used, + # for the bipolar case they need to be converted to bipolar + if self.get_nodeattr("binaryXnorMode"): + weights = 2 * weights - 1 if len(self.onnx_node.input) > 2: thresholds = model.get_initializer(self.onnx_node.input[2]) else: -- GitLab