Forum Discussion
Thank you for the reply that helps a lot. However it raises a few more questions:-
How do I find out about features like intel::numbanks() and intel::bankwidth()?
Is there any reference documentation describing them properly? There are various tutorials, white-paper and examples, but I have yet to find any reference documentation.
What for example is the applicability of the bank control directives above? They appeared in a paper on optimising FGPA access so it is safe to assume that they will be effective on FGPA. I would be very surprised if they have any effect on the CPU, which leaves me doubting if they actually work on GPUs. (I am trying to program a GPU.)
Hello @Ian_Miller,
You can find all information about optimizing your kernel in the optimization guide:
You can find out about the local memory and all its attributes in the document. These attributes are specific to FPGA kernel optimization and not CPU or GPU ones.
For instance, bank control allows you to perform concurrent access to local memory without arbitration. You should know that FPGA local memories are made of M20K blocks with only 2 read/write ports (for single pumped). In any case, you have multiple access, the compiler would infer arbiter which will stall the memory accesses. You can find out more about it in the documentation.
Best regards,
Daouda DIAKITE