Re: [eigen] Allocation policy of eigen decompositions

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


2010/4/20 Adolfo Rodríguez Tsouroukdissian <adolfo.rodriguez@xxxxxxxxxxxxxxxxx>:
>
>
> 2010/4/20 Adolfo Rodríguez Tsouroukdissian <dofo79@xxxxxxxxx>
>>
>>
>> On Mon, Apr 19, 2010 at 7:36 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
>> wrote:
>>>
>>> Sorry, my bad! I added this eval() for debugging and forgot to remove it.
>>>
>>> Can you retry now? This should remove 1 heap allocation. I really
>>> don't know where the 3 others can be coming from, but that would be a
>>> bug that we (I...) introduced, so you don't have to block your stuff
>>> because of it.
>>
>> Removing eval() did the trick. I was seeing four allocations because the
>> call to applyHouseholderOnTheLeft is inside a loop :s, so problem solved..
>>
>
> FYI: A secondary effect of removing the above eval() is that these tests are
> now failing:
>
> householder_5
> householder_6
> householder_7

I can reproduce the householder_6 failure, not the others. Thanks for
letting me know.

Currently investigating.
Benoit

>
> Adolfo
>
>>
>> Adolfo
>>
>>>
>>> Benoit
>>>
>>>
>>> 2010/4/19 Adolfo Rodríguez Tsouroukdissian
>>> <adolfo.rodriguez@xxxxxxxxxxxxxxxx>:
>>> > Some updates,
>>> >
>>> > The patch is coming out quite well, but there is something that I'd
>>> > like to
>>> > ask the devs about firs. Up until this morning I had all decompositions
>>> > except those in the Eigenvalues module (will talk about that in a
>>> > separate
>>> > email) working as expected, then I pulled in recent changes
>>> > (storageorders
>>> > branch included) and something changed in the behavior of the
>>> > applyHouseholderOnTheLeft method of MatrixBase<Derived>.
>>> >
>>> > Line 101 of Householder/HouseHolder.h states:
>>> >
>>> > tmp.noalias() = essential.adjoint().eval() * bottom;
>>> >
>>> > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>> > When using dynamic matrices, the highlighted part performs four heap
>>> > allocations, and since all QR decompositions use
>>> > applyHouseholderOnTheLeft,
>>> > their compute() method ends up heap-allocating as well, which is what
>>> > I'm
>>> > trying to avoid. My question is then, can these allocations be
>>> > prevented?,
>>> > and if so what would be the best way?. I would also appreciate some
>>> > insight
>>> > into why these heap allocations weren't occurring before.
>>> >
>>> > Thanks in advance,
>>> >
>>> > Adolfo
>>> >
>>> >
>>> > --
>>> > Adolfo Rodríguez Tsouroukdissian, Ph. D.
>>> >
>>> > Robotics engineer
>>> > PAL ROBOTICS S.L
>>> > http://www.pal-robotics.com
>>> > Tel. +34.93.414.53.47
>>> > Fax.+34.93.209.11.09
>>> > AVISO DE CONFIDENCIALIDAD: Este mensaje y sus documentos adjuntos,
>>> > pueden
>>> > contener información privilegiada y/o confidencial que está dirigida
>>> > exclusivamente a su destinatario. Si usted recibe este mensaje y no es
>>> > el
>>> > destinatario indicado, o el empleado encargado de su entrega a dicha
>>> > persona, por favor, notifíquelo inmediatamente y remita el mensaje
>>> > original
>>> > a la dirección de correo electrónico indicada. Cualquier copia, uso o
>>> > distribución no autorizados de esta comunicación queda estrictamente
>>> > prohibida.
>>> >
>>> > CONFIDENTIALITY NOTICE: This e-mail and the accompanying document(s)
>>> > may
>>> > contain confidential information which is privileged and intended only
>>> > for
>>> > the individual or entity to whom they are addressed.  If you are not
>>> > the
>>> > intended recipient, you are hereby notified that any disclosure,
>>> > copying,
>>> > distribution or use of this e-mail and/or accompanying document(s) is
>>> > strictly prohibited.  If you have received this e-mail in error, please
>>> > immediately notify the sender at the above e-mail address.
>>> >
>>>
>>>
>



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