Skip to content

Commit 395bcae

Browse files
calad0ivloncar
authored andcommitted
namespace fix for pointwise conv
1 parent f5208e6 commit 395bcae

File tree

3 files changed

+11
-9
lines changed

3 files changed

+11
-9
lines changed

hls4ml/backends/vivado/passes/convolution_templates.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
template<unsigned K, unsigned S, unsigned W>
6262
using scale_index = nnet::{scale_index_type}<K, S, W>;
6363
template<class data_T, class res_T, class CONFIG_T>
64-
using conv_kernel = nnet::{conv_fn}<data_T, res_T, CONFIG_T>;
64+
using conv_kernel = {conv_fn}<data_T, res_T, CONFIG_T>;
6565
}};
6666
const ap_uint<config{index}::filt_width> config{index}::pixels[] = {{{instructions}}};\n"""
6767

@@ -90,8 +90,8 @@ def format(self, node):
9090
else:
9191
params['scale_index_type'] = 'scale_index_regular'
9292

93+
namespace = params['namespace']
9394
if node.model.config.get_config_value('IOType') == 'io_parallel':
94-
namespace = params['namespace']
9595
params['fill_fn'] = f'{namespace}::fill_buffer_{node.index}'
9696
else:
9797
params['fill_fn'] = 'nnet::FillConv1DBuffer'
@@ -102,12 +102,12 @@ def format(self, node):
102102
and node.model.config.get_config_value('IOType') == 'io_parallel'
103103
)
104104
if is_pointwise_parallel_latency:
105-
params['conv_fn'] = f'pointwise_conv_{node.index}'
105+
params['conv_fn'] = f'{namespace}::pointwise_conv_{node.index}'
106106
else:
107107
if node.get_attr('strategy').lower() == 'latency':
108-
params['conv_fn'] = 'Conv1DLatency'
108+
params['conv_fn'] = 'nnet::Conv1DLatency'
109109
else:
110-
params['conv_fn'] = 'Conv1DResource'
110+
params['conv_fn'] = 'nnet::Conv1DResource'
111111

112112
params['min_width'] = node.get_attr('min_width', node.get_attr('in_width'))
113113
params['instructions'] = node.get_attr('instructions', '0')

hls4ml/backends/vivado/passes/pointwise_codegen.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def generate_pointwise_conv1d_fn(layer_idx, reuse_factor=1):
1616

1717
generated_code = (
1818
'template<class data_T, class res_T, typename CONFIG_T>\n'
19-
'class pointwise_conv_{index} : public Conv1DKernel<data_T, res_T, CONFIG_T> {{\n'
19+
'class pointwise_conv_{index} : public nnet::Conv1DKernel<data_T, res_T, CONFIG_T> {{\n'
2020
' public:\n'
2121
' static void conv(\n'
2222
' data_T data[CONFIG_T::in_width * CONFIG_T::n_chan],\n'
@@ -41,7 +41,7 @@ def generate_pointwise_conv1d_fn(layer_idx, reuse_factor=1):
4141
for i in range(reuse_factor):
4242
generated_code += indent
4343
generated_code += (
44-
f'pointwise_conv_1d_latency_cl<data_T, res_T, CONFIG_T>(data_tmp[{i}], res_tmp[{i}], weights, biases);\n'
44+
f'nnet::pointwise_conv_1d_latency_cl<data_T, res_T, CONFIG_T>(data_tmp[{i}], res_tmp[{i}], weights, biases);\n'
4545
)
4646

4747
generated_code += (

hls4ml/templates/vitis/nnet_utils/nnet_conv1d.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ void pointwise_conv_1d_cl(data_T data[CONFIG_T::in_width * CONFIG_T::n_chan],
5555
CONFIG_T::template conv_kernel<data_T, res_T, CONFIG_T>::conv(data, res, weights, biases);
5656
}
5757

58-
template <class data_T, class res_T, typename CONFIG_T> class Conv1DLatency : public Conv1DKernel<data_T, res_T, CONFIG_T> {
58+
template <class data_T, class res_T, typename CONFIG_T>
59+
class Conv1DLatency : public nnet::Conv1DKernel<data_T, res_T, CONFIG_T> {
5960
public:
6061
static void conv(data_T data[CONFIG_T::in_width * CONFIG_T::n_chan], res_T res[CONFIG_T::out_width * CONFIG_T::n_filt],
6162
typename CONFIG_T::weight_t weights[CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt],
@@ -65,7 +66,8 @@ template <class data_T, class res_T, typename CONFIG_T> class Conv1DLatency : pu
6566
}
6667
};
6768

68-
template <class data_T, class res_T, typename CONFIG_T> class Conv1DResource : public Conv1DKernel<data_T, res_T, CONFIG_T> {
69+
template <class data_T, class res_T, typename CONFIG_T>
70+
class Conv1DResource : public nnet::Conv1DKernel<data_T, res_T, CONFIG_T> {
6971
public:
7072
static void conv(data_T data[CONFIG_T::in_width * CONFIG_T::n_chan], res_T res[CONFIG_T::out_width * CONFIG_T::n_filt],
7173
typename CONFIG_T::weight_t weights[CONFIG_T::filt_width * CONFIG_T::n_chan * CONFIG_T::n_filt],

0 commit comments

Comments
 (0)