From ff4499eba9981c66cedff9d90aac2ac69be416b7 Mon Sep 17 00:00:00 2001 From: auphelia <jakobapk@web.de> Date: Fri, 24 Jul 2020 18:23:56 +0100 Subject: [PATCH] [Test] Add exp cycle test to convinputgenerator rtlsim test --- .../test_fpgadataflow_convinputgenerator.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/fpgadataflow/test_fpgadataflow_convinputgenerator.py b/tests/fpgadataflow/test_fpgadataflow_convinputgenerator.py index b5fc85caf..9bf7117db 100644 --- a/tests/fpgadataflow/test_fpgadataflow_convinputgenerator.py +++ b/tests/fpgadataflow/test_fpgadataflow_convinputgenerator.py @@ -27,6 +27,7 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. import pytest +import numpy as np from onnx import TensorProto, helper @@ -42,6 +43,9 @@ from finn.transformation.fpgadataflow.prepare_rtlsim import PrepareRTLSim from finn.transformation.general import GiveUniqueNodeNames from finn.util.basic import gen_finn_dt_tensor +from finn.custom_op.registry import getCustomOp +from finn.analysis.fpgadataflow.exp_cycles_per_layer import exp_cycles_per_layer + def make_single_im2col_modelwrapper(k, ifm_ch, ifm_dim, ofm_dim, simd, stride, idt): odt = idt @@ -182,3 +186,12 @@ def test_fpgadataflow_slidingwindow( y_expected = y_expected.transpose(0, 1, 2, 4, 3, 5) y_expected = y_expected.reshape(1, ofm_dim, ofm_dim, ifm_ch * k * k) assert (y_produced == y_expected).all() + + if exec_mode == "rtlsim": + node = model.get_nodes_by_op_type("ConvolutionInputGenerator")[0] + inst = getCustomOp(node) + sim_cycles = inst.get_nodeattr("sim_cycles") + exp_cycles_dict = model.analysis(exp_cycles_per_layer) + exp_cycles = exp_cycles_dict[str(node)] + assert np.isclose(exp_cycles, sim_cycles, atol=10) + assert exp_cycles != 0 -- GitLab