Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Syn failed for 3Layer with sublayer #79

Closed
zhenbinwu opened this issue Jul 17, 2018 · 5 comments
Closed

Syn failed for 3Layer with sublayer #79

zhenbinwu opened this issue Jul 17, 2018 · 5 comments
Assignees

Comments

@zhenbinwu
Copy link
Contributor

The current master branch of the hls4ml can't synthesize the 3layer Model.

ERROR: [XFORM 203-103] Array 'mult.V' (/data/benwu/HLS4ML_2018/hls4ml/nnet_utils/nnet_layer.h:56): partitioned elements number (2048) has exeeded the threshold (1024), which may cause long run-time.
ERROR: [HLS 200-70] Pre-synthesis failed.
command 'ap_source' returned error code
    while executing
"source [lindex $::argv 1] "
    ("uplevel" body line 1)
    invoked from within
"uplevel \#0 { source [lindex $::argv 1] } "

INFO: [Common 17-206] Exiting vivado_hls at Fri Jul 13 12:00:25 2018...

The error can be trace to https://github.com/hls-fpga-machine-learning/hls4ml/pull/62/files#diff-b37c065f136460b015788b96b5c25102L52

@jmduarte jmduarte self-assigned this Jul 17, 2018
@jmduarte
Copy link
Member

jmduarte commented Jul 18, 2018

Somehow the issue comes from re-writing the mult array as a 1D array instead of a 2D array:

d90e74a#diff-b37c065f136460b015788b96b5c25102L96

Conversely if I comment out the mult array partitioning (much like the weight array is not partitioned), it also works again (although I see some other warnings)
https://github.com/hls-fpga-machine-learning/hls4ml/blob/d90e74a7c92eb63e675e27396177cb05b9286f00/nnet_utils/nnet_layer.h#L70

Maybe it would help if I knew why the weight array partitioning was commented out. It looks like @benjaminkreis did it?

@benjaminkreis
Copy link
Member

Re weight array partition:
#17 (comment)

@nhanvtran
Copy link
Contributor

just to record this for everyone...

So this error actually looks like a difference in Vivado version. This does not occur with 2017.2. It looks like Xilinx added an array size limit for fully partitioning in 2018.2 -- probably because of our complaints about RAM limits in the compiler 😱

@SteCla0
Copy link

SteCla0 commented Jun 23, 2022

Error still exists with 16x100x100x100x100x5 example in hls4ml v0.6.0 and vivado 2020.1

@jmduarte
Copy link
Member

Hi @SteCla0, if you want to discuss, can you use the Discussions?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants