cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Observer
Observer
1,204 Views
Registered: ‎09-10-2016

Vivado 2019.2 synthesis allocates 17Gb of memory and then hangs

Jump to solution

We have a fairly, but not excessively, large project which has been building happily with all versions of Vivado until 2019.2. We upgraded yesterday, on Windows synthesis starts, then seems to hang doing nothing. We've also run it on two different linux (ubuntu supported version) boxes and there it prints the following message showing it's allocating 17Gb of memory, it then runs the CPU at 100% and makes no progress at all, those are the last log lines. It appears to be stuck in a loop reallocating double-sized memory regions until, presumably, there's no more to be used. 

Any suggestions as to why this version of Vivado allocates such a massive amount of memory (the previous ones did not do anything like that, it allocates about 2.5Gb and then runs) and then does nothing, and anything we can tweak to fix it. We can roll back to 2019.1 quite easily this time, however we'll need this fixed at some point so we can use future versions. 

INFO: Launching helper process for spawning children vivado processes
INFO: Helper process launched with PID 1603 
---------------------------------------------------------------------------------
Starting RTL Elaboration : Time (s): cpu = 00:00:04 ; elapsed = 00:00:05 . 
Memory (MB): peak = 2489.680 ;
gain = 142.715 ; free physical = 19226 ; free virtual = 107555 --------------------------------------------------------------------------------- tcmalloc: large alloc 1073741824 bytes == 0x955be000 @ 0x7f976e90763f 0x7f972c70b5ce tcmalloc: large alloc 2147483648 bytes == 0xd5eb0000 @ 0x7f976e90763f 0x7f972c70b5ce tcmalloc: large alloc 4294967296 bytes == 0x155eb0000 @ 0x7f976e90763f 0x7f972c70b5ce tcmalloc: large alloc 8589934592 bytes == 0x255eb0000 @ 0x7f976e90763f 0x7f972c70b5ce tcmalloc: large alloc 17179869184 bytes == 0x4566b0000 @ 0x7f976e90763f 0x7f972c70b5ce

 

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Observer
Observer
1,127 Views
Registered: ‎09-10-2016

Re: Vivado 2019.2 synthesis allocates 17Gb of memory and then hangs

Jump to solution

Fairly obviously we can't share our entire proprietry project with Xilinx .. I would doubt there are many places which can do that. 

Fortunately however my colleage spent some hours adding and removing code until was able to distill the problem down to a simple test case which I've attached. Vivado fails and goes into an allocation loop if you have a module with 'localparam' in the port list but no 'parameter's in the list eg. 

 module foo #(
      localparam P_THIS_BREAKS_IT = 32'h55378008
  ) (
      input  A,
      output B
  );
      assign B = A;
  
  endmodule

This is legal systemverilog and worked in all previous versions. If you have a mix of localparam and parameter, it works, but that is not required by the spec and this looks like just a bad regression bug. 

Project attached, if you 'synthesize' this project vivado will allocate as much memory as it can and then hang. 

*** Running vivado
    with args -log bar.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source bar.tcl


****** Vivado v2019.2 (64-bit)
  **** SW Build 2700185 on Thu Oct 24 18:45:48 MDT 2019
  **** IP Build 2699827 on Thu Oct 24 21:16:38 MDT 2019
    ** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.

source bar.tcl -notrace
Command: synth_design -top bar -part xcvu3p-ffvc1517-3-e
Starting synth_design
Attempting to get a license for feature 'Synthesis' and/or device 'xcvu3p'
INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xcvu3p'
INFO: Launching helper process for spawning children vivado processes
INFO: Helper process launched with PID 10566 
---------------------------------------------------------------------------------
Starting Synthesize : Time (s): cpu = 00:00:03 ; elapsed = 00:00:04 . Memory (MB): peak = 1743.848 ; gain = 215.656 ; free physical = 30106 ; free virtual = 106353
---------------------------------------------------------------------------------
tcmalloc: large alloc 1073741824 bytes == 0x637b2000 @  0x7f1b3a2b563f 0x7f1af80b95ce
tcmalloc: large alloc 2147483648 bytes == 0xa37b2000 @  0x7f1b3a2b563f 0x7f1af80b95ce
tcmalloc: large alloc 4294967296 bytes == 0x1237b2000 @  0x7f1b3a2b563f 0x7f1af80b95ce
tcmalloc: large alloc 8589934592 bytes == 0x224032000 @  0x7f1b3a2b563f 0x7f1af80b95ce

