Re: [eigen] nesting

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


Just one thing that I don't follow:

2010/2/4 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
> Our real problem is the following:
>
> A*B + A1 + A2 + A3 + A4 + A5
>
> creates 5 temporary matrices, the result of A*B is copied 4 times....

Why is it so? After A*B has evaluated into a temporary matrix, isn't
it the same as

tmp + A1 + A2 + A3 + A4 + A5

? That doesn't evaluate at every step ...!

Benoit

>
> gael
>
>>
>> Am I missing something? I am especially afraid of being missing
>> something about the blas_traits and how you implemented that stuff ---
>> you know better than me.
>>
>> Benoit
>>
>>
>>
>>> Such an analyzer/evaluator would look like the current ei_blas_traits...
>>> Some examples of what could be done with such an approach:
>>>
>>> (A + B).block() => (A.block() + B.block())
>>>
>>> E.noalias() += A*B + C*D;
>>>
>>> =>
>>>
>>> E.noalias() += A*B;
>>> E.noalias() += C*D;
>>>
>>> This also offers more parallelization opportunities.
>>>
>>> Sounds good, but of course I'm really scared about compilation times... This
>>> is why I did not talk that much about that idea so far.
>>>
>>> gael.
>>>
>>>
>>> On Thu, Feb 4, 2010 at 2:35 PM, Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>
>>> wrote:
>>>>
>>>> Hi,
>>>>
>>>> While looking into the "performance degradation" issue from the forum
>>>> I found out that it is due to temporaries - as Benoit already guessed.
>>>>
>>>> I am a little bit afraid, that what I once proposed, namely copying
>>>> expressions by value, is now backfiring. The reason is that initially
>>>> I assumed expressions to be tiny little objects with close to no copy
>>>> costs. The issue is related to those expressions holding temporaries.
>>>> Copying them (e.g. a product expression) means copying all the data
>>>> including the temporary and that will happen as many times as we nest
>>>> expressions.
>>>>
>>>> The only solution I can think about at the moment is the
>>>> specialization of ei_nested for those types and to go back to nesting
>>>> by reference for these heavy weight guys.
>>>>
>>>> - Hauke
>>>
>>>
>>>
>>
>>
>>
>
>
>



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