gbr rip web page logo

Updated Benchmarks for gbr_rip 7.44 64 bit.

August 31, 2018

Version 7.44 of gbr_rip includes a number of improvements; in particular we have greatly enhanced the front-end module called split274x by applying multi-threading to several of its functions: large polygon splitting, surface sizing and surface circularization. (A "surface" is a term from ODB++ and is implemented in Gerber using the G36/G37 area fill commands.)

Split274x provides a number of "conditioning" functions but the most compute intensive ones are where Boolean operations are involved. For example, splitting a polygon with many thousands of vertices into two or more polygons with a smaller vertex count is compute intensive. However doing so can be quite helpful downstream.

Extracting arcs from a number of vertices in the boundary definition of G36/G37 areas is also very compute intensive. By making this function multi-threaded we have greatly reduced the time required to rebuild the boundaries with arcs. This often results in significantly reducing the size of the Gerber file that the rasterizer must deal with.


The Test Files

We collected a number of files ranging in size from about 300MB to 2500 MB. These tend to be large area panels (up to 600 x 600 mm); they have a number of internal layers arranged as paint and scratch; They also tend to make use of a large number of surfaces - i.e. G36/G37 area fills.

Gerber
File
Name
Gerber
File Size
(MB)
Image Size
Uncompressed
(MB)1
Image Size
PackBits
(MB)2
Gerber File Size
AfterCircularize
(MB)3
VD701774.470851240246
VD7032281.370851240722.3
greater_2GB2678.975271382505.3
large_lp_cnt_1354.47075585188.2
large_lp_cnt_2354.47075585188.2
mt_slow_1356.482511032189.7
mt_slow_2293.69156958287

1. uncompressed image size using a DPI of 10160; a pixel diameter of 2.5 um.
2. image size after packbits compression.
3. the intermediate Gerber file after split274x has run circularization. This file is called the "cache" file.

The Computer

Intel i7-4770K — 4 cores — hyperthreaded — 3.5 GHz
32 GB RAM
SSD for OS — SSD for data
Windows 8.1 Pro — 64 bit


The Three Benchmark Flows

STD Flow

In this flow, split274x does the usual pre-conditioning of the format and the apertures. No polygon splitting and no circularization is done before sending the new file to the rasterizer.

standard flow

Command Line:

  c:/wcad/Gbrip64.v744/gbr2tiff64.exe       launch the executable
  %FILE%.gbr                                input file
  -pack:%FILE%.tif                          generate pack bits TIFF output
  -ram:1024                                 use 1024 MB for raster buffer
  -dpi:10160                                use a DPI of 10160 (2.5 um pixel)
  -aw                                       auto compute window
  -inch                                     use inches for command line units
  -status                                   report status
  -engargs  -thrnum:2                       engine arguments: use two threads for raster


Circularize Flow

Same as above except that max points is set to 4096 and -circularize:1um is specified in order to convert surface boundary segments to arcs. Further, split274x is instructed to keep the conditioned file instead of deleting it when the rip is done.

The circularize flow

Command Line:

  c:/wcad/Gbrip64.v744/gbr2tiff64.exe       launch the executable
  %FILE%.gbr                                input file
  -pack:%FILE%.tif                          generate pack bits TIFF output
  -ram:1024                                 use 1024 MB for raster buffer
  -dpi:10160                                use a DPI of 10160 (2.5 um pixel)
  -aw                                       auto compute window
  -inch                                     use inches for command line units
  -status                                   report status
  -engargs -thrnum:2                        engine arguments: use two threads for raster

  -keep_split!                              keeps the conditioned file for later re-use
  -bgn_split                                start of directives for split274x
     -chord_error:0.5um                     sets chord error for fracturing input arcs 
     -circularize:1um                       turns circularization on and uses 1um tolerance
     -dpi:0                                 no sizing but forces fracture of incoming arcs
     -maxpts:4096                           break polygons so that none has more than 4096 vertices
   -end_split_args                          ends the directives for split274x                        


Cache Flow

The assumption here is that the circularize flow has been run and the conditioned file has been "cached." So we deliberately turn off split274x since the conditioning it does has already been accomplished. The rasterizer will run directly on the conditioned file.

The circularize flow

