gpt4 book ai didi

optimization - 哪些非局部效应可以改 rebase 本 block 的性能?

转载 作者:行者123 更新时间:2023-12-03 05:10:52 25 4
gpt4 key购买 nike

一个Basic Block是一个只有一个入口点和一个导出点的程序集片段(维基百科链接也有更严格的定义)。许多编译器优化过程依赖于编译器将用户的代码分解为基本 block ,然后再将其提供给优化器。

我很想知道哪些非局部效应会影响基本 block 本身的性能。通过非局部效应,我的意思是基本 block 之外的代码在可能影响其运行时间之前如何运行,或者代码在内存中的放置位置如何影响它。这比担心具有循环、分支等的任意程序的性能更具限制性。

在我的脑海中,程序其他部分(内存和指令缓存)使用的缓存似乎是最大可能的非本地影响。还有先前执行的指令或当前正在运行的较早指令设置的流水线状态。我对 x86/x86-64 特别感兴趣,但对其他架构的影响似乎也值得了解。还有其他非局部效应吗?

最佳答案

这是一个简短的列表:

  • 代码和数据在内存层次结构中的位置
  • 缓存行效果
  • 并行执行的其他线程
  • 锁和其他同步
  • 中断(来自 I/O 设备或操作系统陷阱调用)
  • 访问模式导致的页面错误
  • 数据访问依赖性(相同与不同的内存地址)
  • 编写序列化/一致性

享受这些乐趣。

关于optimization - 哪些非局部效应可以改 rebase 本 block 的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16066263/

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