From efb4379c89d54211a18f9c23960a42fa4c4bf911 Mon Sep 17 00:00:00 2001 From: Vladimir Loncar Date: Mon, 11 Nov 2024 19:23:27 +0100 Subject: [PATCH] Add RF to config templates for "Merge" layers --- hls4ml/backends/catapult/passes/merge_templates.py | 1 + hls4ml/backends/oneapi/passes/merge_templates.py | 1 + hls4ml/backends/quartus/passes/merge_templates.py | 1 + hls4ml/backends/vivado/passes/merge_templates.py | 1 + hls4ml/templates/catapult/nnet_utils/nnet_merge.h | 1 + hls4ml/templates/oneapi/firmware/nnet_utils/nnet_merge.h | 1 + hls4ml/templates/quartus/firmware/nnet_utils/nnet_merge.h | 1 + hls4ml/templates/vivado/nnet_utils/nnet_merge.h | 1 + 8 files changed, 8 insertions(+) diff --git a/hls4ml/backends/catapult/passes/merge_templates.py b/hls4ml/backends/catapult/passes/merge_templates.py index ff6928679c..b6548c5112 100755 --- a/hls4ml/backends/catapult/passes/merge_templates.py +++ b/hls4ml/backends/catapult/passes/merge_templates.py @@ -6,6 +6,7 @@ merge_config_template = """struct config{index} : nnet::merge_config {{ static const unsigned n_elem = {n_elem}; + static const unsigned reuse_factor = {reuse}; }};\n""" merge_function_template = 'nnet::{merge}<{input1_t}, {input2_t}, {output_t}, {config}>({input1}, {input2}, {output});' diff --git a/hls4ml/backends/oneapi/passes/merge_templates.py b/hls4ml/backends/oneapi/passes/merge_templates.py index c38e1e055f..9d261e1f74 100644 --- a/hls4ml/backends/oneapi/passes/merge_templates.py +++ b/hls4ml/backends/oneapi/passes/merge_templates.py @@ -10,6 +10,7 @@ # Merge templates merge_config_template = """struct config{index} : nnet::merge_config {{ static const unsigned n_elem = {n_elem}; + static const unsigned reuse_factor = {reuse}; }};\n""" merge_function_template = 'nnet::{merge}<{input1_t}, {input2_t}, {output_t}, {config}>({input1}, {input2}, {output});' diff --git a/hls4ml/backends/quartus/passes/merge_templates.py b/hls4ml/backends/quartus/passes/merge_templates.py index 0cf6121666..f71489a5cf 100644 --- a/hls4ml/backends/quartus/passes/merge_templates.py +++ b/hls4ml/backends/quartus/passes/merge_templates.py @@ -9,6 +9,7 @@ # Merge templates merge_config_template = """struct config{index} : nnet::merge_config {{ static const unsigned n_elem = {n_elem}; + static const unsigned reuse_factor = {reuse}; }};\n""" merge_function_template = 'nnet::{merge}<{input1_t}, {input2_t}, {output_t}, {config}>({input1}, {input2}, {output});' diff --git a/hls4ml/backends/vivado/passes/merge_templates.py b/hls4ml/backends/vivado/passes/merge_templates.py index 078e004d33..35aa5d3640 100644 --- a/hls4ml/backends/vivado/passes/merge_templates.py +++ b/hls4ml/backends/vivado/passes/merge_templates.py @@ -6,6 +6,7 @@ merge_config_template = """struct config{index} : nnet::merge_config {{ static const unsigned n_elem = {n_elem}; + static const unsigned reuse_factor = {reuse}; }};\n""" merge_function_template = 'nnet::{merge}<{input1_t}, {input2_t}, {output_t}, {config}>({input1}, {input2}, {output});' diff --git a/hls4ml/templates/catapult/nnet_utils/nnet_merge.h b/hls4ml/templates/catapult/nnet_utils/nnet_merge.h index 00c2cf5e12..9cba030710 100644 --- a/hls4ml/templates/catapult/nnet_utils/nnet_merge.h +++ b/hls4ml/templates/catapult/nnet_utils/nnet_merge.h @@ -11,6 +11,7 @@ namespace nnet { struct merge_config { static const unsigned n_elem = 10; + static const unsigned reuse_factor = 1; }; struct dot_config { diff --git a/hls4ml/templates/oneapi/firmware/nnet_utils/nnet_merge.h b/hls4ml/templates/oneapi/firmware/nnet_utils/nnet_merge.h index 550663b881..d1262f4377 100644 --- a/hls4ml/templates/oneapi/firmware/nnet_utils/nnet_merge.h +++ b/hls4ml/templates/oneapi/firmware/nnet_utils/nnet_merge.h @@ -7,6 +7,7 @@ namespace nnet { struct merge_config { static const unsigned n_elem = 10; + static const unsigned reuse_factor = 1; }; struct dot_config { diff --git a/hls4ml/templates/quartus/firmware/nnet_utils/nnet_merge.h b/hls4ml/templates/quartus/firmware/nnet_utils/nnet_merge.h index 766ef2e208..1ee9a9f564 100644 --- a/hls4ml/templates/quartus/firmware/nnet_utils/nnet_merge.h +++ b/hls4ml/templates/quartus/firmware/nnet_utils/nnet_merge.h @@ -7,6 +7,7 @@ namespace nnet { struct merge_config { static const unsigned n_elem = 10; + static const unsigned reuse_factor = 1; }; struct dot_config { diff --git a/hls4ml/templates/vivado/nnet_utils/nnet_merge.h b/hls4ml/templates/vivado/nnet_utils/nnet_merge.h index 8005682978..979c447825 100644 --- a/hls4ml/templates/vivado/nnet_utils/nnet_merge.h +++ b/hls4ml/templates/vivado/nnet_utils/nnet_merge.h @@ -10,6 +10,7 @@ namespace nnet { struct merge_config { static const unsigned n_elem = 10; + static const unsigned reuse_factor = 1; }; struct dot_config {