Building the existing charts

To build complete reports comparing the present ATLAS install to other LAPACK/BLAS, you can issue:

   make atlvsys.pdf cmp="SYSTEM LIB NAME"
   make atlvat2.pdf cmp="ATLASvXXXX" AT2dir="OBJdir/lib dir of previous install"
   make atlvf77.pdf cmp="f77"

For example, to compare against MKL (setup as described below), you would issue:

   make atlvsys.pdf cmp="MKL"

To compare against a previous version of ATLAS, you additionally must specify the directory of the installed libraries using the AT2dir macro.

You can build individual charts comparing ATLAS versus another LAPACK/BLAS install by issuing commands of the following form from BLDdir/results:

   make charts/<pre><rout><side><uplo><ta>_<sz>_<cmp>[_pt].eps
Where the choices are:
  1. pre: precision/type prefix, choose `s', `d', `c', or `z'.
  2. rout: choose `mmsq' for square GEMM, `mmrk' for rank-K update GEMM with K equal to the make macro RK, or one of the l3blas names: `symm', `herk', `syrk', `herk', `syr2k', `her2k', `trmm', `trsm'. You can choose one of the lapack names: `getrf', `potrf', `geqrf'.
  3. side : `L' (Left) or 'R' (Right)
  4. uplo : `L' (Lower) or 'U' (Upper)
  5. ta : `N' (NoTranspose), `T' (Transpose), 'C' (ConjTrans)
  6. cmp: choose `avs' (compare present install to system lib like ACML or MKL), `ava' (compare against prior ATLAS install), `avf' (compare against F77 LAPACK & BLAS).
  7. size: varies problem sizes charted, choose: `tin' (10-100), `med' (200-2000), `lrg' (2400-4000), `cmb' (all sizes in one chart) `mlr' (medium and large sizes in one chart).
  8. _pt: if omitted, time serial, else time threaded

You can also get summary information that displays square GEMM and all factorization performance on one chart with the commands:

   make charts/<pre>factor_<sz>_<lib>[_pt].eps       # results in MFLOPS
   make charts/<pre>pcmm_factor_<sz>_<lib>[_pt].eps  # results as % of GEMM
You can also get a summary chart of all QR variants using:
   make charts/<pre>qrvar_<sz>_<lib>[_pt].eps       # results in MFLOPS
Where <lib> is one of `atl', `sys', `at2', and `f77'.

To compare differing ATLAS installs, edit your BLDdir/results/Make.plinc, and set AT2dir to point to the other ATLAS install's lib/ directory.

To compare against a system LAPACK/BLAS, fill in the following macros in BLDdir/ to point to the system libraries, rather than the default F77BLAS:

   SBLASlib = $(FBLASlib)  # should be serial sysblas
   BLASlib = $(FBLASlib)   # should be parallel sysblas
   SLAPACKlib =   # set to parallel system lapack
   SSLAPACKlib =  # set to serial system lapack

For instance, here's how to set them to use ACML:

   SBLASlib = /opt/acml4.4.0/gfortran64/lib/libacml.a
   BLASlib = /opt/acml4.4.0/gfortran64_mp/lib/libacml_mp.a -fopenmp
   SLAPACKlib = /opt/acml4.4.0/gfortran64_mp/lib/libacml_mp.a
   SSLAPACKlib =  $(SBLASlib)

MKL is a good deal more complicated, and you'll have to see Intel's directions for things to work for your setup. On mine, I did:

   MKLROOT = /opt/intel/mkl/
   SBLASlib = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_gf_lp64.a \
              $(MKLROOT)/lib/intel64/libmkl_sequential.a \
              $(MKLROOT)/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread
   BLASlib = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_gf_lp64.a \
              $(MKLROOT)/lib/intel64/libmkl_gnu_thread.a \
              $(MKLROOT)/lib/intel64/libmkl_core.a -Wl,--end-group \
              -fopenmp -lpthread
   SLAPACKlib = -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_gf_lp64.a \
              $(MKLROOT)/lib/intel64/libmkl_gnu_thread.a \
              $(MKLROOT)/lib/intel64/libmkl_core.a -Wl,--end-group
   SSLAPACKlib =  -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_gf_lp64.a \
              $(MKLROOT)/lib/intel64/libmkl_sequential.a \
              $(MKLROOT)/lib/intel64/libmkl_core.a -Wl,--end-group

After the above setup, I can compare ATLAS's medium-sized threaded Cholesky performance to that of ACML by issuing:

   make charts/dpotrf_LLN_mlr_avs_pt.eps cmp=ACML
   gv   charts/dpotrf_LLN_mlr_avs_pt.eps &

R. Clint Whaley 2016-07-28