[eigen] Accidental push/merge for s390x SIMD :)

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Hi guys,

I accidentally pushed my patches to the main tree, while I wanted to just sync my fork with current
tip and then create a pull request. If you think I should revert the commits, I'll try to do that
and create a proper pull request, however the files touched are pretty much s390x specific and apart
from CMake rules and the includes in Eigen/Core nothing else was touched. 

In any case, this pretty much completes a first draft of s390x zEC13 SIMD (ZVector) support. Only
int and double traits are vectorized (ZVector does not offer 32-bit vector float support in
hardware). make check gives "99% tests passed, 10 tests failed out of 716" and those 10 don't really
look SIMD specific, but I'll take a closer look later. Preliminary performance gain (using
bench_gemm) is 7x for 32-bit ints, and 2x for double and complex<double>. For float, I was
considering adding the traits that are not arithmetic (ie load/store/binary/transpose/etc)
operations and doing the arithmetic (add/sub/mul/div) in scalar, so that perhaps that might give a
small gain over pure scalar. But I need to test and benchmark this first, it's not a priority right
now.

I'm also going to push some VMX/VSX-related fixes in a while. Sadly, I'm out of arm64 hardware for
the time being, so can't really test much.

Regards

Konstantinos



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