在支持预取的体系结构上启用预取指令。
有关 Fortran PREFETCH 指令的说明,请参见PREFETCH 指令。
a 必须是以下值之一:
启用预取指令的自动生成
禁用预取指令的自动生成
启用显式预取宏
禁用显式预取宏
(SPARC) 按指定的因子调整编译器的假定预取到装入的延迟和预取到存储的延迟。该因子必须是正浮点数或整数。
如果要在较大的 SPARC 多处理器上运行计算密集的代码,您会发现使用 -xprefetch=latx:factor 有很多优点。该选项指示代码生成器按照指定的因子调节在预取及其相关的装入或存储之间的缺省延迟时间。
预取延迟是从执行预取指令到所预取的数据在高速缓存中可用那一刻之间的硬件延迟。在确定发出预取指令到发出使用所预取数据的装入或存储指令之间的间隔时,编译器就采用预取延迟值。
编译器可以在众多计算机与应用程序间调整预取机制,以获得最佳性能。这种调整并非总能达到最优。对于占用大量内存的应用程序,尤其是要在大型多处理器上运行的应用程序,可以通过增加预取延迟值来提高性能。要增加值,请使用大于 1 的因子。介于 .5 和 2.0 之间的值最有可能提供最佳性能。
对于数据集完全位于外部高速缓存中的应用程序,可以通过减小预取延迟值来提高性能。要减小此值,请使用小于 1 的因子。
要使用 -xprefetch=latx:factor 选项,请首先使用接近 1.0 的因子值并对应用程序运行性能测试。然后适当增加或减小该因子,并再次运行性能测试。继续调整因子并运行性能测试,直到获得最佳性能。以很小的增量逐渐增加或减小因子时,前几步中不会看到性能差异,之后会突然出现差异,然后再趋于稳定。
-xprefetch=yes 与 -xprefetch=auto,explicit 相同
-xprefetch=no 与 -xprefetch=no%auto,no%explicit 相同
使用 -xprefetch、-xprefetch=auto 和 -xprefetch=yes 时,编译器就可以将预取指令插入到其生成的代码中。该操作会提高支持预取的体系结构的性能。
如果未指定 -xprefetch,则假定 -xprefetch=auto,explicit。
如果仅指定了 -xprefetch,则假定为 -xprefetch=auto,explicit。
如果使用 -xprefetch 或 -xprefetch=yes 等启用了自动预取,但未指定延迟因子,则假定 -xprefetch=latx:1.0。
如果使用 -xprefetch=explicit,编译器将能够识别以下指令:
|
-xchip 设置影响假定延迟的决定以及 latx:factor 设置的结果。
仅当在 SPARC 处理器上启用了自动预取 (auto) 时,latx:factor 子选项才有效。
显式预取只应在度量支持的特殊环境下使用。
因为编译器可以在众多计算机与应用程序间调整预取机制以获得最佳性能,所以当性能测试指示性能明显提高时,应当只使用 -xprefetch=latx:factor。假定的预取延迟在不同发行版本中是不同的。因此,无论何时切换到不同的发行版本,强烈建议重新测试延迟因子对性能的影响。