Closed chhzh123 closed 3 years ago
Can you try to bind the weights to different HBM banks?
For example
s.to(A, target.xcel.HBM[0])
s.to(W, target.xcel.HBM[1])
This should have been fixed in https://github.com/cornell-zhang/heterocl/pull/418. Please reopen the issue if the error still exists.
I came up with the same error:
My code is very similar to the code posted by @chhzh123. Did you find a solution? I also want to read two input arguments which are pointers to int. I try to read each of them in a separate loop. When I try to use the dataflow pragma within the context containing those 2 loops, then I see this error:
ERROR: [v++ 200-1013] Bundled bus interface gmem failed dataflow checking: it cannot read data in multiple processes. ERROR: [v++ 200-984] Bundled bus interface gmem has read operations in function: 'read_input_Loop_readA_proc' (...) and 'read_input_Loop_readB_proc' (...).
Do you know how to fix it? Thanks
@jorgekoronis it seems like these two arrays are accessed using the same AXI port, and this is causing an conflict when they are put in the same dataflow region.
You can probably change the bundle name in “pragma HLS interface port=A bundle=gmem0” to bind these two pointers to different AXI port.
Thanks @hecmay, your suggestion worked.
Current interface specification can only support one input and one output in the function arguments. If more than one inputs are passed in, HLS will complain.
The generated VHLS code is shown below.
And got the following error.