gpt4 book ai didi

assembly - Piledriver 架构中有哪些指令集不在 Bulldozer 中?

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

我用 64 位 x86_64 汇编语言编写了相当多的代码,我即将开始另一个大型函数库,为 s0128 提供所有常规的按位、移位、逻辑、算术、数学运算符和函数。 , s0256 , s0512 , s1024有符号整数类型和 f0128 , f0256 , f0512 , f1024浮点类型。

我有 AMD FX-8150我的两台计算机(ubuntu64 和 win7-64)中的(推土机)CPU。在查看了我的代码需要执行的操作之后,我发现大量最近的位操作指令将非常有帮助。

然而,当我阅读各种文档时,包括他们网站上的 AMD 官方文档,我发现推土机 CPU (FX-8150) 和/或打桩机 (FX-8350) 是否支持某些指令和指令集的矛盾无穷无尽。对于各种最近的位操作指令和指令集,以及 FMA3FMA4指令集。

我知道一些 AMD 文档是错误的,因为我一直在使用 FMA3 进行编程。和 FMA4我的 FX-8150 上的说明他们工作得很好,而比较推土机和打桩机的 AMD 文件与此相矛盾。

鉴于我能找到的所有文档来源似乎在某种程度上关于这个问题是错误的,有没有人知道哪些指令和/或指令集适用于打桩机( FX-8350 )而不是推土机( FX-8150 )?

由于我的问题是那里的文档的有效性,请不要只指出一些文档 除非你确定它是正确的 .最好的答案来自在推土机 [和打桩机] CPU 上测试过这些指令和指令集的程序员。

最佳答案

正如您已经想到的那样,官方AMD release document (第 2 页)确实具有误导性。具体来说,该表的第一行 错了 :
supported instructions (wrong)

推土机 支持 FMA4,但 不是 FMA3。

为了完整起见,Bulldozer 中不存在的打桩机指令为 BMI , TBM , F16C (以前称为 CVT16)和 FMA3 (2)。

这些应提供有关推土机中不存在 FMA3 的确认。但除此之外,您可以信任the GCC Manual .架构被命名为 bdver1bdver2分别用于推土机和打桩机。

更重要的是,您可以信任 cpuid返回值。为方便起见,我在这里为 Zambezi 和 Vishera 复制屏幕截图(桌面部分):

Zambezi and Vishera cores (screenshots from Aida64)
来源:CPUID Dump List

请注意 cpuid简单地使用 fma指定 FMA3 和 FMA4 支持。 GCC 遵循相同的语义。来自 Wikipedia link你可以推断这是因为 FMA4变体实际上是在 FMA3 之前实现的(因此之前定义的 fma4 标识符不能简单地删除,否则会破坏现有应用程序)。

关于assembly - Piledriver 架构中有哪些指令集不在 Bulldozer 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20730472/

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