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

[ Thread Index | Date Index | More Archives ]

Hi Benoit,

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

▶ ag SizeType
287:  * There are also \c ArraySizeType which are self-explanatory. For example, \c Array4cf is

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

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);

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.


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

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 .
 - 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 - 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 \
 --std=c++0x -Wall -Wextra -pedantic \
 -fPIE -pie -mfpu=neon-vfpv4 -mfloat-abi=softfp \
 -I $HOME/eigen



Mail converted by MHonArc 2.6.19+