Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16556 Discussions

Parallel kernel compilation on a single machine

Altera_Forum
Honored Contributor II
1,315 Views

I'm trying to use a single multicore machine to compile multiple kernels in parallel, unfortunately, the kernel compilation fails in this case. If I just compile one kernel at a time it's fine, but when it get to multiple kernels being compiled in parallel then it fails. Is there any specific reason for that? 

 

Another question is, compiling every single kernel takes hours. What are the possible ways to accelerate kernel compilation?
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
528 Views

How much RAM does your machine have?  

 

Which FPGA are you compiling to? 

 

Can you post the error message (may be at the bottom of quartus_sh_compile.log)?
0 Kudos
Altera_Forum
Honored Contributor II
528 Views

The kernel compilation process (or more accurately, the fitting and routing parts of the process) are very memory-intensive and if your machine runs out of memory during the process, compilation WILL fail. 

 

Expect to need 20-25 GB per compilation for Stratix V and 35-40 GB per compilation for Arria 10. Altera's official recommendations can be found here (http://dl.altera.com/requirements/17.0/). 

 

The main way to speed up the compilation process is to obtain faster processor (more cores won't help for one compilation since the process is mostly single- or dual-threaded) and faster memory, or more cores and bigger memory to allow for more parallel compilations.
0 Kudos
Altera_Forum
Honored Contributor II
528 Views

More cores will help and 16.x tools effectively use as many cores as you can offer. Although, the synthesis, place and route will fall back sometimes to a single process, the most of the time I see 4 cores utilized. There is also setting in Quartus that you can add to top.qsf in your board support directory typically: <BSP>/<board_name>/hardware/<board_variant>/top.qsf or similar path. If you have quad core proccessor put 4. In you have i7 or its Xeon cousin put 8. 

Memory is the whole different matter. You can mitigate the memory issue by compiling smaller number of work items, but if you ready to deploy the whole A10 chip filled up - yes you need 64GB. 

 

Look at performance meter. If you start using swap (linux) or pagefile (win) - you are toasted. Restart with single compile or more memory.
0 Kudos
Reply