On 02/07/16 19:04, Walter F.J. Mueller wrote:
Hallo,

when looking through the ghdl sources in the current git master
I found in ./grt/grt-options.adb some code implementing the option

  --threads=N       use N threads for simulation

The option isn't shown in --help, text commented out. When used
it is accepted, but doesn't seem to have much of an effect.

So I wonder whether this is dead code of an aborted effort or
whether is a current development. git blame shows that the code
is at least 2.5 years old.

It's dead code of an aborted effort.  It did work but the results
were very encouraging.

I got curious, and looked a the --stats output of two simulations

1. direct simulation of the behavioral model. In this case we have
   a small number of larger processes.

    cycle (sum):   wall:  90.130  user:  72.590  sys:  13.460
     processes:    wall:  64.410  user:  53.460  sys:   5.510
     resume:       wall:   3.970  user:   2.900  sys:   2.350
     update:       wall:  16.680  user:  12.200  sys:   2.820
     next compute: wall:   5.070  user:   4.030  sys:   2.780

     Number of processes: 766
     Number of sensitized processes: 741
     Number of resumed processes: 197210264
     Average number of resumed processes per cycle: 14

2. functional simulation with a post-synthesis model generated
   by vivado. Lots of UNISIM primitives, so a larger number of
   in general quite small processes (mostly Flops and LUTs).

    cycle (sum):   wall:  60.750  user:  58.450  sys:   2.270
     processes:    wall:  28.330  user:  28.630  sys:   0.540
     resume:       wall:   0.530  user:   0.470  sys:   0.570
     update:       wall:  22.890  user:  20.270  sys:   0.510
     next compute: wall:   9.000  user:   9.080  sys:   0.650

     Number of processes: 6090
     Number of sensitized processes: 6003
     Number of resumed processes: 190890059
     Average number of resumed processes per cycle: 91

I'd assume that the 'processes' part is what can be easiest
parallelized, that is 72% in the behavioral and only 49% in
the post-synthesis simulation. If only 'processes' can be
parallelized the potential is actually rather sobering.

Any thoughts on that ?

The effort was done too early. Before parallelizing, sequential code has to be optimized. This is not yet completed.

Tristan.


_______________________________________________
Ghdl-discuss mailing list
Ghdl-discuss@gna.org
https://mail.gna.org/listinfo/ghdl-discuss

Reply via email to