gpt4 book ai didi

optimization - 优化,编译器及其效果

转载 作者:行者123 更新时间:2023-12-03 16:13:44 26 4
gpt4 key购买 nike

(i) 如果程序是 优化 对于一个 CPU 类别(例如多核 Core i7)
来自 编译代码相同,那么它的性能
在老一代的其他 CPU 上处于次优水平(例如奔腾 4)
...优化可能对其他 CPU 的性能有害..?

(ii) 为了优化,编译器可以使用 x86 扩展(如 SSE 4),它们是
在较旧的 CPU 中不可用......所以,是否有一些非扩展的回退
基于旧 CPU 的例程..?

(iii) Intel C++ Compiler 是否比 Visual C++ Compiler 或 GCC 更优化..

(iv) 真正的多核线程应用程序能否在
较旧的 CPU(如 Pentium III 或 4)..?

最佳答案

编译平台不等于优化这个平台。 (也许这只是您问题中的措辞不好。)

在我使用过的所有编译器中,针对 X 平台的优化不会影响指令集,只会影响它的使用方式,例如针对 i7 进行优化不会启用 SSE2 指令。

此外,在大多数情况下,优化器会避免“悲观”未优化的平台,例如在针对 i7 进行优化时,通常不会选择对 i7 进行小的改进,如果这意味着对另一个通用平台的重大打击。

它还取决于指令集的性能差异 - 我的印象是它们在过去十年中变得更少(但我最近没有深入研究 - 对于最新一代可能是错误的)。还要考虑优化仅在少数地方产生显着差异。

为了说明优化器的可能选项,请考虑以下实现 switch 语句的方法:

  • 序列 if (x==c) goto label
  • 范围检查和跳转表
  • 二分查找
  • 以上组合

  • “最佳”算法取决于比较的相对成本,按固定偏移量跳转并跳转到从内存读取的地址。它们在现代平台上没有太大区别,但即使是很小的差异也会导致对一种或其他实现的偏好。

    关于optimization - 优化,编译器及其效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1998622/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com