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

Quartus disregards allocated RAM specification and num_processors ?

Embeddedesigner
New Contributor I
3,005 Views

I have Quartus Prime Lite v. 21.1. I have a very large design that won't compile and exits (crashes) after 50 hours of compilation due to out of memory. I have listed to use 8 processors out of the 16 logical cores I have with my current CPU, and list the max memory of 16GB, of which I have 128 GB ram installed for my AMD Ryzen 9 7950x3D. 

 

Quartus does NOT multithread at all, PERIOD! It will initially use 2 processors then after syntax checking within the design and anaylsis phase prior to placement, it ALWAYS goes to 1 processor. This was confirmed both by Task Manager and Process Lasso. 

Quartus then consumes almost 100 GB of RAM ! Quartus clearly has boundaries setup in the assignment tab not to use more than 16GB, which it totally disregards. After it fails after 50 hours, which it's still in the initial compile stage (2%), it does NOT put an error message that there is not enough memory to compile the design and crashes and exits. 

 

So then I put to use 8GB of ram which after 24 hours of compiling it crashes as well and uses all my memory. 

 

Can someone please explain why Quartus even lists to use more than 1 logical processor core when it's not optimized to multithread, and why the limits defined in Quartus uses more RAM than I suggest, and why it does not put up a OOM memory message before crashing? This is clearly unacceptable, and this same issue happens with the licensed version of Quartus. I still cannot move past the 2% margin to even have the fitter do it's work, Quartus does not show me where it's stuck at or why it's taking so long. 

 

I have all the fast compile options enabled. 

Labels (1)
0 Kudos
8 Replies
sstrell
Honored Contributor III
2,978 Views

What device are you targeting with this?  For something this complicated, I can only imagine it's the newest device supported in Standard, which would be Arria 10 but I'm pretty sure it's not supported in Lite.

You say the same thing is happening in a licensed copy of Standard.  Did you check the processor usage there?  I don't think multicore support is available in Lite.  Why are you using Lite if you have a Standard license?

Is there anything unique about your design, a certain IP (encrypted or unencrypted) being used?  Have you tried simplifying the design to see if it compiles?

Something strange is going on here.

0 Kudos
Embeddedesigner
New Contributor I
2,936 Views

Please do your research before responding to the thread.

 

This is for a Cyclone V, which is apart of the Terasic lineup of Boards, the DE1-SoC.

All versions of Quartus, including Lite, Standard and Pro all have multiprocessor support.

https://www.intel.com/content/dam/www/central-libraries/us/en/documents/quartus-prime-compare-editions-guide.pdf

 

I checked the processor usage in both AMD Ryzen Master, and Taskmanager. All of those lists just one processor usage.  It may however toggle between 2 logical processors but it will never use more than 2 or more processors at any point in time, even though I permit Quartus to use 8 cores.  If you or anyone else can prove anything to the contrary, please post screenshots with just Quartus running. 

 

I can't take a snapshot when Quartus crashes, but the latest details is that I view next to 90+% memory usage and within 8 hours Quartus will exit or crash but Quartus never gives me an error message before it aborts. We are talking about more than 120 GB of Ram here, and Quartus will consume all of it. 

I'm not using encryption in my design. 

 

This is just not acceptable to have Quartus exit, crash, or abort with no error messages, and Quartus appears to me not to support multi-threaded CPU compilations.  Finally, I once again limited Quartus not to use more than 16GB and it uses more than 100GB. 

 

 

 

0 Kudos
AEsqu
Novice
2,922 Views

Hello,

I also use a Cyclone V (using Quartus Prime Version 22.1std.1 Build 917 02/14/2023 SC Standard Edition) under red hat 7,

I see this in the output_files/*.flow.rpt:

 

; Flow Elapsed Time                                                                                                        ;
+----------------------+--------------+-------------------------+---------------------+------------------------------------+
; Module Name          ; Elapsed Time ; Average Processors Used ; Peak Virtual Memory ; Total CPU Time (on all processors) ;
+----------------------+--------------+-------------------------+---------------------+------------------------------------+
; Analysis & Synthesis ; 00:07:18     ; 2.0                     ; 2780 MB             ; 00:10:16                           ;
; Total                ; 00:07:18     ; --                      ; --                  ; 00:10:16                           ;
+----------------------+--------------+-------------------------+---------------------+------------------------------------+

 

And as for the lsf jobs report, I see this:

 

 

------------------------------------------------------------
# LSBATCH: User input
quartus_map wld_fpga_top
------------------------------------------------------------

Successfully completed.

Resource usage summary:

    CPU time :                                   672.50 sec.
    Max Memory :                                 4694 MB
    Average Memory :                             1754.22 MB
    Total Requested Memory :                     3000.00 MB
    Delta Memory :                               -1694.00 MB
    Max Swap :                                   -
    Max Processes :                              9
    Max Threads :                                27
    Run time :                                   501 sec.
    Turnaround time :                            511 sec.

 

(I use in the .qsf   set_global_assignment -name NUM_PARALLEL_PROCESSORS 6   )

I think the mapping phase is mostly using one or 2 CPU cores but It can use more during fitting phase (I will post it when I get the result). 

As for the crash, I guess Quartus is stuck in a loop with your design, try to remove any timing constraint in the .sdc to see if this is not related to one of them.

0 Kudos
SyafieqS
Employee
2,919 Views

There a setting in Quartus to allow how many cores you want to run for praelell processing. You may need to check the reflect changes of the setting in your qsf or else you can directly use the set_global_assignment -name NUM_PARALLEL_PROCESSORS ALL


https://www.intel.com/content/www/us/en/docs/programmable/683084/current/num-parallel-processors.html



0 Kudos
AEsqu
Novice
2,873 Views

Also check this in the .qsf (that they are not set to off):

 

set_global_assignment -name auto_parallel_synthesis ON
set_global_assignment -name PARALLEL_SYNTHESIS ON

 

0 Kudos
SyafieqS
Employee
2,852 Views

Let me know if there is any update from previous reply


0 Kudos
SyafieqS
Employee
2,783 Views

As we do not receive any response from you on the previous question/reply/answer that we have provided. Please login to https://supporttickets.intel.com/, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. The community users will be able to help you on your follow-up questions.


p/s: If any answer from community or Intel support are helpful, please feel free to mark as solution, give Kudos and rate 5/5 survey


0 Kudos
Embeddedesigner
New Contributor I
2,777 Views

So my design needs to be simplified. I have lots of loops, over 1000 loops. After 7 straight days of just in the initial seed of the compilation (2%) just analyzing the design, Quartus issued a message out of memory. I checked Task Manager, and it quit when it reached 65% of total Ram usage. It was still using 1 processor core.

 

I'm unable to comment weather past this stage and into the fitting stage if it does in fact use more than 1 processor core. I do have it set to use 8 cores. I have ram usage to "Default", but I have 128 GB Ram and it used 75GB of that as reported by Task Manager, and quit. 

 

I'm closing this thread out because my design needs to be simplified and I cannot speculate further. 

(Virus scan in progress ...)
0 Kudos
Reply