gpt4 book ai didi

c++ - 如何测量 FLOPS

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:29 66 4
gpt4 key购买 nike

我如何测量 FLOPSIOPS ?如果我测量普通浮点加法/乘法的时间,它是否等同于 FLOPS?

最佳答案

FLOPS 是每秒的浮点运算。要测量 FLOPS,您首先需要执行此类操作的代码。如果你有这样的代码,你能衡量的就是它的执行时间。您还需要总结或估计(不是测量!)所有浮点运算并将其除以测量的墙时间。您应该计算所有普通操作,例如加法、减法、乘法、除法(是的,尽管它们速度较慢并且最好避免,但它们仍然是 FLOPs..)。小心你如何计算!您在源代码中看到的很可能不是编译器在所有优化之后生成的内容。为确保您可能必须查看程序集..

FLOPS 与每秒操作数不同。因此,即使某些架构只有一条 MAD(乘加)指令,它们仍然算作两个 FLOP。同样的 SSE 指令。尽管它们执行了不止一次 FLOP,但您将它们算作一条指令。

FLOPS 并非完全没有意义,但在将 FLOPS 与 sb 进行比较时需要小心。其他的 FLOPS,尤其是硬件供应商。例如。假设 MAD 操作,NVIDIA 为其卡提供峰值 FLOPS 性能。所以除非你的代码有这些,否则你永远不会获得这种性能。要么重新考虑算法,要么通过正确的因子修改峰值硬件 FLOPS,您需要为自己的算法弄清楚!例如,如果您的代码只执行乘法,您可以将其除以 2。正确计数可能会使您的代码从次优变为非常高效,而无需更改一行代码。

关于c++ - 如何测量 FLOPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9344325/

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