-qtune (-mtune)
适用的调用
| 选项 | xlc (编译 C) | xlC (编译 C++) | xlclang(编译 C) | xlclang++(编译 C++) |
|---|---|---|---|---|
| -qtune | ✓ | ✓ | ✓ | ✓ |
| -mtune | ✓ | ✓ |
注: 此表中仅列出典型调用。 对于所有基本调用及其等效特殊调用,您可以参阅 编译器调用的完整列表 。
类别
等效编译指示
无。
用途
调整指令选择、调度以及其他依赖于体系结构的性能增强, 以便在特定硬件体系结构上以最佳方式运行。 允许指定目标 SMT 方式以指导优化,以便在该方式下获得最佳性能。
语法
缺省值
-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 组合中找到 -qarch 和 SMT 调整选项的可接受组合。 编译器将忽略任何无效的 -qarch/-qtune SMT 组合。
虽然更改 -qtune 设置可能会影响生成的可执行文件的性能,但它不会影响能否在特定硬件平台上正确执行可执行文件。
您可以在下表中找到 -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