Re: [eigen] Allocation policy of eigen decompositions |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Allocation policy of eigen decompositions
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Tue, 20 Apr 2010 11:17:42 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:received:message-id:subject:from:to:content-type :content-transfer-encoding; bh=UHufgpmZMi8JWdS1XYl3/5n4fIokrFzpDz64xkUTwqQ=; b=vRNAzilhT3Wfd/MXgtNO+p7YGZKoYxLW4uQ3rtnpw3iky/MSWHIfUZuP0ZxWOcPs5k Qh26oV1nWQnhxUFszMhPuj1hz3bZuuIZ1VMYW5G24lpczmEzw51sV2ZJFj8bbWrXd9vc OZfZBEYJ3V1NEmjZTGdZVG3ce0k94Kfu9Tbvw=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=tjkK30ib5JDraCsioKslZfzt21uR0vFN9BAFbkJjqJ/WBH9yLXGhJFpZqCcFethKHr d1Z9pLUMlDSE25AZ5mE6AS+JukWTRRXhQmTczDXXMx33wBgHjfJO/UV7EiiCRAW4fDeX 1sVUBZliLF0fLGmUFvQgUwlzssiARKbh8tdGo=
2010/4/20 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> 2010/4/20 Adolfo Rodríguez Tsouroukdissian <adolfo.rodriguez@xxxxxxxxxxxxxxxx>:
>>
>>
>> 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.
I can now confirm the 5,6,7 failures with vectorization disabled.
I am afraid that I introduced a huge bug that so far had been hidden
by this eval(). Investigating...
Benoit
>
> 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.
>>>> >
>>>>
>>>>
>>
>