diff --git a/src/finn/transformation/fpgadataflow/prepare_ip.py b/src/finn/transformation/fpgadataflow/prepare_ip.py index 7c2dfd9bebb49fbaa377a769a6650d99ec42b110..2ebd6310f01baebe307befef6bd5db41142edbc8 100644 --- a/src/finn/transformation/fpgadataflow/prepare_ip.py +++ b/src/finn/transformation/fpgadataflow/prepare_ip.py @@ -46,11 +46,7 @@ def _codegen_single_node(node, model, fpgapart, clk): # get the path of the code generation directory code_gen_dir = inst.get_nodeattr("code_gen_dir_ipgen") # ensure that there is a directory - if ( - code_gen_dir == "" - or not os.path.isdir(code_gen_dir) - or not str(node.name) in code_gen_dir - ): + if code_gen_dir == "" or not os.path.isdir(code_gen_dir): code_gen_dir = make_build_dir( prefix="code_gen_ipgen_" + str(node.name) + "_" ) diff --git a/src/finn/transformation/fpgadataflow/vitis_build.py b/src/finn/transformation/fpgadataflow/vitis_build.py index 855b30fe9573c534a13c961277ae4ab84507d619..97da4d41524e7c86fb5a73375d9ea2c2c9aa10dc 100644 --- a/src/finn/transformation/fpgadataflow/vitis_build.py +++ b/src/finn/transformation/fpgadataflow/vitis_build.py @@ -411,12 +411,13 @@ class VitisBuild(Transformation): # Build each kernel individually sdp_nodes = model.get_nodes_by_op_type("StreamingDataflowPartition") for sdp_node in sdp_nodes: + prefix = sdp_node.name + "_" sdp_node = getCustomOp(sdp_node) dataflow_model_filename = sdp_node.get_nodeattr("model") kernel_model = ModelWrapper(dataflow_model_filename) kernel_model = kernel_model.transform(InsertFIFO()) kernel_model = kernel_model.transform(RemoveUnusedTensors()) - kernel_model = kernel_model.transform(GiveUniqueNodeNames()) + kernel_model = kernel_model.transform(GiveUniqueNodeNames(prefix)) kernel_model.save(dataflow_model_filename) kernel_model = kernel_model.transform( PrepareIP(self.fpga_part, self.period_ns) diff --git a/tests/end2end/test_end2end_bnn_pynq.py b/tests/end2end/test_end2end_bnn_pynq.py index ccdd8816ee51d3bde56f41e436ed080b5a36eeca..79cfafa22d670f168c3c03a5ef01a51256912a8c 100644 --- a/tests/end2end/test_end2end_bnn_pynq.py +++ b/tests/end2end/test_end2end_bnn_pynq.py @@ -102,7 +102,7 @@ from finn.util.test import ( ) build_dir = os.environ["FINN_BUILD_DIR"] -target_clk_ns = 10 +target_clk_ns = 20 mem_mode = "decoupled" rtlsim_trace = False diff --git a/tests/end2end/test_end2end_cybsec_mlp.py b/tests/end2end/test_end2end_cybsec_mlp.py index b6482dc96c4d866618d19d810fa9385b20aa0222..290afc308498490cbee2fc75c30e22bb474eb96a 100644 --- a/tests/end2end/test_end2end_cybsec_mlp.py +++ b/tests/end2end/test_end2end_cybsec_mlp.py @@ -229,6 +229,7 @@ def test_end2end_cybsec_mlp_build(QONNX_export): @pytest.mark.end2end +@pytest.mark.xfail @pytest.mark.parametrize("QONNX_export", [False, True]) def test_end2end_cybsec_mlp_run_on_hw(QONNX_export): build_env = get_build_env(build_kind, target_clk_ns) diff --git a/tests/end2end/test_ext_weights.py b/tests/end2end/test_ext_weights.py index 9483ccf0b27ebc385ed017d0a0b316ab189a1f96..0a92c74a38d64ade37d576f3830f3a5628c94d88 100644 --- a/tests/end2end/test_ext_weights.py +++ b/tests/end2end/test_ext_weights.py @@ -90,6 +90,7 @@ def test_end2end_ext_weights_build(): output_dir = make_build_dir("test_end2end_ext_weights_build") cfg = build.DataflowBuildConfig( output_dir=output_dir, + verbose=True, folding_config_file=folding_config_file, synth_clk_period_ns=target_clk_ns, board=build_env["board"], @@ -113,6 +114,7 @@ def test_end2end_ext_weights_build(): @pytest.mark.board @pytest.mark.end2end +@pytest.mark.xfail def test_end2end_ext_weights_dataset(): # make sure we have local copies of mnist dataset files subprocess.check_output(["mkdir", "-p", mnist_local]) @@ -129,6 +131,7 @@ def test_end2end_ext_weights_dataset(): @pytest.mark.end2end +@pytest.mark.xfail def test_end2end_ext_weights_run_on_hw(): build_env = get_build_env(build_kind, target_clk_ns) deploy_dir = get_checkpoint_name("build") diff --git a/tests/fpgadataflow/test_fpgadataflow_concat.py b/tests/fpgadataflow/test_fpgadataflow_concat.py index 8488a34dff52d39c28fbea25275c9a4b59c37f80..5fff286e54e64b71481a3c2801850a37613fd694 100644 --- a/tests/fpgadataflow/test_fpgadataflow_concat.py +++ b/tests/fpgadataflow/test_fpgadataflow_concat.py @@ -72,6 +72,7 @@ def make_concat_model(i_shapes, idt): @pytest.mark.parametrize("exec_mode", ["cppsim", "rtlsim"]) @pytest.mark.parametrize("idt", [DataType["INT4"]]) +@pytest.mark.fpgadataflow @pytest.mark.vivado @pytest.mark.slow def test_fpgadataflow_concat(exec_mode, idt): @@ -107,6 +108,7 @@ def test_fpgadataflow_concat(exec_mode, idt): assert (exp_out == ret_sim[oname]).all() +@pytest.mark.fpgadataflow @pytest.mark.vivado @pytest.mark.slow def test_fpgadataflow_concat_stitchedip(): diff --git a/tests/fpgadataflow/test_fpgadataflow_ipstitch.py b/tests/fpgadataflow/test_fpgadataflow_ipstitch.py index 80f2d724ad7ccbf563c23076155313bad1ecb336..325470a6d6c6032249ca1dd64317fb288d3e94c9 100644 --- a/tests/fpgadataflow/test_fpgadataflow_ipstitch.py +++ b/tests/fpgadataflow/test_fpgadataflow_ipstitch.py @@ -348,6 +348,7 @@ def test_fpgadataflow_ipstitch_vitis_end2end(board, period_ns, extw): model = load_test_checkpoint_or_skip(sdp_node.get_nodeattr("model")) model = model.transform(GiveUniqueNodeNames()) model = model.transform(PrepareIP(fpga_part, period_ns)) + model = model.transform(HLSSynthIP()) model = model.transform(VitisBuild(fpga_part, period_ns, platform)) model.save(ip_stitch_model_dir + "/test_fpgadataflow_ipstitch_vitis.onnx") assert model.get_metadata_prop("platform") == "alveo" diff --git a/tests/transformation/streamline/test_move_flatten_past_topk.py b/tests/transformation/streamline/test_move_flatten_past_topk.py index 83d7a28c05fbd95834e5d84ab7537ae82c285d17..d1478088e2e8caaeb33fbec2880e74ea65905073 100644 --- a/tests/transformation/streamline/test_move_flatten_past_topk.py +++ b/tests/transformation/streamline/test_move_flatten_past_topk.py @@ -47,7 +47,7 @@ from finn.transformation.streamline.reorder import MoveFlattenPastTopK @pytest.mark.parametrize("data_layout", [DataLayout.NHWC, DataLayout.NCHW]) # batch size @pytest.mark.parametrize("batch_size", [1, 2]) -def test_move_flatten_past_affine(data_layout, batch_size): +def test_move_flatten_past_topk(data_layout, batch_size): if data_layout == DataLayout.NHWC: ishape = [batch_size, 1, 1, 1024] oshape = [batch_size, 1024]