[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:

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 ... :(


Dipl.-Inf., Dipl.-Math. Christoph Hertzberg
Cartesium 0.049
Universität Bremen
Enrique-Schmidt-Straße 5
28359 Bremen

Tel: +49 (421) 218-64252

Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/