-
Georg Streich authoredGeorg Streich authored
build_accl.py 1.85 KiB
import os
import shutil
import numpy as np
import finn.builder.build_dataflow as build
import finn.builder.build_dataflow_config as build_cfg
unsw_nb15_data = np.load("./unsw_nb15_binarized.npz")
inp = np.zeros((1, 3, 32, 32)).astype(np.float32)
out = np.zeros((1)).astype(np.float32)
np.save(open("input.npy", "wb"), inp)
np.save(open("expected_output.npy", "wb"), out)
# model_dir = os.environ['FINN_ROOT'] + "/pretrained_models"
# model_file = model_dir + "/cnv-w1a2.onnx"
model_file = '/tmp/finn_dev_streichg/end2end_cnv_w1a1_folded.onnx'
estimates_output_dir = "output_estimates_only"
os.environ["RTLSIM_TRACE_DEPTH"] = "3"
steps = [
# "step_qonnx_to_finn",
# "step_tidy_up",
# "step_streamline",
# "step_convert_to_hls",
# "step_create_dataflow_partition",
# "step_target_fps_parallelization",
# "step_apply_folding_config",
"step_minimize_bit_width",
"step_assign_partition_ids",
"step_insert_accl",
"step_split_dataflow",
"step_generate_estimate_reports",
"step_hls_codegen",
"step_hls_ipgen",
"step_set_fifo_depths",
"step_create_stitched_ip",
]
cfg_splits = build.DataflowBuildConfig(
verbose = True,
output_dir = estimates_output_dir,
steps = steps,
# mvau_wwidth_max = 64,
# target_fps = 1000000,
synth_clk_period_ns = 10.0,
generate_outputs = [
build_cfg.DataflowOutputType.ESTIMATE_REPORTS,
build_cfg.DataflowOutputType.STITCHED_IP,
],
stitched_ip_gen_dcp = True,
verify_steps = [build_cfg.VerificationStepType.FOLDED_HLS_CPPSIM],
shell_flow_type = build_cfg.ShellFlowType.VITIS_ALVEO,
board = "U55C",
num_boards = 2,
save_intermediate_models = True,
# start_step="step_insert_accl",
)
build.build_distributed_dataflow_cfg(model_file, cfg_splits)