我目前正在衡量某些代码在失败中的性能。该代码提供了一些这样的算术否定指令:

d = -a

在哪里 da 是浮点变量。 我目前使用的体系结构确实具有特定的否定说明。 我是否应该考虑这种操作来测量拖鞋?什么样的操作说明了失败?有会议还是什么?

有帮助吗?

解决方案

正如@andrey所说,要确保您应该检查拆卸的代码。

但总的来说,是的,该指令可能会在FPU上执行。它只是翻转一点,所以 可以 也可以在整数单元上完成,但是由于您在浮点值上进行操作,因此很可能已经将其加载到FP寄存器中,因此将其移动到通用寄存器,翻转会有相当多的开销钻头并将它们移回去。

我不知道是否有完整的通用指南“应该算作flop”,但这很可能是在FPU上执行的指令,因此它正在与CPU上的其他FP指令竞争,所以是的,我会将其包括在拖鞋中。

其他提示

尝试拆卸代码并检查如何执行此操作。

如果使用指令 FCHS (更改标志)然后您可以考虑其浮点操作。

MSVC(Visual Studio 2008)

    double c = -b;
00971397  fld         qword ptr [b] 
0097139A  fchs             
0097139C  fstp        qword ptr [c] 

FCHS-看到吗?

有一种约定可以使用Linpack作为标准基准来计算拖船。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top