LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Automating Parallelization in LabVIEW-FPGA

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:

code_1.png

 

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.

code_2.png

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. 

0 Kudos
Message 1 of 4
(2,295 Views)

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).



There are only two ways to tell somebody thanks: Kudos and Marked Solutions
Unofficial Forum Rules and Guidelines
"Not that we are sufficient in ourselves to claim anything as coming from us, but our sufficiency is from God" - 2 Corinthians 3:5
Message 2 of 4
(2,227 Views)

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. 

0 Kudos
Message 3 of 4
(2,215 Views)

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? 

Message 4 of 4
(2,194 Views)