cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
407 Views
Registered: ‎07-24-2018

Vivado build : tcl shell mode vs GUI mode

Hi All,

Recently I came up with this problem that when the same project was build using GUI it has a better timing performance (High positive WNS value) against when I build the same project using TCL shell mode. Both builds are using the same configuration for implementation. Following is the Build configuration I use.

GUI Mode:

Build ConfigurationBuild Configuration

Timing results on GUITiming results on GUI

 

TCL shell mode:

 synth_design -top itch_top -part xcku095-ffva1156-2-e
 opt_design -directive Explore
 place_design -directive Explore
 phys_opt_design -directive Explore
 route_design -directive Explore -tns_cleanup
 phys_opt_design -directive AggressiveExplore
 write_checkpoint -force post_route.dcp

Timing results on tcl shell modeTiming results on tcl shell mode

FPGA: Xilinx kintex ultrascale

Is this usual ? As I use jenkins to automate the build, tcl shell mode is critically important to me. Anyone got some insight on this ?

Best Regards,
randika.

0 Kudos
6 Replies
Highlighted
Xilinx Employee
Xilinx Employee
393 Views
Registered: ‎05-22-2018

Hi @randikae ,

This seems to tool repeatability issue.

Vivado should generate identical results between runs involving identical:

  • Design sources
  • Constraints
  • Tcl scripts and command sequences
  • Tool and command options
  • Vivado software version
  • Multi-threading settings
  • Operating Systems
  • use of the route_design -ultrathreads argument

Please check this AR#:

https://www.xilinx.com/support/answers/61599.html

Also which vivado version you are working with?

Thanks,

Raj

Highlighted
Visitor
Visitor
377 Views
Registered: ‎07-24-2018

Hi @rshekhaw 

Thank you for the reply.

I am using Vivado 2017.2

Yes the build results are identical between runs but only when using the same method. The difference between these two methods are consistant.

 

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
370 Views
Registered: ‎05-22-2018

Hi @randikae ,

Will it be possible at your end to try it in Vivado 2019.2?

Or else will it be possible for you to share the post opt dcp?

Thanks,

Raj

Spoiler
 
Highlighted
Xilinx Employee
Xilinx Employee
279 Views
Registered: ‎05-22-2018

Hi @randikae ,

Is the issue resolved at your end?

Thanks,

Raj

Highlighted
Visitor
Visitor
278 Views
Registered: ‎07-24-2018

Hi @rshekhaw

For now it is difficult for me to get through the permission to post the dcp you asked.

I Noticed that my GUI build had run with general.maxThreads = 2 and tcl shell mode run with general.maxThreads = 8

(Please note that the better performance was in GUI mode).

My CPU is intel Xeon E3-1220 (4 Core) and the RAM is 64GB.

Can lower general.maxThreads parameter resulted with higher performance, If so how to choose the best threadcount ?

 

 

0 Kudos
Highlighted
Moderator
Moderator
262 Views
Registered: ‎03-16-2017

@randikae 

The lower the thread count the higher repeatability of results you get in each runs. Hence, try to set 1 max thread for both tcl mode and GUI mode and observe that you see different values or not.  - I believe it will help in this issue. But, it may affect your performance. (So if you are looking for repeatability only then you can use this suggest and also refer that AR which @rshekhaw  had mentioned above.)

 

Furthermore, 

To do optimum usage of your machine/cores, you can check how many cores are present in your server machine by doing nproc command. And then you can set set_param general.maxThreads <number of cores>. 

Also, now it depends that whether your design requires a high number of cores to run a specific phase of design or not. - This point will get decided by the tool itself.

Regards,
hemangd

Don't forget to give kudos and mark it as accepted solution if your issue gets resolved.