Re: [eigen] NEON remaining failing tests |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] NEON remaining failing tests
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Sat, 6 Mar 2010 02:19:31 -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=/mHU+GlfSs01BZ+X/1OJrklKHBn+u/gCf0cNl5mBocM=; b=ZCfwTbf7yoSetXoyhNOksSNxIXdFgjdiSDyT25h0bQKWLeif35W9wZbeYGcyIy750g crgpfws8/G1tXdeAnlw8zTbv4alMa+o2sV1+duw8l6MetvWIqokC5VFMkV6xKEmTrIjk AFPOvz6AaV03AukH0gaCk7+EOdfE7d/+kPR7Y=
- 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=Z0446gpuxsSlfeEAh8yIwcRO6lxTX/sGTOBm0BJKhUf2B3784Cev+7smnkFe6GNza8 l2utAhvYHhKOdu4JBid+xac561ui4Bz/5eGMNlohCZysQZnKSSwZTnfIr2uhFE2bcdmt m+yLj+JMQ1NcT/cryDeiYrOxKfO0mIkX2xwso=
Hi Konstantinos,
i just split the EIGEN_DONT_ALIGN option into EIGEN_DONT_ALIGN_STACK
and _HEAP and i tried to rework your checks but couldn't test, so
could you have a look.
Seeing this in Memory.h at line 427, i was not sure what to do:
#if (defined __linux__) && !(defined __ARM_NEON__)
#define ei_aligned_stack_alloc(SIZE) (SIZE<=EIGEN_STACK_ALLOCATION_LIMIT) \
? alloca(SIZE) \
: ei_aligned_malloc(SIZE)
why are you disabling alloca on ARM_NEON? Is there a problem with
alloca on ARM? If yes, then why not test for __arm__ ?
Benoit
2010/3/4 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> 2010/3/4 Konstantinos Margaritis <markos@xxxxxxxx>:
>> On Thursday 04 March 2010 15:43:21 Benoit Jacob wrote:
>>> Hi,
>>>
>>> Some comments on some of these.
>>>
>>> if some platforms can't vectorize integer division, we should provide
>>> a way for them to say it and use a scalar path.
>>>
>>> It's pretty simple actually. integer division is going to be
>>> implemented somewhere as a functor in Functors.h. It's probably called
>>> ei_scalar_div_op or ei_scalar_quotient_op... there, at the place where
>>> we say that it has packet access, you just have to add a #ifndef
>>> ARM_NEON... same for AltiVec by the way.
>>
>> and SSE, right now no SIMD engine provides a way to do integer division.
>
> OK, fixed. For reference:
>
>
> diff -r 8a8f4e9e04bf -r 290fe15bd653 Eigen/src/Core/Functors.h
> --- a/Eigen/src/Core/Functors.h Wed Mar 03 12:15:34 2010 -0600
> +++ b/Eigen/src/Core/Functors.h Thu Mar 04 09:03:06 2010 -0500
> @@ -179,7 +179,7 @@
> enum {
> Cost = 2 * NumTraits<Scalar>::MulCost,
> PacketAccess = ei_packet_traits<Scalar>::size>1
> - #if (defined EIGEN_VECTORIZE_SSE)
> + #if (defined EIGEN_VECTORIZE)
> && NumTraits<Scalar>::HasFloatingPoint
> #endif
>
> Benoit
>