( ESNUG 483 Item 7 ) -------------------------------------------- [11/19/09]

From: [ Mr. Hat from South Park ]
Subject: A Calibre nmDRC 6X speed-up from HyperScaling and Hyper Remote

Hi, John,

Please keep my name out of this for EDA vendor political reasons.

Since we were not required pay anything extra to use Calibre HyperScaling
and Hyper Remote (both you get free with Calibre nmDRC) we started using
them when they were first introduced in 2006 and 2008 respectively.  They
use the same hardware configuration as Calibre does, but add increasing
amounts of parallelism and speed up for Calibre's rule checks.

These two options shaved 2 weeks off of the final chip level verification
of our first tapeout, which we otherwise expected to be 6 weeks.

We did not need to change our design flow/process, as both HyperScaling and
Hyper Remote can be initiated in just a few seconds using a simple switch
option when running Calibre.

For Hyper Scaling, you add the: "-hyper" switch. 

For Calibre Hyper Remote, specify "-hyper remote -remotedata".  

This is how they all fit together:

  - Calibre.  When you set up Calibre, you define the number of machines
    and CPUs or the hardware management system in the configuration
    file.  Calibre then breaks up the design data into cells and bins
    to be processed in parallel.

  - HyperScaling.  When you turn on Hyper Scaling, it allows Calibre's
    operations to be run in parallel, rather than one at a time as with
    a standard Calibre run.  Because it requires additional memory to
    process these tasks in parallel, HyperScaling sets the default for
    the number of parallel operations to 5.  This limits the additional
    memory consumption so the master machine doesn't get stuck going
    into swap.

  - Hyper Remote.  Hyper Remote tweaks HyperScaling's memory consumption.
    When you turn on Hyper Remote, Calibre gets an additional speed up by
    pushing the data and processes to the remote machines inside your
    configuration and the max number of operations which can be run in
    parallel is no longer limited by your master machine.  Your master
    machine uses significantly lower overhead than before because
    it now only controls all the processing plus configuring the output.
    That is, it no longer needs to hold and manage scheduling of the
    parallel operations.  This reduces needing a very large master.

After that, the more remote machines you have, the more speed up you get,
but it does plateau with the increase in number of remote machines at
some point.  This plateau depends on design size, complexity, rules, etc.


RUNTIME COMPARISONS

Compared to plain Callibre runs, HyperScaling got us 3.5 to 3.9X speed-up
and Hyper Remote got us 3.8X to 6.4X speed-up.  Runtime comparison data
on two test cases below.

                              Case1                   Case2
 
   plain Calibre         2 hrs 22 min             9 hrs 10 min 
   HyperScaling                41 min (3.45X)     2 hrs 20 min (3.94X)
   Hyper Remote                38 min (3.77X)      1 hr 26 min (6.42X)

   GDS Size                   470 MB                     3 GB
   # of rules                 814                     1220
   CPU/Cores                   32 CPUs                  52 CPUs
   Process Node                45 nm                    40 nm
   Version                   2008.2                   2008.2

Warning: Don't think of Hyper Remote runtime performance as linearly
scalable with the number of CPUs in your master.  Also be aware that the
gains are greater for longer runs than shorter runs.  (For example, with
Hyper Remote we had a greater speed-up for our 9 hour run in Case2, than
we did for our 2 hour run in Case1.)


MASTER MEMORY USAGE COMPARISONS

Hyper Remote off-loads the CPU memory needs from your master host by
drawing on the memories in your remote hosts.  With case2 with Hyper
Remote, we got 6.42X speed up using only 57% of the master memory
requirements of the non-Hyper Remote Calibre run.

                                                    Case2

              plain Calibre                       5.4 GB
              HyperScaling                       17.0 GB (3.1X)
              Hyper Remote                        3.1 GB (0.57X)

Prior to HyperScaling and Hyper Remote, you had to implement switches to
partition your Calibre run so that you could run the jobs in parallel
to speed up the rule checking.  HyperScaling and Hyper Remote now does
that all automatically.

Our biggest gain from all this is that it lets us do 2-4 daily iterations
of Calibre runs at the chip level instead of 1 run.   And, as I said before
it cut 2 weeks off our final chip level verification on our first tape-out.

    - [ Mr. Hat from South Park ]
Join    Index    Next->Item












   
 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)