Re: [eigen] about changeset 6eb14e380

[ Thread Index | Date Index | More Archives ]

On Wed, Aug 18, 2010 at 5:15 PM, joel falcou <joel.falcou@xxxxxx> wrote:
> On 18/08/10 17:07, Benoit Jacob wrote:
>> ah OK. I was naively hoping that alignment requirements wouldn't
>> necessarily keep increasing with the packet size :-(
> Now you make me doubt. I'll check again. Fact is our alignment code use the
> cache line size as boundary so we never really checked.

yes according to the reference manual the aligned load instruction
requires a 32 byte alignment of the data.

To make things more complicated we could also think about how to
support packet of different sizes for the same scalar type. Indeed,
both the NEON (for ARM) and the future AVX engines support packet of
different sizes. 2 or 4 floats for NEON, and 4 or 8 floats for AVX.
For dynamic sized objects it is pretty clear that supporting largest
packets is enough. However, for small fixed sized objects it be very
welcome to be able to instantiate packet types according to the
context. For instance, if AVX is enabled, we still want to able to use
packets of 4 floats to vectorize Vector4 and Matrix4. This is very
important for what you know...

Maybe this is not very difficult to support. For instance we could add
a context size template parameter to ei_packet_traits and templating
the *packet* method on the packet type seems to be enough.



Mail converted by MHonArc 2.6.19+