[eigen] AVX integer and half-packet support (was Altivec port status) |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
On 15.07.2014 10:10, Christoph Hertzberg wrote:
My change actually exposes that integer vectorization with AVX is
somewhat undefined. We provide Packet8i but don't implement
vectorization, since it's only available with AVX2:
http://manao.inria.fr/CDash/testDetails.php?test=2551040&build=13031
The problem is that the alignment_bit in Matrix::Flags is set if
(((MaxCols*MaxRows*int(sizeof(Scalar))) % EIGEN_ALIGN_BYTES) == 0))
This should actually be dependent on packet_traits<Scalar>::size not
EIGEN_ALIGN_BYTES. And actually, if HasHalfPacket==1, we should also
enable vectorization if the number of elements is a multiple of half
that size or we unnecessarily lose a lot of performance for small
objects. I'm aware that this will make things complicated ... :(
Christoph
--
----------------------------------------------
Dipl.-Inf., Dipl.-Math. Christoph Hertzberg
Cartesium 0.049
Universität Bremen
Enrique-Schmidt-Straße 5
28359 Bremen
Tel: +49 (421) 218-64252
----------------------------------------------