gpt4 book ai didi

减少 CPU 指令大小的 C++ 技术?

转载 作者:行者123 更新时间:2023-11-28 00:18:16 25 4
gpt4 key购买 nike

每个 CPU 指令消耗一定数量的字节。大小越小,CPU 缓存中可以容纳的指令越多。

在编写 C++ 代码时可以使用哪些技术来减少 CPU 指令大小?

一个例子可能是减少 FAR 跳转的次数(字面意思是,跳转到更大地址的代码)。因为偏移量是一个更小的数,所以使用的类型也更小,整个指令也更小。

我认为 GCC 的 __builtin_expect 可以通过将不太可能的指令放在更远的地方来减少跳转指令的大小。

我想我在某处看到使用 int32_t 而不是 int16_t 更好,因为它是 native CPU 整数大小,因此更有效的 CPU 指令。

还是只能在编写汇编时才能完成的事情?

最佳答案

既然我们都在为微观/宏观优化而争论不休,让我们试着帮助解决实际问题。

我没有完整、明确的答案,但您可以开始 here . GCC 有一些宏钩子(Hook)来描述目标硬件的性能特征。理论上,您可以设置一些关键宏来帮助 gcc 在优化时支持“更小”的指令。

基于来自 this question 的非常有限的信息及其 one reply ,您也许可以从 TARGET_RTX_COSTS 成本 Hook 中获得一些 yield 。我还没有做足够的后续研究来验证这一点。

我猜像这样连接到编译器比任何特定的 C++ 习语更有用。

如果您管理任何性能增益,请告诉我们。我很好奇。

关于减少 CPU 指令大小的 C++ 技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28904437/

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