Re: [eigen] (General question) Floating point: why are 'inf' and 'nan' slow?

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


Ah, passing:
-mfpmath=sse -msse2 -DEIGEN_DONT_VECTORIZE

does fix the problem (I pass -DEIGEN_DONT_VECTORIZE because I already
knew that SIMD instructions like mulps avoids the problem; now I can
see that indeed scalar instructions like mulss also avoid the
problem).

So, the problem is a non-issue on SSE2-capable systems (SSE2, because
SSE doesn't support double).

But what about non-SSE2-capable systems, or simply linux distros who
need to build a generic i686 binary package.... are they out of luck?

The big design decision that I am facing now is this: floating point
numbers claim to be able to represent special values such as "inf" and
"nan"; ideally we would play this game, returning "inf" when that is
the natural result given the user's input; but if that must be 100x
slower than normal even before the user has any chance of checking if
that's happening, then in practice we can't do that and we need to
explicitly avoid generating "inf" and "nan" values even when that
would be the natural result given the user's input.

Benoit

2009/9/23 Rohit Garg <rpg.314@xxxxxxxxx>:
> fp exceptions are handled in software. Is it 32 bit or 64 bit? If it
> is 32 bit, have you enabled -mfpmath=sse in your compiler flags?
>
> On Wed, Sep 23, 2009 at 6:21 AM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>> Hi,
>>
>> Sorry for adding to the currently already high traffic here.
>>
>> Here, on linux / x86, my programs run 100x slower when the
>> floating-point values are 'inf' or 'nan'.
>>
>> Only scalar code is affected, SSE code is not affected.
>>
>> I haven't enabled floating-point exception signals. I don't have a FP
>> signal handler. Just any basic c++ program.
>>
>> Can this be "fixed"? How?
>>
>> Otherwise, I really need to make sure that solve() methods avoid
>> producing such special values when no solution exists --- otherwise
>> they take much longer to return.
>>
>> Thanks for your help,
>> Benoit
>>
>>
>>
>
>
>
> --
> Rohit Garg
>
> http://rpg-314.blogspot.com/
>
> Senior Undergraduate
> Department of Physics
> Indian Institute of Technology
> Bombay
>
>
>



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