|Re: [eigen] about changeset 6eb14e380|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] about changeset 6eb14e380
- From: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
- Date: Thu, 19 Aug 2010 13:03:48 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:content-type; bh=KYXnvkTl7IIOZGeMTTRliUmSSn3Y9nGhMEOlsXuYd+Y=; b=XSfGlXDVcvwwH84UBFG0q0lJm+eOHPFidcqJtCHZyUJldGAPKnw3cKVZiF7vKRSQPK 1nhQ5mTAJBKHa9WT30VfpiXUUVQtx/aWHxT/yodMZRlltldyB4gIBQ2g9nbWP9o17lLj NbvroIPcbB/dG9SWQjjBfoBHaBIy4CvSU8n7I=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; b=vljoC8yfeGsyxbW8mebbRBlv0OyEE/QhD30H9gBYOehWbEO8gMQbwfB1CCg+ma83bW pkdWCCgM0WKT68GvgIXnvBpqwehArAvE3PEuiJmVNYpLDlMqRwuGxC++nDJECWTvrTUF 3YPlhgBBWUrrhMjRW0gHZ2LRt1Ut1FfL02kGE=
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.