gpt4 book ai didi

c++ - CPU 指令与持续时间

转载 作者:太空狗 更新时间:2023-10-29 22:58:56 27 4
gpt4 key购买 nike

<分区>

我有两个不同的程序来解决用 C++ 编写的数学问题(程序 AB)。

A 的性能大约比 B 好 10 倍(在持续时间方面)。现在我通过 valgrind 工具 callgrind 计算了执行的 CPU 指令,发现程序 A 只需要程序 B 执行的指令的 1/3。我本以为该系数约为 1/10。

我知道有些 CPU 指令需要更多的 CPU 周期(如内存访问),但根据设计 A 应该比 B 包含更多这种昂贵的指令。我也不知道 callgrind 如何计算此类指令(在文档中找不到任何相关信息)。
任何人都可以对这种行为给出合理的解释吗?时间差

编辑:(由于评论)
不幸的是,代码太全面了,不能在这里发布……这两个程序都在同一台机器上执行。两者都是完全并行化的(每个线程运行一个独立的程序拷贝,只需要在找到解决方案时告诉其他线程)。但是指令计数是在一个线程上完成的,因为 callgrind 无论如何都会对程序进行排序。如前所述,AB 需要更多的内存。
我不期待一个正确的答案,只是给我一些可能导致该问题的提示。

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