( ESNUG 412 Item 2 ) -------------------------------------------- [05/22/03]

Subject: ( SNUG 03 #18 ) Astro Benchmarks Better Only On Multiple CPU Runs

> We ran Apollo on a SunFire 280 with 2 x 750 Mhz processors, 4 Gb mem,
> Solaris 2.8.  (We were not using multi-threading.)
>
> We ran Astro on Linux RedHat 7.2 with the big mem patch.  It has 4 Gigs
> of memory, and the processor speed was ~1.1 GHz.
>
> The design was ~200 k instances.
>
>    Astro version 2001.2.3.5.0.3
>    Apollo II version 2000.2.3.4.0.9
>
> My run time numbers are rounded to the nearest 5 min or so.
>
>                         Apollo/Saturn      Astro Linux    Speed Up
>                         -------------      -----------    --------
>        Read Netlist         12 min              4 min        3x
>        Load SDC             25                  1           25x
>        Quick place, HFN,
>        Transition Fix      155                 30            5x
>        IPO                 360                 90            4x    
>        CTS/CTO              60                 30            2x
>        -----------------------------------------------------------
>        Total               612                155            4x
>
> Much of the speed increase resulted from the fact Astro runs in memory
> rather than on disk.
>
>     - Craig Farnsworth
>       Cogency Semiconductors


From: Korri Rederick <korri.rederick=person domain=motorola lot yon>

Hi, John,

Since we use the PhysOpt RTL-to-placed-gates flow for synthesis & placement,
and we use Clocktree Compiler for clocktree synthesis, I have focused
primarily on the router performance between Astro and Apollo.  I have used
two TSMC18 (5 metal) testcases for my analysis; one small chip and one
medium sized chip.  In both cases, the chips were routed flat, at the chip
(top) level.

I found several bugs with the original Astro version we installed (Astro
version 2001.2.3.5.0.3.1).  Most of these were long runtime problems, but a
couple were complete show-stoppers.  All except one of these bugs have been
fixed using the latest hotfix (2001.2.3.5.0.3.patch3_HOTFIX.123).

The last opened bug affects runtimes of the "axgRoutOpt" command, which I
usually run after detail route and search & repair to clean up some of the
"maze" routing and shorten up the overall route lengths.  Sometimes this
also helps clean up the last few hundred route violations on highly
congested designs.  With my two testcases, I see about a 400% increase in
execution time for this command.  Even in Apollo, this command runs
significantly longer than the initial route so I was hoping for an
improvement, not a degradation in performance.  Below are the runtimes for
both testcases:

    Testcase #1 (small size)
    Total number of cell instances: 44,090
    Total number of nets: 49333
    Machine: 550 MHz Sun  Sunblade 100 (1CPU) 1792 M RAM

    command          Apollo    Astro       Astro (HF123)
    axgRoutOpt       1:05:04   3:33:09     4:12:59


    Testcase #2 (medium size)
    Total number of cell instances: 165,855
    Total number of nets: 180,341
    Machine: 550 MHz Sun  Sunblade 100 (1CPU) 1792 M RAM

    command          Apollo    Astro       Astro (HF123)
    axgRoutOpt       3:24:31   13:12:49    13:42:12

Synopsys/Avanti wants a testcase, and they say they cannot duplicate the
issue without one.  I haven't had time gift-wrap a testcase for them, so
until then I don't expect this issue to get resolved.

As for the rest of Astro, the runtimes for library creation, Verilog import,
placement, floorplan, etc., have all been about the same between Astro and
Apollo, but the route times (if I skip the optimize command) are better.

The new Astro tool allows for distributed routing which I also liked.  Not
only can the job run on multiple CPU's on the same machine, but also on
multiple machines on the same network.  I wish I had the time to test this
feature on a large design, but my two testcases were consistent so I would
expect similar results.  These are the same testcases as above, and the
placement for each testcase came from PhysOpt, so the comparison is fair
(same placement used for Apollo and Astro).

    Testcase #3 (small)
    Machine:  9 CPU 400 MHz Sun Enterprise 4500 28 G RAM

    Apollo route time:      0:37:20
    Astro route times:
                  1-CPU     0:27:56
                  2-CPU     0:23:45
                  4-CPU     0:18:17

    Testcase #4 (medium)
    Machine:  9 CPU 400 MHz Sun Enterprise 3000 28 G RAM

    Apollo route time:      2:28:37
    Astro route times:
                 1-CPU      2:07:21
                 2-CPU      1:38:54
                 4-CPU      1:17:16

Concerning migration from Apollo to Astro, the biggest pain is that all the
reference libraries had to be recompiled to get timing information out of
Astro.  We also had to update the technology file to include table-look-up
values for the parasitics, which can be extracted from the Star-RCXT input
files automatically using one of the Astro commands.  All in all, it was
not a big deal.

The way we are using the place and route tool (primarily as a router), there
is only a small advantage to switching over.  For this reason, we are still
using Apollo for all our customer designs.

    - Korri Rederick
      Motorola Semiconductor


 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)