Preventive Service Planning
Abstract
What does POWER7 tolerance mean and what should I be aware of when using it? Which compilers provide POWER7 tolerance?
Content
The latest versions of XL C, XL C/C++ and XL Fortran compilers (that is, IBM XL C for AIX, V11.1, IBM XL C/C++ for AIX, V11.1 and IBM XL Fortran for AIX, V13.1) provide support for the POWER7 processors including exploitation of the new POWER7 functions.
For earlier versions of XL C, XL C/C++ and XL Fortran compilers, you can download PTFs that will provide POWER7 tolerance. With POWER7 tolerance, the compilers accept "pwr7" sub-options specified on the command line but will not exploit new POWER7 functions.
If you have the POWER7 tolerance PTFs installed for any of the compilers listed in Table 1 or 2 below, consider the following compilation scenarios:
- If you specify -qarch=pwr7 or -qtune=pwr7 on any POWER machine, the compilers will accept them as valid sub-options but will map the specified -qarch=pwr7 or -qtune=pwr7 to -qarch=pwr6 or -qtune=pwr6.
- If you specify -qarch=auto or -qtune=auto on a POWER7 machine*, the compilers will map them to -qarch=pwr6 or -qtune=pwr6.
- If you specify -qarch=auto or -qtune=auto on a non-POWER7 machine*, the compilers will automatically detect the specific architecture of the compiling machine. That is, the compilers have not changed in behavior for this case.
For the above cases, warning messages will not be issued and the resulting binaries will run on POWER7.
If you do not have the POWER7 tolerance PTFs installed for any of the compilers listed in Table 1 or 2 below, consider the following compilation scenarios:
- If you specify -qarch=pwr7 or -qtune=pwr7 on any POWER machine, a warning message will be issued during compilation indicating that the values are not recognized. The specified values will be ignored and compilation will proceed with default -qarch and -qtune values**.
- If you specify -qarch=auto or -qtune=auto on a POWER7 machine*, the compiler will automatically detect that pwr7 is not valid and a warning message will be issued during compilation indicating that the values are not recognized. Compilation will proceed with default -qarch and -qtune values**.
- If you specify -qarch=auto or -qtune=auto on a non-POWER7 machine*, the compilers will automatically detect the specific architecture of the compiling machine and a warning message will not be issued. That is, the compilers have not changed in behavior for this case.
For the above cases, the resulting binaries will run on POWER7.
*When -O4 or -O5 is in effect, -qarch=auto and -qtune=auto are automatically turned on.
**The default values are the ones specified in the Compiler Reference manual for each compiler version.
The following provides POWER7 tolerance to previous compilers via the specified PTF (or any later subsequent PTF):
Table 1: XL C/C++/Fortran for AIX
AIX | |
C Compiler | |
XL C for AIX, V10.1 | |
XL C Enterprise Edition for AIX, V9.0 | |
C/C++ Compiler | |
XL C/C++ for AIX, V10.1 | |
XL C/C++ Enterprise Edition for AIX, V9.0 | |
Fortran Compiler | |
XL Fortran for AIX, V12.1 | |
XL Fortran Enterprise Edition for AIX, V11.1 |
Table 2: XL C/C++/Fortran for Linux
Linux on Power Systems | |
C/C++ Compiler | |
XL C/C++ for Linux, V10.1 | |
XL C/C++ Advanced Edition for Linux, V9.0 | |
Fortran Compiler | |
XL Fortran for Linux, V12.1 | |
XL Fortran Advanced Edition for Linux, V11.1 |
Latest Compiler Updates
The above may not be the latest C/C++ or Fortran PTFs for the specified compiler version. Click on C/C++ or Fortran for the latest updates.
Was this topic helpful?
Document Information
Modified date:
06 December 2018
UID
swg21427761