Application Acceleration With FPGAs
Programmable Acceleration Cards (PACs), DCP, FPGA AI Suite, Software Stack, and Reference Designs
477 Discussions

How to define separate bankbits on each memory replicate?

DimitrisGrn
Beginner
978 Views

I am using Intel HLS tools to design an FPGA accelerator.

 

In my application, I have an input array of 512 elements to my component. In each iteration of a loop, there are 3 concurrent loads to that array, without any stores. I am unrolling the loop by 8, so now there are 24 concurrent loads.

 

By default, the compiler chooses to replicate the array in memory 12 times (2 ports per replicate, we need 24 ports in total). However, based on the access patterns, I have found that it can be optimized if we only have 3 replicates, and define different bankbits in each replicate, i.e replicate 1 of the array must have bankbits(0,1,2), replicate 2 must have bankbits(3,4,5) and replicate 3 must have bankbits(6,7,8). Stall-free banking cannot be implemented without replicating the memory in this case.

 

I have gone through the documentation of HLS tools but I didn't find something helpful as to how I could implement that.

 

What I basically want is to take an input array A and replicate it 3 times into arrays A1, A2 and A3 in local memory, where I can define separate bankbits for each.

 

Does anyone have any ideas on this matter?

 

Thank you in advance.

0 Kudos
5 Replies
AnilErinch_A_Intel
862 Views

Hi

we are looking in to the issue.

Can you please mention which version of the HLS / tools are being used.

Thanks and Regards

Anil

0 Kudos
DimitrisGrn
Beginner
862 Views

Hello,

 

Thanks for your reply. I am using HLS 19.3 Pro Edition.

Best,

Dimitris

0 Kudos
AnilErinch_A_Intel
862 Views

Hi Dimitris ,

Hope you are staying safe

you can double the number of ports in the replica if you double pump the component.

So it will give you 4 ports per replicate.

You also have the flexibility to use the hls_memory and hls_bankwidth attributes to change the number of banks and bank bits.

Please refer to section 5

Component Memories (Memory Attributes) 

of the following documents and try to come up with the best possible solution you can.

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/hls/mnl-hls-reference.pdf

Then we can analyze the reports and can work on it further.

Thanks and Regards

Anil

0 Kudos
AnilErinch_A_Intel
857 Views

We do not receive any response from you to the previous question/reply/answer that I have provided.
Please post a response in the next 15 days to allow me to continue to support you.
After 15 days, this thread will be transitioned to community support.
The community users will be able to help you with your follow-up questions

0 Kudos
AnilErinch_A_Intel
806 Views

Hi ,

Please let us know whether we have any updates about the issue.

Thanks and Regards

Anil


0 Kudos
Reply