cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
anm
Adventurer
Adventurer
355 Views
Registered: ‎02-18-2015

Vivado 2019.2 - maxThreads parameters

Jump to solution

Hi,

in UG904 of Vivado 2019.2 I can see that in terms of multithreading on Linux systems, the default option (not a limit?) is 8 threads, through the parameter general.maxThreads.
In older posts I can see that the limit for Linux systems is 8 threads (1, 2).

Using the report_param command inside Vivado 2019.2 I can see that for Linux, the parameter can be set to maximum 32, instead of only 8 (see attached).

Quick questions:

a) I run Vivado on Centos 7, on an Intel Xeon W-1250 Processor, which has 6 Cores and 12 threads. To what should I adjust my general.maxThreads parameter in order to get the maximum out of my system in terms of multithreading, 6 or 12?
b) As mentioned in UG904, the maximum number of threads by task (e.g. DRC reporting, Placement, Routing, etc.) is limited to 8 threads. Does it make any sense then to use a number higher than 8, in case that is supported by the system's processor?
c) I suppose that the synth.maxThreads is the parameter affecting multithreading during Synthesis phase, correct?

Thank you in advance for your responses and time.

Kind regards,
anm

Screen Shot 2021-03-30 at 5.46.55 PM.png
0 Kudos
1 Solution

Accepted Solutions
amaccre
Moderator
Moderator
217 Views
Registered: ‎04-24-2013

Hi @anm 

As per UG904, the maximum number of simultaneous threads is the smallest of the following values:

Maximum number of processors
Limit of threads for the task
General limit of threads

In regard to synthesis, the max threads limit must be an integer from 1 to 8 inclusive. For RTL synthesis, 4 is the maximum number of threads that can be set effectively. (UG901)

This means that if you had a 16 core processor then you could have one run performing placement using 8 threads and another routing using 8 threads without slowdown.

In reality you can have multiple runs happening at the same time as they are unlikely to  be using all available threads at all times.

Best Regards
Aidan

------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if this answered your question
Give Kudos to a post which you think is helpful and may help other users
------------------------------------------------------------------------------------------------------------------

View solution in original post

3 Replies
anm
Adventurer
Adventurer
280 Views
Registered: ‎02-18-2015

Up!

0 Kudos
amaccre
Moderator
Moderator
218 Views
Registered: ‎04-24-2013

Hi @anm 

As per UG904, the maximum number of simultaneous threads is the smallest of the following values:

Maximum number of processors
Limit of threads for the task
General limit of threads

In regard to synthesis, the max threads limit must be an integer from 1 to 8 inclusive. For RTL synthesis, 4 is the maximum number of threads that can be set effectively. (UG901)

This means that if you had a 16 core processor then you could have one run performing placement using 8 threads and another routing using 8 threads without slowdown.

In reality you can have multiple runs happening at the same time as they are unlikely to  be using all available threads at all times.

Best Regards
Aidan

------------------------------------------------------------------------------------------------------------------
Please mark the Answer as "Accept as solution" if this answered your question
Give Kudos to a post which you think is helpful and may help other users
------------------------------------------------------------------------------------------------------------------

View solution in original post

anm
Adventurer
Adventurer
181 Views
Registered: ‎02-18-2015

Hi @amaccre ,

so from your answer I conclude that even though a CPU might have double-threaded cores (for example mine with 6 cores and 12 threads), Vivado will equate the threads it is generating to the number of the physical cores.
So in my case only 6 threads will run at most in parallel at any given point.

Thank you very much for your help.

Kind regards,
anm

0 Kudos