10-17-2021 02:29 PM - edited 10-17-2021 02:31 PM
I have been thinking about how to automate the parallelization of tasks in LABVIEW-FPGA for a number of functions I have. Unfortunately, on FPGAs the I cannot set the parallelism for "for-loops". For example, if I want to add 10 numbers to themselves 10 times, this is the only way I know how to do it:
This takes a total of 72 clock ticks. Now, what if want to break up some of the additions so they happen in parallel? Again, this is the only what I know how to do it.
And this reduces the clock ticks to 6, a 91% improvement!
While I wish I could set the parallelization in the for-loop to 10 and be done with it, I can't do this on an FPGA. Is there a simple way to achieve this level of parallelization in the FPGA environment without having to hardcode everything? I assume I could use scripting, but that would not be "simple" and would require me making multiple versions of the same function and joining them through a polymorphic VI.
I have attached the full project in case this helps.
10-18-2021 08:46 AM
I recommend giving this idea a kudos: Parallel loop support
This is something that I think NI could easily do. Just set the parallelization on and it just parallelizes to the number of elements in the array (not setable on the diagram).
10-18-2021 11:20 AM
Thanks, I left a Kudo on the post you suggested. But given that it has received 50 Kudos in 11 years (and the first guy to suggest it has retired) I won't hold my breath.
It sounds like there is not a way to do what I want as of now.
10-18-2021 10:12 PM
I now see that prior to LabVIEW 2020, the "IP builder" may have been a way for me to do this. Taking a look at the documentation, it looks pretty interesting. I wonder if this is worth backtracking to the 2019 version for?
https://zone.ni.com/reference/en-XX/help/371599P-01/lvipbuilder/lvipbuilder_tutorial/
For some reason, it was deprecated in the LabVIEW 2020 FPGA Module
https://www.ni.com/pdf/manuals/374737l.html
Does anyone know the thought processes behind its deprecation?