I multiplied two 1000×1000 float matrices using the Eigen library on VS2005 and VS2010 with different optimizations, here are the results:
| VS2005 (s) | VS2010 () | |
| none | 2.873 | 2.812 |
| OpenMP | 1.759 | 1.671 |
| SSE | 3.258 | 2.911 |
| SSE2 | 5.057 | 0.224 |
| OpenMP + SSE | 1.807 | 1.598 |
| OPENMP + SSE2 | 2.774 | 0.134 |
SO,
- OpenMP support of Eigen works well.
- Shouldn’t SSE work for floats ???
- VS2005 is horrible with vectorization optimizations.
- OPENMP + SSE2 + VS2010 with Eigen kicks ass!!!