Linux:CPU基准测试需要更长的时间和不同的CPU利用率水平

时间:2016-06-22 11:45:13

标签: linux benchmarking cpu-usage

对于我的研究,我需要CPU基准测试来在我的Ubuntu笔记本电脑上进行一些实验(Ubuntu 15.10,内存7.7 GiB,Intel Core i7-4500U CPU @ 1.80HGz x 4,64bit)。在一个理想的世界里,我希望有一个满足以下条件的基准:

  1. CPU应该是官方基准,而不是我自己创建的透明用途。
  2. 在我的笔记本电脑上执行基准测试所需的时间应该至少5分钟(越多越好)。
  3. 基准测试应该在整个执行过程中产生不同级别的CPU。例如,我不想要一个永久性地将CPU利用率保持在100%左右的基准测试 - 所以我想要一个能够使CPU利用率随时间变化的基准测试。
  4. 尤其是第2点和第3点对我的研究来说非常关键。但是,到目前为止我找不到合适的基准。到目前为止我发现的基准测试包括:sysbench,CPU Fibonacci,CPU Blowfish,CPU Cryptofish,CPU N-Queens。但是,所有这些都需要几秒钟才能完成,我的笔记本电脑的使用率不断提高到100%。

    问题:有谁知道我的合适基准?我也很高兴听到您的任何其他意见/问题。谢谢!

1 个答案:

答案 0 :(得分:0)

要选择基准,您需要准确了解您要测量的内容。你的问题不包括那个问题,所以没有人会在没有疯狂猜测的情况下告诉你。

如果您正在尝试测量Turbo时钟速度如何有效地制作功率受限的CPU,就像您的笔记本电脑运行速度更快以满足突发性工作负载(例如,将Haswell与Skylake的新功能和改进的电源管理进行比较),您可以运行一些东西微不足道的,开启1秒,关闭2秒,并计算它管理的循环迭代次数。

占空比和周期长度应该是基准参数,因此您可以制作图表。例如在非常快速的开/关周期中,Skylake's faster-reacting Turbo将更快地上升并更快地下降到最小功率(在下一次突发中留下更多的净空)。

该演讲的演讲者(英特尔CPU上电源管理的首席架构师)表示,Javascript基准测试实际上足以让Skylake的电源管理能够提供可测量的加速,而不像大多数其他基准测试只需将CPU固定在100%全程。 如果您想使用众所周知的现成基准测试,那么可以查看Javascript基准测试

如果自己滚动,请在循环中放置一个循环传递的依赖关系链,最好是在微架构的延迟方面没有太多变化。一长串整数加法可行,Fibonacci是阻止编译器优化它的好方法。选择一个适合当前CPU速度的固定迭代计数,或者每10M迭代检查一次。

或者设置一个会在一段时间后触发的计时器,并让它设置一个你在循环中检查的标志。 (例如来自信号处理程序)。具体来说,alarm(2)可能是一个不错的选择。记录您在这项工作中所做的迭代次数。