[Bf-committers] Eigen3 128bit alignment issues in ceres

Keir Mierle mierle at gmail.com
Tue May 29 19:47:14 CEST 2012


*+ceres-solver at googlegroups.com*

Hi Stephan,

Thanks for tracking this down! Yes, your patch works but is not the right
long-term fix for Ceres. I am one of the Ceres authors and the Windows port
of Ceres isn't quite there yet; there is a couple test failures that I
hadn't tracked down. I believe this patch may fix one of them. The version
of Ceres in Blender is a merge of master with the "windows" branch that we
haven't merged to master yet. Unfortunately I can't spend the time to make
a proper fix until this weekend.

Thanks for the patch and spending the time to track this down,
Keir

On Mon, May 28, 2012 at 6:10 PM, Stephan Kassemeyer <stapfx at gmx.de> wrote:

> Sorry if this mailing list is not the appropriate place
> to discuss this... I guess it is more a problem of ceres, which
> stores Eigen3 objects in structs without properly handling 128 bit
> alignment.
> The following is not a proper patch, since InnerContainer
> is more general and can also store non-Eigen3-objects, but
> the patch fixes the segfaults on my system by ensuring alignment
> for Eigen3-objects:
>
>
> Index: extern/libmv/third_party/ceres/include/ceres/internal/fixed_array.h
> ===================================================================
> --- extern/libmv/third_party/ceres/include/ceres/internal/fixed_array.h
> (revision 47131)
> +++ extern/libmv/third_party/ceres/include/ceres/internal/fixed_array.h
> (working copy)
> @@ -136,7 +136,8 @@
>   // and T must be the same, otherwise callers' assumptions about use
>   // of this code will be broken.
>   struct InnerContainer {
> -    T element;
> +   EIGEN_MAKE_ALIGNED_OPERATOR_NEW
> +   T element;
>   };
>
>
>
>
> -------- Original-Nachricht --------
> > Datum: Tue, 29 May 2012 02:15:05 +0200
> > Von: "Stephan Kassemeyer" <stapfx at gmx.de>
> > An: bf-blender developers <bf-committers at blender.org>
> > Betreff: Re: [Bf-committers] Eigen3 128bit alignment issues in ceres
>
> > The assertion occured on linux, using gcc 4.4.3.
> > Here is a backtrace:
> > http://www.pasteall.org/32377
> >
> > -------- Original-Nachricht --------
> > > Datum: Mon, 28 May 2012 14:01:07 +0600
> > > Von: Sergey Sharybin <sergey.vfx at gmail.com>
> > > An: bf-blender developers <bf-committers at blender.org>
> > > Betreff: Re: [Bf-committers] Eigen3 128bit alignment issues in ceres
> >
> > > Hi,
> > >
> > > It'll help knowing ehich operation system and compiler you're using.
> > >
> > > Thanks.
> > >
> > > On Mon, May 28, 2012 at 7:14 AM, Stephan Kassemeyer <stapfx at gmx.de>
> > wrote:
> > >
> > > > Hi,
> > > >
> > > > in tomato branch, I get a segfault when doing video tracking.
> > > > I turned on debug mode and got an Eigen3 assertion
> > > > EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT which mentions this
> > > > web page:
> > > > http://eigen.tuxfamily.org/dox-devel/TopicUnalignedArrayAssert.html
> > > >
> > > > I tried their suggestions, so far without any success.
> > > > The only thing that helps is to disable all
> > > > vectorization with the following definitions:
> > > > CMAKE_CXX_FLAGS:STRING=-D EIGEN_DONT_VECTORIZE -D
> > > > EIGEN_DISABLE_UNALIGNED_ARRAY_ASSERT
> > > >
> > > > In the backtrace,
> > > > the last non-Eigen3 code is
> > > >
> > > >   FixedArray<JetT, (256 * 7) / sizeof(JetT)> x(
> > > >        N0 + N1 + N2 + N3 + N4 + N5 + num_outputs);
> > > >
> > > > in extern/libmv/third_party/ceres/include/ceres/internal/autodiff:303
> > > >
> > > > I was compiling using cmake.
> > > > If you have any ideas, please let me know, I can test.
> > > >
> > > > regards,
> > > > Stephan Kassemeyer.
> > > > --
> > > > NEU: FreePhone 3-fach-Flat mit kostenlosem Smartphone!
> > > > Jetzt informieren:
> http://mobile.1und1.de/?ac=OM.PW.PW003K20328T7073a
> > > > _______________________________________________
> > > > Bf-committers mailing list
> > > > Bf-committers at blender.org
> > > > http://lists.blender.org/mailman/listinfo/bf-committers
> > > >
> > >
> > >
> > >
> > > --
> > > With best regards, Sergey Sharybin
> > > _______________________________________________
> > > Bf-committers mailing list
> > > Bf-committers at blender.org
> > > http://lists.blender.org/mailman/listinfo/bf-committers
> >
> > --
> > Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
> > belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de
> > _______________________________________________
> > Bf-committers mailing list
> > Bf-committers at blender.org
> > http://lists.blender.org/mailman/listinfo/bf-committers
>
> --
> Empfehlen Sie GMX DSL Ihren Freunden und Bekannten und wir
> belohnen Sie mit bis zu 50,- Euro! https://freundschaftswerbung.gmx.de
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>


More information about the Bf-committers mailing list