View solution in original post

5 Replies
Highlighted
Xilinx Employee
Xilinx Employee
1,181 Views
Registered: ‎02-16-2014

Re: Vivado 2019.2 synthesis allocates 17Gb of memory and then hangs

Jump to solution

Hi @flydrive 

 

Can you share the project to reproduce this issue at our end and debug the root cause for this?

If you can share the project, please let me know I will send you link using which you can share files with Xilinx.

 

Thanks,

Manusha

0 Kudos
Highlighted
Observer
Observer
1,128 Views
Registered: ‎09-10-2016

Re: Vivado 2019.2 synthesis allocates 17Gb of memory and then hangs

Jump to solution

Fairly obviously we can't share our entire proprietry project with Xilinx .. I would doubt there are many places which can do that. 

Fortunately however my colleage spent some hours adding and removing code until was able to distill the problem down to a simple test case which I've attached. Vivado fails and goes into an allocation loop if you have a module with 'localparam' in the port list but no 'parameter's in the list eg. 

 module foo #(
      localparam P_THIS_BREAKS_IT = 32'h55378008
  ) (
      input  A,
      output B
  );
      assign B = A;
  
  endmodule

This is legal systemverilog and worked in all previous versions. If you have a mix of localparam and parameter, it works, but that is not required by the spec and this looks like just a bad regression bug. 

Project attached, if you 'synthesize' this project vivado will allocate as much memory as it can and then hang. 

*** Running vivado
    with args -log bar.vds -m64 -product Vivado -mode batch -messageDb vivado.pb -notrace -source bar.tcl


****** Vivado v2019.2 (64-bit)
  **** SW Build 2700185 on Thu Oct 24 18:45:48 MDT 2019
  **** IP Build 2699827 on Thu Oct 24 21:16:38 MDT 2019
    ** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.

source bar.tcl -notrace
Command: synth_design -top bar -part xcvu3p-ffvc1517-3-e
Starting synth_design
Attempting to get a license for feature 'Synthesis' and/or device 'xcvu3p'
INFO: [Common 17-349] Got license for feature 'Synthesis' and/or device 'xcvu3p'
INFO: Launching helper process for spawning children vivado processes
INFO: Helper process launched with PID 10566 
---------------------------------------------------------------------------------
Starting Synthesize : Time (s): cpu = 00:00:03 ; elapsed = 00:00:04 . Memory (MB): peak = 1743.848 ; gain = 215.656 ; free physical = 30106 ; free virtual = 106353
---------------------------------------------------------------------------------
tcmalloc: large alloc 1073741824 bytes == 0x637b2000 @  0x7f1b3a2b563f 0x7f1af80b95ce
tcmalloc: large alloc 2147483648 bytes == 0xa37b2000 @  0x7f1b3a2b563f 0x7f1af80b95ce
tcmalloc: large alloc 4294967296 bytes == 0x1237b2000 @  0x7f1b3a2b563f 0x7f1af80b95ce
tcmalloc: large alloc 8589934592 bytes == 0x224032000 @  0x7f1b3a2b563f 0x7f1af80b95ce

View solution in original post

Highlighted
Xilinx Employee
Xilinx Employee
1,104 Views
Registered: ‎02-16-2014

Re: Vivado 2019.2 synthesis allocates 17Gb of memory and then hangs

Jump to solution

Hi @flydrive 

 

Thanks for spending time and reproducing this issue with simple test.

I tested at my end and able to reproduce this issue at my end and reported this issue to get it fixed in future releases of vivado.

 

Thanks,

Manusha

Highlighted
Visitor
Visitor
780 Views
Registered: ‎07-02-2012

Re: Vivado 2019.2 synthesis allocates 17Gb of memory and then hangs

Jump to solution

I'm also seeing this issue. I'm using 2019.2.1.

 

0 Kudos
Highlighted
Adventurer
Adventurer
320 Views
Registered: ‎02-20-2017

Re: Vivado 2019.2 synthesis allocates 17Gb of memory and then hangs

Jump to solution

Wow just ran into this. Thank you for solving this one. Saved me some heartache.

0 Kudos