-qtune (-mtune)

适用的调用

表 1. 接受给定选项的调用
选项 xlc (编译 C) xlC (编译 C++) xlclang(编译 C) xlclang++(编译 C++)
-qtune
-mtune    
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表

类别

优化和调整

等效编译指示

无。

用途

调整指令选择、调度以及其他依赖于体系结构的性能增强, 以便在特定硬件体系结构上以最佳方式运行。 允许指定目标 SMT 方式以指导优化,以便在该方式下获得最佳性能。

语法

读取语法图跳过可视语法图  -q tune = balancedautoppc970pwr4pwr5pwr6pwr7pwr8pwr9 :stbalancedsmt2smt4smt8
读取语法图跳过可视语法图  -m tune = pwr4power4pwr5power5pwr6power6pwr7power7pwr8power8pwr9power9

缺省值

-qtune=balanced:balanced 如果没有有效的 -qarch 设置生效。 否则,缺省值取决于有效的 -qarch 设置。 您可以在 可接受的 -qarch 和 -qtune 组合中找到详细信息。

参数 对于 CPU 子选项

以下 CPU 子选项允许您为编译器指定特定体系结构以实现最佳性能:

自动
针对编译应用程序的平台对优化进行了调整。
均衡
将对所选范围的最新硬件进行优化。
ppc970
针对 PowerPC® 970 处理器进行了优化。
pwr4
针对 POWER4 硬件平台调整了优化。
pwr5
针对 POWER5 硬件平台进行了优化。
pwr6
针对 POWER6 硬件平台进行了优化调整。
pwr7
优化针对 POWER7 或 POWER7+ 硬件平台。
pwr8
针对 POWER8 硬件平台进行了优化。
pwr9
针对 POWER9 硬件平台进行了优化。

SMT 子选项的参数

以下同时多线程 (SMT) 子选项允许您选择性地指定编译器的执行方式以实现最佳性能。

均衡
针对所选范围的最新硬件,针对各种 SMT 方式的性能进行了优化。
st
针对单线程执行对优化进行了调整。
smt2
针对 SMT2 执行方式 (两个线程) 调整优化。
smt4
针对 SMT4 执行方式 (四个线程) 对优化进行了调整。
smt8
针对 SMT8 执行方式 (8 个线程) 对优化进行了调整。

使用量

当您希望程序在多个体系结构上运行,但要针对特定体系结构进行调整时,请使用 -qarch-qtune 选项的组合。

-qtune 选项可以通过安排 (调度) 生成的机器指令以最大限度利用硬件功能 (例如,高速缓存大小和流水线) 来提高性能。

如果有效的 -qarch 选项支持指定的 SMT 方式,那么特定 SMT 子选项有效。 您可以在 可接受的 -qarch 和 -qtune 组合中找到 -qarchSMT 调整选项的可接受组合。 编译器将忽略任何无效的 -qarch/-qtune SMT 组合。

虽然更改 -qtune 设置可能会影响生成的可执行文件的性能,但它不会影响能否在特定硬件平台上正确执行可执行文件。

您可以在下表中找到 -qarch-qtune 的可接受组合。
表 2。 可接受的 -qarch-qtune 组合
-qarch 选项 缺省 -qtune 设置 可用 -qtune CPU 设置 可用 -qtune SMT 设置
ppc 均衡: 均衡 auto | pwr4 | pwr5 | pwr6 | pwr7 | pwr8 | pwr9| ppc970 | balanced 均衡 | st
ppcgr 均衡: 均衡 auto | pwr4 | pwr5 | pwr6 | pwr7 | pwr8 | pwr9 | ppc970 | balanced 均衡 | st
ppc64 均衡: 均衡 auto | pwr4 | pwr5 | pwr6 | pwr7 | pwr8 | pwr9 | ppc970 | balanced 均衡 | st
ppc64gr 均衡: 均衡 auto | pwr4 | pwr5 | pwr6 | pwr7 | pwr8 | pwr9 | ppc970 | balanced 均衡 | st
ppc64grsq 均衡: 均衡 auto | pwr4 | pwr5 | pwr6 | pwr7 | pwr8 | pwr9 | ppc970 | balanced 均衡 | st
ppc64v 均衡: 均衡 auto | ppc970 | pwr6 | pwr7 | pwr8 | pwr9 | balanced 均衡 | st
ppc970 ppc970:st auto | ppc970 | 均衡 均衡 | st
pwr4 pwr4:st auto | pwr4 | pwr5 | pwr6 | pwr7 | pwr8 | pwr9 | ppc970 | balanced 均衡 | st
pwr5 pwr5:st auto | pwr5 | pwr6 | pwr7 | pwr8 | pwr9| balanced 均衡 | st
pwr5x pwr5:st auto | pwr5 | pwr6 | pwr7 | pwr8 | pwr9 | balanced balanced | smt2
pwr6 pwr6:st auto | pwr6 | pwr7 | pwr8 | pwr9| balanced balanced | smt2
pwr6e pwr6:st auto | pwr6 | 均衡 均衡 | st
pwr7 pwr7:st auto | pwr7 | pwr8 | pwr9 | balanced balanced | st | smt2 | smt4
pwr8 pwr8:st auto | pwr8 | pwr9 | 均衡 balanced | st | smt2 | smt4 | smt8
pwr9 pwr9:st auto | pwr9 | 均衡 balanced | st | smt2 | smt4 | smt8

预定义的宏

无。

示例

要指定 testing 编译自 myprogram.c 的可执行程序要针对 POWER7 硬件平台进行优化,请输入:
xlc -o testing myprogram.c -qtune=pwr7
可执行程序 testing 是从 myprogram.c编译的。 要指定要针对 POWER8 硬件平台进行优化并针对 SMT4 方式进行配置的 testing ,请输入:
xlc -o testing myprogram.c -qtune=pwr8:smt4

相关信息