============ Benchmarking [TOC] ============ Eigen ===== We start with benchmarking the C++ library __Eigen__ (Version 3.2.1). Note that in `bench/Makefile` we expect that this library is installed in `$HOME/work/eigen-3.2.1`. Change the value of `REF_LIB` according to you local installation. Do a make clean, checkout the `bench-eigen` branch and build everything: *--[SHELL(height=16)]-----------------------------------------------* | | | cd ulmBLAS | | git checkout -B bench-eigen remotes/origin/bench-eigen | | make | | | *-------------------------------------------------------------------* Then we do the benchmark: *--[SHELL(path=ulmblas,height=15)]----------------------------------* | | | cd bench | | make clean | | make | | ./xdl3blastst -N 100 2000 100 > report | | grep "\ \-\-\-\-\-$" report > eigen | | cat eigen | | | *-------------------------------------------------------------------* For visualizing the results we use the gnu plot script :import: ulmBLAS/bench/compare-bench1.gps and with *--[SHELL(path=ulmBLAS/bench)]--------------------------------------* | | | gnuplot compare-bench1.gps | | | *-------------------------------------------------------------------* we get ---- IMAGE --------------------- ulmBLAS/bench/compare-bench1.svg -------------------------------- ATLAS ===== Next we are benchmarking the famous C library __ATLAS__ (Version 3.10.1). Note that in `bench/Makefile` we expect that this library is installed in `$HOME/work/work/ATLAS/build/`. Change the value of `REF_LIB` according to you local installation. Checkout the `bench-atlas` branch: *--[SHELL(height=16)]-----------------------------------------------* | | | cd ulmBLAS | | git checkout -B bench-atlas remotes/origin/bench-atlas | | make | | | *-------------------------------------------------------------------* Then we do the benchmark: *--[SHELL(path=ulmblas,height=15)]----------------------------------* | | | cd bench | | make clean | | make | | ./xdl3blastst -N 100 2000 100 > report | | grep "PASS" report > atlas | | cat atlas | | | *-------------------------------------------------------------------* For visualizing the results we use the gnu plot script :import: ulmBLAS/bench/compare-bench2.gps and with *--[SHELL(path=ulmBLAS/bench)]--------------------------------------* | | | gnuplot compare-bench2.gps | | | *-------------------------------------------------------------------* we get ---- IMAGE --------------------- ulmBLAS/bench/compare-bench2.svg -------------------------------- Intel MKL ========= Next we are benchmarking the __Intel Math Kernel Library__ (Version 13.1.3). Note that in `bench/Makefile` we expect that this library is installed in `MKLROOT = /opt/intel/composer_xe_2013_sp1.3.166/mkl/`. Change the value of `MKLROOT` according to you local installation. Do a make clean, checkout the `bench-atlas` branch and build everything: *--[SHELL(height=16)]-----------------------------------------------* | | | cd ulmBLAS | | git checkout -B bench-mkl remotes/origin/bench-mkl | | make | | | *-------------------------------------------------------------------* Then we do the benchmark: *--[SHELL(path=ulmblas,height=15)]----------------------------------* | | | cd bench | | make clean | | make | | ./xdl3blastst -N 100 2000 100 > report | | grep "\ \-\-\-\-\-$" report > mkl | | cat mkl | | | *-------------------------------------------------------------------* For visualizing the results we use the gnu plot script :import: ulmBLAS/bench/compare-bench3.gps and with *--[SHELL(path=ulmBLAS/bench)]--------------------------------------* | | | gnuplot compare-bench3.gps | | | *-------------------------------------------------------------------* we get ---- IMAGE --------------------- ulmBLAS/bench/compare-bench3.svg -------------------------------- BLIS ==== Of course we also benchmark the original __BLIS__ library. *--[SHELL(height=16)]-----------------------------------------------* | | | cd ulmBLAS | | make clean | | git checkout -B bench-blis remotes/origin/bench-blis | | make | | | *-------------------------------------------------------------------* Then we do the benchmark: *--[SHELL(path=ulmblas,height=15)]----------------------------------* | | | cd bench | | ./xdl3blastst -N 100 2000 100 > report | | grep "\ \-\-\-\-\-$" report > blis | | cat blis | | | *-------------------------------------------------------------------* For visualizing the results we use the gnu plot script :import: ulmBLAS/bench/compare-bench4.gps and with *--[SHELL(path=ulmBLAS/bench)]--------------------------------------* | | | gnuplot compare-bench4.gps | | | *-------------------------------------------------------------------* we get ---- IMAGE --------------------- ulmBLAS/bench/compare-bench4.svg -------------------------------- ulmBLAS ======= So what about us? We include the benchmark result from the __previous page__: :import: ulmBLAS/bench/compare-bench5.gps *--[SHELL(path=ulmBLAS/bench)]--------------------------------------* | | | gnuplot compare-bench5.gps | | | *-------------------------------------------------------------------* ---- IMAGE --------------------- ulmBLAS/bench/compare-bench5.svg -------------------------------- :links: Eigen -> http://eigen.tuxfamily.org/index.php?title=Main_Page ATLAS -> http://math-atlas.sourceforge.net Intel Math Kernel Library -> https://software.intel.com/en-us/intel-mkl BLIS -> https://code.google.com/p/blis/ previous page -> doc:page13/index :navigate: __up__ -> doc:index __back__ -> doc:page13/index