Softmax with less than 10bits input generates error with default config
Created by: calad0i
When the input bitwidth to a softmax layer is smaller than 10 bits, a warning message
WARNING: Higher bound(something) and lower(something-10) bound cannot be negative.
is thrown more than 1000 times, and random results are generated from the softmax layer.
This issue presents with both Stable and Latency strategies.
The corresponding code where the warning was raised is https://github.com/fastmachinelearning/hls4ml/blob/d36e2267c5330247453324aac3008c0f4807c891/hls4ml/templates/vivado/nnet_utils/nnet_activation.h#L144
When the input's precision to the new softmax is smaller than 10 bits (table_size=1024 by default and not configurable in an obvious way), the cut to generate indices goes sub-zero, and the significant bits go random and produce random outputs. Adjusting table_size
manually will fix the issue.
PR to fix comes later.