Command Line:

  c:/wcad/Gbrip64.v744/gbr2tiff64.exe       launch the executable
  %CACHE_FILE%.gbr                          input file cached from circular flow
  -pack:%FILE%.tif                          generate pack bits TIFF output
  -ram:1024                                 use 1024 MB for raster buffer
  -dpi:10160                                use a DPI of 10160 (2.5 um pixel)
  -aw                                       auto compute window
  -inch                                     use inches for command line units
  -status                                   report status
  -engargs -thrnum:2                        engine arguments: use two threads for raster

  -no_split                                 disables split274x
  


The Timing Results

We can now run all of our files through the three benchmark flows: STD, Circularize, and Cache. We expect the Cache to be fast since the file conditioning has already been done. It's not clear whether STD or Circularize will be faster -- STD has less overhead in split274x but Circularize presents the rasterizer with a smaller file and less complex polygons.

Gerber
File
Name
Gerber
File Size
(MB)
STD
FlowTime
(secs)
Circularize
Flow Time
(secs)
Cache
Flow Time
(secs)
VD701  774.413610969
VD703 2281.328720595
greater_2GB 2678.929618778
large_lp_cnt_1  354.4 87 8552
large_lp_cnt_2  354.4 84 8552
mt_slow_1  356.414911488
mt_slow_2  293.610810177









Large File Benchmark

April 6, 2011

Artwork has recently been tasked with supporting equipment that is required to process very large Gerber (RS274X) files -- on the order of 300 MB up to 2GB -- and to produce extremely high resolution raster images (from 50,000 DPI to 190,000 dpi) This is generally much larger input files and much higher resolution than is typically needed for a PCB imaging or inspection machine.

In order to determine if our current RIP was up to the job (or whether we needed to come up with new algorithms and approaches) we generated some very large Gerber files and proceeded to run the RIP at different DPIs.

The Setup

We used the following equipment and procedures to run this benchmark:


Computer

Intel Quad 8400 2.66 GHz

8 GB RAM

WD SATA HD (10K RPM)

Windows 7 64 bit Ultimate

Gerber File

125 x 125 mm (5x5 inches)

325 MB, 730 MB, 2300 MB

Software

gbr_rip Version 6.60

Ram buffer = 256 MB


Command Line

All tests were run using the command line and the times were extracted from the log files:

C:\WCAD\GBRIP\gbr2tiff.exe 325mb.gbr -274x -mm -pack:325mb_150k.tif -dpi:150000 -aw -ram:256
C:\WCAD\GBRIP\gbr2tiff.exe 325mb.gbr -274x -mm -pack:325mb_100k.tif -dpi:100000 -aw -ram:256
C:\WCAD\GBRIP\gbr2tiff.exe 325mb.gbr -274x -mm -pack:325mb_75k.tif  -dpi:75000  -aw -ram:256
C:\WCAD\GBRIP\gbr2tiff.exe 325mb.gbr -274x -mm -pack:325mb_190k.tif -dpi:190000 -aw -ram:256
C:\WCAD\GBRIP\gbr2tiff.exe 730mb.gbr -274x -mm -pack:730mb_50k.tif  -dpi:50000  -aw -ram:256
C:\WCAD\GBRIP\gbr2tiff.exe 730mb.gbr -274x -mm -pack:730mb_150k.tif -dpi:150000 -aw -ram:256
C:\WCAD\GBRIP\gbr2tiff.exe 730mb.gbr -274x -mm -pack:730mb_75k.tif  -dpi:75000  -aw -ram:256
C:\WCAD\GBRIP\gbr2tiff.exe 730mb.gbr -274x -mm -pack:730mb_100k.tif -dpi:100000 -aw -ram:256
C:\WCAD\GBRIP\gbr2tiff.exe 730mb.gbr -274x -mm -pack:730mb_190k.tif -dpi:190000 -aw -ram:256 

The output file is a monochrome TIFF image compressed using packbits



Timing and File Size


File Size
(MB)
DPI RIP Times
(min)
BitMap Size
(MB)
325 50,000 2.5 162
325 75,000 4 333
325 100,000 5.5 562
325 150,000 8.6 1,200
325 190,000 14.5 1,890


File Size
(MB)
DPI RIP Times
(min)
BitMap Size
(MB)
730 50,000 6 221
730 75,000 7.5 405
730 100,000 8.6 637
730 150,000 16 1,285
730 190,000 21 2,050


Input file of 2300 MB cannot be run on a 32 bit version of GBR_RIP due to memory constraints.

File Size
(MB)
DPI RIP Times
(min)
BitMap Size
(MB)
2300 50,000    
2300 75,000    
2300 100,000    
2300 150,000    
2300 190,000    


Download Price Rev. History Example Benchmark