gpt4 book ai didi

optimization - 利用 64 位寄存器的最酷的多操作技巧? (无 SIMD/SSE/AVX)

转载 作者:行者123 更新时间:2023-12-03 17:13:01 24 4
gpt4 key购买 nike

<分区>

我一直渴望了解最极端的性能优化。最近,我一直在考虑利用大型寄存器。当我在 64 位寄存器中得到一位信息时,我感到内疚......所以我想知道如何做一些事情的技巧,比如一次比较多个 16 位(例如,当很可能没有一个匹配时有用) 之类的。 Ofc 检查至少一个元素是否设置了标志的最简单示例是将 0 寄存器与那些 64 位进行异或运算,并将其与 > 0 进行比较。在指令级别上,此 ofc 将利用 instr。流水线,但无论如何你只有 2 条指令而不是 128 条指令(每个 mov 和 cmp)。这就是我所说的惊人的加速!

我知道缓存未命中是我们 CPU 花费 95% 时间的原因,但我们假设缓存使用已经达到最佳状态。

特别是对于树,在没有 SIMD 的情况下一次比较多个值并得到一个 childIndex 以供下一步读取会很有用。最后,指令应该被最小化,并且不要遭受过多的流水线等待惩罚。

我可以列出的其他操作:

当用 padding 放在一起时,例如5x11 位,您可以并行执行 5 次加法、移位、减法和按位运算。或 7x 8 位。当然,人们需要以这种方式存储数据并有效地使用结果,以免在位掩码提取/导入时付出代价。

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