Re: [eigen] Eigen3 ->Eigen2 performance regression: patch. |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Eigen3 ->Eigen2 performance regression: patch.
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Fri, 26 Feb 2010 14:43:32 -0500
- 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:message-id:subject:from:to:content-type :content-transfer-encoding; bh=wa6nhfzpurLffQLldKEPL8Hqn/kl7UDjIkhrxCz7tv8=; b=xRPwW6UXQidqzRDEYKCOOoWllA97dr2qktcO8dA/TuZynq4kYAjbzlJizoKZbxbwOI kBH/kssg86rXsL8TI9GO6xaIZ36q7WrxqQC8SWvtYkSKRufZDGHsHpc461roC8HrQTRt g3lWa7w4wzDgKAZyKV/aEjk/lF28PC+zTnPlU=
- 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=vtm6IIT8YITSZ9AwQQvNn67GUoAIRDIBV6PmvCt9uCcfzNBn654DOWEeSz26JHVtL+ Ga/8TMHegUHNtJ6XrRcQeBH1ci+lvJ5CPxHZiUrQIJFLmRCdtIXWh8HKqVQ5Cfh75oRm psuCiwscRoy7IY+XidWb3wxQyMvdnHFjMQMaU=
Should we then do the same in other places? I mean, this applies to
LinearVectorizedTraversal, but how about the other traversals? They
all have similar code.
I'll let the MSVC guys investigate it if they feel like it ;)
Benoit
2010/2/26 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
> Applied and thank you a lot for your help - its highly appreciated!
>
> - Hauke
>
> On Fri, Feb 26, 2010 at 6:27 PM, Eamon Nerbonne <emn13@xxxxxxxxxxxx> wrote:
>> As mentioned in the forums
>> (http://forum.kde.org/viewtopic.php?f=74&t=85488&sid=56568a50ee5f70d17993d387dedd9c63&start=30#p149344)
>> on microsoft's compiler there's a performance regression in eigen3
>> concerning subtraction of VectorXd's (and probably other matrices with other
>> cheap operations too). The appropriate ei_assign_impl isn't always inlined,
>> and since the operation is otherwise cheap; the function call overhead is
>> quite significant. Gcc seems to inline the function; but MSC does not when
>> vectorization is on (EIGEN_DONT_VECTORIZE not defined). Replacing the
>> "inline" keyword with the EIGEN_STRONG_INLINE macro resolves the problem.
>> Attached: patch.
>> --eamon@xxxxxxxxxxxx - Tel#:+31-6-15142163
>
>
>