【问题标题】:How can computational requirements be compared?如何比较计算要求?
【发布时间】:2019-03-10 18:48:42
【问题描述】:

计算优化问题的解决方案需要 2 GHz CPU 一小时。在此过程中,没有后台进程,没有使用 RAM,并且 CPU 处于 100% 的容量。

根据这些信息,能否推导出 1 GHz CPU 需要两个小时才能解决同样的问题?

【问题讨论】:

  • 任何两个 CPU 都可能存在巨大的架构差异;仅 GHz 数字就无法说明其在任何特定计算中的性能……

标签: requirements


【解决方案1】:

快速搜索 IPC、频率和芯片架构会告诉你这个话题已经被破坏了很多次。有很多事情可以决定程序的执行速度(甚至根本不需要进入线程),我想到的主要是:

  1. 指令集 - 如果一个芯片有乘法指令,则a*b 是原子的。如果没有,您将需要大量原子指令来执行这样的操作 - 速度差异很大,这可以证明使更高频率的芯片更慢。

  2. 每秒周期数 - 这是芯片的频率

  3. 每周期指令 (IPC) - 您真正感兴趣的是 IPC*频率,而不仅仅是频率。您可以在一秒钟内执行多少个原子操作。在原子操作数量之后(参见 1),在单线程应用程序上,这可能会像您预期的那样运行(x2 this => x2 更快的程序),但不能保证。

还有很多其他细微差别的技术可以影响这一点,例如最近热门新闻的分支预测。要全面了解书籍/课程可能是更好的资源。

所以,一般来说,没有。如果您要比较两个单核、相同架构的芯片(不太可能),那么可能是的。

【讨论】:

  • 我明白了。想知道这些因素与频率本身相比的大小……在估计 Arduino 的计算时间时,频率是否可以用作经验法则​​。时间,比如说现代 ThinkPad,是已知的 - 或者我可以预期 >100% 的巨大偏差?
  • @cheesus 预计会有偏差。当然,您的测试程序有多​​复杂很重要,但频率本身通常是一个不好的指标,除了几乎相同(架构方面)的芯片。
  • 指令集本身可以产生巨大的影响。
猜你喜欢
  • 1970-01-01
  • 2020-10-03
  • 1970-01-01
  • 2014-10-01
  • 2019-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多