LabVIEW FPGA Idea Exchange

About LabVIEW FPGA Idea Exchange

Have a LabVIEW FPGA Idea?

  1. Does your idea apply to LabVIEW in general? Get the best feedback by posting it on the original LabVIEW Idea Exchange.
  2. Browse by label or search in the LabVIEW FPGA Idea Exchange to see if your idea has previously been submitted. If your idea exists be sure to vote for the idea by giving it kudos to indicate your approval!
  3. If your idea has not been submitted click New Idea to submit a product idea to the LabVIEW FPGA Idea Exchange. Be sure to submit a separate post for each idea.
  4. Watch as the community gives your idea kudos and adds their input.
  5. As NI R&D considers the idea, they will change the idea status.
  6. Give kudos to other ideas that you would like to see in a future version of LabVIEW FPGA!
Showing results for 
Search instead for 
Did you mean: 

Multi-core Compiling

Even though ibberger touched the concept in the idea , I do think that most o people uses LabVIEW under Windows environment. Compiling a FPGA VI happens all in the PC under Windows. I noticed that during this process the compiler uses only one core. Since I'm using a machine with a 4 core processor, the CPU use rarely goes above 25%.

 

My idea is to update the compiler allowing it to be multicore. The user should have the option to limit the maximum number of cores available to the compiler. This is necessary because the user may want to continue working, while the compiling process is being done in background.

  • Compile Process
37 Comments
Member JCC_(SK)
Member

My solution is: Two Virtual Machines. One for FPGA compilation and second for developing. FPGA VM has only one CPU core and 4 GB or RAM (winXP) and Dev VM has more CPUs and less RAM. And in Host operation system (hosting my VMs) (Ubuntu 64 bits 12 GB RAM) I setup FPGA VM to run only on one core and Dev VM on remaining cores. This will stop migrate FPGA VM from one core to another.

Trusted Enthusiast Trusted Enthusiast
Trusted Enthusiast

Compiling in a VM for me is significantly slower than native (20-30%).  Not an option for me.  I'd much rather to peg one processor than go this route.

Knight of NI Knight of NI
Knight of NI

With the release by Xilinx of Vivado, the FPGA compiler (in 2014) is mult-threaded, currently up to 8 threads.  This only won'ts on the Series 7 FPGAs currently (Zynq and Kintex), but I would call that enough to make this idea Completed!

Trusted Enthusiast Trusted Enthusiast
Trusted Enthusiast

Is the compiler really multithreaded or can you have more than one compilation going at a time.... I know the Compile farm is now included so maybe that's where the 8 threads are coming from?

Knight of NI Knight of NI
Knight of NI

No.  I was told specifically from a Xilinx guy (who knew pretty much nothing about how LabVIEW FPGA works) that Vivado can handle 8 cores, with research to increase it to 16.  This has nothing to do with LabVIEW FPGA other than it calls the Vivado.

Trusted Enthusiast Trusted Enthusiast
Trusted Enthusiast

Well that goes into my "Really cool" bin then.

Member jbeale1
Member

I am on Windows 7 SP1, i5-4310M CPU. When compiling FPGA code for cRIO-9068 on a freshly installed Labview 2014 SP1 (using Xilinx Vivado 2013.4) I notice that Vivado is using only one of my 4 cores. Is there some Labview setting I need to change, to take advantage of more cores and speed up the process?

Active Participant Manzolli Active Participant
Active Participant

The Xilinx guys should start writing their compilers in LabVIEW in order to start using more than one core. Smiley LOL

Knight of NI Knight of NI
Knight of NI

When I last looked at my core usage using the Vivado compiler, it was using 4 of my cores (quad core with hyperthreading, so Windows makes it look like 8 cores).  What jbeale's issue could be is a trick a lot of us did to make the ISE compilers run faster: set the priority to "high" and the core affinity to some core.  So that trick would make the LabVIEW Compile Server stay on a single core (eliminating the core swapping slow downs).  See Lorn's comment for how to do this.  But If that core affinity is still set for the compile server, even with Vivado, it will run on a single core.  My recommendation is to set the compile server to be of high priority.  Do NOT set the core affinity if using the Vivado compiler.

Member jbeale1
Member

I am not an experienced LabView user and I have not done any configuration change to lock the compile server to a single core.  Having just read this post from crossrulz, I checked Start->National Instruments->FPGA Compile Tools->FPGA Compile Worker but as far as I can tell from Windows "Properties" it is simply a link without any command-line options:

 

"C:\Program Files (x86)\National Instruments\FPGA\CompileWorker\CompileWorker.exe"

 

While compiling, the Windows Task Manager shows the "vivado.exe" process pegged at 25% of total CPU, and from the "Performance" graph it is hopping back and forth between two cores. I am glad to hear it's possible to get multi-core performance from Vivado under LabView, I wish I knew how!