User Tools

Site Tools


faq:hint_insufficiently_exploiting_cpu_extensions

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Last revisionBoth sides next revision
faq:hint_insufficiently_exploiting_cpu_extensions [2019/05/10 08:37] tmuellerfaq:hint_insufficiently_exploiting_cpu_extensions [2019/05/10 08:39] tmueller
Line 17: Line 17:
   * All compilers: you are already using something like ''-march=native'' or ''-xHost'' to have the compiler auto-detect the CPU and enable flags automatically but you still see this ''HINT'', then this likely means that the CPU in the system you are building CP2K on has a smaller instruction set than the one running CP2K. To remedy the issue you have to use specific architecture flags for your compiler (consult your compiler documentation) instead of the auto-detection. This could mean that the final executable might not run on the build system anymore, but only on the target system.   * All compilers: you are already using something like ''-march=native'' or ''-xHost'' to have the compiler auto-detect the CPU and enable flags automatically but you still see this ''HINT'', then this likely means that the CPU in the system you are building CP2K on has a smaller instruction set than the one running CP2K. To remedy the issue you have to use specific architecture flags for your compiler (consult your compiler documentation) instead of the auto-detection. This could mean that the final executable might not run on the build system anymore, but only on the target system.
   * Intel Compiler: Based on [[https://software.intel.com/en-us/articles/performance-tools-for-software-developers-intel-compiler-options-for-sse-generation-and-processor-specific-optimizations|their documentation]] it seems that the Intel compiler only enables support for SSE2 by default. Check the [[https://software.intel.com/en-us/articles/performance-tools-for-software-developers-intel-compiler-options-for-sse-generation-and-processor-specific-optimizations|documentation]] to see which flags you should be adding for your target CPU or add ''-xHost'' if your build and target hosts are the same (see point above).   * Intel Compiler: Based on [[https://software.intel.com/en-us/articles/performance-tools-for-software-developers-intel-compiler-options-for-sse-generation-and-processor-specific-optimizations|their documentation]] it seems that the Intel compiler only enables support for SSE2 by default. Check the [[https://software.intel.com/en-us/articles/performance-tools-for-software-developers-intel-compiler-options-for-sse-generation-and-processor-specific-optimizations|documentation]] to see which flags you should be adding for your target CPU or add ''-xHost'' if your build and target hosts are the same (see point above).
-  * GNU Compiler: By default (independently of the optimization level) ''gcc'' and ''gfortran'' only emit code using SSE2. Use either an appropriate ''-march=...'' flag or ''-march=native'' if your build and target hosts are the same (see first point).+  * GNU Compiler: Also the GNU compilers emit by default (independently of the optimization level) only SSE2 instructions at most. Use either an appropriate ''-march=...'' flag or ''-march=native'' if your build and target hosts are the same (see first point).
   * Libraries: the same points apply to third-party libraries used by CP2K.   * Libraries: the same points apply to third-party libraries used by CP2K.
faq/hint_insufficiently_exploiting_cpu_extensions.txt · Last modified: 2020/08/21 10:15 by 127.0.0.1