Re: [eigen] Help needed to run a benchmark on many machines

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Hi Benoit,

I wanted to give it a try, but can't find SizeType anywhere.

▶ ag SizeType
Eigen/src/Core/Array.h
287:  * There are also \c ArraySizeType which are self-explanatory. For example, \c Array4cf is

Eigen/src/Core/Matrix.h
395:  * \c MatrixSizeType where \c Size can be \c 2,\c 3,\c 4 for fixed size square matrices or \c X for dynamic size,
401:  * There are also \c VectorSizeType and \c RowVectorSizeType which are self-explanatory. For example, \c Vector4cf is

Eigen/src/Core/products/GeneralBlockPanelKernel.h
94:  k = std::min<SizeType>(k, EIGEN_TEST_SPECIFIC_BLOCKING_SIZE_K);
96:  m = std::min<SizeType>(n, EIGEN_TEST_SPECIFIC_BLOCKING_SIZE_M);
98:  n = std::min<SizeType>(k, EIGEN_TEST_SPECIFIC_BLOCKING_SIZE_N);

Eigen/src/Geometry/AlignedBox.h
351:  * \c AlignedBoxSizeType where \c Size can be \c 1, \c 2,\c 3,\c 4 for fixed size boxes or \c X for dynamic size,



▶ c++ -mavx -DNDEBUG -O3 --std=c++0x benchmark-blocking-sizes.cpp -o b -I ../eigen && ./b | tee log-blocking-sizes-mac
In file included from benchmark-blocking-sizes.cpp:18:
In file included from ../eigen/Eigen/Core:384:
../eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h:94:16: error: use of undeclared identifier 'SizeType'
  k = std::min<SizeType>(k, EIGEN_TEST_SPECIFIC_BLOCKING_SIZE_K);
               ^
../eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h:96:16: error: use of undeclared identifier 'SizeType'
  m = std::min<SizeType>(n, EIGEN_TEST_SPECIFIC_BLOCKING_SIZE_M);
               ^
../eigen/Eigen/src/Core/products/GeneralBlockPanelKernel.h:98:16: error: use of undeclared identifier 'SizeType'
  n = std::min<SizeType>(k, EIGEN_TEST_SPECIFIC_BLOCKING_SIZE_N);
               ^
3 errors generated.


ricard

On Wed, Feb 18, 2015 at 4:58 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
Hi List,

I'm looking into tuning Eigen's matrix product blocking parameters on various machines. That involves actually measuring the impact of different parameter values on performance. The tracking bug for this effort is http://eigen.tuxfamily.org/bz/show_bug.cgi?id=937

I'm attaching a benchmark to this email. It tests all sorts of matrix product sizes with all sorts of blocking parameters, and outputs both a complete log and a table that might be what we need to directly provide Eigen with.

It would be very helpful if some people could help me run it on different machines. It runs at least on:
 - GNU Linux
 - Android
 - Mac

If you run it, please record its output into a text file and send it back to me together with some description of your device (e.g. "nexus 6"). The benchmark already records some hardware info such as /proc/cpuinfo on linux.

Please also tell me your Eigen changeset, compiler and command line.

Compilation instructions:
 - most important: please use today's devel branch of Eigen - must have the patch from http://eigen.tuxfamily.org/bz/show_bug.cgi?id=958 .
 - c++11 mode
 - on intel, please compile with -mavx if available
 - on ARM, please compile with -mfpu=neon-vfpv4 if available, otherwise -mfpu=neon for older devices. DO NOT pass a -march flag as that triggers compiler bugs spilling registers.
 - on ARM, bonus points if you can also apply the patch from http://eigen.tuxfamily.org/bz/show_bug.cgi?id=955 - not necessary but better.

Example desktop command line:
c++ -mavx -DNDEBUG -O3 --std=c++0x benchmark-blocking-sizes.cpp -o b -I ../eigen && ./b | tee log-blocking-sizes-mac

Example Android command line:
$CXX $SRC -o $EXE -save-temps \
 -O3 -DNDEBUG \
 --std=c++0x -Wall -Wextra -pedantic \
 -fPIE -pie -mfpu=neon-vfpv4 -mfloat-abi=softfp \
 -I $HOME/eigen

Thanks!
Benoit




--
ricard
http://twitter.com/ricardmp
http://www.ricardmarxer.com
http://www.caligraft.com


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/