Difference between revisions of "Eigen2 benchmark Intel"
From Eigen
Line 1: | Line 1: | ||
− | Out of curiosity, I have performed BTL tests with Eigen2 compiled with 4 different compilers: | + | Out of curiosity, I have performed BTL tests with Eigen2 compiled with 4 different compilers on Intel Pentium D CPU: |
* GCC 4.3.3: -O3 -march=native -DNDEBUG | * GCC 4.3.3: -O3 -march=native -DNDEBUG | ||
* GCC 4.1.3: -O3 -march=nocona -msse2 -msse3 -DNDEBUG | * GCC 4.1.3: -O3 -march=nocona -msse2 -msse3 -DNDEBUG | ||
Line 5: | Line 5: | ||
* Intel(R) C++ 11.0: -O3 -DNDEBUG -no-ipo -xHOST -ip -static -no-prec-div | * Intel(R) C++ 11.0: -O3 -DNDEBUG -no-ipo -xHOST -ip -static -no-prec-div | ||
Although from on my experience the ''-ipo'' option (interprocedural optimization) provides good performance benefits, it was explicitly disabled for Intel, because it failed to work (numerically). | Although from on my experience the ''-ipo'' option (interprocedural optimization) provides good performance benefits, it was explicitly disabled for Intel, because it failed to work (numerically). | ||
+ | ---- | ||
+ | Rookie conclusions: | ||
+ | # The benefit of using newer GCC versions is pretty clear. | ||
+ | # In most cases gcc 4.4 is comparable with gcc 4.3, but in some it's almost 2 times faster. | ||
+ | # Except (anomalous) LU decomposition, gcc 4.1 is nowhere near newer versions of gcc. | ||
+ | # Intel C++ does not provide any performance benefits here. This is somewhat surprising as I was expecting at least some advantage on this CPU. That could be due to disabled IPO, though. | ||
+ | |||
---- | ---- |
Revision as of 02:44, 17 March 2009
Out of curiosity, I have performed BTL tests with Eigen2 compiled with 4 different compilers on Intel Pentium D CPU:
- GCC 4.3.3: -O3 -march=native -DNDEBUG
- GCC 4.1.3: -O3 -march=nocona -msse2 -msse3 -DNDEBUG
- GCC 4.4.0: -O3 -march=native -DNDEBUG
- Intel(R) C++ 11.0: -O3 -DNDEBUG -no-ipo -xHOST -ip -static -no-prec-div
Although from on my experience the -ipo option (interprocedural optimization) provides good performance benefits, it was explicitly disabled for Intel, because it failed to work (numerically).
Rookie conclusions:
- The benefit of using newer GCC versions is pretty clear.
- In most cases gcc 4.4 is comparable with gcc 4.3, but in some it's almost 2 times faster.
- Except (anomalous) LU decomposition, gcc 4.1 is nowhere near newer versions of gcc.
- Intel C++ does not provide any performance benefits here. This is somewhat surprising as I was expecting at least some advantage on this CPU. That could be due to disabled IPO, though.