可悲的是,我只拥有一个移动SandyBridge *和一个AMD Phenomen X4 905e(更新的微代码只适用于Ryzen)。有些人可以使用排序数组执行here等基准测试吗? SUSE提到的更新只是说分支预测,它可能意味着Variant 1(if / else)或Variant 2(分支跳转缓冲区)。此外,来自Google的人对变体1和变体2使用术语分支预测。因此实际上关闭它是不明确的。
为什么AMD要关闭Variant 2(分支跳转缓冲区),如果AMD可能不受影响,由于实现的不同。或者它是Variant 1(if / else),这可能会大大减慢很多工作案例。预排序数组是一种可能的用例,其中分支预测可提高性能。
谢谢
*在这里添加一些芬兰亵渎......
答案 0 :(得分:1)
似乎AMD现在正在使用间接分支限制性推测(ibrs),限制但未完全关闭 off 。
AMD Defaults:
Due to the differences in underlying hardware implementation, AMD X86 systems are not vulnerable to variant #3. The correct default values will be set on AMD hardware based on dynamic checks during the boot sequence.
pti 0 ibrs 0 ibpb 2 -> fix variant #1 #2 if the microcode update is applied
pti 0 ibrs 2 ibpb 1 -> fix variant #1 #2 on older processors that can disable indirect branch prediction without microcode updates
https://access.redhat.com/articles/3311301
所以来自SUSE的通知并不正确。