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