Re: [eigen] Issues regarding Quaternion-alignment and const Maps |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
Benoit Jacob schrieb:
>> and (quaternion * quaternion) only for float (at least in
>> Eigen2).
>
> That's still the case. SSE wouldn't bring a very big benefit for
> doubles here, I'm afraid.
It does, if SSE3 is available.
Using this program I just hacked together, (after spending half a day
finding some useful documentation about SSE-intrinsics ...):
http://www.informatik.uni-bremen.de/~chtz/eigen_quat_sse.cc
I got a speed-up of more than 2 (no thorough benchmarking though, also
no unit-testing ...)
I didn't try how much one could gain with just SSE2 (the _mm_addsub_pd
comes in very handy :) )
===== TIMINGS =====
~/workspace/test> g++ -msse2 -I../../eigen -O2 eigen_quat_sse.cc
~/workspace/test> time ./a.out
0.1572 0.3143 0.4715 -0.8089
real 0m3.182s
user 0m3.156s
sys 0m0.004s
~/workspace/test> g++ -msse3 -I../../eigen -O2 eigen_quat_sse.cc
~/workspace/test> time ./a.out
0.1572 0.3143 0.4715 -0.8089
real 0m1.481s
user 0m1.472s
sys 0m0.000s
--
----------------------------------------------
Dipl.-Inf. Christoph Hertzberg
Cartesium 0.051
Universität Bremen
Enrique-Schmidt-Straße 5
28359 Bremen
Tel: (+49) 421-218-64252
----------------------------------------------