[eigen] Re: early beta3-preview, MSVC/SSE2 testers wanted

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


Hi,

Extra bonus points if MSVC/SSE2 testers can do the following:

1) check that SSE2 is actually being detected. For that, still enable
SSE2, edit the test/main.h file, and in the main() function add some
debug code like that:
#ifdef EIGEN_VECTORIZE
cout << "hello" << endl;
#endif

2) Still with SSE2 enabled, and check that the "unaligned arrays"
assert actually gets triggered by faulty code and is actually not
triggered once the code is corrected. See attached test programs
'faulty' (should abort with error message) and 'corrected' (should
terminate silently).

Please!
Benoit

2008/12/16 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> Hi,
>
> Due to the severe bugs fixed since beta2, I propose to make a beta3 soon.
>
> Here is a beta3 preview tarball:
> http://download.tuxfamily.org/eigen/eigen-2.0-beta3-pre.tar.bz2
>
> Since one of the big improvements since beta2 is MSVC support with
> SSE2 vectorization, I'm very interested if people with this setup
> could give this a good testing.
>
> Ideally you would build the testsuite with SSE2 enabled and run it.
> I'm not familiar with MSVC but the CMake option to enable tests is
> EIGEN_BUILD_TESTS, so you need to pass the option
> -DEIGEN_BUILD_TESTS=ON to CMake. Then somehow it should generate a
> MSVC project for you (if I understand well). Then you should have
> somewhere an option to enable SSE2 vectorization. Note that SSE is not
> enough, you need SSE2. Then make the project, be warned that it
> reportedly takes very long (MSVC's C++ frontend seems not very
> powerful) and will probably consume lots of memory, so adapt
> accordingly your number of jobs. Then enter the test/ directory and
> run "ctest" there. At least that's what I would do on gnu.
>
> Improvements since beta2 include:
> * fix the infamous bug (sorry Tim!!!) where the "unaligned arrays"
> assert couldn't be fixed even if you followed the instructions on the
> web page
> * fixes in diagonal product (see thread on this list, thanks to Gael
> for the quick fixes)
> * SSE2 is finally detected with MSVC (yes, until today it wasn't!)
> * Fix compilation errors with the MSVC + SSE2 combo
> * Make "aligned malloc" work also on MSVC by calling _aligned_malloc there
> * Many warning fixes thanks to Armin Berres
> * Gael continued developing the Sparse module
>
> Cheers,
> Benoit
>
#include <Eigen/Core>

using namespace Eigen;
using namespace std;

struct Foo
{
  Matrix2d m;
};

int main()
{
  Foo *foo = new Foo;
  delete foo;
}
#include <Eigen/Core>

using namespace Eigen;
using namespace std;

struct Foo : Eigen::WithAlignedOperatorNew
{
  Matrix2d m;
};

int main()
{
  Foo *foo = new Foo;
  delete foo;
}


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