diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b34bebbd8d..d593aca57d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -220,9 +220,10 @@ Bench (Basic): pipeline_variables: true variables: PARENT_PIPELINE_ID: $CI_PIPELINE_ID + PARALLEL_JOBS: "8" parallel: matrix: - - BENCH_CFG: [regression_basic] + - BENCH_CFG: [regression_basic, regression_extended, regression_transformer] Bench (Extended): stage: test @@ -244,4 +245,4 @@ Bench (Extended): PARALLEL_JOBS: "8" parallel: matrix: - - BENCH_CFG: [regression_extended, regression_transformer, microbenchmark_basic] + - BENCH_CFG: [microbenchmark_basic] diff --git a/ci/cfg/live_fifosizing.yml b/ci/cfg/live_fifosizing.yml index e08045452a..bb3b8e9d18 100644 --- a/ci/cfg/live_fifosizing.yml +++ b/ci/cfg/live_fifosizing.yml @@ -114,10 +114,7 @@ # benchmark model ("dummy") { "dut": ["transformer"], - #"model_dir": ["models/transformer/finn-transformers/benchmark"], - "model_path": ["models/transformer/finn-transformers/benchmark/streamlined.onnx"], - "verify_input_npy": ["models/transformer/finn-transformers/benchmark/inp.npy"], - "verify_expected_output_npy": ["models/transformer/finn-transformers/benchmark/out.npy"], + "model_dir": ["models/transformer/finn-transformers/benchmark"], "live_fifo_sizing": [True], "generate_outputs": [["bitfile", "pynq_driver", "deployment_package"]], "target_fps": [1000], @@ -126,10 +123,7 @@ # language model { "dut": ["transformer"], - #"model_dir": ["models/transformer/finn-transformers/language"], - "model_path": ["models/transformer/finn-transformers/language/streamlined.onnx"], - "verify_input_npy": ["models/transformer/finn-transformers/language/inp.npy"], - "verify_expected_output_npy": ["models/transformer/finn-transformers/language/out.npy"], + "model_dir": ["models/transformer/finn-transformers/language"], "live_fifo_sizing": [True], "generate_outputs": [["bitfile", "pynq_driver", "deployment_package"]], "target_fps": [1000], @@ -138,10 +132,7 @@ # radioml model { "dut": ["transformer"], - #"model_dir": ["models/transformer/finn-transformers/radioml"], - "model_path": ["models/transformer/finn-transformers/radioml/streamlined.onnx"], - "verify_input_npy": ["models/transformer/finn-transformers/radioml/inp.npy"], - "verify_expected_output_npy": ["models/transformer/finn-transformers/radioml/out.npy"], + "model_dir": ["models/transformer/finn-transformers/radioml"], "live_fifo_sizing": [True], "generate_outputs": [["bitfile", "pynq_driver", "deployment_package"]], "target_fps": [1000], @@ -150,10 +141,7 @@ # vision model { "dut": ["transformer"], - #"model_dir": ["models/transformer/finn-transformers/vision"], - "model_path": ["models/transformer/finn-transformers/vision/streamlined.onnx"], - "verify_input_npy": ["models/transformer/finn-transformers/vision/inp.npy"], - "verify_expected_output_npy": ["models/transformer/finn-transformers/vision/out.npy"], + "model_dir": ["models/transformer/finn-transformers/vision"], "live_fifo_sizing": [True], "generate_outputs": [["bitfile", "pynq_driver", "deployment_package"]], "target_fps": [1000], diff --git a/ci/cfg/regression_transformer.yml b/ci/cfg/regression_transformer.yml index 175afff912..14873c44e9 100644 --- a/ci/cfg/regression_transformer.yml +++ b/ci/cfg/regression_transformer.yml @@ -3,10 +3,7 @@ # benchmark model ("dummy") { "dut": ["transformer"], - #"model_dir": ["models/transformer/finn-transformers/benchmark"], - "model_path": ["models/transformer/finn-transformers/benchmark/streamlined.onnx"], - "verify_input_npy": ["models/transformer/finn-transformers/benchmark/inp.npy"], - "verify_expected_output_npy": ["models/transformer/finn-transformers/benchmark/out.npy"], + "model_dir": ["models/transformer/finn-transformers/benchmark"], "generate_outputs": [["estimate_reports", "bitfile", "pynq_driver", "deployment_package"]], "target_fps": ["None"], "auto_fifo_depths": [False], @@ -16,10 +13,7 @@ # language model { "dut": ["transformer"], - #"model_dir": ["models/transformer/finn-transformers/language"], - "model_path": ["models/transformer/finn-transformers/language/streamlined.onnx"], - "verify_input_npy": ["models/transformer/finn-transformers/language/inp.npy"], - "verify_expected_output_npy": ["models/transformer/finn-transformers/language/out.npy"], + "model_dir": ["models/transformer/finn-transformers/language"], "generate_outputs": [["estimate_reports", "bitfile", "pynq_driver", "deployment_package"]], "target_fps": ["None"], "auto_fifo_depths": [False], @@ -29,10 +23,7 @@ # radioml model { "dut": ["transformer"], - #"model_dir": ["models/transformer/finn-transformers/radioml"], - "model_path": ["models/transformer/finn-transformers/radioml/streamlined.onnx"], - "verify_input_npy": ["models/transformer/finn-transformers/radioml/inp.npy"], - "verify_expected_output_npy": ["models/transformer/finn-transformers/radioml/out.npy"], + "model_dir": ["models/transformer/finn-transformers/radioml"], "generate_outputs": [["estimate_reports", "bitfile", "pynq_driver", "deployment_package"]], "target_fps": ["None"], "auto_fifo_depths": [False], @@ -42,10 +33,7 @@ # vision model { "dut": ["transformer"], - #"model_dir": ["models/transformer/finn-transformers/vision"], - "model_path": ["models/transformer/finn-transformers/vision/streamlined.onnx"], - "verify_input_npy": ["models/transformer/finn-transformers/vision/inp.npy"], - "verify_expected_output_npy": ["models/transformer/finn-transformers/vision/out.npy"], + "model_dir": ["models/transformer/finn-transformers/vision"], "generate_outputs": [["estimate_reports", "bitfile", "pynq_driver", "deployment_package"]], "target_fps": ["None"], "auto_fifo_depths": [False], diff --git a/src/finn/benchmarking/dut/bnn-pynq.yml b/src/finn/benchmarking/dut/bnn-pynq.yml index 69c1cf87b7..9d7de40441 100644 --- a/src/finn/benchmarking/dut/bnn-pynq.yml +++ b/src/finn/benchmarking/dut/bnn-pynq.yml @@ -8,9 +8,7 @@ steps: - finn.builder.custom_step_library.general.add_preproc_divide_by_255 # Custom step - finn.builder.custom_step_library.general.add_postproc_top1 # Custom step - - step_qonnx_to_finn - - step_tidy_up - - step_streamline + - step_passes_frontend - step_convert_to_hw - step_create_dataflow_partition - step_specialize_layers diff --git a/src/finn/benchmarking/dut/gtsrb.yml b/src/finn/benchmarking/dut/gtsrb.yml index 8a89a8adf2..255bd78f1e 100644 --- a/src/finn/benchmarking/dut/gtsrb.yml +++ b/src/finn/benchmarking/dut/gtsrb.yml @@ -8,9 +8,7 @@ specialize_layers_config_file: models/gtsrb/gtsrb_specialize_layers.json steps: - finn.builder.custom_step_library.general.add_preproc_divide_by_255 # Custom step - finn.builder.custom_step_library.general.add_postproc_top1 # Custom step - - step_qonnx_to_finn - - step_tidy_up - - step_streamline + - step_passes_frontend - step_convert_to_hw - step_create_dataflow_partition - step_specialize_layers diff --git a/src/finn/benchmarking/dut/kws.yml b/src/finn/benchmarking/dut/kws.yml index 9346c58beb..3ab7116d6c 100644 --- a/src/finn/benchmarking/dut/kws.yml +++ b/src/finn/benchmarking/dut/kws.yml @@ -7,9 +7,7 @@ specialize_layers_config_file: models/kws/kws_specialize_layers.json steps: - finn.builder.custom_step_library.general.add_postproc_top1 # Custom step - - step_qonnx_to_finn - - step_tidy_up - - step_streamline + - step_passes_frontend - step_convert_to_hw - step_create_dataflow_partition - step_specialize_layers diff --git a/src/finn/benchmarking/dut/mobilenetv1.yml b/src/finn/benchmarking/dut/mobilenetv1.yml index 16a68f4143..7594381a23 100644 --- a/src/finn/benchmarking/dut/mobilenetv1.yml +++ b/src/finn/benchmarking/dut/mobilenetv1.yml @@ -3,8 +3,7 @@ folding_config_file: models/mobilenetv1/ZCU102_folding_config_live_fifo.json specialize_layers_config_file: models/mobilenetv1/ZCU102_specialize_layers.json steps: - - finn.builder.custom_step_library.mobilenet.step_mobilenet_streamline # Custom step - - finn.builder.custom_step_library.mobilenet.step_mobilenet_lower_convs # Custom step + - step_passes_frontend - finn.builder.custom_step_library.mobilenet.step_mobilenet_convert_to_hw_layers_separate_th # Custom step - step_create_dataflow_partition - step_specialize_layers diff --git a/src/finn/benchmarking/dut/transformer.yml b/src/finn/benchmarking/dut/transformer.yml index 1232cb5778..be6e0eb263 100644 --- a/src/finn/benchmarking/dut/transformer.yml +++ b/src/finn/benchmarking/dut/transformer.yml @@ -4,13 +4,7 @@ specialize_layers_config_file: src/finn/benchmarking/dut/transformer_specializat # Sequence of steps to transform, optimize and build the accelerator steps: - #- step_passes_frontend - # TODO: broken with step_passes_frontend, use pre-streamlined model instead - - finn.builder.passes.export - # Default FINN frontend step sequence (TODO: remove after new frontend is complete) - - step_qonnx_to_finn - - step_tidy_up - - step_streamline + - step_passes_frontend # Customized adhoc hardware conversion step: Includes inferring the fused # operator for scaled dot-product attention - finn.builder.custom_step_library.transformer_adhoc.step_convert_to_hw diff --git a/src/finn/benchmarking/dut/vgg10.yml b/src/finn/benchmarking/dut/vgg10.yml index 99a9ab333d..1a653c83f8 100644 --- a/src/finn/benchmarking/dut/vgg10.yml +++ b/src/finn/benchmarking/dut/vgg10.yml @@ -3,9 +3,7 @@ folding_config_file: models/vgg10/ZCU104_folding_config.json specialize_layers_config_file: models/vgg10/ZCU104_specialize_layers.json steps: - - step_tidy_up - - finn.builder.custom_step_library.conv1d.step_pre_streamline # Custom step - - step_streamline + - step_passes_frontend - step_convert_to_hw - finn.builder.custom_step_library.conv1d.step_convert_final_layers # Custom step - step_create_dataflow_partition diff --git a/src/finn/builder/build_dataflow_config.py b/src/finn/builder/build_dataflow_config.py index 37e63b64a3..bef6ee2151 100644 --- a/src/finn/builder/build_dataflow_config.py +++ b/src/finn/builder/build_dataflow_config.py @@ -147,9 +147,7 @@ class VerificationStepType(str, Enum): #: specified order. Use the `steps` as part of build config to restrict which #: steps will be run. default_build_dataflow_steps = [ - "step_qonnx_to_finn", - "step_tidy_up", - "step_streamline", + "step_passes_frontend", "step_convert_to_hw", "step_create_dataflow_partition", "step_specialize_layers", @@ -171,9 +169,7 @@ class VerificationStepType(str, Enum): #: List of steps to run for an estimate-only (no synthesis) dataflow build estimate_only_dataflow_steps = [ - "step_qonnx_to_finn", - "step_tidy_up", - "step_streamline", + "step_passes_frontend", "step_convert_to_hw", "step_create_dataflow_partition", "step_specialize_layers",