Changes between Version 2 and Version 3 of Nofib


Ignore:
Timestamp:
Apr 2, 2010 4:19:11 PM (4 years ago)
Author:
batterseapower
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Nofib

    v2 v3  
    1 Nofib is the standard Haskell benchmark suite. It is described in the paper [http://www.haskell.org/ghc/docs/papers/nofib.ps.gz The nofib Benchmark Suite of Haskell Programs]. 
    2  
    3 == Getting nofib == 
    4  
    5 From your GHC tree, run: 
    6  
    7 {{{ 
    8 ./darc-all --nofib get 
    9 }}} 
    10  
    11 It will be pulled into the a "nofib" subdirectory. 
    12  
    13 == Benchmarking an optimisation == 
    14  
    15 To test your whizzy new optimisation with nofib, you will want to: 
    16   1. Build the inplace stage2 compiler with a flag that controls whether it runs or not 
    17   2. Run the nofib suite with that flag on and then off, and compare the two runs: 
    18  
    19 {{{ 
    20 cd nofib 
    21 make clean && make boot && make -k >& log1 
    22 make clean && make boot && make -k EXTRA_HC_OPTS=-fenable-cool-optimisation >& log2 
    23 nofib-analyse/nofib-analyse log1 log2 
    24 }}} 
    25  
    26 The output of the nofib-analyse tool is quite readable, with two provisios: 
    27   * Missing values in the output typically mean that the benchmark crashed and may indicate a problem with your optimisation 
    28   * If a difference between the two modes is displayed as an absolute quantity instead of a percentage, it means that the difference was below the threshold at which the analyser considers it significant 
    29  
    30 If the comparison identifies any particularly bad benchmark results, you can run them individually by changing into their directory and running something like: 
    31  
    32 {{{ 
    33 EXTRA_HC_OPTS="-fenable-cool-optimisation -ddump-simpl" make 
    34 }}} 
    35  
    36 You can add whatever dumping flags you need to see the output and understand what is going wrong.